diff --git a/cbits/vulkan_loader.c b/cbits/vulkan_loader.c
new file mode 100644
--- /dev/null
+++ b/cbits/vulkan_loader.c
@@ -0,0 +1,39 @@
+#include "vulkan_loader.h"
+
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) || defined(mingw32_HOST_OS)
+  #include <windows.h>
+  #define _vk_dlopen() LoadLibraryA("vulkan-1.dll")
+  #define _vk_dlclose(handle) FreeLibrary((HMODULE) handle)
+  #define _vk_dlsym(handle, name) GetProcAddress((HMODULE) handle, name)
+  #define _vk_dlerror(msg) *msg = errMsgBuf; FormatMessage( \
+        FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, \
+        NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) errMsgBuf , 255, NULL )
+  static TCHAR errMsgBuf[255] = { 0 };
+#else
+  #include <dlfcn.h>
+  #if defined(__APPLE__) || defined(darwin_HOST_OS)
+    #define _vk_dlopen() dlopen("libMoltenVK.dylib", RTLD_LAZY | RTLD_LOCAL)
+  #else
+    #define _vk_dlopen() dlopen("libvulkan.so", RTLD_LAZY | RTLD_LOCAL)
+  #endif
+  #define _vk_dlclose(handle) dlclose(handle)
+  #define _vk_dlsym(handle, name) dlsym(handle, name)
+  #define _vk_dlerror(msg) *msg = dlerror()
+#endif
+
+
+void *_vkdll_dlinit(char **errorMsg){
+  void *handle = (void*)_vk_dlopen();
+  _vk_dlerror(errorMsg);
+  return handle;
+}
+
+void _vkdll_dlclose(void *handle){
+  _vk_dlclose(handle);
+}
+
+void *_vkdll_dlsym(void *handle, const char *symbol, char **errorMsg){
+  void *rez = (void*)_vk_dlsym(handle, symbol);
+  _vk_dlerror(errorMsg);
+  return rez;
+}
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -43,7 +43,7 @@
 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
 // Version of this file
-#define VK_HEADER_VERSION 71
+#define VK_HEADER_VERSION 72
 
 
 #define VK_NULL_HANDLE 0
@@ -147,6 +147,7 @@
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
     VK_ERROR_INVALID_SHADER_NV = -1000012000,
+    VK_ERROR_FRAGMENTATION_EXT = -1000161000,
     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
@@ -377,10 +378,16 @@
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
+    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
@@ -1498,12 +1505,14 @@
 
 typedef enum VkDescriptorSetLayoutCreateFlagBits {
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
     VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorSetLayoutCreateFlagBits;
 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
 
 typedef enum VkDescriptorPoolCreateFlagBits {
     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
+    VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
     VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorPoolCreateFlagBits;
 typedef VkFlags VkDescriptorPoolCreateFlags;
@@ -3738,6 +3747,7 @@
     VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
     VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
     VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
+    VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
     VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkSubgroupFeatureFlagBits;
 typedef VkFlags VkSubgroupFeatureFlags;
@@ -7232,6 +7242,95 @@
     void*                                       pData);
 #endif
 
+#define VK_EXT_descriptor_indexing 1
+#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
+#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
+
+
+typedef enum VkDescriptorBindingFlagBitsEXT {
+    VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
+    VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
+    VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
+    VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
+    VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDescriptorBindingFlagBitsEXT;
+typedef VkFlags VkDescriptorBindingFlagsEXT;
+
+typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    uint32_t                              bindingCount;
+    const VkDescriptorBindingFlagsEXT*    pBindingFlags;
+} VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
+
+typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           shaderInputAttachmentArrayDynamicIndexing;
+    VkBool32           shaderUniformTexelBufferArrayDynamicIndexing;
+    VkBool32           shaderStorageTexelBufferArrayDynamicIndexing;
+    VkBool32           shaderUniformBufferArrayNonUniformIndexing;
+    VkBool32           shaderSampledImageArrayNonUniformIndexing;
+    VkBool32           shaderStorageBufferArrayNonUniformIndexing;
+    VkBool32           shaderStorageImageArrayNonUniformIndexing;
+    VkBool32           shaderInputAttachmentArrayNonUniformIndexing;
+    VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing;
+    VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing;
+    VkBool32           descriptorBindingUniformBufferUpdateAfterBind;
+    VkBool32           descriptorBindingSampledImageUpdateAfterBind;
+    VkBool32           descriptorBindingStorageImageUpdateAfterBind;
+    VkBool32           descriptorBindingStorageBufferUpdateAfterBind;
+    VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind;
+    VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind;
+    VkBool32           descriptorBindingUpdateUnusedWhilePending;
+    VkBool32           descriptorBindingPartiallyBound;
+    VkBool32           descriptorBindingVariableDescriptorCount;
+    VkBool32           runtimeDescriptorArray;
+} VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
+
+typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxUpdateAfterBindDescriptorsInAllPools;
+    VkBool32           shaderUniformBufferArrayNonUniformIndexingNative;
+    VkBool32           shaderSampledImageArrayNonUniformIndexingNative;
+    VkBool32           shaderStorageBufferArrayNonUniformIndexingNative;
+    VkBool32           shaderStorageImageArrayNonUniformIndexingNative;
+    VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative;
+    VkBool32           robustBufferAccessUpdateAfterBind;
+    VkBool32           quadDivergentImplicitLod;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages;
+    uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments;
+    uint32_t           maxPerStageUpdateAfterBindResources;
+    uint32_t           maxDescriptorSetUpdateAfterBindSamplers;
+    uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers;
+    uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
+    uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers;
+    uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
+    uint32_t           maxDescriptorSetUpdateAfterBindSampledImages;
+    uint32_t           maxDescriptorSetUpdateAfterBindStorageImages;
+    uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments;
+} VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
+
+typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           descriptorSetCount;
+    const uint32_t*    pDescriptorCounts;
+} VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
+
+typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxVariableDescriptorCount;
+} VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
+
+
+
 #define VK_EXT_shader_viewport_index_layer 1
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
@@ -7310,6 +7409,31 @@
     uint32_t                                    marker);
 #endif
 
+#define VK_AMD_shader_core_properties 1
+#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
+#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
+
+typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           shaderEngineCount;
+    uint32_t           shaderArraysPerEngineCount;
+    uint32_t           computeUnitsPerShaderArray;
+    uint32_t           simdPerComputeUnit;
+    uint32_t           wavefrontsPerSimd;
+    uint32_t           wavefrontSize;
+    uint32_t           sgprsPerSimd;
+    uint32_t           minSgprAllocation;
+    uint32_t           maxSgprAllocation;
+    uint32_t           sgprAllocationGranularity;
+    uint32_t           vgprsPerSimd;
+    uint32_t           minVgprAllocation;
+    uint32_t           maxVgprAllocation;
+    uint32_t           vgprAllocationGranularity;
+} VkPhysicalDeviceShaderCorePropertiesAMD;
+
+
+
 #define VK_EXT_vertex_attribute_divisor 1
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
@@ -7332,6 +7456,11 @@
     const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors;
 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
 
+
+
+#define VK_NV_shader_subgroup_partitioned 1
+#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
+#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
 
 
 #ifdef __cplusplus
diff --git a/include/vulkan_loader.h b/include/vulkan_loader.h
new file mode 100644
--- /dev/null
+++ b/include/vulkan_loader.h
@@ -0,0 +1,8 @@
+#ifndef VULKAN_LOADER_H_
+#define VULKAN_LOADER_H_ 1
+
+void *_vkdll_dlinit(char **errorMsg);
+void  _vkdll_dlclose(void *handle);
+void *_vkdll_dlsym(void *handle, const char *symbol, char **errorMsg);
+
+#endif
diff --git a/src-gen/Graphics/Vulkan/Core_1_0.hsc b/src-gen/Graphics/Vulkan/Core_1_0.hsc
--- a/src-gen/Graphics/Vulkan/Core_1_0.hsc
+++ b/src-gen/Graphics/Vulkan/Core_1_0.hsc
@@ -1,5937 +1,25284 @@
 #include "vulkan/vulkan.h"
 
-{-# OPTIONS_GHC -fno-warn-unused-imports#-}
-{-# OPTIONS_HADDOCK not-home#-}
-{-# LANGUAGE DataKinds                #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE PatternSynonyms          #-}
-{-# LANGUAGE Strict                   #-}
-module Graphics.Vulkan.Core_1_0
-       (-- * Vulkan core API interface definitions
-        -- |
-        --
-        -- @api = vulkan@
-        --
-        -- @name = VK_VERSION_1_0@
-        --
-        -- @number = 1.0@
-        --
-
-        -- ** Header boilerplate
-        --
-        -- |
-        -- > ##include "vk_platform.h"
-        --
-
-        -- ** API version
-        --
-
-        -- ** API constants
-        module Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion,
-        pattern VK_LOD_CLAMP_NONE, pattern VK_REMAINING_MIP_LEVELS,
-        pattern VK_REMAINING_ARRAY_LAYERS, pattern VK_WHOLE_SIZE,
-        pattern VK_ATTACHMENT_UNUSED, pattern VK_TRUE, pattern VK_FALSE,
-        pattern VK_QUEUE_FAMILY_IGNORED, pattern VK_SUBPASS_EXTERNAL,
-        -- ** Device initialization
-        vkCreateInstance, vkCreateInstanceSafe, vkDestroyInstance,
-        vkDestroyInstanceSafe, vkEnumeratePhysicalDevices,
-        vkEnumeratePhysicalDevicesSafe, vkGetPhysicalDeviceFeatures,
-        vkGetPhysicalDeviceFeaturesSafe,
-        vkGetPhysicalDeviceFormatProperties,
-        vkGetPhysicalDeviceFormatPropertiesSafe,
-        vkGetPhysicalDeviceImageFormatProperties,
-        vkGetPhysicalDeviceImageFormatPropertiesSafe,
-        vkGetPhysicalDeviceProperties, vkGetPhysicalDevicePropertiesSafe,
-        vkGetPhysicalDeviceQueueFamilyProperties,
-        vkGetPhysicalDeviceQueueFamilyPropertiesSafe,
-        vkGetPhysicalDeviceMemoryProperties,
-        vkGetPhysicalDeviceMemoryPropertiesSafe, vkGetInstanceProcAddr,
-        vkGetInstanceProcAddrSafe, vkGetDeviceProcAddr,
-        vkGetDeviceProcAddrSafe, module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags,
-        module Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkQueueFlags,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
-        module Graphics.Vulkan.Types.Funcpointers,
-        module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkApplicationInfo,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryHeap,
-        module Graphics.Vulkan.Types.Struct.VkMemoryType,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties,
-        -- ** Device commands
-        vkCreateDevice, vkCreateDeviceSafe, vkDestroyDevice,
-        vkDestroyDeviceSafe,
-        module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo,
-        -- ** Extension discovery commands
-        vkEnumerateInstanceExtensionProperties,
-        vkEnumerateInstanceExtensionPropertiesSafe,
-        vkEnumerateDeviceExtensionProperties,
-        vkEnumerateDeviceExtensionPropertiesSafe,
-        module Graphics.Vulkan.Types.Struct.VkExtensionProperties,
-        -- ** Layer discovery commands
-        vkEnumerateInstanceLayerProperties,
-        vkEnumerateInstanceLayerPropertiesSafe,
-        vkEnumerateDeviceLayerProperties,
-        vkEnumerateDeviceLayerPropertiesSafe,
-        module Graphics.Vulkan.Types.Struct.VkLayerProperties,
-        -- ** queue commands
-        vkGetDeviceQueue, vkGetDeviceQueueSafe, vkQueueSubmit,
-        vkQueueSubmitSafe, vkQueueWaitIdle, vkQueueWaitIdleSafe,
-        vkDeviceWaitIdle, vkDeviceWaitIdleSafe,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
-        module Graphics.Vulkan.Types.Struct.VkSubmitInfo, -- ** Memory commands
-                                                          vkAllocateMemory,
-        vkAllocateMemorySafe, vkFreeMemory, vkFreeMemorySafe, vkMapMemory,
-        vkMapMemorySafe, vkUnmapMemory, vkUnmapMemorySafe,
-        vkFlushMappedMemoryRanges, vkFlushMappedMemoryRangesSafe,
-        vkInvalidateMappedMemoryRanges, vkInvalidateMappedMemoryRangesSafe,
-        vkGetDeviceMemoryCommitment, vkGetDeviceMemoryCommitmentSafe,
-        module Graphics.Vulkan.Types.Struct.VkMappedMemoryRange,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        -- ** Memory management API commands
-        vkBindBufferMemory, vkBindBufferMemorySafe, vkBindImageMemory,
-        vkBindImageMemorySafe, vkGetBufferMemoryRequirements,
-        vkGetBufferMemoryRequirementsSafe, vkGetImageMemoryRequirements,
-        vkGetImageMemoryRequirementsSafe,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements,
-        -- ** Sparse resource memory management API commands
-        vkGetImageSparseMemoryRequirements,
-        vkGetImageSparseMemoryRequirementsSafe,
-        vkGetPhysicalDeviceSparseImageFormatProperties,
-        vkGetPhysicalDeviceSparseImageFormatPropertiesSafe,
-        vkQueueBindSparse, vkQueueBindSparseSafe,
-        module Graphics.Vulkan.Types.Enum.VkImageAspectFlags,
-        module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags,
-        module Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags,
-        module Graphics.Vulkan.Types.Struct.VkBindSparseInfo,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresource,
-        module Graphics.Vulkan.Types.Struct.VkOffset3D,
-        module Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseMemoryBind,
-        -- ** Fence commands
-        vkCreateFence, vkCreateFenceSafe, vkDestroyFence,
-        vkDestroyFenceSafe, vkResetFences, vkResetFencesSafe,
-        vkGetFenceStatus, vkGetFenceStatusSafe, vkWaitForFences,
-        vkWaitForFencesSafe,
-        module Graphics.Vulkan.Types.Enum.VkFenceCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkFenceCreateInfo,
-        -- ** Queue semaphore commands
-        vkCreateSemaphore, vkCreateSemaphoreSafe, vkDestroySemaphore,
-        vkDestroySemaphoreSafe,
-        module Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo,
-        -- ** Event commands
-        vkCreateEvent, vkCreateEventSafe, vkDestroyEvent,
-        vkDestroyEventSafe, vkGetEventStatus, vkGetEventStatusSafe,
-        vkSetEvent, vkSetEventSafe, vkResetEvent, vkResetEventSafe,
-        module Graphics.Vulkan.Types.Struct.VkEventCreateInfo,
-        -- ** Query commands
-        vkCreateQueryPool, vkCreateQueryPoolSafe, vkDestroyQueryPool,
-        vkDestroyQueryPoolSafe, vkGetQueryPoolResults,
-        vkGetQueryPoolResultsSafe,
-        module Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags,
-        module Graphics.Vulkan.Types.Enum.VkQueryResultFlags,
-        module Graphics.Vulkan.Types.Enum.VkQueryType,
-        module Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo,
-        -- ** Buffer commands
-        vkCreateBuffer, vkCreateBufferSafe, vkDestroyBuffer,
-        vkDestroyBufferSafe,
-        module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Struct.VkBufferCreateInfo,
-        -- ** Buffer view commands
-        vkCreateBufferView, vkCreateBufferViewSafe, vkDestroyBufferView,
-        vkDestroyBufferViewSafe,
-        module Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo,
-        -- ** Image commands
-        vkCreateImage, vkCreateImageSafe, vkDestroyImage,
-        vkDestroyImageSafe, vkGetImageSubresourceLayout,
-        vkGetImageSubresourceLayoutSafe,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkSubresourceLayout,
-        -- ** Image view commands
-        vkCreateImageView, vkCreateImageViewSafe, vkDestroyImageView,
-        vkDestroyImageViewSafe,
-        module Graphics.Vulkan.Types.Enum.VkComponentSwizzle,
-        module Graphics.Vulkan.Types.Enum.VkImageViewType,
-        module Graphics.Vulkan.Types.Struct.VkComponentMapping,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresourceRange,
-        module Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo,
-        -- ** Shader commands
-        vkCreateShaderModule, vkCreateShaderModuleSafe,
-        vkDestroyShaderModule, vkDestroyShaderModuleSafe,
-        module Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo,
-        -- ** Pipeline Cache commands
-        vkCreatePipelineCache, vkCreatePipelineCacheSafe,
-        vkDestroyPipelineCache, vkDestroyPipelineCacheSafe,
-        vkGetPipelineCacheData, vkGetPipelineCacheDataSafe,
-        vkMergePipelineCaches, vkMergePipelineCachesSafe,
-        module Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo,
-        -- ** Pipeline commands
-        vkCreateGraphicsPipelines, vkCreateGraphicsPipelinesSafe,
-        vkCreateComputePipelines, vkCreateComputePipelinesSafe,
-        vkDestroyPipeline, vkDestroyPipelineSafe,
-        module Graphics.Vulkan.Types.Enum.VkBlendFactor,
-        module Graphics.Vulkan.Types.Enum.VkBlendOp,
-        module Graphics.Vulkan.Types.Enum.VkColorComponentFlags,
-        module Graphics.Vulkan.Types.Enum.VkCompareOp,
-        module Graphics.Vulkan.Types.Enum.VkCullModeFlags,
-        module Graphics.Vulkan.Types.Enum.VkDynamicState,
-        module Graphics.Vulkan.Types.Enum.VkFrontFace,
-        module Graphics.Vulkan.Types.Enum.VkLogicOp,
-        module Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkPolygonMode,
-        module Graphics.Vulkan.Types.Enum.VkPrimitiveTopology,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStencilOp,
-        module Graphics.Vulkan.Types.Enum.VkVertexInputRate,
-        module Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Struct.VkSpecializationInfo,
-        module Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry,
-        module Graphics.Vulkan.Types.Struct.VkStencilOpState,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription,
-        module Graphics.Vulkan.Types.Struct.VkViewport,
-        -- ** Pipeline layout commands
-        vkCreatePipelineLayout, vkCreatePipelineLayoutSafe,
-        vkDestroyPipelineLayout, vkDestroyPipelineLayoutSafe,
-        module Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPushConstantRange,
-        -- ** Sampler commands
-        vkCreateSampler, vkCreateSamplerSafe, vkDestroySampler,
-        vkDestroySamplerSafe,
-        module Graphics.Vulkan.Types.Enum.VkBorderColor,
-        module Graphics.Vulkan.Types.Enum.VkFilter,
-        module Graphics.Vulkan.Types.Enum.VkSamplerAddressMode,
-        module Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode,
-        module Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo,
-        -- ** Descriptor set commands
-        vkCreateDescriptorSetLayout, vkCreateDescriptorSetLayoutSafe,
-        vkDestroyDescriptorSetLayout, vkDestroyDescriptorSetLayoutSafe,
-        vkCreateDescriptorPool, vkCreateDescriptorPoolSafe,
-        vkDestroyDescriptorPool, vkDestroyDescriptorPoolSafe,
-        vkResetDescriptorPool, vkResetDescriptorPoolSafe,
-        vkAllocateDescriptorSets, vkAllocateDescriptorSetsSafe,
-        vkFreeDescriptorSets, vkFreeDescriptorSetsSafe,
-        vkUpdateDescriptorSets, vkUpdateDescriptorSetsSafe,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorType,
-        module Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet,
-        -- ** Pass commands
-        vkCreateFramebuffer, vkCreateFramebufferSafe, vkDestroyFramebuffer,
-        vkDestroyFramebufferSafe, vkCreateRenderPass,
-        vkCreateRenderPassSafe, vkDestroyRenderPass,
-        vkDestroyRenderPassSafe, vkGetRenderAreaGranularity,
-        vkGetRenderAreaGranularitySafe,
-        module Graphics.Vulkan.Types.Enum.VkAccessFlags,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp,
-        module Graphics.Vulkan.Types.Enum.VkDependencyFlags,
-        module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint,
-        module Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags,
-        module Graphics.Vulkan.Types.Struct.VkAttachmentDescription,
-        module Graphics.Vulkan.Types.Struct.VkAttachmentReference,
-        module Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkSubpassDependency,
-        module Graphics.Vulkan.Types.Struct.VkSubpassDescription,
-        -- ** Command pool commands
-        vkCreateCommandPool, vkCreateCommandPoolSafe, vkDestroyCommandPool,
-        vkDestroyCommandPoolSafe, vkResetCommandPool,
-        vkResetCommandPoolSafe,
-        module Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags,
-        module Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo,
-        -- ** Command buffer commands
-        vkAllocateCommandBuffers, vkAllocateCommandBuffersSafe,
-        vkFreeCommandBuffers, vkFreeCommandBuffersSafe,
-        vkBeginCommandBuffer, vkBeginCommandBufferSafe, vkEndCommandBuffer,
-        vkEndCommandBufferSafe, vkResetCommandBuffer,
-        vkResetCommandBufferSafe,
-        module Graphics.Vulkan.Types.Enum.VkCommandBufferLevel,
-        module Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags,
-        module Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkQueryControlFlags,
-        module Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo,
-        -- ** Command buffer building commands
-        vkCmdBindPipeline, vkCmdBindPipelineSafe, vkCmdSetViewport,
-        vkCmdSetViewportSafe, vkCmdSetScissor, vkCmdSetScissorSafe,
-        vkCmdSetLineWidth, vkCmdSetLineWidthSafe, vkCmdSetDepthBias,
-        vkCmdSetDepthBiasSafe, vkCmdSetBlendConstants,
-        vkCmdSetBlendConstantsSafe, vkCmdSetDepthBounds,
-        vkCmdSetDepthBoundsSafe, vkCmdSetStencilCompareMask,
-        vkCmdSetStencilCompareMaskSafe, vkCmdSetStencilWriteMask,
-        vkCmdSetStencilWriteMaskSafe, vkCmdSetStencilReference,
-        vkCmdSetStencilReferenceSafe, vkCmdBindDescriptorSets,
-        vkCmdBindDescriptorSetsSafe, vkCmdBindIndexBuffer,
-        vkCmdBindIndexBufferSafe, vkCmdBindVertexBuffers,
-        vkCmdBindVertexBuffersSafe, vkCmdDraw, vkCmdDrawSafe,
-        vkCmdDrawIndexed, vkCmdDrawIndexedSafe, vkCmdDrawIndirect,
-        vkCmdDrawIndirectSafe, vkCmdDrawIndexedIndirect,
-        vkCmdDrawIndexedIndirectSafe, vkCmdDispatch, vkCmdDispatchSafe,
-        vkCmdDispatchIndirect, vkCmdDispatchIndirectSafe, vkCmdCopyBuffer,
-        vkCmdCopyBufferSafe, vkCmdCopyImage, vkCmdCopyImageSafe,
-        vkCmdBlitImage, vkCmdBlitImageSafe, vkCmdCopyBufferToImage,
-        vkCmdCopyBufferToImageSafe, vkCmdCopyImageToBuffer,
-        vkCmdCopyImageToBufferSafe, vkCmdUpdateBuffer,
-        vkCmdUpdateBufferSafe, vkCmdFillBuffer, vkCmdFillBufferSafe,
-        vkCmdClearColorImage, vkCmdClearColorImageSafe,
-        vkCmdClearDepthStencilImage, vkCmdClearDepthStencilImageSafe,
-        vkCmdClearAttachments, vkCmdClearAttachmentsSafe,
-        vkCmdResolveImage, vkCmdResolveImageSafe, vkCmdSetEvent,
-        vkCmdSetEventSafe, vkCmdResetEvent, vkCmdResetEventSafe,
-        vkCmdWaitEvents, vkCmdWaitEventsSafe, vkCmdPipelineBarrier,
-        vkCmdPipelineBarrierSafe, vkCmdBeginQuery, vkCmdBeginQuerySafe,
-        vkCmdEndQuery, vkCmdEndQuerySafe, vkCmdResetQueryPool,
-        vkCmdResetQueryPoolSafe, vkCmdWriteTimestamp,
-        vkCmdWriteTimestampSafe, vkCmdCopyQueryPoolResults,
-        vkCmdCopyQueryPoolResultsSafe, vkCmdPushConstants,
-        vkCmdPushConstantsSafe, vkCmdBeginRenderPass,
-        vkCmdBeginRenderPassSafe, vkCmdNextSubpass, vkCmdNextSubpassSafe,
-        vkCmdEndRenderPass, vkCmdEndRenderPassSafe, vkCmdExecuteCommands,
-        vkCmdExecuteCommandsSafe,
-        module Graphics.Vulkan.Types.Enum.VkIndexType,
-        module Graphics.Vulkan.Types.Enum.VkStencilFaceFlags,
-        module Graphics.Vulkan.Types.Enum.VkSubpassContents,
-        module Graphics.Vulkan.Types.Struct.VkBufferCopy,
-        module Graphics.Vulkan.Types.Struct.VkBufferImageCopy,
-        module Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier,
-        module Graphics.Vulkan.Types.Struct.VkClearAttachment,
-        module Graphics.Vulkan.Types.Struct.VkClearColorValue,
-        module Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue,
-        module Graphics.Vulkan.Types.Struct.VkClearRect,
-        module Graphics.Vulkan.Types.Struct.VkClearValue,
-        module Graphics.Vulkan.Types.Struct.VkImageBlit,
-        module Graphics.Vulkan.Types.Struct.VkImageCopy,
-        module Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier,
-        module Graphics.Vulkan.Types.Struct.VkImageResolve,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers,
-        module Graphics.Vulkan.Types.Struct.VkMemoryBarrier,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo,
-        -- ** Types not directly used by the API. Include e.g. structs that are not parameter types of commands, but still defined by the API.
-        module Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand,
-        module Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand,
-        module Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand,
-        module Graphics.Vulkan.Types.Enum.VkObjectType)
-       where
-import           Graphics.Vulkan.Constants
-                                                                                      (pattern VK_ATTACHMENT_UNUSED,
-                                                                                      pattern VK_FALSE,
-                                                                                      pattern VK_LOD_CLAMP_NONE,
-                                                                                      pattern VK_QUEUE_FAMILY_IGNORED,
-                                                                                      pattern VK_REMAINING_ARRAY_LAYERS,
-                                                                                      pattern VK_REMAINING_MIP_LEVELS,
-                                                                                      pattern VK_SUBPASS_EXTERNAL,
-                                                                                      pattern VK_TRUE,
-                                                                                      pattern VK_WHOLE_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags
-import           Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags
-import           Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp
-import           Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp
-import           Graphics.Vulkan.Types.Enum.VkBlendFactor
-import           Graphics.Vulkan.Types.Enum.VkBlendOp
-import           Graphics.Vulkan.Types.Enum.VkBorderColor
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkColorComponentFlags
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferLevel
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags
-import           Graphics.Vulkan.Types.Enum.VkCompareOp
-import           Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.VkCullModeFlags
-import           Graphics.Vulkan.Types.Enum.VkDependencyFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkDynamicState
-import           Graphics.Vulkan.Types.Enum.VkFenceCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkFilter
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkFrontFace
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkImageViewType
-import           Graphics.Vulkan.Types.Enum.VkIndexType
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkLogicOp
-import           Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-import           Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion
-import           Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode
-import           Graphics.Vulkan.Types.Enum.VkPrimitiveTopology
-import           Graphics.Vulkan.Types.Enum.VkQueryControlFlags
-import           Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags
-import           Graphics.Vulkan.Types.Enum.VkQueryResultFlags
-import           Graphics.Vulkan.Types.Enum.VkQueryType
-import           Graphics.Vulkan.Types.Enum.VkQueueFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSamplerAddressMode
-import           Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-import           Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags
-import           Graphics.Vulkan.Types.Enum.VkStencilFaceFlags
-import           Graphics.Vulkan.Types.Enum.VkStencilOp
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSubpassContents
-import           Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.VkVertexInputRate
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkApplicationInfo
-import           Graphics.Vulkan.Types.Struct.VkAttachmentDescription
-import           Graphics.Vulkan.Types.Struct.VkAttachmentReference
-import           Graphics.Vulkan.Types.Struct.VkBindSparseInfo
-import           Graphics.Vulkan.Types.Struct.VkBufferCopy
-import           Graphics.Vulkan.Types.Struct.VkBufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkBufferImageCopy
-import           Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier
-import           Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkClearAttachment
-import           Graphics.Vulkan.Types.Struct.VkClearColorValue
-import           Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue
-import           Graphics.Vulkan.Types.Struct.VkClearRect
-import           Graphics.Vulkan.Types.Struct.VkClearValue
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo
-import           Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping
-import           Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet
-import           Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand
-import           Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand
-import           Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand
-import           Graphics.Vulkan.Types.Struct.VkEventCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExtensionProperties
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkFenceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageBlit
-import           Graphics.Vulkan.Types.Struct.VkImageCopy
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier
-import           Graphics.Vulkan.Types.Struct.VkImageResolve
-import           Graphics.Vulkan.Types.Struct.VkImageSubresource
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceRange
-import           Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkLayerProperties
-import           Graphics.Vulkan.Types.Struct.VkMappedMemoryRange
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryBarrier
-import           Graphics.Vulkan.Types.Struct.VkMemoryHeap
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkMemoryType
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkOffset3D
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPushConstantRange
-import           Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseMemoryBind
-import           Graphics.Vulkan.Types.Struct.VkSpecializationInfo
-import           Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry
-import           Graphics.Vulkan.Types.Struct.VkStencilOpState
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkSubpassDependency
-import           Graphics.Vulkan.Types.Struct.VkSubpassDescription
-import           Graphics.Vulkan.Types.Struct.VkSubresourceLayout
-import           Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription
-import           Graphics.Vulkan.Types.Struct.VkViewport
-import           Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
---
---   > VkResult vkCreateInstance
---   >     ( const VkInstanceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkInstance* pInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateInstance.html vkCreateInstance registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateInstance" vkCreateInstance ::
-               Ptr VkInstanceCreateInfo -- ^ pCreateInfo
-                                        ->
-                 Ptr VkAllocationCallbacks -- ^ pAllocator
-                                           -> Ptr VkInstance -- ^ pInstance
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
---
---   > VkResult vkCreateInstance
---   >     ( const VkInstanceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkInstance* pInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateInstance.html vkCreateInstance registry at www.khronos.org>
-foreign import ccall safe "vkCreateInstance" vkCreateInstanceSafe
-               ::
-               Ptr VkInstanceCreateInfo -- ^ pCreateInfo
-                                        ->
-                 Ptr VkAllocationCallbacks -- ^ pAllocator
-                                           -> Ptr VkInstance -- ^ pInstance
-                                                             -> IO VkResult
-
--- | > () vkDestroyInstance
---   >     ( VkInstance instance
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyInstance.html vkDestroyInstance registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyInstance" vkDestroyInstance
-               :: VkInstance -- ^ instance
-                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                          -> IO ()
-
--- | > () vkDestroyInstance
---   >     ( VkInstance instance
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyInstance.html vkDestroyInstance registry at www.khronos.org>
-foreign import ccall safe "vkDestroyInstance" vkDestroyInstanceSafe
-               :: VkInstance -- ^ instance
-                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                          -> IO ()
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkEnumeratePhysicalDevices
---   >     ( VkInstance instance
---   >     , uint32_t* pPhysicalDeviceCount
---   >     , VkPhysicalDevice* pPhysicalDevices
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDevices.html vkEnumeratePhysicalDevices registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumeratePhysicalDevices"
-               vkEnumeratePhysicalDevices ::
-               VkInstance -- ^ instance
-                          -> Ptr Word32 -- ^ pPhysicalDeviceCount
-                                        -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkEnumeratePhysicalDevices
---   >     ( VkInstance instance
---   >     , uint32_t* pPhysicalDeviceCount
---   >     , VkPhysicalDevice* pPhysicalDevices
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDevices.html vkEnumeratePhysicalDevices registry at www.khronos.org>
-foreign import ccall safe "vkEnumeratePhysicalDevices"
-               vkEnumeratePhysicalDevicesSafe ::
-               VkInstance -- ^ instance
-                          -> Ptr Word32 -- ^ pPhysicalDeviceCount
-                                        -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
-                                                                -> IO VkResult
-
--- | > () vkGetPhysicalDeviceFeatures
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceFeatures* pFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures.html vkGetPhysicalDeviceFeatures registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFeatures"
-               vkGetPhysicalDeviceFeatures ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
-                                                                -> IO ()
-
--- | > () vkGetPhysicalDeviceFeatures
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceFeatures* pFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures.html vkGetPhysicalDeviceFeatures registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFeatures"
-               vkGetPhysicalDeviceFeaturesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
-                                                                -> IO ()
-
--- | > () vkGetPhysicalDeviceFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkFormatProperties* pFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties.html vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties"
-               vkGetPhysicalDeviceFormatProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties -- ^ pFormatProperties
-                                                                      -> IO ()
-
--- | > () vkGetPhysicalDeviceFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkFormatProperties* pFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties.html vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFormatProperties"
-               vkGetPhysicalDeviceFormatPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties -- ^ pFormatProperties
-                                                                      -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceImageFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkImageType type
---   >     , VkImageTiling tiling
---   >     , VkImageUsageFlags usage
---   >     , VkImageCreateFlags flags
---   >     , VkImageFormatProperties* pImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties.html vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceImageFormatProperties"
-               vkGetPhysicalDeviceImageFormatProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
-                               ->
-                     VkImageTiling -- ^ tiling
-                                   ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageCreateFlags -- ^ flags
-                                            -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties
-                                                                           -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceImageFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkImageType type
---   >     , VkImageTiling tiling
---   >     , VkImageUsageFlags usage
---   >     , VkImageCreateFlags flags
---   >     , VkImageFormatProperties* pImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties.html vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceImageFormatProperties"
-               vkGetPhysicalDeviceImageFormatPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
-                               ->
-                     VkImageTiling -- ^ tiling
-                                   ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageCreateFlags -- ^ flags
-                                            -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties
-                                                                           -> IO VkResult
-
--- | > () vkGetPhysicalDeviceProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties.html vkGetPhysicalDeviceProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceProperties"
-               vkGetPhysicalDeviceProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
-                                                                  -> IO ()
-
--- | > () vkGetPhysicalDeviceProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties.html vkGetPhysicalDeviceProperties registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceProperties"
-               vkGetPhysicalDevicePropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
-                                                                  -> IO ()
-
--- | > () vkGetPhysicalDeviceQueueFamilyProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pQueueFamilyPropertyCount
---   >     , VkQueueFamilyProperties* pQueueFamilyProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceQueueFamilyProperties"
-               vkGetPhysicalDeviceQueueFamilyProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
-                                                           -> IO ()
-
--- | > () vkGetPhysicalDeviceQueueFamilyProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pQueueFamilyPropertyCount
---   >     , VkQueueFamilyProperties* pQueueFamilyProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceQueueFamilyProperties"
-               vkGetPhysicalDeviceQueueFamilyPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
-                                                           -> IO ()
-
--- | > () vkGetPhysicalDeviceMemoryProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties.html vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties"
-               vkGetPhysicalDeviceMemoryProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
-                                                                        -> IO ()
-
--- | > () vkGetPhysicalDeviceMemoryProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties.html vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceMemoryProperties"
-               vkGetPhysicalDeviceMemoryPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
-                                                                        -> IO ()
-
--- | > PFN_vkVoidFunction vkGetInstanceProcAddr
---   >     ( VkInstance instance
---   >     , const char* pName
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetInstanceProcAddr.html vkGetInstanceProcAddr registry at www.khronos.org>
-foreign import ccall unsafe "vkGetInstanceProcAddr"
-               vkGetInstanceProcAddr ::
-               VkInstance -- ^ instance
-                          -> CString -- ^ pName
-                                     -> IO PFN_vkVoidFunction
-
--- | > PFN_vkVoidFunction vkGetInstanceProcAddr
---   >     ( VkInstance instance
---   >     , const char* pName
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetInstanceProcAddr.html vkGetInstanceProcAddr registry at www.khronos.org>
-foreign import ccall safe "vkGetInstanceProcAddr"
-               vkGetInstanceProcAddrSafe ::
-               VkInstance -- ^ instance
-                          -> CString -- ^ pName
-                                     -> IO PFN_vkVoidFunction
-
--- | > PFN_vkVoidFunction vkGetDeviceProcAddr
---   >     ( VkDevice device
---   >     , const char* pName
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceProcAddr.html vkGetDeviceProcAddr registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceProcAddr"
-               vkGetDeviceProcAddr :: VkDevice -- ^ device
-                                               -> CString -- ^ pName
-                                                          -> IO PFN_vkVoidFunction
-
--- | > PFN_vkVoidFunction vkGetDeviceProcAddr
---   >     ( VkDevice device
---   >     , const char* pName
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceProcAddr.html vkGetDeviceProcAddr registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceProcAddr"
-               vkGetDeviceProcAddrSafe ::
-               VkDevice -- ^ device
-                        -> CString -- ^ pName
-                                   -> IO PFN_vkVoidFunction
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkCreateDevice
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkDeviceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDevice* pDevice
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDevice.html vkCreateDevice registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDevice" vkCreateDevice ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkDeviceCreateInfo -- ^ pCreateInfo
-                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDevice -- ^ pDevice
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkCreateDevice
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkDeviceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDevice* pDevice
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDevice.html vkCreateDevice registry at www.khronos.org>
-foreign import ccall safe "vkCreateDevice" vkCreateDeviceSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkDeviceCreateInfo -- ^ pCreateInfo
-                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDevice -- ^ pDevice
-                                                             -> IO VkResult
-
--- | > () vkDestroyDevice
---   >     ( VkDevice device
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDevice.html vkDestroyDevice registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDevice" vkDestroyDevice ::
-               VkDevice -- ^ device
-                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                     -> IO ()
-
--- | > () vkDestroyDevice
---   >     ( VkDevice device
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDevice.html vkDestroyDevice registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDevice" vkDestroyDeviceSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                     -> IO ()
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
---
---   > VkResult vkEnumerateInstanceExtensionProperties
---   >     ( const char* pLayerName
---   >     , uint32_t* pPropertyCount
---   >     , VkExtensionProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceExtensionProperties.html vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkEnumerateInstanceExtensionProperties"
-               vkEnumerateInstanceExtensionProperties ::
-               CString -- ^ pLayerName
-                       -> Ptr Word32 -- ^ pPropertyCount
-                                     -> Ptr VkExtensionProperties -- ^ pProperties
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
---
---   > VkResult vkEnumerateInstanceExtensionProperties
---   >     ( const char* pLayerName
---   >     , uint32_t* pPropertyCount
---   >     , VkExtensionProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceExtensionProperties.html vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
-foreign import ccall safe "vkEnumerateInstanceExtensionProperties"
-               vkEnumerateInstanceExtensionPropertiesSafe ::
-               CString -- ^ pLayerName
-                       -> Ptr Word32 -- ^ pPropertyCount
-                                     -> Ptr VkExtensionProperties -- ^ pProperties
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
---
---   > VkResult vkEnumerateDeviceExtensionProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const char* pLayerName
---   >     , uint32_t* pPropertyCount
---   >     , VkExtensionProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateDeviceExtensionProperties.html vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumerateDeviceExtensionProperties"
-               vkEnumerateDeviceExtensionProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 CString -- ^ pLayerName
-                         -> Ptr Word32 -- ^ pPropertyCount
-                                       -> Ptr VkExtensionProperties -- ^ pProperties
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
---
---   > VkResult vkEnumerateDeviceExtensionProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const char* pLayerName
---   >     , uint32_t* pPropertyCount
---   >     , VkExtensionProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateDeviceExtensionProperties.html vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
-foreign import ccall safe "vkEnumerateDeviceExtensionProperties"
-               vkEnumerateDeviceExtensionPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 CString -- ^ pLayerName
-                         -> Ptr Word32 -- ^ pPropertyCount
-                                       -> Ptr VkExtensionProperties -- ^ pProperties
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEnumerateInstanceLayerProperties
---   >     ( uint32_t* pPropertyCount
---   >     , VkLayerProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceLayerProperties.html vkEnumerateInstanceLayerProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumerateInstanceLayerProperties"
-               vkEnumerateInstanceLayerProperties ::
-               Ptr Word32 -- ^ pPropertyCount
-                          -> Ptr VkLayerProperties -- ^ pProperties
-                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEnumerateInstanceLayerProperties
---   >     ( uint32_t* pPropertyCount
---   >     , VkLayerProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceLayerProperties.html vkEnumerateInstanceLayerProperties registry at www.khronos.org>
-foreign import ccall safe "vkEnumerateInstanceLayerProperties"
-               vkEnumerateInstanceLayerPropertiesSafe ::
-               Ptr Word32 -- ^ pPropertyCount
-                          -> Ptr VkLayerProperties -- ^ pProperties
-                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEnumerateDeviceLayerProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkLayerProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateDeviceLayerProperties.html vkEnumerateDeviceLayerProperties registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumerateDeviceLayerProperties"
-               vkEnumerateDeviceLayerProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkLayerProperties -- ^ pProperties
-                                                     -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEnumerateDeviceLayerProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkLayerProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateDeviceLayerProperties.html vkEnumerateDeviceLayerProperties registry at www.khronos.org>
-foreign import ccall safe "vkEnumerateDeviceLayerProperties"
-               vkEnumerateDeviceLayerPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkLayerProperties -- ^ pProperties
-                                                     -> IO VkResult
-
--- | > () vkGetDeviceQueue
---   >     ( VkDevice device
---   >     , uint32_t queueFamilyIndex
---   >     , uint32_t queueIndex
---   >     , VkQueue* pQueue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceQueue.html vkGetDeviceQueue registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceQueue" vkGetDeviceQueue ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ queueFamilyIndex
-                                  -> Word32 -- ^ queueIndex
-                                            -> Ptr VkQueue -- ^ pQueue
-                                                           -> IO ()
-
--- | > () vkGetDeviceQueue
---   >     ( VkDevice device
---   >     , uint32_t queueFamilyIndex
---   >     , uint32_t queueIndex
---   >     , VkQueue* pQueue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceQueue.html vkGetDeviceQueue registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceQueue" vkGetDeviceQueueSafe
-               :: VkDevice -- ^ device
-                           -> Word32 -- ^ queueFamilyIndex
-                                     -> Word32 -- ^ queueIndex
-                                               -> Ptr VkQueue -- ^ pQueue
-                                                              -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkQueueSubmit
---   >     ( VkQueue queue
---   >     , uint32_t submitCount
---   >     , const VkSubmitInfo* pSubmits
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueSubmit.html vkQueueSubmit registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueSubmit" vkQueueSubmit ::
-               VkQueue -- ^ queue
-                       -> Word32 -- ^ submitCount
-                                 -> Ptr VkSubmitInfo -- ^ pSubmits
-                                                     -> VkFence -- ^ fence
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkQueueSubmit
---   >     ( VkQueue queue
---   >     , uint32_t submitCount
---   >     , const VkSubmitInfo* pSubmits
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueSubmit.html vkQueueSubmit registry at www.khronos.org>
-foreign import ccall safe "vkQueueSubmit" vkQueueSubmitSafe ::
-               VkQueue -- ^ queue
-                       -> Word32 -- ^ submitCount
-                                 -> Ptr VkSubmitInfo -- ^ pSubmits
-                                                     -> VkFence -- ^ fence
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkQueueWaitIdle
---   >     ( VkQueue queue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueWaitIdle.html vkQueueWaitIdle registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueWaitIdle" vkQueueWaitIdle ::
-               VkQueue -- ^ queue
-                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkQueueWaitIdle
---   >     ( VkQueue queue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueWaitIdle.html vkQueueWaitIdle registry at www.khronos.org>
-foreign import ccall safe "vkQueueWaitIdle" vkQueueWaitIdleSafe ::
-               VkQueue -- ^ queue
-                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkDeviceWaitIdle
---   >     ( VkDevice device
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDeviceWaitIdle.html vkDeviceWaitIdle registry at www.khronos.org>
-foreign import ccall unsafe "vkDeviceWaitIdle" vkDeviceWaitIdle ::
-               VkDevice -- ^ device
-                        -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkDeviceWaitIdle
---   >     ( VkDevice device
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDeviceWaitIdle.html vkDeviceWaitIdle registry at www.khronos.org>
-foreign import ccall safe "vkDeviceWaitIdle" vkDeviceWaitIdleSafe
-               :: VkDevice -- ^ device
-                           -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkAllocateMemory
---   >     ( VkDevice device
---   >     , const VkMemoryAllocateInfo* pAllocateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDeviceMemory* pMemory
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateMemory.html vkAllocateMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkAllocateMemory" vkAllocateMemory ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
-                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDeviceMemory -- ^ pMemory
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkAllocateMemory
---   >     ( VkDevice device
---   >     , const VkMemoryAllocateInfo* pAllocateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDeviceMemory* pMemory
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateMemory.html vkAllocateMemory registry at www.khronos.org>
-foreign import ccall safe "vkAllocateMemory" vkAllocateMemorySafe
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
-                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDeviceMemory -- ^ pMemory
-                                                                   -> IO VkResult
-
--- | > () vkFreeMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeMemory.html vkFreeMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkFreeMemory" vkFreeMemory ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkFreeMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeMemory.html vkFreeMemory registry at www.khronos.org>
-foreign import ccall safe "vkFreeMemory" vkFreeMemorySafe ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
---
---   > VkResult vkMapMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize offset
---   >     , VkDeviceSize size
---   >     , VkMemoryMapFlags flags
---   >     , void** ppData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMapMemory.html vkMapMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkMapMemory" vkMapMemory ::
-               VkDevice -- ^ device
-                        ->
-                 VkDeviceMemory -- ^ memory
-                                ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkDeviceSize -- ^ size
-                                  -> VkMemoryMapFlags -- ^ flags
-                                                      -> Ptr (Ptr Void) -- ^ ppData
-                                                                        -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
---
---   > VkResult vkMapMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize offset
---   >     , VkDeviceSize size
---   >     , VkMemoryMapFlags flags
---   >     , void** ppData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMapMemory.html vkMapMemory registry at www.khronos.org>
-foreign import ccall safe "vkMapMemory" vkMapMemorySafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDeviceMemory -- ^ memory
-                                ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkDeviceSize -- ^ size
-                                  -> VkMemoryMapFlags -- ^ flags
-                                                      -> Ptr (Ptr Void) -- ^ ppData
-                                                                        -> IO VkResult
-
--- | > () vkUnmapMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUnmapMemory.html vkUnmapMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkUnmapMemory" vkUnmapMemory ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> IO ()
-
--- | > () vkUnmapMemory
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUnmapMemory.html vkUnmapMemory registry at www.khronos.org>
-foreign import ccall safe "vkUnmapMemory" vkUnmapMemorySafe ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkFlushMappedMemoryRanges
---   >     ( VkDevice device
---   >     , uint32_t memoryRangeCount
---   >     , const VkMappedMemoryRange* pMemoryRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFlushMappedMemoryRanges.html vkFlushMappedMemoryRanges registry at www.khronos.org>
-foreign import ccall unsafe "vkFlushMappedMemoryRanges"
-               vkFlushMappedMemoryRanges ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ memoryRangeCount
-                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkFlushMappedMemoryRanges
---   >     ( VkDevice device
---   >     , uint32_t memoryRangeCount
---   >     , const VkMappedMemoryRange* pMemoryRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFlushMappedMemoryRanges.html vkFlushMappedMemoryRanges registry at www.khronos.org>
-foreign import ccall safe "vkFlushMappedMemoryRanges"
-               vkFlushMappedMemoryRangesSafe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ memoryRangeCount
-                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkInvalidateMappedMemoryRanges
---   >     ( VkDevice device
---   >     , uint32_t memoryRangeCount
---   >     , const VkMappedMemoryRange* pMemoryRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkInvalidateMappedMemoryRanges.html vkInvalidateMappedMemoryRanges registry at www.khronos.org>
-foreign import ccall unsafe "vkInvalidateMappedMemoryRanges"
-               vkInvalidateMappedMemoryRanges ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ memoryRangeCount
-                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkInvalidateMappedMemoryRanges
---   >     ( VkDevice device
---   >     , uint32_t memoryRangeCount
---   >     , const VkMappedMemoryRange* pMemoryRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkInvalidateMappedMemoryRanges.html vkInvalidateMappedMemoryRanges registry at www.khronos.org>
-foreign import ccall safe "vkInvalidateMappedMemoryRanges"
-               vkInvalidateMappedMemoryRangesSafe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ memoryRangeCount
-                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
-                                                             -> IO VkResult
-
--- | > () vkGetDeviceMemoryCommitment
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize* pCommittedMemoryInBytes
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceMemoryCommitment.html vkGetDeviceMemoryCommitment registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceMemoryCommitment"
-               vkGetDeviceMemoryCommitment ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
-                                                              -> IO ()
-
--- | > () vkGetDeviceMemoryCommitment
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize* pCommittedMemoryInBytes
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceMemoryCommitment.html vkGetDeviceMemoryCommitment registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceMemoryCommitment"
-               vkGetDeviceMemoryCommitmentSafe ::
-               VkDevice -- ^ device
-                        -> VkDeviceMemory -- ^ memory
-                                          -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
-                                                              -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindBufferMemory
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize memoryOffset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory.html vkBindBufferMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkBindBufferMemory" vkBindBufferMemory
-               ::
-               VkDevice -- ^ device
-                        ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceMemory -- ^ memory
-                                            -> VkDeviceSize -- ^ memoryOffset
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindBufferMemory
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize memoryOffset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory.html vkBindBufferMemory registry at www.khronos.org>
-foreign import ccall safe "vkBindBufferMemory"
-               vkBindBufferMemorySafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceMemory -- ^ memory
-                                            -> VkDeviceSize -- ^ memoryOffset
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindImageMemory
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize memoryOffset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory.html vkBindImageMemory registry at www.khronos.org>
-foreign import ccall unsafe "vkBindImageMemory" vkBindImageMemory
-               ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         -> VkDeviceMemory -- ^ memory
-                                           -> VkDeviceSize -- ^ memoryOffset
-                                                           -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindImageMemory
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , VkDeviceMemory memory
---   >     , VkDeviceSize memoryOffset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory.html vkBindImageMemory registry at www.khronos.org>
-foreign import ccall safe "vkBindImageMemory" vkBindImageMemorySafe
-               ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         -> VkDeviceMemory -- ^ memory
-                                           -> VkDeviceSize -- ^ memoryOffset
-                                                           -> IO VkResult
-
--- | > () vkGetBufferMemoryRequirements
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , VkMemoryRequirements* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements.html vkGetBufferMemoryRequirements registry at www.khronos.org>
-foreign import ccall unsafe "vkGetBufferMemoryRequirements"
-               vkGetBufferMemoryRequirements ::
-               VkDevice -- ^ device
-                        -> VkBuffer -- ^ buffer
-                                    -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
-                                                                -> IO ()
-
--- | > () vkGetBufferMemoryRequirements
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , VkMemoryRequirements* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements.html vkGetBufferMemoryRequirements registry at www.khronos.org>
-foreign import ccall safe "vkGetBufferMemoryRequirements"
-               vkGetBufferMemoryRequirementsSafe ::
-               VkDevice -- ^ device
-                        -> VkBuffer -- ^ buffer
-                                    -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
-                                                                -> IO ()
-
--- | > () vkGetImageMemoryRequirements
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , VkMemoryRequirements* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements.html vkGetImageMemoryRequirements registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageMemoryRequirements"
-               vkGetImageMemoryRequirements ::
-               VkDevice -- ^ device
-                        -> VkImage -- ^ image
-                                   -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
-                                                               -> IO ()
-
--- | > () vkGetImageMemoryRequirements
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , VkMemoryRequirements* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements.html vkGetImageMemoryRequirements registry at www.khronos.org>
-foreign import ccall safe "vkGetImageMemoryRequirements"
-               vkGetImageMemoryRequirementsSafe ::
-               VkDevice -- ^ device
-                        -> VkImage -- ^ image
-                                   -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
-                                                               -> IO ()
-
--- | > () vkGetImageSparseMemoryRequirements
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , uint32_t* pSparseMemoryRequirementCount
---   >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements.html vkGetImageSparseMemoryRequirements registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageSparseMemoryRequirements"
-               vkGetImageSparseMemoryRequirements ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
-                                                                     -> IO ()
-
--- | > () vkGetImageSparseMemoryRequirements
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , uint32_t* pSparseMemoryRequirementCount
---   >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements.html vkGetImageSparseMemoryRequirements registry at www.khronos.org>
-foreign import ccall safe "vkGetImageSparseMemoryRequirements"
-               vkGetImageSparseMemoryRequirementsSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
-                                                                     -> IO ()
-
--- | > () vkGetPhysicalDeviceSparseImageFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkImageType type
---   >     , VkSampleCountFlagBits samples
---   >     , VkImageUsageFlags usage
---   >     , VkImageTiling tiling
---   >     , uint32_t* pPropertyCount
---   >     , VkSparseImageFormatProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceSparseImageFormatProperties"
-               vkGetPhysicalDeviceSparseImageFormatProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
-                               ->
-                     VkSampleCountFlagBits -- ^ samples
-                                           ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageTiling -- ^ tiling
-                                       ->
-                           Ptr Word32 -- ^ pPropertyCount
-                                      -> Ptr VkSparseImageFormatProperties -- ^ pProperties
-                                                                           -> IO ()
-
--- | > () vkGetPhysicalDeviceSparseImageFormatProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkImageType type
---   >     , VkSampleCountFlagBits samples
---   >     , VkImageUsageFlags usage
---   >     , VkImageTiling tiling
---   >     , uint32_t* pPropertyCount
---   >     , VkSparseImageFormatProperties* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceSparseImageFormatProperties"
-               vkGetPhysicalDeviceSparseImageFormatPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
-                               ->
-                     VkSampleCountFlagBits -- ^ samples
-                                           ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageTiling -- ^ tiling
-                                       ->
-                           Ptr Word32 -- ^ pPropertyCount
-                                      -> Ptr VkSparseImageFormatProperties -- ^ pProperties
-                                                                           -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   queues: 'sparse_binding'.
---
---   > VkResult vkQueueBindSparse
---   >     ( VkQueue queue
---   >     , uint32_t bindInfoCount
---   >     , const VkBindSparseInfo* pBindInfo
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueBindSparse.html vkQueueBindSparse registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueBindSparse" vkQueueBindSparse
-               ::
-               VkQueue -- ^ queue
-                       -> Word32 -- ^ bindInfoCount
-                                 -> Ptr VkBindSparseInfo -- ^ pBindInfo
-                                                         -> VkFence -- ^ fence
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   queues: 'sparse_binding'.
---
---   > VkResult vkQueueBindSparse
---   >     ( VkQueue queue
---   >     , uint32_t bindInfoCount
---   >     , const VkBindSparseInfo* pBindInfo
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueBindSparse.html vkQueueBindSparse registry at www.khronos.org>
-foreign import ccall safe "vkQueueBindSparse" vkQueueBindSparseSafe
-               ::
-               VkQueue -- ^ queue
-                       -> Word32 -- ^ bindInfoCount
-                                 -> Ptr VkBindSparseInfo -- ^ pBindInfo
-                                                         -> VkFence -- ^ fence
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateFence
---   >     ( VkDevice device
---   >     , const VkFenceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFence* pFence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateFence.html vkCreateFence registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateFence" vkCreateFence ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFenceCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFence -- ^ pFence
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateFence
---   >     ( VkDevice device
---   >     , const VkFenceCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFence* pFence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateFence.html vkCreateFence registry at www.khronos.org>
-foreign import ccall safe "vkCreateFence" vkCreateFenceSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFenceCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFence -- ^ pFence
-                                                            -> IO VkResult
-
--- | > () vkDestroyFence
---   >     ( VkDevice device
---   >     , VkFence fence
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyFence.html vkDestroyFence registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyFence" vkDestroyFence ::
-               VkDevice -- ^ device
-                        -> VkFence -- ^ fence
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | > () vkDestroyFence
---   >     ( VkDevice device
---   >     , VkFence fence
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyFence.html vkDestroyFence registry at www.khronos.org>
-foreign import ccall safe "vkDestroyFence" vkDestroyFenceSafe ::
-               VkDevice -- ^ device
-                        -> VkFence -- ^ fence
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetFences
---   >     ( VkDevice device
---   >     , uint32_t fenceCount
---   >     , const VkFence* pFences
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetFences.html vkResetFences registry at www.khronos.org>
-foreign import ccall unsafe "vkResetFences" vkResetFences ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ fenceCount
-                                  -> Ptr VkFence -- ^ pFences
-                                                 -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetFences
---   >     ( VkDevice device
---   >     , uint32_t fenceCount
---   >     , const VkFence* pFences
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetFences.html vkResetFences registry at www.khronos.org>
-foreign import ccall safe "vkResetFences" vkResetFencesSafe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ fenceCount
-                                  -> Ptr VkFence -- ^ pFences
-                                                 -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetFenceStatus
---   >     ( VkDevice device
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceStatus.html vkGetFenceStatus registry at www.khronos.org>
-foreign import ccall unsafe "vkGetFenceStatus" vkGetFenceStatus ::
-               VkDevice -- ^ device
-                        -> VkFence -- ^ fence
-                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetFenceStatus
---   >     ( VkDevice device
---   >     , VkFence fence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceStatus.html vkGetFenceStatus registry at www.khronos.org>
-foreign import ccall safe "vkGetFenceStatus" vkGetFenceStatusSafe
-               :: VkDevice -- ^ device
-                           -> VkFence -- ^ fence
-                                      -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkWaitForFences
---   >     ( VkDevice device
---   >     , uint32_t fenceCount
---   >     , const VkFence* pFences
---   >     , VkBool32 waitAll
---   >     , uint64_t timeout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkWaitForFences.html vkWaitForFences registry at www.khronos.org>
-foreign import ccall unsafe "vkWaitForFences" vkWaitForFences ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ fenceCount
-                        -> Ptr VkFence -- ^ pFences
-                                       -> VkBool32 -- ^ waitAll
-                                                   -> Word64 -- ^ timeout
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkWaitForFences
---   >     ( VkDevice device
---   >     , uint32_t fenceCount
---   >     , const VkFence* pFences
---   >     , VkBool32 waitAll
---   >     , uint64_t timeout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkWaitForFences.html vkWaitForFences registry at www.khronos.org>
-foreign import ccall safe "vkWaitForFences" vkWaitForFencesSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ fenceCount
-                        -> Ptr VkFence -- ^ pFences
-                                       -> VkBool32 -- ^ waitAll
-                                                   -> Word64 -- ^ timeout
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateSemaphore
---   >     ( VkDevice device
---   >     , const VkSemaphoreCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSemaphore* pSemaphore
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSemaphore.html vkCreateSemaphore registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateSemaphore" vkCreateSemaphore
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSemaphore -- ^ pSemaphore
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateSemaphore
---   >     ( VkDevice device
---   >     , const VkSemaphoreCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSemaphore* pSemaphore
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSemaphore.html vkCreateSemaphore registry at www.khronos.org>
-foreign import ccall safe "vkCreateSemaphore" vkCreateSemaphoreSafe
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSemaphore -- ^ pSemaphore
-                                                                -> IO VkResult
-
--- | > () vkDestroySemaphore
---   >     ( VkDevice device
---   >     , VkSemaphore semaphore
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySemaphore.html vkDestroySemaphore registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroySemaphore" vkDestroySemaphore
-               :: VkDevice -- ^ device
-                           -> VkSemaphore -- ^ semaphore
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroySemaphore
---   >     ( VkDevice device
---   >     , VkSemaphore semaphore
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySemaphore.html vkDestroySemaphore registry at www.khronos.org>
-foreign import ccall safe "vkDestroySemaphore"
-               vkDestroySemaphoreSafe ::
-               VkDevice -- ^ device
-                        -> VkSemaphore -- ^ semaphore
-                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                    -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateEvent
---   >     ( VkDevice device
---   >     , const VkEventCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkEvent* pEvent
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateEvent.html vkCreateEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateEvent" vkCreateEvent ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkEventCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkEvent -- ^ pEvent
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateEvent
---   >     ( VkDevice device
---   >     , const VkEventCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkEvent* pEvent
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateEvent.html vkCreateEvent registry at www.khronos.org>
-foreign import ccall safe "vkCreateEvent" vkCreateEventSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkEventCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkEvent -- ^ pEvent
-                                                            -> IO VkResult
-
--- | > () vkDestroyEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyEvent.html vkDestroyEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyEvent" vkDestroyEvent ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | > () vkDestroyEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyEvent.html vkDestroyEvent registry at www.khronos.org>
-foreign import ccall safe "vkDestroyEvent" vkDestroyEventSafe ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetEventStatus
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetEventStatus.html vkGetEventStatus registry at www.khronos.org>
-foreign import ccall unsafe "vkGetEventStatus" vkGetEventStatus ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> IO VkResult
-
--- | Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetEventStatus
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetEventStatus.html vkGetEventStatus registry at www.khronos.org>
-foreign import ccall safe "vkGetEventStatus" vkGetEventStatusSafe
-               :: VkDevice -- ^ device
-                           -> VkEvent -- ^ event
-                                      -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkSetEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetEvent.html vkSetEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkSetEvent" vkSetEvent ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkSetEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetEvent.html vkSetEvent registry at www.khronos.org>
-foreign import ccall safe "vkSetEvent" vkSetEventSafe ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetEvent.html vkResetEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkResetEvent" vkResetEvent ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetEvent
---   >     ( VkDevice device
---   >     , VkEvent event
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetEvent.html vkResetEvent registry at www.khronos.org>
-foreign import ccall safe "vkResetEvent" vkResetEventSafe ::
-               VkDevice -- ^ device
-                        -> VkEvent -- ^ event
-                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateQueryPool
---   >     ( VkDevice device
---   >     , const VkQueryPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkQueryPool* pQueryPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateQueryPool.html vkCreateQueryPool registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateQueryPool" vkCreateQueryPool
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkQueryPool -- ^ pQueryPool
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateQueryPool
---   >     ( VkDevice device
---   >     , const VkQueryPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkQueryPool* pQueryPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateQueryPool.html vkCreateQueryPool registry at www.khronos.org>
-foreign import ccall safe "vkCreateQueryPool" vkCreateQueryPoolSafe
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkQueryPool -- ^ pQueryPool
-                                                                -> IO VkResult
-
--- | > () vkDestroyQueryPool
---   >     ( VkDevice device
---   >     , VkQueryPool queryPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyQueryPool.html vkDestroyQueryPool registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyQueryPool" vkDestroyQueryPool
-               :: VkDevice -- ^ device
-                           -> VkQueryPool -- ^ queryPool
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroyQueryPool
---   >     ( VkDevice device
---   >     , VkQueryPool queryPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyQueryPool.html vkDestroyQueryPool registry at www.khronos.org>
-foreign import ccall safe "vkDestroyQueryPool"
-               vkDestroyQueryPoolSafe ::
-               VkDevice -- ^ device
-                        -> VkQueryPool -- ^ queryPool
-                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                    -> IO ()
-
--- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetQueryPoolResults
---   >     ( VkDevice device
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     , size_t dataSize
---   >     , void* pData
---   >     , VkDeviceSize stride
---   >     , VkQueryResultFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetQueryPoolResults.html vkGetQueryPoolResults registry at www.khronos.org>
-foreign import ccall unsafe "vkGetQueryPoolResults"
-               vkGetQueryPoolResults ::
-               VkDevice -- ^ device
-                        ->
-                 VkQueryPool -- ^ queryPool
-                             ->
-                   Word32 -- ^ firstQuery
-                          ->
-                     Word32 -- ^ queryCount
-                            ->
-                       CSize -- ^ dataSize
-                             ->
-                         Ptr Void -- ^ pData
-                                  -> VkDeviceSize -- ^ stride
-                                                  -> VkQueryResultFlags -- ^ flags
-                                                                        -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
---
---   > VkResult vkGetQueryPoolResults
---   >     ( VkDevice device
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     , size_t dataSize
---   >     , void* pData
---   >     , VkDeviceSize stride
---   >     , VkQueryResultFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetQueryPoolResults.html vkGetQueryPoolResults registry at www.khronos.org>
-foreign import ccall safe "vkGetQueryPoolResults"
-               vkGetQueryPoolResultsSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkQueryPool -- ^ queryPool
-                             ->
-                   Word32 -- ^ firstQuery
-                          ->
-                     Word32 -- ^ queryCount
-                            ->
-                       CSize -- ^ dataSize
-                             ->
-                         Ptr Void -- ^ pData
-                                  -> VkDeviceSize -- ^ stride
-                                                  -> VkQueryResultFlags -- ^ flags
-                                                                        -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateBuffer
---   >     ( VkDevice device
---   >     , const VkBufferCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkBuffer* pBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateBuffer.html vkCreateBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateBuffer" vkCreateBuffer ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferCreateInfo -- ^ pCreateInfo
-                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkBuffer -- ^ pBuffer
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateBuffer
---   >     ( VkDevice device
---   >     , const VkBufferCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkBuffer* pBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateBuffer.html vkCreateBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCreateBuffer" vkCreateBufferSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferCreateInfo -- ^ pCreateInfo
-                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkBuffer -- ^ pBuffer
-                                                             -> IO VkResult
-
--- | > () vkDestroyBuffer
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyBuffer.html vkDestroyBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyBuffer" vkDestroyBuffer ::
-               VkDevice -- ^ device
-                        -> VkBuffer -- ^ buffer
-                                    -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                 -> IO ()
-
--- | > () vkDestroyBuffer
---   >     ( VkDevice device
---   >     , VkBuffer buffer
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyBuffer.html vkDestroyBuffer registry at www.khronos.org>
-foreign import ccall safe "vkDestroyBuffer" vkDestroyBufferSafe ::
-               VkDevice -- ^ device
-                        -> VkBuffer -- ^ buffer
-                                    -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                 -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateBufferView
---   >     ( VkDevice device
---   >     , const VkBufferViewCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkBufferView* pView
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateBufferView.html vkCreateBufferView registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateBufferView" vkCreateBufferView
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
-                                            ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkBufferView -- ^ pView
-                                                                 -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateBufferView
---   >     ( VkDevice device
---   >     , const VkBufferViewCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkBufferView* pView
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateBufferView.html vkCreateBufferView registry at www.khronos.org>
-foreign import ccall safe "vkCreateBufferView"
-               vkCreateBufferViewSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
-                                            ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkBufferView -- ^ pView
-                                                                 -> IO VkResult
-
--- | > () vkDestroyBufferView
---   >     ( VkDevice device
---   >     , VkBufferView bufferView
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyBufferView.html vkDestroyBufferView registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyBufferView"
-               vkDestroyBufferView ::
-               VkDevice -- ^ device
-                        -> VkBufferView -- ^ bufferView
-                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                     -> IO ()
-
--- | > () vkDestroyBufferView
---   >     ( VkDevice device
---   >     , VkBufferView bufferView
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyBufferView.html vkDestroyBufferView registry at www.khronos.org>
-foreign import ccall safe "vkDestroyBufferView"
-               vkDestroyBufferViewSafe ::
-               VkDevice -- ^ device
-                        -> VkBufferView -- ^ bufferView
-                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                     -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateImage
---   >     ( VkDevice device
---   >     , const VkImageCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkImage* pImage
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateImage.html vkCreateImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateImage" vkCreateImage ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkImage -- ^ pImage
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateImage
---   >     ( VkDevice device
---   >     , const VkImageCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkImage* pImage
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateImage.html vkCreateImage registry at www.khronos.org>
-foreign import ccall safe "vkCreateImage" vkCreateImageSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageCreateInfo -- ^ pCreateInfo
-                                       ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkImage -- ^ pImage
-                                                            -> IO VkResult
-
--- | > () vkDestroyImage
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyImage.html vkDestroyImage registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyImage" vkDestroyImage ::
-               VkDevice -- ^ device
-                        -> VkImage -- ^ image
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | > () vkDestroyImage
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyImage.html vkDestroyImage registry at www.khronos.org>
-foreign import ccall safe "vkDestroyImage" vkDestroyImageSafe ::
-               VkDevice -- ^ device
-                        -> VkImage -- ^ image
-                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                -> IO ()
-
--- | > () vkGetImageSubresourceLayout
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , const VkImageSubresource* pSubresource
---   >     , VkSubresourceLayout* pLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSubresourceLayout.html vkGetImageSubresourceLayout registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageSubresourceLayout"
-               vkGetImageSubresourceLayout ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         ->
-                   Ptr VkImageSubresource -- ^ pSubresource
-                                          -> Ptr VkSubresourceLayout -- ^ pLayout
-                                                                     -> IO ()
-
--- | > () vkGetImageSubresourceLayout
---   >     ( VkDevice device
---   >     , VkImage image
---   >     , const VkImageSubresource* pSubresource
---   >     , VkSubresourceLayout* pLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSubresourceLayout.html vkGetImageSubresourceLayout registry at www.khronos.org>
-foreign import ccall safe "vkGetImageSubresourceLayout"
-               vkGetImageSubresourceLayoutSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkImage -- ^ image
-                         ->
-                   Ptr VkImageSubresource -- ^ pSubresource
-                                          -> Ptr VkSubresourceLayout -- ^ pLayout
-                                                                     -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateImageView
---   >     ( VkDevice device
---   >     , const VkImageViewCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkImageView* pView
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateImageView.html vkCreateImageView registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateImageView" vkCreateImageView
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageViewCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkImageView -- ^ pView
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateImageView
---   >     ( VkDevice device
---   >     , const VkImageViewCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkImageView* pView
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateImageView.html vkCreateImageView registry at www.khronos.org>
-foreign import ccall safe "vkCreateImageView" vkCreateImageViewSafe
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageViewCreateInfo -- ^ pCreateInfo
-                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkImageView -- ^ pView
-                                                                -> IO VkResult
-
--- | > () vkDestroyImageView
---   >     ( VkDevice device
---   >     , VkImageView imageView
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyImageView.html vkDestroyImageView registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyImageView" vkDestroyImageView
-               :: VkDevice -- ^ device
-                           -> VkImageView -- ^ imageView
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroyImageView
---   >     ( VkDevice device
---   >     , VkImageView imageView
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyImageView.html vkDestroyImageView registry at www.khronos.org>
-foreign import ccall safe "vkDestroyImageView"
-               vkDestroyImageViewSafe ::
-               VkDevice -- ^ device
-                        -> VkImageView -- ^ imageView
-                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                    -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateShaderModule
---   >     ( VkDevice device
---   >     , const VkShaderModuleCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkShaderModule* pShaderModule
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateShaderModule.html vkCreateShaderModule registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateShaderModule"
-               vkCreateShaderModule ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
-                                              ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkShaderModule -- ^ pShaderModule
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateShaderModule
---   >     ( VkDevice device
---   >     , const VkShaderModuleCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkShaderModule* pShaderModule
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateShaderModule.html vkCreateShaderModule registry at www.khronos.org>
-foreign import ccall safe "vkCreateShaderModule"
-               vkCreateShaderModuleSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
-                                              ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkShaderModule -- ^ pShaderModule
-                                                                   -> IO VkResult
-
--- | > () vkDestroyShaderModule
---   >     ( VkDevice device
---   >     , VkShaderModule shaderModule
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyShaderModule.html vkDestroyShaderModule registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyShaderModule"
-               vkDestroyShaderModule ::
-               VkDevice -- ^ device
-                        -> VkShaderModule -- ^ shaderModule
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroyShaderModule
---   >     ( VkDevice device
---   >     , VkShaderModule shaderModule
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyShaderModule.html vkDestroyShaderModule registry at www.khronos.org>
-foreign import ccall safe "vkDestroyShaderModule"
-               vkDestroyShaderModuleSafe ::
-               VkDevice -- ^ device
-                        -> VkShaderModule -- ^ shaderModule
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreatePipelineCache
---   >     ( VkDevice device
---   >     , const VkPipelineCacheCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipelineCache* pPipelineCache
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreatePipelineCache.html vkCreatePipelineCache registry at www.khronos.org>
-foreign import ccall unsafe "vkCreatePipelineCache"
-               vkCreatePipelineCache ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
-                                               ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkPipelineCache -- ^ pPipelineCache
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreatePipelineCache
---   >     ( VkDevice device
---   >     , const VkPipelineCacheCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipelineCache* pPipelineCache
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreatePipelineCache.html vkCreatePipelineCache registry at www.khronos.org>
-foreign import ccall safe "vkCreatePipelineCache"
-               vkCreatePipelineCacheSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
-                                               ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkPipelineCache -- ^ pPipelineCache
-                                                                    -> IO VkResult
-
--- | > () vkDestroyPipelineCache
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipelineCache.html vkDestroyPipelineCache registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyPipelineCache"
-               vkDestroyPipelineCache ::
-               VkDevice -- ^ device
-                        -> VkPipelineCache -- ^ pipelineCache
-                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                        -> IO ()
-
--- | > () vkDestroyPipelineCache
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipelineCache.html vkDestroyPipelineCache registry at www.khronos.org>
-foreign import ccall safe "vkDestroyPipelineCache"
-               vkDestroyPipelineCacheSafe ::
-               VkDevice -- ^ device
-                        -> VkPipelineCache -- ^ pipelineCache
-                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                        -> IO ()
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPipelineCacheData
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , size_t* pDataSize
---   >     , void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPipelineCacheData.html vkGetPipelineCacheData registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPipelineCacheData"
-               vkGetPipelineCacheData ::
-               VkDevice -- ^ device
-                        -> VkPipelineCache -- ^ pipelineCache
-                                           -> Ptr CSize -- ^ pDataSize
-                                                        -> Ptr Void -- ^ pData
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPipelineCacheData
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , size_t* pDataSize
---   >     , void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPipelineCacheData.html vkGetPipelineCacheData registry at www.khronos.org>
-foreign import ccall safe "vkGetPipelineCacheData"
-               vkGetPipelineCacheDataSafe ::
-               VkDevice -- ^ device
-                        -> VkPipelineCache -- ^ pipelineCache
-                                           -> Ptr CSize -- ^ pDataSize
-                                                        -> Ptr Void -- ^ pData
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkMergePipelineCaches
---   >     ( VkDevice device
---   >     , VkPipelineCache dstCache
---   >     , uint32_t srcCacheCount
---   >     , const VkPipelineCache* pSrcCaches
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMergePipelineCaches.html vkMergePipelineCaches registry at www.khronos.org>
-foreign import ccall unsafe "vkMergePipelineCaches"
-               vkMergePipelineCaches ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ dstCache
-                                 -> Word32 -- ^ srcCacheCount
-                                           -> Ptr VkPipelineCache -- ^ pSrcCaches
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkMergePipelineCaches
---   >     ( VkDevice device
---   >     , VkPipelineCache dstCache
---   >     , uint32_t srcCacheCount
---   >     , const VkPipelineCache* pSrcCaches
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMergePipelineCaches.html vkMergePipelineCaches registry at www.khronos.org>
-foreign import ccall safe "vkMergePipelineCaches"
-               vkMergePipelineCachesSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ dstCache
-                                 -> Word32 -- ^ srcCacheCount
-                                           -> Ptr VkPipelineCache -- ^ pSrcCaches
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateGraphicsPipelines
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , uint32_t createInfoCount
---   >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipeline* pPipelines
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateGraphicsPipelines.html vkCreateGraphicsPipelines registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateGraphicsPipelines"
-               vkCreateGraphicsPipelines ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ pipelineCache
-                                 ->
-                   Word32 -- ^ createInfoCount
-                          ->
-                     Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
-                                                      ->
-                       Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                 -> Ptr VkPipeline -- ^ pPipelines
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateGraphicsPipelines
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , uint32_t createInfoCount
---   >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipeline* pPipelines
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateGraphicsPipelines.html vkCreateGraphicsPipelines registry at www.khronos.org>
-foreign import ccall safe "vkCreateGraphicsPipelines"
-               vkCreateGraphicsPipelinesSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ pipelineCache
-                                 ->
-                   Word32 -- ^ createInfoCount
-                          ->
-                     Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
-                                                      ->
-                       Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                 -> Ptr VkPipeline -- ^ pPipelines
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateComputePipelines
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , uint32_t createInfoCount
---   >     , const VkComputePipelineCreateInfo* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipeline* pPipelines
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateComputePipelines.html vkCreateComputePipelines registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateComputePipelines"
-               vkCreateComputePipelines ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ pipelineCache
-                                 ->
-                   Word32 -- ^ createInfoCount
-                          ->
-                     Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
-                                                     ->
-                       Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                 -> Ptr VkPipeline -- ^ pPipelines
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
---
---   > VkResult vkCreateComputePipelines
---   >     ( VkDevice device
---   >     , VkPipelineCache pipelineCache
---   >     , uint32_t createInfoCount
---   >     , const VkComputePipelineCreateInfo* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipeline* pPipelines
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateComputePipelines.html vkCreateComputePipelines registry at www.khronos.org>
-foreign import ccall safe "vkCreateComputePipelines"
-               vkCreateComputePipelinesSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipelineCache -- ^ pipelineCache
-                                 ->
-                   Word32 -- ^ createInfoCount
-                          ->
-                     Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
-                                                     ->
-                       Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                 -> Ptr VkPipeline -- ^ pPipelines
-                                                                   -> IO VkResult
-
--- | > () vkDestroyPipeline
---   >     ( VkDevice device
---   >     , VkPipeline pipeline
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipeline.html vkDestroyPipeline registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyPipeline" vkDestroyPipeline
-               :: VkDevice -- ^ device
-                           -> VkPipeline -- ^ pipeline
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | > () vkDestroyPipeline
---   >     ( VkDevice device
---   >     , VkPipeline pipeline
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipeline.html vkDestroyPipeline registry at www.khronos.org>
-foreign import ccall safe "vkDestroyPipeline" vkDestroyPipelineSafe
-               :: VkDevice -- ^ device
-                           -> VkPipeline -- ^ pipeline
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreatePipelineLayout
---   >     ( VkDevice device
---   >     , const VkPipelineLayoutCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipelineLayout* pPipelineLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreatePipelineLayout.html vkCreatePipelineLayout registry at www.khronos.org>
-foreign import ccall unsafe "vkCreatePipelineLayout"
-               vkCreatePipelineLayout ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkPipelineLayout -- ^ pPipelineLayout
-                                                                     -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreatePipelineLayout
---   >     ( VkDevice device
---   >     , const VkPipelineLayoutCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkPipelineLayout* pPipelineLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreatePipelineLayout.html vkCreatePipelineLayout registry at www.khronos.org>
-foreign import ccall safe "vkCreatePipelineLayout"
-               vkCreatePipelineLayoutSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkPipelineLayout -- ^ pPipelineLayout
-                                                                     -> IO VkResult
-
--- | > () vkDestroyPipelineLayout
---   >     ( VkDevice device
---   >     , VkPipelineLayout pipelineLayout
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipelineLayout.html vkDestroyPipelineLayout registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyPipelineLayout"
-               vkDestroyPipelineLayout ::
-               VkDevice -- ^ device
-                        -> VkPipelineLayout -- ^ pipelineLayout
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | > () vkDestroyPipelineLayout
---   >     ( VkDevice device
---   >     , VkPipelineLayout pipelineLayout
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyPipelineLayout.html vkDestroyPipelineLayout registry at www.khronos.org>
-foreign import ccall safe "vkDestroyPipelineLayout"
-               vkDestroyPipelineLayoutSafe ::
-               VkDevice -- ^ device
-                        -> VkPipelineLayout -- ^ pipelineLayout
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
---
---   > VkResult vkCreateSampler
---   >     ( VkDevice device
---   >     , const VkSamplerCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSampler* pSampler
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSampler.html vkCreateSampler registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateSampler" vkCreateSampler ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerCreateInfo -- ^ pCreateInfo
-                                         ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSampler -- ^ pSampler
-                                                              -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
---
---   > VkResult vkCreateSampler
---   >     ( VkDevice device
---   >     , const VkSamplerCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSampler* pSampler
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSampler.html vkCreateSampler registry at www.khronos.org>
-foreign import ccall safe "vkCreateSampler" vkCreateSamplerSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerCreateInfo -- ^ pCreateInfo
-                                         ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSampler -- ^ pSampler
-                                                              -> IO VkResult
-
--- | > () vkDestroySampler
---   >     ( VkDevice device
---   >     , VkSampler sampler
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySampler.html vkDestroySampler registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroySampler" vkDestroySampler ::
-               VkDevice -- ^ device
-                        -> VkSampler -- ^ sampler
-                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                  -> IO ()
-
--- | > () vkDestroySampler
---   >     ( VkDevice device
---   >     , VkSampler sampler
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySampler.html vkDestroySampler registry at www.khronos.org>
-foreign import ccall safe "vkDestroySampler" vkDestroySamplerSafe
-               :: VkDevice -- ^ device
-                           -> VkSampler -- ^ sampler
-                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                     -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorSetLayout
---   >     ( VkDevice device
---   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorSetLayout* pSetLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorSetLayout.html vkCreateDescriptorSetLayout registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDescriptorSetLayout"
-               vkCreateDescriptorSetLayout ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorSetLayout -- ^ pSetLayout
-                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorSetLayout
---   >     ( VkDevice device
---   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorSetLayout* pSetLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorSetLayout.html vkCreateDescriptorSetLayout registry at www.khronos.org>
-foreign import ccall safe "vkCreateDescriptorSetLayout"
-               vkCreateDescriptorSetLayoutSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorSetLayout -- ^ pSetLayout
-                                               -> IO VkResult
-
--- | > () vkDestroyDescriptorSetLayout
---   >     ( VkDevice device
---   >     , VkDescriptorSetLayout descriptorSetLayout
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorSetLayout.html vkDestroyDescriptorSetLayout registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDescriptorSetLayout"
-               vkDestroyDescriptorSetLayout ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSetLayout -- ^ descriptorSetLayout
-                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                    -> IO ()
-
--- | > () vkDestroyDescriptorSetLayout
---   >     ( VkDevice device
---   >     , VkDescriptorSetLayout descriptorSetLayout
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorSetLayout.html vkDestroyDescriptorSetLayout registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDescriptorSetLayout"
-               vkDestroyDescriptorSetLayoutSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSetLayout -- ^ descriptorSetLayout
-                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                    -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorPool
---   >     ( VkDevice device
---   >     , const VkDescriptorPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorPool* pDescriptorPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorPool.html vkCreateDescriptorPool registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDescriptorPool"
-               vkCreateDescriptorPool ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDescriptorPool -- ^ pDescriptorPool
-                                                                     -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorPool
---   >     ( VkDevice device
---   >     , const VkDescriptorPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorPool* pDescriptorPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorPool.html vkCreateDescriptorPool registry at www.khronos.org>
-foreign import ccall safe "vkCreateDescriptorPool"
-               vkCreateDescriptorPoolSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkDescriptorPool -- ^ pDescriptorPool
-                                                                     -> IO VkResult
-
--- | > () vkDestroyDescriptorPool
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorPool.html vkDestroyDescriptorPool registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDescriptorPool"
-               vkDestroyDescriptorPool ::
-               VkDevice -- ^ device
-                        -> VkDescriptorPool -- ^ descriptorPool
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | > () vkDestroyDescriptorPool
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorPool.html vkDestroyDescriptorPool registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDescriptorPool"
-               vkDestroyDescriptorPoolSafe ::
-               VkDevice -- ^ device
-                        -> VkDescriptorPool -- ^ descriptorPool
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetDescriptorPool
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , VkDescriptorPoolResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetDescriptorPool.html vkResetDescriptorPool registry at www.khronos.org>
-foreign import ccall unsafe "vkResetDescriptorPool"
-               vkResetDescriptorPool ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorPool -- ^ descriptorPool
-                                  -> VkDescriptorPoolResetFlags -- ^ flags
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetDescriptorPool
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , VkDescriptorPoolResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetDescriptorPool.html vkResetDescriptorPool registry at www.khronos.org>
-foreign import ccall safe "vkResetDescriptorPool"
-               vkResetDescriptorPoolSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorPool -- ^ descriptorPool
-                                  -> VkDescriptorPoolResetFlags -- ^ flags
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
---
---   > VkResult vkAllocateDescriptorSets
---   >     ( VkDevice device
---   >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
---   >     , VkDescriptorSet* pDescriptorSets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateDescriptorSets.html vkAllocateDescriptorSets registry at www.khronos.org>
-foreign import ccall unsafe "vkAllocateDescriptorSets"
-               vkAllocateDescriptorSets ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
-                                                 ->
-                   Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
---
---   > VkResult vkAllocateDescriptorSets
---   >     ( VkDevice device
---   >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
---   >     , VkDescriptorSet* pDescriptorSets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateDescriptorSets.html vkAllocateDescriptorSets registry at www.khronos.org>
-foreign import ccall safe "vkAllocateDescriptorSets"
-               vkAllocateDescriptorSetsSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
-                                                 ->
-                   Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkFreeDescriptorSets
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , uint32_t descriptorSetCount
---   >     , const VkDescriptorSet* pDescriptorSets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeDescriptorSets.html vkFreeDescriptorSets registry at www.khronos.org>
-foreign import ccall unsafe "vkFreeDescriptorSets"
-               vkFreeDescriptorSets ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorPool -- ^ descriptorPool
-                                  -> Word32 -- ^ descriptorSetCount
-                                            -> Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkFreeDescriptorSets
---   >     ( VkDevice device
---   >     , VkDescriptorPool descriptorPool
---   >     , uint32_t descriptorSetCount
---   >     , const VkDescriptorSet* pDescriptorSets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeDescriptorSets.html vkFreeDescriptorSets registry at www.khronos.org>
-foreign import ccall safe "vkFreeDescriptorSets"
-               vkFreeDescriptorSetsSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorPool -- ^ descriptorPool
-                                  -> Word32 -- ^ descriptorSetCount
-                                            -> Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                                                   -> IO VkResult
-
--- | > () vkUpdateDescriptorSets
---   >     ( VkDevice device
---   >     , uint32_t descriptorWriteCount
---   >     , const VkWriteDescriptorSet* pDescriptorWrites
---   >     , uint32_t descriptorCopyCount
---   >     , const VkCopyDescriptorSet* pDescriptorCopies
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSets.html vkUpdateDescriptorSets registry at www.khronos.org>
-foreign import ccall unsafe "vkUpdateDescriptorSets"
-               vkUpdateDescriptorSets ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ descriptorWriteCount
-                        ->
-                   Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
-                                            ->
-                     Word32 -- ^ descriptorCopyCount
-                            -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
-                                                       -> IO ()
-
--- | > () vkUpdateDescriptorSets
---   >     ( VkDevice device
---   >     , uint32_t descriptorWriteCount
---   >     , const VkWriteDescriptorSet* pDescriptorWrites
---   >     , uint32_t descriptorCopyCount
---   >     , const VkCopyDescriptorSet* pDescriptorCopies
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSets.html vkUpdateDescriptorSets registry at www.khronos.org>
-foreign import ccall safe "vkUpdateDescriptorSets"
-               vkUpdateDescriptorSetsSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ descriptorWriteCount
-                        ->
-                   Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
-                                            ->
-                     Word32 -- ^ descriptorCopyCount
-                            -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
-                                                       -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateFramebuffer
---   >     ( VkDevice device
---   >     , const VkFramebufferCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFramebuffer* pFramebuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateFramebuffer.html vkCreateFramebuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateFramebuffer"
-               vkCreateFramebuffer ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFramebuffer -- ^ pFramebuffer
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateFramebuffer
---   >     ( VkDevice device
---   >     , const VkFramebufferCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFramebuffer* pFramebuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateFramebuffer.html vkCreateFramebuffer registry at www.khronos.org>
-foreign import ccall safe "vkCreateFramebuffer"
-               vkCreateFramebufferSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFramebuffer -- ^ pFramebuffer
-                                                                  -> IO VkResult
-
--- | > () vkDestroyFramebuffer
---   >     ( VkDevice device
---   >     , VkFramebuffer framebuffer
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyFramebuffer.html vkDestroyFramebuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyFramebuffer"
-               vkDestroyFramebuffer ::
-               VkDevice -- ^ device
-                        -> VkFramebuffer -- ^ framebuffer
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | > () vkDestroyFramebuffer
---   >     ( VkDevice device
---   >     , VkFramebuffer framebuffer
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyFramebuffer.html vkDestroyFramebuffer registry at www.khronos.org>
-foreign import ccall safe "vkDestroyFramebuffer"
-               vkDestroyFramebufferSafe ::
-               VkDevice -- ^ device
-                        -> VkFramebuffer -- ^ framebuffer
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateRenderPass
---   >     ( VkDevice device
---   >     , const VkRenderPassCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkRenderPass* pRenderPass
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateRenderPass.html vkCreateRenderPass registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateRenderPass" vkCreateRenderPass
-               ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
-                                            ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkRenderPass -- ^ pRenderPass
-                                                                 -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateRenderPass
---   >     ( VkDevice device
---   >     , const VkRenderPassCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkRenderPass* pRenderPass
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateRenderPass.html vkCreateRenderPass registry at www.khronos.org>
-foreign import ccall safe "vkCreateRenderPass"
-               vkCreateRenderPassSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
-                                            ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkRenderPass -- ^ pRenderPass
-                                                                 -> IO VkResult
-
--- | > () vkDestroyRenderPass
---   >     ( VkDevice device
---   >     , VkRenderPass renderPass
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyRenderPass.html vkDestroyRenderPass registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyRenderPass"
-               vkDestroyRenderPass ::
-               VkDevice -- ^ device
-                        -> VkRenderPass -- ^ renderPass
-                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                     -> IO ()
-
--- | > () vkDestroyRenderPass
---   >     ( VkDevice device
---   >     , VkRenderPass renderPass
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyRenderPass.html vkDestroyRenderPass registry at www.khronos.org>
-foreign import ccall safe "vkDestroyRenderPass"
-               vkDestroyRenderPassSafe ::
-               VkDevice -- ^ device
-                        -> VkRenderPass -- ^ renderPass
-                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                     -> IO ()
-
--- | > () vkGetRenderAreaGranularity
---   >     ( VkDevice device
---   >     , VkRenderPass renderPass
---   >     , VkExtent2D* pGranularity
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRenderAreaGranularity.html vkGetRenderAreaGranularity registry at www.khronos.org>
-foreign import ccall unsafe "vkGetRenderAreaGranularity"
-               vkGetRenderAreaGranularity ::
-               VkDevice -- ^ device
-                        -> VkRenderPass -- ^ renderPass
-                                        -> Ptr VkExtent2D -- ^ pGranularity
-                                                          -> IO ()
-
--- | > () vkGetRenderAreaGranularity
---   >     ( VkDevice device
---   >     , VkRenderPass renderPass
---   >     , VkExtent2D* pGranularity
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRenderAreaGranularity.html vkGetRenderAreaGranularity registry at www.khronos.org>
-foreign import ccall safe "vkGetRenderAreaGranularity"
-               vkGetRenderAreaGranularitySafe ::
-               VkDevice -- ^ device
-                        -> VkRenderPass -- ^ renderPass
-                                        -> Ptr VkExtent2D -- ^ pGranularity
-                                                          -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateCommandPool
---   >     ( VkDevice device
---   >     , const VkCommandPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkCommandPool* pCommandPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateCommandPool.html vkCreateCommandPool registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateCommandPool"
-               vkCreateCommandPool ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkCommandPool -- ^ pCommandPool
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateCommandPool
---   >     ( VkDevice device
---   >     , const VkCommandPoolCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkCommandPool* pCommandPool
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateCommandPool.html vkCreateCommandPool registry at www.khronos.org>
-foreign import ccall safe "vkCreateCommandPool"
-               vkCreateCommandPoolSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkCommandPool -- ^ pCommandPool
-                                                                  -> IO VkResult
-
--- | > () vkDestroyCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyCommandPool.html vkDestroyCommandPool registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyCommandPool"
-               vkDestroyCommandPool ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | > () vkDestroyCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyCommandPool.html vkDestroyCommandPool registry at www.khronos.org>
-foreign import ccall safe "vkDestroyCommandPool"
-               vkDestroyCommandPoolSafe ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                      -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , VkCommandPoolResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetCommandPool.html vkResetCommandPool registry at www.khronos.org>
-foreign import ccall unsafe "vkResetCommandPool" vkResetCommandPool
-               ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> VkCommandPoolResetFlags -- ^ flags
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , VkCommandPoolResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetCommandPool.html vkResetCommandPool registry at www.khronos.org>
-foreign import ccall safe "vkResetCommandPool"
-               vkResetCommandPoolSafe ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> VkCommandPoolResetFlags -- ^ flags
-                                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkAllocateCommandBuffers
---   >     ( VkDevice device
---   >     , const VkCommandBufferAllocateInfo* pAllocateInfo
---   >     , VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateCommandBuffers.html vkAllocateCommandBuffers registry at www.khronos.org>
-foreign import ccall unsafe "vkAllocateCommandBuffers"
-               vkAllocateCommandBuffers ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
-                                                 ->
-                   Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkAllocateCommandBuffers
---   >     ( VkDevice device
---   >     , const VkCommandBufferAllocateInfo* pAllocateInfo
---   >     , VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAllocateCommandBuffers.html vkAllocateCommandBuffers registry at www.khronos.org>
-foreign import ccall safe "vkAllocateCommandBuffers"
-               vkAllocateCommandBuffersSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
-                                                 ->
-                   Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                       -> IO VkResult
-
--- | > () vkFreeCommandBuffers
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , uint32_t commandBufferCount
---   >     , const VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeCommandBuffers.html vkFreeCommandBuffers registry at www.khronos.org>
-foreign import ccall unsafe "vkFreeCommandBuffers"
-               vkFreeCommandBuffers ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> Word32 -- ^ commandBufferCount
-                                                   -> Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                                                          -> IO ()
-
--- | > () vkFreeCommandBuffers
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , uint32_t commandBufferCount
---   >     , const VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkFreeCommandBuffers.html vkFreeCommandBuffers registry at www.khronos.org>
-foreign import ccall safe "vkFreeCommandBuffers"
-               vkFreeCommandBuffersSafe ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> Word32 -- ^ commandBufferCount
-                                                   -> Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                                                          -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBeginCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkCommandBufferBeginInfo* pBeginInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBeginCommandBuffer.html vkBeginCommandBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkBeginCommandBuffer"
-               vkBeginCommandBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBeginCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkCommandBufferBeginInfo* pBeginInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBeginCommandBuffer.html vkBeginCommandBuffer registry at www.khronos.org>
-foreign import ccall safe "vkBeginCommandBuffer"
-               vkBeginCommandBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEndCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEndCommandBuffer.html vkEndCommandBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkEndCommandBuffer" vkEndCommandBuffer
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkEndCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEndCommandBuffer.html vkEndCommandBuffer registry at www.khronos.org>
-foreign import ccall safe "vkEndCommandBuffer"
-               vkEndCommandBufferSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                         -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkCommandBufferResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetCommandBuffer.html vkResetCommandBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkResetCommandBuffer"
-               vkResetCommandBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkCommandBufferResetFlags -- ^ flags
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkResetCommandBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkCommandBufferResetFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkResetCommandBuffer.html vkResetCommandBuffer registry at www.khronos.org>
-foreign import ccall safe "vkResetCommandBuffer"
-               vkResetCommandBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkCommandBufferResetFlags -- ^ flags
-                                                            -> IO VkResult
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBindPipeline
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineBindPoint pipelineBindPoint
---   >     , VkPipeline pipeline
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindPipeline.html vkCmdBindPipeline registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBindPipeline" vkCmdBindPipeline
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> VkPipelineBindPoint -- ^ pipelineBindPoint
-                                                         -> VkPipeline -- ^ pipeline
-                                                                       -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBindPipeline
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineBindPoint pipelineBindPoint
---   >     , VkPipeline pipeline
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindPipeline.html vkCmdBindPipeline registry at www.khronos.org>
-foreign import ccall safe "vkCmdBindPipeline" vkCmdBindPipelineSafe
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> VkPipelineBindPoint -- ^ pipelineBindPoint
-                                                         -> VkPipeline -- ^ pipeline
-                                                                       -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetViewport
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstViewport
---   >     , uint32_t viewportCount
---   >     , const VkViewport* pViewports
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetViewport.html vkCmdSetViewport registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetViewport" vkCmdSetViewport ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ firstViewport
-                                         -> Word32 -- ^ viewportCount
-                                                   -> Ptr VkViewport -- ^ pViewports
-                                                                     -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetViewport
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstViewport
---   >     , uint32_t viewportCount
---   >     , const VkViewport* pViewports
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetViewport.html vkCmdSetViewport registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetViewport" vkCmdSetViewportSafe
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> Word32 -- ^ firstViewport
-                                            -> Word32 -- ^ viewportCount
-                                                      -> Ptr VkViewport -- ^ pViewports
-                                                                        -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetScissor
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstScissor
---   >     , uint32_t scissorCount
---   >     , const VkRect2D* pScissors
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetScissor.html vkCmdSetScissor registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetScissor" vkCmdSetScissor ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ firstScissor
-                                         -> Word32 -- ^ scissorCount
-                                                   -> Ptr VkRect2D -- ^ pScissors
-                                                                   -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetScissor
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstScissor
---   >     , uint32_t scissorCount
---   >     , const VkRect2D* pScissors
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetScissor.html vkCmdSetScissor registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetScissor" vkCmdSetScissorSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ firstScissor
-                                         -> Word32 -- ^ scissorCount
-                                                   -> Ptr VkRect2D -- ^ pScissors
-                                                                   -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetLineWidth
---   >     ( VkCommandBuffer commandBuffer
---   >     , float lineWidth
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetLineWidth.html vkCmdSetLineWidth registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetLineWidth" vkCmdSetLineWidth
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetLineWidth
---   >     ( VkCommandBuffer commandBuffer
---   >     , float lineWidth
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetLineWidth.html vkCmdSetLineWidth registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetLineWidth" vkCmdSetLineWidthSafe
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDepthBias
---   >     ( VkCommandBuffer commandBuffer
---   >     , float depthBiasConstantFactor
---   >     , float depthBiasClamp
---   >     , float depthBiasSlopeFactor
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDepthBias.html vkCmdSetDepthBias registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetDepthBias" vkCmdSetDepthBias
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 #{type float} ->
-                   #{type float} -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDepthBias
---   >     ( VkCommandBuffer commandBuffer
---   >     , float depthBiasConstantFactor
---   >     , float depthBiasClamp
---   >     , float depthBiasSlopeFactor
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDepthBias.html vkCmdSetDepthBias registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetDepthBias" vkCmdSetDepthBiasSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 #{type float} ->
-                   #{type float} -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetBlendConstants
---   >     ( VkCommandBuffer commandBuffer
---   >     , const float blendConstants[4]
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetBlendConstants.html vkCmdSetBlendConstants registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetBlendConstants"
-               vkCmdSetBlendConstants ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr #{type float} -- ^ blendConstants
-                                                                -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetBlendConstants
---   >     ( VkCommandBuffer commandBuffer
---   >     , const float blendConstants[4]
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetBlendConstants.html vkCmdSetBlendConstants registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetBlendConstants"
-               vkCmdSetBlendConstantsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr #{type float} -- ^ blendConstants
-                                                                -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDepthBounds
---   >     ( VkCommandBuffer commandBuffer
---   >     , float minDepthBounds
---   >     , float maxDepthBounds
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDepthBounds.html vkCmdSetDepthBounds registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetDepthBounds"
-               vkCmdSetDepthBounds ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 #{type float} -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDepthBounds
---   >     ( VkCommandBuffer commandBuffer
---   >     , float minDepthBounds
---   >     , float maxDepthBounds
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDepthBounds.html vkCmdSetDepthBounds registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetDepthBounds"
-               vkCmdSetDepthBoundsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 #{type float} -> #{type float} -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilCompareMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t compareMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilCompareMask.html vkCmdSetStencilCompareMask registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetStencilCompareMask"
-               vkCmdSetStencilCompareMask ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ compareMask
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilCompareMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t compareMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilCompareMask.html vkCmdSetStencilCompareMask registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetStencilCompareMask"
-               vkCmdSetStencilCompareMaskSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ compareMask
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilWriteMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t writeMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilWriteMask.html vkCmdSetStencilWriteMask registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetStencilWriteMask"
-               vkCmdSetStencilWriteMask ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ writeMask
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilWriteMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t writeMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilWriteMask.html vkCmdSetStencilWriteMask registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetStencilWriteMask"
-               vkCmdSetStencilWriteMaskSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ writeMask
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilReference
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t reference
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilReference.html vkCmdSetStencilReference registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetStencilReference"
-               vkCmdSetStencilReference ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ reference
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetStencilReference
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkStencilFaceFlags faceMask
---   >     , uint32_t reference
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetStencilReference.html vkCmdSetStencilReference registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetStencilReference"
-               vkCmdSetStencilReferenceSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkStencilFaceFlags -- ^ faceMask
-                                                     -> Word32 -- ^ reference
-                                                               -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBindDescriptorSets
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineBindPoint pipelineBindPoint
---   >     , VkPipelineLayout layout
---   >     , uint32_t firstSet
---   >     , uint32_t descriptorSetCount
---   >     , const VkDescriptorSet* pDescriptorSets
---   >     , uint32_t dynamicOffsetCount
---   >     , const uint32_t* pDynamicOffsets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindDescriptorSets.html vkCmdBindDescriptorSets registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBindDescriptorSets"
-               vkCmdBindDescriptorSets ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineBindPoint -- ^ pipelineBindPoint
-                                     ->
-                   VkPipelineLayout -- ^ layout
-                                    ->
-                     Word32 -- ^ firstSet
-                            ->
-                       Word32 -- ^ descriptorSetCount
-                              -> Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                                     -> Word32 -- ^ dynamicOffsetCount
-                                                               -> Ptr Word32 -- ^ pDynamicOffsets
-                                                                             -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBindDescriptorSets
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineBindPoint pipelineBindPoint
---   >     , VkPipelineLayout layout
---   >     , uint32_t firstSet
---   >     , uint32_t descriptorSetCount
---   >     , const VkDescriptorSet* pDescriptorSets
---   >     , uint32_t dynamicOffsetCount
---   >     , const uint32_t* pDynamicOffsets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindDescriptorSets.html vkCmdBindDescriptorSets registry at www.khronos.org>
-foreign import ccall safe "vkCmdBindDescriptorSets"
-               vkCmdBindDescriptorSetsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineBindPoint -- ^ pipelineBindPoint
-                                     ->
-                   VkPipelineLayout -- ^ layout
-                                    ->
-                     Word32 -- ^ firstSet
-                            ->
-                       Word32 -- ^ descriptorSetCount
-                              -> Ptr VkDescriptorSet -- ^ pDescriptorSets
-                                                     -> Word32 -- ^ dynamicOffsetCount
-                                                               -> Ptr Word32 -- ^ pDynamicOffsets
-                                                                             -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdBindIndexBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , VkIndexType indexType
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindIndexBuffer.html vkCmdBindIndexBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBindIndexBuffer"
-               vkCmdBindIndexBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkBuffer -- ^ buffer
-                                           -> VkDeviceSize -- ^ offset
-                                                           -> VkIndexType -- ^ indexType
-                                                                          -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdBindIndexBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , VkIndexType indexType
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindIndexBuffer.html vkCmdBindIndexBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCmdBindIndexBuffer"
-               vkCmdBindIndexBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkBuffer -- ^ buffer
-                                           -> VkDeviceSize -- ^ offset
-                                                           -> VkIndexType -- ^ indexType
-                                                                          -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdBindVertexBuffers
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstBinding
---   >     , uint32_t bindingCount
---   >     , const VkBuffer* pBuffers
---   >     , const VkDeviceSize* pOffsets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindVertexBuffers.html vkCmdBindVertexBuffers registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBindVertexBuffers"
-               vkCmdBindVertexBuffers ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ firstBinding
-                        -> Word32 -- ^ bindingCount
-                                  -> Ptr VkBuffer -- ^ pBuffers
-                                                  -> Ptr VkDeviceSize -- ^ pOffsets
-                                                                      -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdBindVertexBuffers
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstBinding
---   >     , uint32_t bindingCount
---   >     , const VkBuffer* pBuffers
---   >     , const VkDeviceSize* pOffsets
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBindVertexBuffers.html vkCmdBindVertexBuffers registry at www.khronos.org>
-foreign import ccall safe "vkCmdBindVertexBuffers"
-               vkCmdBindVertexBuffersSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ firstBinding
-                        -> Word32 -- ^ bindingCount
-                                  -> Ptr VkBuffer -- ^ pBuffers
-                                                  -> Ptr VkDeviceSize -- ^ pOffsets
-                                                                      -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDraw
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t vertexCount
---   >     , uint32_t instanceCount
---   >     , uint32_t firstVertex
---   >     , uint32_t firstInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDraw.html vkCmdDraw registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDraw" vkCmdDraw ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ vertexCount
-                                         -> Word32 -- ^ instanceCount
-                                                   -> Word32 -- ^ firstVertex
-                                                             -> Word32 -- ^ firstInstance
-                                                                       -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDraw
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t vertexCount
---   >     , uint32_t instanceCount
---   >     , uint32_t firstVertex
---   >     , uint32_t firstInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDraw.html vkCmdDraw registry at www.khronos.org>
-foreign import ccall safe "vkCmdDraw" vkCmdDrawSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ vertexCount
-                                         -> Word32 -- ^ instanceCount
-                                                   -> Word32 -- ^ firstVertex
-                                                             -> Word32 -- ^ firstInstance
-                                                                       -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndexed
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t indexCount
---   >     , uint32_t instanceCount
---   >     , uint32_t firstIndex
---   >     , int32_t vertexOffset
---   >     , uint32_t firstInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexed.html vkCmdDrawIndexed registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDrawIndexed" vkCmdDrawIndexed ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ indexCount
-                        -> Word32 -- ^ instanceCount
-                                  -> Word32 -- ^ firstIndex
-                                            -> Int32 -- ^ vertexOffset
-                                                     -> Word32 -- ^ firstInstance
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndexed
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t indexCount
---   >     , uint32_t instanceCount
---   >     , uint32_t firstIndex
---   >     , int32_t vertexOffset
---   >     , uint32_t firstInstance
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexed.html vkCmdDrawIndexed registry at www.khronos.org>
-foreign import ccall safe "vkCmdDrawIndexed" vkCmdDrawIndexedSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ indexCount
-                        -> Word32 -- ^ instanceCount
-                                  -> Word32 -- ^ firstIndex
-                                            -> Int32 -- ^ vertexOffset
-                                                     -> Word32 -- ^ firstInstance
-                                                               -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , uint32_t drawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndirect.html vkCmdDrawIndirect registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDrawIndirect" vkCmdDrawIndirect
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceSize -- ^ offset
-                                          -> Word32 -- ^ drawCount
-                                                    -> Word32 -- ^ stride
-                                                              -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , uint32_t drawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndirect.html vkCmdDrawIndirect registry at www.khronos.org>
-foreign import ccall safe "vkCmdDrawIndirect" vkCmdDrawIndirectSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceSize -- ^ offset
-                                          -> Word32 -- ^ drawCount
-                                                    -> Word32 -- ^ stride
-                                                              -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndexedIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , uint32_t drawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexedIndirect.html vkCmdDrawIndexedIndirect registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDrawIndexedIndirect"
-               vkCmdDrawIndexedIndirect ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceSize -- ^ offset
-                                          -> Word32 -- ^ drawCount
-                                                    -> Word32 -- ^ stride
-                                                              -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndexedIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , uint32_t drawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexedIndirect.html vkCmdDrawIndexedIndirect registry at www.khronos.org>
-foreign import ccall safe "vkCmdDrawIndexedIndirect"
-               vkCmdDrawIndexedIndirectSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          -> VkDeviceSize -- ^ offset
-                                          -> Word32 -- ^ drawCount
-                                                    -> Word32 -- ^ stride
-                                                              -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @compute@
---
---   > () vkCmdDispatch
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t groupCountX
---   >     , uint32_t groupCountY
---   >     , uint32_t groupCountZ
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatch.html vkCmdDispatch registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDispatch" vkCmdDispatch ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ groupCountX
-                                         -> Word32 -- ^ groupCountY
-                                                   -> Word32 -- ^ groupCountZ
-                                                             -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @compute@
---
---   > () vkCmdDispatch
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t groupCountX
---   >     , uint32_t groupCountY
---   >     , uint32_t groupCountZ
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatch.html vkCmdDispatch registry at www.khronos.org>
-foreign import ccall safe "vkCmdDispatch" vkCmdDispatchSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ groupCountX
-                                         -> Word32 -- ^ groupCountY
-                                                   -> Word32 -- ^ groupCountZ
-                                                             -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @compute@
---
---   > () vkCmdDispatchIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchIndirect.html vkCmdDispatchIndirect registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDispatchIndirect"
-               vkCmdDispatchIndirect ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkBuffer -- ^ buffer
-                                           -> VkDeviceSize -- ^ offset
-                                                           -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @compute@
---
---   > () vkCmdDispatchIndirect
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchIndirect.html vkCmdDispatchIndirect registry at www.khronos.org>
-foreign import ccall safe "vkCmdDispatchIndirect"
-               vkCmdDispatchIndirectSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkBuffer -- ^ buffer
-                                           -> VkDeviceSize -- ^ offset
-                                                           -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer srcBuffer
---   >     , VkBuffer dstBuffer
---   >     , uint32_t regionCount
---   >     , const VkBufferCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBuffer.html vkCmdCopyBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdCopyBuffer" vkCmdCopyBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ srcBuffer
-                          -> VkBuffer -- ^ dstBuffer
-                                      -> Word32 -- ^ regionCount
-                                                -> Ptr VkBufferCopy -- ^ pRegions
-                                                                    -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer srcBuffer
---   >     , VkBuffer dstBuffer
---   >     , uint32_t regionCount
---   >     , const VkBufferCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBuffer.html vkCmdCopyBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCmdCopyBuffer" vkCmdCopyBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ srcBuffer
-                          -> VkBuffer -- ^ dstBuffer
-                                      -> Word32 -- ^ regionCount
-                                                -> Ptr VkBufferCopy -- ^ pRegions
-                                                                    -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyImage.html vkCmdCopyImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdCopyImage" vkCmdCopyImage ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             -> VkImageLayout -- ^ dstImageLayout
-                                              -> Word32 -- ^ regionCount
-                                                        -> Ptr VkImageCopy -- ^ pRegions
-                                                                           -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyImage.html vkCmdCopyImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdCopyImage" vkCmdCopyImageSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             -> VkImageLayout -- ^ dstImageLayout
-                                              -> Word32 -- ^ regionCount
-                                                        -> Ptr VkImageCopy -- ^ pRegions
-                                                                           -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdBlitImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageBlit* pRegions
---   >     , VkFilter filter
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBlitImage.html vkCmdBlitImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBlitImage" vkCmdBlitImage ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             ->
-                       VkImageLayout -- ^ dstImageLayout
-                                     -> Word32 -- ^ regionCount
-                                               -> Ptr VkImageBlit -- ^ pRegions
-                                                                  -> VkFilter -- ^ filter
-                                                                              -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdBlitImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageBlit* pRegions
---   >     , VkFilter filter
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBlitImage.html vkCmdBlitImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdBlitImage" vkCmdBlitImageSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             ->
-                       VkImageLayout -- ^ dstImageLayout
-                                     -> Word32 -- ^ regionCount
-                                               -> Ptr VkImageBlit -- ^ pRegions
-                                                                  -> VkFilter -- ^ filter
-                                                                              -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyBufferToImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer srcBuffer
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkBufferImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBufferToImage.html vkCmdCopyBufferToImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdCopyBufferToImage"
-               vkCmdCopyBufferToImage ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ srcBuffer
-                          ->
-                   VkImage -- ^ dstImage
-                           ->
-                     VkImageLayout -- ^ dstImageLayout
-                                   -> Word32 -- ^ regionCount
-                                             -> Ptr VkBufferImageCopy -- ^ pRegions
-                                                                      -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyBufferToImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer srcBuffer
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkBufferImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyBufferToImage.html vkCmdCopyBufferToImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdCopyBufferToImage"
-               vkCmdCopyBufferToImageSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ srcBuffer
-                          ->
-                   VkImage -- ^ dstImage
-                           ->
-                     VkImageLayout -- ^ dstImageLayout
-                                   -> Word32 -- ^ regionCount
-                                             -> Ptr VkBufferImageCopy -- ^ pRegions
-                                                                      -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyImageToBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkBuffer dstBuffer
---   >     , uint32_t regionCount
---   >     , const VkBufferImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyImageToBuffer.html vkCmdCopyImageToBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdCopyImageToBuffer"
-               vkCmdCopyImageToBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkBuffer -- ^ dstBuffer
-                              -> Word32 -- ^ regionCount
-                                        -> Ptr VkBufferImageCopy -- ^ pRegions
-                                                                 -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyImageToBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkBuffer dstBuffer
---   >     , uint32_t regionCount
---   >     , const VkBufferImageCopy* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyImageToBuffer.html vkCmdCopyImageToBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCmdCopyImageToBuffer"
-               vkCmdCopyImageToBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkBuffer -- ^ dstBuffer
-                              -> Word32 -- ^ regionCount
-                                        -> Ptr VkBufferImageCopy -- ^ pRegions
-                                                                 -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdUpdateBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize dataSize
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdUpdateBuffer.html vkCmdUpdateBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdUpdateBuffer" vkCmdUpdateBuffer
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ dstBuffer
-                          -> VkDeviceSize -- ^ dstOffset
-                                          -> VkDeviceSize -- ^ dataSize
-                                                          -> Ptr Void -- ^ pData
-                                                                      -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdUpdateBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize dataSize
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdUpdateBuffer.html vkCmdUpdateBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCmdUpdateBuffer" vkCmdUpdateBufferSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ dstBuffer
-                          -> VkDeviceSize -- ^ dstOffset
-                                          -> VkDeviceSize -- ^ dataSize
-                                                          -> Ptr Void -- ^ pData
-                                                                      -> IO ()
-
--- | transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
---
---   queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdFillBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize size
---   >     , uint32_t data
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdFillBuffer.html vkCmdFillBuffer registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdFillBuffer" vkCmdFillBuffer ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ dstBuffer
-                          -> VkDeviceSize -- ^ dstOffset
-                                          -> VkDeviceSize -- ^ size
-                                                          -> Word32 -- ^ data
-                                                                    -> IO ()
-
--- | transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
---
---   queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdFillBuffer
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize size
---   >     , uint32_t data
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdFillBuffer.html vkCmdFillBuffer registry at www.khronos.org>
-foreign import ccall safe "vkCmdFillBuffer" vkCmdFillBufferSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ dstBuffer
-                          -> VkDeviceSize -- ^ dstOffset
-                                          -> VkDeviceSize -- ^ size
-                                                          -> Word32 -- ^ data
-                                                                    -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdClearColorImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage image
---   >     , VkImageLayout imageLayout
---   >     , const VkClearColorValue* pColor
---   >     , uint32_t rangeCount
---   >     , const VkImageSubresourceRange* pRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearColorImage.html vkCmdClearColorImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdClearColorImage"
-               vkCmdClearColorImage ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ image
-                         ->
-                   VkImageLayout -- ^ imageLayout
-                                 ->
-                     Ptr VkClearColorValue -- ^ pColor
-                                           ->
-                       Word32 -- ^ rangeCount
-                              -> Ptr VkImageSubresourceRange -- ^ pRanges
-                                                             -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdClearColorImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage image
---   >     , VkImageLayout imageLayout
---   >     , const VkClearColorValue* pColor
---   >     , uint32_t rangeCount
---   >     , const VkImageSubresourceRange* pRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearColorImage.html vkCmdClearColorImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdClearColorImage"
-               vkCmdClearColorImageSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ image
-                         ->
-                   VkImageLayout -- ^ imageLayout
-                                 ->
-                     Ptr VkClearColorValue -- ^ pColor
-                                           ->
-                       Word32 -- ^ rangeCount
-                              -> Ptr VkImageSubresourceRange -- ^ pRanges
-                                                             -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdClearDepthStencilImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage image
---   >     , VkImageLayout imageLayout
---   >     , const VkClearDepthStencilValue* pDepthStencil
---   >     , uint32_t rangeCount
---   >     , const VkImageSubresourceRange* pRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearDepthStencilImage.html vkCmdClearDepthStencilImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdClearDepthStencilImage"
-               vkCmdClearDepthStencilImage ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ image
-                         ->
-                   VkImageLayout -- ^ imageLayout
-                                 ->
-                     Ptr VkClearDepthStencilValue -- ^ pDepthStencil
-                                                  ->
-                       Word32 -- ^ rangeCount
-                              -> Ptr VkImageSubresourceRange -- ^ pRanges
-                                                             -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdClearDepthStencilImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage image
---   >     , VkImageLayout imageLayout
---   >     , const VkClearDepthStencilValue* pDepthStencil
---   >     , uint32_t rangeCount
---   >     , const VkImageSubresourceRange* pRanges
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearDepthStencilImage.html vkCmdClearDepthStencilImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdClearDepthStencilImage"
-               vkCmdClearDepthStencilImageSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ image
-                         ->
-                   VkImageLayout -- ^ imageLayout
-                                 ->
-                     Ptr VkClearDepthStencilValue -- ^ pDepthStencil
-                                                  ->
-                       Word32 -- ^ rangeCount
-                              -> Ptr VkImageSubresourceRange -- ^ pRanges
-                                                             -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdClearAttachments
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t attachmentCount
---   >     , const VkClearAttachment* pAttachments
---   >     , uint32_t rectCount
---   >     , const VkClearRect* pRects
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearAttachments.html vkCmdClearAttachments registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdClearAttachments"
-               vkCmdClearAttachments ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ attachmentCount
-                        ->
-                   Ptr VkClearAttachment -- ^ pAttachments
-                                         -> Word32 -- ^ rectCount
-                                                   -> Ptr VkClearRect -- ^ pRects
-                                                                      -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdClearAttachments
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t attachmentCount
---   >     , const VkClearAttachment* pAttachments
---   >     , uint32_t rectCount
---   >     , const VkClearRect* pRects
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdClearAttachments.html vkCmdClearAttachments registry at www.khronos.org>
-foreign import ccall safe "vkCmdClearAttachments"
-               vkCmdClearAttachmentsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ attachmentCount
-                        ->
-                   Ptr VkClearAttachment -- ^ pAttachments
-                                         -> Word32 -- ^ rectCount
-                                                   -> Ptr VkClearRect -- ^ pRects
-                                                                      -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdResolveImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageResolve* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResolveImage.html vkCmdResolveImage registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdResolveImage" vkCmdResolveImage
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             -> VkImageLayout -- ^ dstImageLayout
-                                              -> Word32 -- ^ regionCount
-                                                        -> Ptr VkImageResolve -- ^ pRegions
-                                                                              -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdResolveImage
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkImage srcImage
---   >     , VkImageLayout srcImageLayout
---   >     , VkImage dstImage
---   >     , VkImageLayout dstImageLayout
---   >     , uint32_t regionCount
---   >     , const VkImageResolve* pRegions
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResolveImage.html vkCmdResolveImage registry at www.khronos.org>
-foreign import ccall safe "vkCmdResolveImage" vkCmdResolveImageSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkImage -- ^ srcImage
-                         ->
-                   VkImageLayout -- ^ srcImageLayout
-                                 ->
-                     VkImage -- ^ dstImage
-                             -> VkImageLayout -- ^ dstImageLayout
-                                              -> Word32 -- ^ regionCount
-                                                        -> Ptr VkImageResolve -- ^ pRegions
-                                                                              -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdSetEvent
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkEvent event
---   >     , VkPipelineStageFlags stageMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetEvent.html vkCmdSetEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetEvent" vkCmdSetEvent ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkEvent -- ^ event
-                                          -> VkPipelineStageFlags -- ^ stageMask
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdSetEvent
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkEvent event
---   >     , VkPipelineStageFlags stageMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetEvent.html vkCmdSetEvent registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetEvent" vkCmdSetEventSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkEvent -- ^ event
-                                          -> VkPipelineStageFlags -- ^ stageMask
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdResetEvent
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkEvent event
---   >     , VkPipelineStageFlags stageMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResetEvent.html vkCmdResetEvent registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdResetEvent" vkCmdResetEvent ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkEvent -- ^ event
-                                          -> VkPipelineStageFlags -- ^ stageMask
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdResetEvent
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkEvent event
---   >     , VkPipelineStageFlags stageMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResetEvent.html vkCmdResetEvent registry at www.khronos.org>
-foreign import ccall safe "vkCmdResetEvent" vkCmdResetEventSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkEvent -- ^ event
-                                          -> VkPipelineStageFlags -- ^ stageMask
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdWaitEvents
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t eventCount
---   >     , const VkEvent* pEvents
---   >     , VkPipelineStageFlags srcStageMask
---   >     , VkPipelineStageFlags dstStageMask
---   >     , uint32_t memoryBarrierCount
---   >     , const VkMemoryBarrier* pMemoryBarriers
---   >     , uint32_t bufferMemoryBarrierCount
---   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
---   >     , uint32_t imageMemoryBarrierCount
---   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWaitEvents.html vkCmdWaitEvents registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdWaitEvents" vkCmdWaitEvents ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ eventCount
-                        ->
-                   Ptr VkEvent -- ^ pEvents
-                               ->
-                     VkPipelineStageFlags -- ^ srcStageMask
-                                          ->
-                       VkPipelineStageFlags -- ^ dstStageMask
-                                            ->
-                         Word32 -- ^ memoryBarrierCount
-                                ->
-                           Ptr VkMemoryBarrier -- ^ pMemoryBarriers
-                                               ->
-                             Word32 -- ^ bufferMemoryBarrierCount
-                                    ->
-                               Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
-                                                         ->
-                                 Word32 -- ^ imageMemoryBarrierCount
-                                        -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
-                                                                    -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdWaitEvents
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t eventCount
---   >     , const VkEvent* pEvents
---   >     , VkPipelineStageFlags srcStageMask
---   >     , VkPipelineStageFlags dstStageMask
---   >     , uint32_t memoryBarrierCount
---   >     , const VkMemoryBarrier* pMemoryBarriers
---   >     , uint32_t bufferMemoryBarrierCount
---   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
---   >     , uint32_t imageMemoryBarrierCount
---   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWaitEvents.html vkCmdWaitEvents registry at www.khronos.org>
-foreign import ccall safe "vkCmdWaitEvents" vkCmdWaitEventsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ eventCount
-                        ->
-                   Ptr VkEvent -- ^ pEvents
-                               ->
-                     VkPipelineStageFlags -- ^ srcStageMask
-                                          ->
-                       VkPipelineStageFlags -- ^ dstStageMask
-                                            ->
-                         Word32 -- ^ memoryBarrierCount
-                                ->
-                           Ptr VkMemoryBarrier -- ^ pMemoryBarriers
-                                               ->
-                             Word32 -- ^ bufferMemoryBarrierCount
-                                    ->
-                               Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
-                                                         ->
-                                 Word32 -- ^ imageMemoryBarrierCount
-                                        -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
-                                                                    -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPipelineBarrier
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineStageFlags srcStageMask
---   >     , VkPipelineStageFlags dstStageMask
---   >     , VkDependencyFlags dependencyFlags
---   >     , uint32_t memoryBarrierCount
---   >     , const VkMemoryBarrier* pMemoryBarriers
---   >     , uint32_t bufferMemoryBarrierCount
---   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
---   >     , uint32_t imageMemoryBarrierCount
---   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPipelineBarrier.html vkCmdPipelineBarrier registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdPipelineBarrier"
-               vkCmdPipelineBarrier ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineStageFlags -- ^ srcStageMask
-                                      ->
-                   VkPipelineStageFlags -- ^ dstStageMask
-                                        ->
-                     VkDependencyFlags -- ^ dependencyFlags
-                                       ->
-                       Word32 -- ^ memoryBarrierCount
-                              ->
-                         Ptr VkMemoryBarrier -- ^ pMemoryBarriers
-                                             ->
-                           Word32 -- ^ bufferMemoryBarrierCount
-                                  ->
-                             Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
-                                                       ->
-                               Word32 -- ^ imageMemoryBarrierCount
-                                      -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
-                                                                  -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPipelineBarrier
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineStageFlags srcStageMask
---   >     , VkPipelineStageFlags dstStageMask
---   >     , VkDependencyFlags dependencyFlags
---   >     , uint32_t memoryBarrierCount
---   >     , const VkMemoryBarrier* pMemoryBarriers
---   >     , uint32_t bufferMemoryBarrierCount
---   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
---   >     , uint32_t imageMemoryBarrierCount
---   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPipelineBarrier.html vkCmdPipelineBarrier registry at www.khronos.org>
-foreign import ccall safe "vkCmdPipelineBarrier"
-               vkCmdPipelineBarrierSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineStageFlags -- ^ srcStageMask
-                                      ->
-                   VkPipelineStageFlags -- ^ dstStageMask
-                                        ->
-                     VkDependencyFlags -- ^ dependencyFlags
-                                       ->
-                       Word32 -- ^ memoryBarrierCount
-                              ->
-                         Ptr VkMemoryBarrier -- ^ pMemoryBarriers
-                                             ->
-                           Word32 -- ^ bufferMemoryBarrierCount
-                                  ->
-                             Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
-                                                       ->
-                               Word32 -- ^ imageMemoryBarrierCount
-                                      -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBeginQuery
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     , VkQueryControlFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginQuery.html vkCmdBeginQuery registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBeginQuery" vkCmdBeginQuery ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkQueryPool -- ^ queryPool
-                             -> Word32 -- ^ query
-                                       -> VkQueryControlFlags -- ^ flags
-                                                              -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBeginQuery
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     , VkQueryControlFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginQuery.html vkCmdBeginQuery registry at www.khronos.org>
-foreign import ccall safe "vkCmdBeginQuery" vkCmdBeginQuerySafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkQueryPool -- ^ queryPool
-                             -> Word32 -- ^ query
-                                       -> VkQueryControlFlags -- ^ flags
-                                                              -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdEndQuery
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndQuery.html vkCmdEndQuery registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdEndQuery" vkCmdEndQuery ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkQueryPool -- ^ queryPool
-                                              -> Word32 -- ^ query
-                                                        -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdEndQuery
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndQuery.html vkCmdEndQuery registry at www.khronos.org>
-foreign import ccall safe "vkCmdEndQuery" vkCmdEndQuerySafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkQueryPool -- ^ queryPool
-                                              -> Word32 -- ^ query
-                                                        -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdResetQueryPool
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResetQueryPool.html vkCmdResetQueryPool registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdResetQueryPool"
-               vkCmdResetQueryPool ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkQueryPool -- ^ queryPool
-                                              -> Word32 -- ^ firstQuery
-                                                        -> Word32 -- ^ queryCount
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdResetQueryPool
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdResetQueryPool.html vkCmdResetQueryPool registry at www.khronos.org>
-foreign import ccall safe "vkCmdResetQueryPool"
-               vkCmdResetQueryPoolSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkQueryPool -- ^ queryPool
-                                              -> Word32 -- ^ firstQuery
-                                                        -> Word32 -- ^ queryCount
-                                                                  -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   pipeline: @transfer@
---
---   > () vkCmdWriteTimestamp
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineStageFlagBits pipelineStage
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWriteTimestamp.html vkCmdWriteTimestamp registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdWriteTimestamp"
-               vkCmdWriteTimestamp ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineStageFlagBits -- ^ pipelineStage
-                                         -> VkQueryPool -- ^ queryPool
-                                                        -> Word32 -- ^ query
-                                                                  -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   pipeline: @transfer@
---
---   > () vkCmdWriteTimestamp
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineStageFlagBits pipelineStage
---   >     , VkQueryPool queryPool
---   >     , uint32_t query
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWriteTimestamp.html vkCmdWriteTimestamp registry at www.khronos.org>
-foreign import ccall safe "vkCmdWriteTimestamp"
-               vkCmdWriteTimestampSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineStageFlagBits -- ^ pipelineStage
-                                         -> VkQueryPool -- ^ queryPool
-                                                        -> Word32 -- ^ query
-                                                                  -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyQueryPoolResults
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize stride
---   >     , VkQueryResultFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyQueryPoolResults.html vkCmdCopyQueryPoolResults registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdCopyQueryPoolResults"
-               vkCmdCopyQueryPoolResults ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkQueryPool -- ^ queryPool
-                             ->
-                   Word32 -- ^ firstQuery
-                          ->
-                     Word32 -- ^ queryCount
-                            ->
-                       VkBuffer -- ^ dstBuffer
-                                ->
-                         VkDeviceSize -- ^ dstOffset
-                                      -> VkDeviceSize -- ^ stride
-                                                      -> VkQueryResultFlags -- ^ flags
-                                                                            -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @outside@
---
---   pipeline: @transfer@
---
---   > () vkCmdCopyQueryPoolResults
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkQueryPool queryPool
---   >     , uint32_t firstQuery
---   >     , uint32_t queryCount
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , VkDeviceSize stride
---   >     , VkQueryResultFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdCopyQueryPoolResults.html vkCmdCopyQueryPoolResults registry at www.khronos.org>
-foreign import ccall safe "vkCmdCopyQueryPoolResults"
-               vkCmdCopyQueryPoolResultsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkQueryPool -- ^ queryPool
-                             ->
-                   Word32 -- ^ firstQuery
-                          ->
-                     Word32 -- ^ queryCount
-                            ->
-                       VkBuffer -- ^ dstBuffer
-                                ->
-                         VkDeviceSize -- ^ dstOffset
-                                      -> VkDeviceSize -- ^ stride
-                                                      -> VkQueryResultFlags -- ^ flags
-                                                                            -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPushConstants
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineLayout layout
---   >     , VkShaderStageFlags stageFlags
---   >     , uint32_t offset
---   >     , uint32_t size
---   >     , const void* pValues
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushConstants.html vkCmdPushConstants registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdPushConstants" vkCmdPushConstants
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineLayout -- ^ layout
-                                  ->
-                   VkShaderStageFlags -- ^ stageFlags
-                                      -> Word32 -- ^ offset
-                                                -> Word32 -- ^ size
-                                                          -> Ptr Void -- ^ pValues
-                                                                      -> IO ()
-
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPushConstants
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineLayout layout
---   >     , VkShaderStageFlags stageFlags
---   >     , uint32_t offset
---   >     , uint32_t size
---   >     , const void* pValues
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushConstants.html vkCmdPushConstants registry at www.khronos.org>
-foreign import ccall safe "vkCmdPushConstants"
-               vkCmdPushConstantsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineLayout -- ^ layout
-                                  ->
-                   VkShaderStageFlags -- ^ stageFlags
-                                      -> Word32 -- ^ offset
-                                                -> Word32 -- ^ size
-                                                          -> Ptr Void -- ^ pValues
-                                                                      -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @graphics@
---
---   > () vkCmdBeginRenderPass
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkRenderPassBeginInfo* pRenderPassBegin
---   >     , VkSubpassContents contents
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginRenderPass.html vkCmdBeginRenderPass registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBeginRenderPass"
-               vkCmdBeginRenderPass ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
-                                           -> VkSubpassContents -- ^ contents
-                                                                -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @outside@
---
---   pipeline: @graphics@
---
---   > () vkCmdBeginRenderPass
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkRenderPassBeginInfo* pRenderPassBegin
---   >     , VkSubpassContents contents
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginRenderPass.html vkCmdBeginRenderPass registry at www.khronos.org>
-foreign import ccall safe "vkCmdBeginRenderPass"
-               vkCmdBeginRenderPassSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
-                                           -> VkSubpassContents -- ^ contents
-                                                                -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdNextSubpass
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkSubpassContents contents
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdNextSubpass.html vkCmdNextSubpass registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdNextSubpass" vkCmdNextSubpass ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> VkSubpassContents -- ^ contents
-                                                    -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdNextSubpass
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkSubpassContents contents
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdNextSubpass.html vkCmdNextSubpass registry at www.khronos.org>
-foreign import ccall safe "vkCmdNextSubpass" vkCmdNextSubpassSafe
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> VkSubpassContents -- ^ contents
-                                                       -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdEndRenderPass
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndRenderPass.html vkCmdEndRenderPass registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdEndRenderPass" vkCmdEndRenderPass
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> IO ()
-
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdEndRenderPass
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndRenderPass.html vkCmdEndRenderPass registry at www.khronos.org>
-foreign import ccall safe "vkCmdEndRenderPass"
-               vkCmdEndRenderPassSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                         -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdExecuteCommands
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t commandBufferCount
---   >     , const VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdExecuteCommands.html vkCmdExecuteCommands registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdExecuteCommands"
-               vkCmdExecuteCommands ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ commandBufferCount
-                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                                                -> IO ()
-
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdExecuteCommands
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t commandBufferCount
---   >     , const VkCommandBuffer* pCommandBuffers
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdExecuteCommands.html vkCmdExecuteCommands registry at www.khronos.org>
-foreign import ccall safe "vkCmdExecuteCommands"
-               vkCmdExecuteCommandsSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ commandBufferCount
-                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
-                                                                -> IO ()
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE MagicHash                #-}
+{-# LANGUAGE PatternSynonyms          #-}
+{-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
+{-# LANGUAGE ViewPatterns             #-}
+module Graphics.Vulkan.Core_1_0
+       (-- * Vulkan core API interface definitions
+        -- |
+        --
+        -- @api = vulkan@
+        --
+        -- @name = VK_VERSION_1_0@
+        --
+        -- @number = 1.0@
+        --
+
+        -- ** Header boilerplate
+        --
+        -- |
+        -- > ##include "vk_platform.h"
+        --
+
+        -- ** API version
+        --
+
+        -- ** API constants
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        pattern VK_LOD_CLAMP_NONE, pattern VK_REMAINING_MIP_LEVELS,
+        pattern VK_REMAINING_ARRAY_LAYERS, pattern VK_WHOLE_SIZE,
+        pattern VK_ATTACHMENT_UNUSED, pattern VK_TRUE, pattern VK_FALSE,
+        pattern VK_QUEUE_FAMILY_IGNORED, pattern VK_SUBPASS_EXTERNAL,
+        -- ** Device initialization
+        VkCreateInstance, pattern VkCreateInstance, HS_vkCreateInstance,
+        PFN_vkCreateInstance, vkCreateInstance, vkCreateInstanceSafe,
+        VkDestroyInstance, pattern VkDestroyInstance, HS_vkDestroyInstance,
+        PFN_vkDestroyInstance, vkDestroyInstance, vkDestroyInstanceSafe,
+        VkEnumeratePhysicalDevices, pattern VkEnumeratePhysicalDevices,
+        HS_vkEnumeratePhysicalDevices, PFN_vkEnumeratePhysicalDevices,
+        vkEnumeratePhysicalDevices, vkEnumeratePhysicalDevicesSafe,
+        VkGetPhysicalDeviceFeatures, pattern VkGetPhysicalDeviceFeatures,
+        HS_vkGetPhysicalDeviceFeatures, PFN_vkGetPhysicalDeviceFeatures,
+        vkGetPhysicalDeviceFeatures, vkGetPhysicalDeviceFeaturesSafe,
+        VkGetPhysicalDeviceFormatProperties,
+        pattern VkGetPhysicalDeviceFormatProperties,
+        HS_vkGetPhysicalDeviceFormatProperties,
+        PFN_vkGetPhysicalDeviceFormatProperties,
+        vkGetPhysicalDeviceFormatProperties,
+        vkGetPhysicalDeviceFormatPropertiesSafe,
+        VkGetPhysicalDeviceImageFormatProperties,
+        pattern VkGetPhysicalDeviceImageFormatProperties,
+        HS_vkGetPhysicalDeviceImageFormatProperties,
+        PFN_vkGetPhysicalDeviceImageFormatProperties,
+        vkGetPhysicalDeviceImageFormatProperties,
+        vkGetPhysicalDeviceImageFormatPropertiesSafe,
+        VkGetPhysicalDeviceProperties,
+        pattern VkGetPhysicalDeviceProperties,
+        HS_vkGetPhysicalDeviceProperties,
+        PFN_vkGetPhysicalDeviceProperties, vkGetPhysicalDeviceProperties,
+        vkGetPhysicalDevicePropertiesSafe,
+        VkGetPhysicalDeviceQueueFamilyProperties,
+        pattern VkGetPhysicalDeviceQueueFamilyProperties,
+        HS_vkGetPhysicalDeviceQueueFamilyProperties,
+        PFN_vkGetPhysicalDeviceQueueFamilyProperties,
+        vkGetPhysicalDeviceQueueFamilyProperties,
+        vkGetPhysicalDeviceQueueFamilyPropertiesSafe,
+        VkGetPhysicalDeviceMemoryProperties,
+        pattern VkGetPhysicalDeviceMemoryProperties,
+        HS_vkGetPhysicalDeviceMemoryProperties,
+        PFN_vkGetPhysicalDeviceMemoryProperties,
+        vkGetPhysicalDeviceMemoryProperties,
+        vkGetPhysicalDeviceMemoryPropertiesSafe, VkGetInstanceProcAddr,
+        pattern VkGetInstanceProcAddr, HS_vkGetInstanceProcAddr,
+        PFN_vkGetInstanceProcAddr, vkGetInstanceProcAddr,
+        vkGetInstanceProcAddrSafe, VkGetDeviceProcAddr,
+        pattern VkGetDeviceProcAddr, HS_vkGetDeviceProcAddr,
+        PFN_vkGetDeviceProcAddr, vkGetDeviceProcAddr,
+        vkGetDeviceProcAddrSafe, module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Bitmasks,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Memory,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.Queue,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
+        module Graphics.Vulkan.Types.Funcpointers,
+        module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.FormatProperties,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        module Graphics.Vulkan.Types.Struct.QueueFamilyProperties,
+        -- ** Device commands
+        VkCreateDevice, pattern VkCreateDevice, HS_vkCreateDevice,
+        PFN_vkCreateDevice, vkCreateDevice, vkCreateDeviceSafe,
+        VkDestroyDevice, pattern VkDestroyDevice, HS_vkDestroyDevice,
+        PFN_vkDestroyDevice, vkDestroyDevice, vkDestroyDeviceSafe,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.Device,
+        -- ** Extension discovery commands
+        VkEnumerateInstanceExtensionProperties,
+        pattern VkEnumerateInstanceExtensionProperties,
+        HS_vkEnumerateInstanceExtensionProperties,
+        PFN_vkEnumerateInstanceExtensionProperties,
+        vkEnumerateInstanceExtensionProperties,
+        vkEnumerateInstanceExtensionPropertiesSafe,
+        VkEnumerateDeviceExtensionProperties,
+        pattern VkEnumerateDeviceExtensionProperties,
+        HS_vkEnumerateDeviceExtensionProperties,
+        PFN_vkEnumerateDeviceExtensionProperties,
+        vkEnumerateDeviceExtensionProperties,
+        vkEnumerateDeviceExtensionPropertiesSafe,
+        module Graphics.Vulkan.Types.Struct.ExtensionProperties,
+        -- ** Layer discovery commands
+        VkEnumerateInstanceLayerProperties,
+        pattern VkEnumerateInstanceLayerProperties,
+        HS_vkEnumerateInstanceLayerProperties,
+        PFN_vkEnumerateInstanceLayerProperties,
+        vkEnumerateInstanceLayerProperties,
+        vkEnumerateInstanceLayerPropertiesSafe,
+        VkEnumerateDeviceLayerProperties,
+        pattern VkEnumerateDeviceLayerProperties,
+        HS_vkEnumerateDeviceLayerProperties,
+        PFN_vkEnumerateDeviceLayerProperties,
+        vkEnumerateDeviceLayerProperties,
+        vkEnumerateDeviceLayerPropertiesSafe,
+        module Graphics.Vulkan.Types.Struct.LayerProperties,
+        -- ** queue commands
+        VkGetDeviceQueue, pattern VkGetDeviceQueue, HS_vkGetDeviceQueue,
+        PFN_vkGetDeviceQueue, vkGetDeviceQueue, vkGetDeviceQueueSafe,
+        VkQueueSubmit, pattern VkQueueSubmit, HS_vkQueueSubmit,
+        PFN_vkQueueSubmit, vkQueueSubmit, vkQueueSubmitSafe,
+        VkQueueWaitIdle, pattern VkQueueWaitIdle, HS_vkQueueWaitIdle,
+        PFN_vkQueueWaitIdle, vkQueueWaitIdle, vkQueueWaitIdleSafe,
+        VkDeviceWaitIdle, pattern VkDeviceWaitIdle, HS_vkDeviceWaitIdle,
+        PFN_vkDeviceWaitIdle, vkDeviceWaitIdle, vkDeviceWaitIdleSafe,
+        module Graphics.Vulkan.Types.Struct.SubmitInfo, -- ** Memory commands
+                                                        VkAllocateMemory,
+        pattern VkAllocateMemory, HS_vkAllocateMemory,
+        PFN_vkAllocateMemory, vkAllocateMemory, vkAllocateMemorySafe,
+        VkFreeMemory, pattern VkFreeMemory, HS_vkFreeMemory,
+        PFN_vkFreeMemory, vkFreeMemory, vkFreeMemorySafe, VkMapMemory,
+        pattern VkMapMemory, HS_vkMapMemory, PFN_vkMapMemory, vkMapMemory,
+        vkMapMemorySafe, VkUnmapMemory, pattern VkUnmapMemory,
+        HS_vkUnmapMemory, PFN_vkUnmapMemory, vkUnmapMemory,
+        vkUnmapMemorySafe, VkFlushMappedMemoryRanges,
+        pattern VkFlushMappedMemoryRanges, HS_vkFlushMappedMemoryRanges,
+        PFN_vkFlushMappedMemoryRanges, vkFlushMappedMemoryRanges,
+        vkFlushMappedMemoryRangesSafe, VkInvalidateMappedMemoryRanges,
+        pattern VkInvalidateMappedMemoryRanges,
+        HS_vkInvalidateMappedMemoryRanges,
+        PFN_vkInvalidateMappedMemoryRanges, vkInvalidateMappedMemoryRanges,
+        vkInvalidateMappedMemoryRangesSafe, VkGetDeviceMemoryCommitment,
+        pattern VkGetDeviceMemoryCommitment,
+        HS_vkGetDeviceMemoryCommitment, PFN_vkGetDeviceMemoryCommitment,
+        vkGetDeviceMemoryCommitment, vkGetDeviceMemoryCommitmentSafe,
+        module Graphics.Vulkan.Types.Struct.MappedMemoryRange,
+        -- ** Memory management API commands
+        VkBindBufferMemory, pattern VkBindBufferMemory,
+        HS_vkBindBufferMemory, PFN_vkBindBufferMemory, vkBindBufferMemory,
+        vkBindBufferMemorySafe, VkBindImageMemory,
+        pattern VkBindImageMemory, HS_vkBindImageMemory,
+        PFN_vkBindImageMemory, vkBindImageMemory, vkBindImageMemorySafe,
+        VkGetBufferMemoryRequirements,
+        pattern VkGetBufferMemoryRequirements,
+        HS_vkGetBufferMemoryRequirements,
+        PFN_vkGetBufferMemoryRequirements, vkGetBufferMemoryRequirements,
+        vkGetBufferMemoryRequirementsSafe, VkGetImageMemoryRequirements,
+        pattern VkGetImageMemoryRequirements,
+        HS_vkGetImageMemoryRequirements, PFN_vkGetImageMemoryRequirements,
+        vkGetImageMemoryRequirements, vkGetImageMemoryRequirementsSafe,
+        -- ** Sparse resource memory management API commands
+        VkGetImageSparseMemoryRequirements,
+        pattern VkGetImageSparseMemoryRequirements,
+        HS_vkGetImageSparseMemoryRequirements,
+        PFN_vkGetImageSparseMemoryRequirements,
+        vkGetImageSparseMemoryRequirements,
+        vkGetImageSparseMemoryRequirementsSafe,
+        VkGetPhysicalDeviceSparseImageFormatProperties,
+        pattern VkGetPhysicalDeviceSparseImageFormatProperties,
+        HS_vkGetPhysicalDeviceSparseImageFormatProperties,
+        PFN_vkGetPhysicalDeviceSparseImageFormatProperties,
+        vkGetPhysicalDeviceSparseImageFormatProperties,
+        vkGetPhysicalDeviceSparseImageFormatPropertiesSafe,
+        VkQueueBindSparse, pattern VkQueueBindSparse, HS_vkQueueBindSparse,
+        PFN_vkQueueBindSparse, vkQueueBindSparse, vkQueueBindSparseSafe,
+        module Graphics.Vulkan.Types.Enum.Sparse,
+        module Graphics.Vulkan.Types.Struct.Bind,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.Sparse, -- ** Fence commands
+                                                    VkCreateFence,
+        pattern VkCreateFence, HS_vkCreateFence, PFN_vkCreateFence,
+        vkCreateFence, vkCreateFenceSafe, VkDestroyFence,
+        pattern VkDestroyFence, HS_vkDestroyFence, PFN_vkDestroyFence,
+        vkDestroyFence, vkDestroyFenceSafe, VkResetFences,
+        pattern VkResetFences, HS_vkResetFences, PFN_vkResetFences,
+        vkResetFences, vkResetFencesSafe, VkGetFenceStatus,
+        pattern VkGetFenceStatus, HS_vkGetFenceStatus,
+        PFN_vkGetFenceStatus, vkGetFenceStatus, vkGetFenceStatusSafe,
+        VkWaitForFences, pattern VkWaitForFences, HS_vkWaitForFences,
+        PFN_vkWaitForFences, vkWaitForFences, vkWaitForFencesSafe,
+        module Graphics.Vulkan.Types.Enum.Fence,
+        module Graphics.Vulkan.Types.Struct.Fence, -- ** Queue semaphore commands
+                                                   VkCreateSemaphore,
+        pattern VkCreateSemaphore, HS_vkCreateSemaphore,
+        PFN_vkCreateSemaphore, vkCreateSemaphore, vkCreateSemaphoreSafe,
+        VkDestroySemaphore, pattern VkDestroySemaphore,
+        HS_vkDestroySemaphore, PFN_vkDestroySemaphore, vkDestroySemaphore,
+        vkDestroySemaphoreSafe,
+        module Graphics.Vulkan.Types.Struct.Semaphore, -- ** Event commands
+                                                       VkCreateEvent,
+        pattern VkCreateEvent, HS_vkCreateEvent, PFN_vkCreateEvent,
+        vkCreateEvent, vkCreateEventSafe, VkDestroyEvent,
+        pattern VkDestroyEvent, HS_vkDestroyEvent, PFN_vkDestroyEvent,
+        vkDestroyEvent, vkDestroyEventSafe, VkGetEventStatus,
+        pattern VkGetEventStatus, HS_vkGetEventStatus,
+        PFN_vkGetEventStatus, vkGetEventStatus, vkGetEventStatusSafe,
+        VkSetEvent, pattern VkSetEvent, HS_vkSetEvent, PFN_vkSetEvent,
+        vkSetEvent, vkSetEventSafe, VkResetEvent, pattern VkResetEvent,
+        HS_vkResetEvent, PFN_vkResetEvent, vkResetEvent, vkResetEventSafe,
+        module Graphics.Vulkan.Types.Struct.EventCreateInfo,
+        -- ** Query commands
+        VkCreateQueryPool, pattern VkCreateQueryPool, HS_vkCreateQueryPool,
+        PFN_vkCreateQueryPool, vkCreateQueryPool, vkCreateQueryPoolSafe,
+        VkDestroyQueryPool, pattern VkDestroyQueryPool,
+        HS_vkDestroyQueryPool, PFN_vkDestroyQueryPool, vkDestroyQueryPool,
+        vkDestroyQueryPoolSafe, VkGetQueryPoolResults,
+        pattern VkGetQueryPoolResults, HS_vkGetQueryPoolResults,
+        PFN_vkGetQueryPoolResults, vkGetQueryPoolResults,
+        vkGetQueryPoolResultsSafe, module Graphics.Vulkan.Types.Enum.Query,
+        module Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo,
+        -- ** Buffer commands
+        VkCreateBuffer, pattern VkCreateBuffer, HS_vkCreateBuffer,
+        PFN_vkCreateBuffer, vkCreateBuffer, vkCreateBufferSafe,
+        VkDestroyBuffer, pattern VkDestroyBuffer, HS_vkDestroyBuffer,
+        PFN_vkDestroyBuffer, vkDestroyBuffer, vkDestroyBufferSafe,
+        module Graphics.Vulkan.Types.Enum.Buffer,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Struct.Buffer, -- ** Buffer view commands
+                                                    VkCreateBufferView,
+        pattern VkCreateBufferView, HS_vkCreateBufferView,
+        PFN_vkCreateBufferView, vkCreateBufferView, vkCreateBufferViewSafe,
+        VkDestroyBufferView, pattern VkDestroyBufferView,
+        HS_vkDestroyBufferView, PFN_vkDestroyBufferView,
+        vkDestroyBufferView, vkDestroyBufferViewSafe, -- ** Image commands
+                                                      VkCreateImage,
+        pattern VkCreateImage, HS_vkCreateImage, PFN_vkCreateImage,
+        vkCreateImage, vkCreateImageSafe, VkDestroyImage,
+        pattern VkDestroyImage, HS_vkDestroyImage, PFN_vkDestroyImage,
+        vkDestroyImage, vkDestroyImageSafe, VkGetImageSubresourceLayout,
+        pattern VkGetImageSubresourceLayout,
+        HS_vkGetImageSubresourceLayout, PFN_vkGetImageSubresourceLayout,
+        vkGetImageSubresourceLayout, vkGetImageSubresourceLayoutSafe,
+        module Graphics.Vulkan.Types.Struct.SubresourceLayout,
+        -- ** Image view commands
+        VkCreateImageView, pattern VkCreateImageView, HS_vkCreateImageView,
+        PFN_vkCreateImageView, vkCreateImageView, vkCreateImageViewSafe,
+        VkDestroyImageView, pattern VkDestroyImageView,
+        HS_vkDestroyImageView, PFN_vkDestroyImageView, vkDestroyImageView,
+        vkDestroyImageViewSafe,
+        module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
+        module Graphics.Vulkan.Types.Struct.ComponentMapping,
+        -- ** Shader commands
+        VkCreateShaderModule, pattern VkCreateShaderModule,
+        HS_vkCreateShaderModule, PFN_vkCreateShaderModule,
+        vkCreateShaderModule, vkCreateShaderModuleSafe,
+        VkDestroyShaderModule, pattern VkDestroyShaderModule,
+        HS_vkDestroyShaderModule, PFN_vkDestroyShaderModule,
+        vkDestroyShaderModule, vkDestroyShaderModuleSafe,
+        module Graphics.Vulkan.Types.Struct.Shader, -- ** Pipeline Cache commands
+                                                    VkCreatePipelineCache,
+        pattern VkCreatePipelineCache, HS_vkCreatePipelineCache,
+        PFN_vkCreatePipelineCache, vkCreatePipelineCache,
+        vkCreatePipelineCacheSafe, VkDestroyPipelineCache,
+        pattern VkDestroyPipelineCache, HS_vkDestroyPipelineCache,
+        PFN_vkDestroyPipelineCache, vkDestroyPipelineCache,
+        vkDestroyPipelineCacheSafe, VkGetPipelineCacheData,
+        pattern VkGetPipelineCacheData, HS_vkGetPipelineCacheData,
+        PFN_vkGetPipelineCacheData, vkGetPipelineCacheData,
+        vkGetPipelineCacheDataSafe, VkMergePipelineCaches,
+        pattern VkMergePipelineCaches, HS_vkMergePipelineCaches,
+        PFN_vkMergePipelineCaches, vkMergePipelineCaches,
+        vkMergePipelineCachesSafe,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        -- ** Pipeline commands
+        VkCreateGraphicsPipelines, pattern VkCreateGraphicsPipelines,
+        HS_vkCreateGraphicsPipelines, PFN_vkCreateGraphicsPipelines,
+        vkCreateGraphicsPipelines, vkCreateGraphicsPipelinesSafe,
+        VkCreateComputePipelines, pattern VkCreateComputePipelines,
+        HS_vkCreateComputePipelines, PFN_vkCreateComputePipelines,
+        vkCreateComputePipelines, vkCreateComputePipelinesSafe,
+        VkDestroyPipeline, pattern VkDestroyPipeline, HS_vkDestroyPipeline,
+        PFN_vkDestroyPipeline, vkDestroyPipeline, vkDestroyPipelineSafe,
+        module Graphics.Vulkan.Types.Enum.Blend,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompareOp,
+        module Graphics.Vulkan.Types.Enum.CullModeFlags,
+        module Graphics.Vulkan.Types.Enum.DynamicState,
+        module Graphics.Vulkan.Types.Enum.FrontFace,
+        module Graphics.Vulkan.Types.Enum.LogicOp,
+        module Graphics.Vulkan.Types.Enum.PolygonMode,
+        module Graphics.Vulkan.Types.Enum.PrimitiveTopology,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Enum.Stencil,
+        module Graphics.Vulkan.Types.Enum.VertexInputRate,
+        module Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Struct.Specialization,
+        module Graphics.Vulkan.Types.Struct.StencilOpState,
+        module Graphics.Vulkan.Types.Struct.VertexInput,
+        module Graphics.Vulkan.Types.Struct.Viewport,
+        -- ** Pipeline layout commands
+        VkCreatePipelineLayout, pattern VkCreatePipelineLayout,
+        HS_vkCreatePipelineLayout, PFN_vkCreatePipelineLayout,
+        vkCreatePipelineLayout, vkCreatePipelineLayoutSafe,
+        VkDestroyPipelineLayout, pattern VkDestroyPipelineLayout,
+        HS_vkDestroyPipelineLayout, PFN_vkDestroyPipelineLayout,
+        vkDestroyPipelineLayout, vkDestroyPipelineLayoutSafe,
+        module Graphics.Vulkan.Types.Struct.PushConstantRange,
+        -- ** Sampler commands
+        VkCreateSampler, pattern VkCreateSampler, HS_vkCreateSampler,
+        PFN_vkCreateSampler, vkCreateSampler, vkCreateSamplerSafe,
+        VkDestroySampler, pattern VkDestroySampler, HS_vkDestroySampler,
+        PFN_vkDestroySampler, vkDestroySampler, vkDestroySamplerSafe,
+        module Graphics.Vulkan.Types.Enum.BorderColor,
+        module Graphics.Vulkan.Types.Enum.Filter,
+        module Graphics.Vulkan.Types.Enum.Sampler,
+        module Graphics.Vulkan.Types.Struct.Sampler,
+        -- ** Descriptor set commands
+        VkCreateDescriptorSetLayout, pattern VkCreateDescriptorSetLayout,
+        HS_vkCreateDescriptorSetLayout, PFN_vkCreateDescriptorSetLayout,
+        vkCreateDescriptorSetLayout, vkCreateDescriptorSetLayoutSafe,
+        VkDestroyDescriptorSetLayout, pattern VkDestroyDescriptorSetLayout,
+        HS_vkDestroyDescriptorSetLayout, PFN_vkDestroyDescriptorSetLayout,
+        vkDestroyDescriptorSetLayout, vkDestroyDescriptorSetLayoutSafe,
+        VkCreateDescriptorPool, pattern VkCreateDescriptorPool,
+        HS_vkCreateDescriptorPool, PFN_vkCreateDescriptorPool,
+        vkCreateDescriptorPool, vkCreateDescriptorPoolSafe,
+        VkDestroyDescriptorPool, pattern VkDestroyDescriptorPool,
+        HS_vkDestroyDescriptorPool, PFN_vkDestroyDescriptorPool,
+        vkDestroyDescriptorPool, vkDestroyDescriptorPoolSafe,
+        VkResetDescriptorPool, pattern VkResetDescriptorPool,
+        HS_vkResetDescriptorPool, PFN_vkResetDescriptorPool,
+        vkResetDescriptorPool, vkResetDescriptorPoolSafe,
+        VkAllocateDescriptorSets, pattern VkAllocateDescriptorSets,
+        HS_vkAllocateDescriptorSets, PFN_vkAllocateDescriptorSets,
+        vkAllocateDescriptorSets, vkAllocateDescriptorSetsSafe,
+        VkFreeDescriptorSets, pattern VkFreeDescriptorSets,
+        HS_vkFreeDescriptorSets, PFN_vkFreeDescriptorSets,
+        vkFreeDescriptorSets, vkFreeDescriptorSetsSafe,
+        VkUpdateDescriptorSets, pattern VkUpdateDescriptorSets,
+        HS_vkUpdateDescriptorSets, PFN_vkUpdateDescriptorSets,
+        vkUpdateDescriptorSets, vkUpdateDescriptorSetsSafe,
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        module Graphics.Vulkan.Types.Struct.CopyDescriptorSet,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        module Graphics.Vulkan.Types.Struct.WriteDescriptorSet,
+        -- ** Pass commands
+        VkCreateFramebuffer, pattern VkCreateFramebuffer,
+        HS_vkCreateFramebuffer, PFN_vkCreateFramebuffer,
+        vkCreateFramebuffer, vkCreateFramebufferSafe, VkDestroyFramebuffer,
+        pattern VkDestroyFramebuffer, HS_vkDestroyFramebuffer,
+        PFN_vkDestroyFramebuffer, vkDestroyFramebuffer,
+        vkDestroyFramebufferSafe, VkCreateRenderPass,
+        pattern VkCreateRenderPass, HS_vkCreateRenderPass,
+        PFN_vkCreateRenderPass, vkCreateRenderPass, vkCreateRenderPassSafe,
+        VkDestroyRenderPass, pattern VkDestroyRenderPass,
+        HS_vkDestroyRenderPass, PFN_vkDestroyRenderPass,
+        vkDestroyRenderPass, vkDestroyRenderPassSafe,
+        VkGetRenderAreaGranularity, pattern VkGetRenderAreaGranularity,
+        HS_vkGetRenderAreaGranularity, PFN_vkGetRenderAreaGranularity,
+        vkGetRenderAreaGranularity, vkGetRenderAreaGranularitySafe,
+        module Graphics.Vulkan.Types.Enum.AccessFlags,
+        module Graphics.Vulkan.Types.Enum.Attachment,
+        module Graphics.Vulkan.Types.Enum.DependencyFlags,
+        module Graphics.Vulkan.Types.Enum.Subpass,
+        module Graphics.Vulkan.Types.Struct.Attachment,
+        module Graphics.Vulkan.Types.Struct.FramebufferCreateInfo,
+        module Graphics.Vulkan.Types.Struct.RenderPass,
+        module Graphics.Vulkan.Types.Struct.Subpass, -- ** Command pool commands
+                                                     VkCreateCommandPool,
+        pattern VkCreateCommandPool, HS_vkCreateCommandPool,
+        PFN_vkCreateCommandPool, vkCreateCommandPool,
+        vkCreateCommandPoolSafe, VkDestroyCommandPool,
+        pattern VkDestroyCommandPool, HS_vkDestroyCommandPool,
+        PFN_vkDestroyCommandPool, vkDestroyCommandPool,
+        vkDestroyCommandPoolSafe, VkResetCommandPool,
+        pattern VkResetCommandPool, HS_vkResetCommandPool,
+        PFN_vkResetCommandPool, vkResetCommandPool, vkResetCommandPoolSafe,
+        module Graphics.Vulkan.Types.Enum.Command,
+        module Graphics.Vulkan.Types.Struct.Command,
+        -- ** Command buffer commands
+        VkAllocateCommandBuffers, pattern VkAllocateCommandBuffers,
+        HS_vkAllocateCommandBuffers, PFN_vkAllocateCommandBuffers,
+        vkAllocateCommandBuffers, vkAllocateCommandBuffersSafe,
+        VkFreeCommandBuffers, pattern VkFreeCommandBuffers,
+        HS_vkFreeCommandBuffers, PFN_vkFreeCommandBuffers,
+        vkFreeCommandBuffers, vkFreeCommandBuffersSafe,
+        VkBeginCommandBuffer, pattern VkBeginCommandBuffer,
+        HS_vkBeginCommandBuffer, PFN_vkBeginCommandBuffer,
+        vkBeginCommandBuffer, vkBeginCommandBufferSafe, VkEndCommandBuffer,
+        pattern VkEndCommandBuffer, HS_vkEndCommandBuffer,
+        PFN_vkEndCommandBuffer, vkEndCommandBuffer, vkEndCommandBufferSafe,
+        VkResetCommandBuffer, pattern VkResetCommandBuffer,
+        HS_vkResetCommandBuffer, PFN_vkResetCommandBuffer,
+        vkResetCommandBuffer, vkResetCommandBufferSafe, -- ** Command buffer building commands
+                                                        VkCmdBindPipeline,
+        pattern VkCmdBindPipeline, HS_vkCmdBindPipeline,
+        PFN_vkCmdBindPipeline, vkCmdBindPipeline, vkCmdBindPipelineSafe,
+        VkCmdSetViewport, pattern VkCmdSetViewport, HS_vkCmdSetViewport,
+        PFN_vkCmdSetViewport, vkCmdSetViewport, vkCmdSetViewportSafe,
+        VkCmdSetScissor, pattern VkCmdSetScissor, HS_vkCmdSetScissor,
+        PFN_vkCmdSetScissor, vkCmdSetScissor, vkCmdSetScissorSafe,
+        VkCmdSetLineWidth, pattern VkCmdSetLineWidth, HS_vkCmdSetLineWidth,
+        PFN_vkCmdSetLineWidth, vkCmdSetLineWidth, vkCmdSetLineWidthSafe,
+        VkCmdSetDepthBias, pattern VkCmdSetDepthBias, HS_vkCmdSetDepthBias,
+        PFN_vkCmdSetDepthBias, vkCmdSetDepthBias, vkCmdSetDepthBiasSafe,
+        VkCmdSetBlendConstants, pattern VkCmdSetBlendConstants,
+        HS_vkCmdSetBlendConstants, PFN_vkCmdSetBlendConstants,
+        vkCmdSetBlendConstants, vkCmdSetBlendConstantsSafe,
+        VkCmdSetDepthBounds, pattern VkCmdSetDepthBounds,
+        HS_vkCmdSetDepthBounds, PFN_vkCmdSetDepthBounds,
+        vkCmdSetDepthBounds, vkCmdSetDepthBoundsSafe,
+        VkCmdSetStencilCompareMask, pattern VkCmdSetStencilCompareMask,
+        HS_vkCmdSetStencilCompareMask, PFN_vkCmdSetStencilCompareMask,
+        vkCmdSetStencilCompareMask, vkCmdSetStencilCompareMaskSafe,
+        VkCmdSetStencilWriteMask, pattern VkCmdSetStencilWriteMask,
+        HS_vkCmdSetStencilWriteMask, PFN_vkCmdSetStencilWriteMask,
+        vkCmdSetStencilWriteMask, vkCmdSetStencilWriteMaskSafe,
+        VkCmdSetStencilReference, pattern VkCmdSetStencilReference,
+        HS_vkCmdSetStencilReference, PFN_vkCmdSetStencilReference,
+        vkCmdSetStencilReference, vkCmdSetStencilReferenceSafe,
+        VkCmdBindDescriptorSets, pattern VkCmdBindDescriptorSets,
+        HS_vkCmdBindDescriptorSets, PFN_vkCmdBindDescriptorSets,
+        vkCmdBindDescriptorSets, vkCmdBindDescriptorSetsSafe,
+        VkCmdBindIndexBuffer, pattern VkCmdBindIndexBuffer,
+        HS_vkCmdBindIndexBuffer, PFN_vkCmdBindIndexBuffer,
+        vkCmdBindIndexBuffer, vkCmdBindIndexBufferSafe,
+        VkCmdBindVertexBuffers, pattern VkCmdBindVertexBuffers,
+        HS_vkCmdBindVertexBuffers, PFN_vkCmdBindVertexBuffers,
+        vkCmdBindVertexBuffers, vkCmdBindVertexBuffersSafe, VkCmdDraw,
+        pattern VkCmdDraw, HS_vkCmdDraw, PFN_vkCmdDraw, vkCmdDraw,
+        vkCmdDrawSafe, VkCmdDrawIndexed, pattern VkCmdDrawIndexed,
+        HS_vkCmdDrawIndexed, PFN_vkCmdDrawIndexed, vkCmdDrawIndexed,
+        vkCmdDrawIndexedSafe, VkCmdDrawIndirect, pattern VkCmdDrawIndirect,
+        HS_vkCmdDrawIndirect, PFN_vkCmdDrawIndirect, vkCmdDrawIndirect,
+        vkCmdDrawIndirectSafe, VkCmdDrawIndexedIndirect,
+        pattern VkCmdDrawIndexedIndirect, HS_vkCmdDrawIndexedIndirect,
+        PFN_vkCmdDrawIndexedIndirect, vkCmdDrawIndexedIndirect,
+        vkCmdDrawIndexedIndirectSafe, VkCmdDispatch, pattern VkCmdDispatch,
+        HS_vkCmdDispatch, PFN_vkCmdDispatch, vkCmdDispatch,
+        vkCmdDispatchSafe, VkCmdDispatchIndirect,
+        pattern VkCmdDispatchIndirect, HS_vkCmdDispatchIndirect,
+        PFN_vkCmdDispatchIndirect, vkCmdDispatchIndirect,
+        vkCmdDispatchIndirectSafe, VkCmdCopyBuffer,
+        pattern VkCmdCopyBuffer, HS_vkCmdCopyBuffer, PFN_vkCmdCopyBuffer,
+        vkCmdCopyBuffer, vkCmdCopyBufferSafe, VkCmdCopyImage,
+        pattern VkCmdCopyImage, HS_vkCmdCopyImage, PFN_vkCmdCopyImage,
+        vkCmdCopyImage, vkCmdCopyImageSafe, VkCmdBlitImage,
+        pattern VkCmdBlitImage, HS_vkCmdBlitImage, PFN_vkCmdBlitImage,
+        vkCmdBlitImage, vkCmdBlitImageSafe, VkCmdCopyBufferToImage,
+        pattern VkCmdCopyBufferToImage, HS_vkCmdCopyBufferToImage,
+        PFN_vkCmdCopyBufferToImage, vkCmdCopyBufferToImage,
+        vkCmdCopyBufferToImageSafe, VkCmdCopyImageToBuffer,
+        pattern VkCmdCopyImageToBuffer, HS_vkCmdCopyImageToBuffer,
+        PFN_vkCmdCopyImageToBuffer, vkCmdCopyImageToBuffer,
+        vkCmdCopyImageToBufferSafe, VkCmdUpdateBuffer,
+        pattern VkCmdUpdateBuffer, HS_vkCmdUpdateBuffer,
+        PFN_vkCmdUpdateBuffer, vkCmdUpdateBuffer, vkCmdUpdateBufferSafe,
+        VkCmdFillBuffer, pattern VkCmdFillBuffer, HS_vkCmdFillBuffer,
+        PFN_vkCmdFillBuffer, vkCmdFillBuffer, vkCmdFillBufferSafe,
+        VkCmdClearColorImage, pattern VkCmdClearColorImage,
+        HS_vkCmdClearColorImage, PFN_vkCmdClearColorImage,
+        vkCmdClearColorImage, vkCmdClearColorImageSafe,
+        VkCmdClearDepthStencilImage, pattern VkCmdClearDepthStencilImage,
+        HS_vkCmdClearDepthStencilImage, PFN_vkCmdClearDepthStencilImage,
+        vkCmdClearDepthStencilImage, vkCmdClearDepthStencilImageSafe,
+        VkCmdClearAttachments, pattern VkCmdClearAttachments,
+        HS_vkCmdClearAttachments, PFN_vkCmdClearAttachments,
+        vkCmdClearAttachments, vkCmdClearAttachmentsSafe,
+        VkCmdResolveImage, pattern VkCmdResolveImage, HS_vkCmdResolveImage,
+        PFN_vkCmdResolveImage, vkCmdResolveImage, vkCmdResolveImageSafe,
+        VkCmdSetEvent, pattern VkCmdSetEvent, HS_vkCmdSetEvent,
+        PFN_vkCmdSetEvent, vkCmdSetEvent, vkCmdSetEventSafe,
+        VkCmdResetEvent, pattern VkCmdResetEvent, HS_vkCmdResetEvent,
+        PFN_vkCmdResetEvent, vkCmdResetEvent, vkCmdResetEventSafe,
+        VkCmdWaitEvents, pattern VkCmdWaitEvents, HS_vkCmdWaitEvents,
+        PFN_vkCmdWaitEvents, vkCmdWaitEvents, vkCmdWaitEventsSafe,
+        VkCmdPipelineBarrier, pattern VkCmdPipelineBarrier,
+        HS_vkCmdPipelineBarrier, PFN_vkCmdPipelineBarrier,
+        vkCmdPipelineBarrier, vkCmdPipelineBarrierSafe, VkCmdBeginQuery,
+        pattern VkCmdBeginQuery, HS_vkCmdBeginQuery, PFN_vkCmdBeginQuery,
+        vkCmdBeginQuery, vkCmdBeginQuerySafe, VkCmdEndQuery,
+        pattern VkCmdEndQuery, HS_vkCmdEndQuery, PFN_vkCmdEndQuery,
+        vkCmdEndQuery, vkCmdEndQuerySafe, VkCmdResetQueryPool,
+        pattern VkCmdResetQueryPool, HS_vkCmdResetQueryPool,
+        PFN_vkCmdResetQueryPool, vkCmdResetQueryPool,
+        vkCmdResetQueryPoolSafe, VkCmdWriteTimestamp,
+        pattern VkCmdWriteTimestamp, HS_vkCmdWriteTimestamp,
+        PFN_vkCmdWriteTimestamp, vkCmdWriteTimestamp,
+        vkCmdWriteTimestampSafe, VkCmdCopyQueryPoolResults,
+        pattern VkCmdCopyQueryPoolResults, HS_vkCmdCopyQueryPoolResults,
+        PFN_vkCmdCopyQueryPoolResults, vkCmdCopyQueryPoolResults,
+        vkCmdCopyQueryPoolResultsSafe, VkCmdPushConstants,
+        pattern VkCmdPushConstants, HS_vkCmdPushConstants,
+        PFN_vkCmdPushConstants, vkCmdPushConstants, vkCmdPushConstantsSafe,
+        VkCmdBeginRenderPass, pattern VkCmdBeginRenderPass,
+        HS_vkCmdBeginRenderPass, PFN_vkCmdBeginRenderPass,
+        vkCmdBeginRenderPass, vkCmdBeginRenderPassSafe, VkCmdNextSubpass,
+        pattern VkCmdNextSubpass, HS_vkCmdNextSubpass,
+        PFN_vkCmdNextSubpass, vkCmdNextSubpass, vkCmdNextSubpassSafe,
+        VkCmdEndRenderPass, pattern VkCmdEndRenderPass,
+        HS_vkCmdEndRenderPass, PFN_vkCmdEndRenderPass, vkCmdEndRenderPass,
+        vkCmdEndRenderPassSafe, VkCmdExecuteCommands,
+        pattern VkCmdExecuteCommands, HS_vkCmdExecuteCommands,
+        PFN_vkCmdExecuteCommands, vkCmdExecuteCommands,
+        vkCmdExecuteCommandsSafe,
+        module Graphics.Vulkan.Types.Enum.IndexType,
+        module Graphics.Vulkan.Types.Struct.Clear,
+        -- ** Types not directly used by the API. Include e.g. structs that are not parameter types of commands, but still defined by the API.
+        module Graphics.Vulkan.Types.Struct.DispatchIndirectCommand,
+        module Graphics.Vulkan.Types.Struct.DrawInd,
+        module Graphics.Vulkan.Types.Enum.Object)
+       where
+import           GHC.Ptr                                                (Ptr (..))
+import           Graphics.Vulkan.Constants                              (pattern VK_ATTACHMENT_UNUSED,
+                                                                         pattern VK_FALSE,
+                                                                         pattern VK_LOD_CLAMP_NONE,
+                                                                         pattern VK_QUEUE_FAMILY_IGNORED,
+                                                                         pattern VK_REMAINING_ARRAY_LAYERS,
+                                                                         pattern VK_REMAINING_MIP_LEVELS,
+                                                                         pattern VK_SUBPASS_EXTERNAL,
+                                                                         pattern VK_TRUE,
+                                                                         pattern VK_WHOLE_SIZE)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Bitmasks
+import           Graphics.Vulkan.Types.Enum.AccessFlags
+import           Graphics.Vulkan.Types.Enum.Attachment
+import           Graphics.Vulkan.Types.Enum.Blend
+import           Graphics.Vulkan.Types.Enum.BorderColor
+import           Graphics.Vulkan.Types.Enum.Buffer
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.Command
+import           Graphics.Vulkan.Types.Enum.CompareOp
+import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import           Graphics.Vulkan.Types.Enum.CullModeFlags
+import           Graphics.Vulkan.Types.Enum.DependencyFlags
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.DynamicState
+import           Graphics.Vulkan.Types.Enum.Fence
+import           Graphics.Vulkan.Types.Enum.Filter
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.FrontFace
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.IndexType
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.LogicOp
+import           Graphics.Vulkan.Types.Enum.Memory
+import           Graphics.Vulkan.Types.Enum.Object
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.PolygonMode
+import           Graphics.Vulkan.Types.Enum.PrimitiveTopology
+import           Graphics.Vulkan.Types.Enum.Query
+import           Graphics.Vulkan.Types.Enum.Queue
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Sampler
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.Sparse
+import           Graphics.Vulkan.Types.Enum.Stencil
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Subpass
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.VertexInputRate
+import           Graphics.Vulkan.Types.Funcpointers
+import           Graphics.Vulkan.Types.Handles
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.ApplicationInfo
+import           Graphics.Vulkan.Types.Struct.Attachment
+import           Graphics.Vulkan.Types.Struct.Bind
+import           Graphics.Vulkan.Types.Struct.Buffer
+import           Graphics.Vulkan.Types.Struct.Clear
+import           Graphics.Vulkan.Types.Struct.Command
+import           Graphics.Vulkan.Types.Struct.ComponentMapping
+import           Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
+import           Graphics.Vulkan.Types.Struct.CopyDescriptorSet
+import           Graphics.Vulkan.Types.Struct.Descriptor
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
+import           Graphics.Vulkan.Types.Struct.DrawInd
+import           Graphics.Vulkan.Types.Struct.EventCreateInfo
+import           Graphics.Vulkan.Types.Struct.ExtensionProperties
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Fence
+import           Graphics.Vulkan.Types.Struct.FormatProperties
+import           Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+import           Graphics.Vulkan.Types.Struct.LayerProperties
+import           Graphics.Vulkan.Types.Struct.MappedMemoryRange
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.PushConstantRange
+import           Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
+import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.RenderPass
+import           Graphics.Vulkan.Types.Struct.Sampler
+import           Graphics.Vulkan.Types.Struct.Semaphore
+import           Graphics.Vulkan.Types.Struct.Shader
+import           Graphics.Vulkan.Types.Struct.Sparse
+import           Graphics.Vulkan.Types.Struct.Specialization
+import           Graphics.Vulkan.Types.Struct.StencilOpState
+import           Graphics.Vulkan.Types.Struct.SubmitInfo
+import           Graphics.Vulkan.Types.Struct.Subpass
+import           Graphics.Vulkan.Types.Struct.SubresourceLayout
+import           Graphics.Vulkan.Types.Struct.VertexInput
+import           Graphics.Vulkan.Types.Struct.Viewport
+import           Graphics.Vulkan.Types.Struct.WriteDescriptorSet
+import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
+
+pattern VkCreateInstance :: CString
+
+pattern VkCreateInstance <- (is_VkCreateInstance -> True)
+  where VkCreateInstance = _VkCreateInstance
+
+{-# INLINE _VkCreateInstance #-}
+
+_VkCreateInstance :: CString
+_VkCreateInstance = Ptr "vkCreateInstance\NUL"##
+
+{-# INLINE is_VkCreateInstance #-}
+
+is_VkCreateInstance :: CString -> Bool
+is_VkCreateInstance = (EQ ==) . cmpCStrings _VkCreateInstance
+
+type VkCreateInstance = "vkCreateInstance"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
+--
+-- > VkResult vkCreateInstance
+-- >     ( const VkInstanceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkInstance* pInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateInstance vkCreateInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateInstance" vkCreateInstance ::
+               Ptr VkInstanceCreateInfo -- ^ pCreateInfo
+                                        ->
+                 Ptr VkAllocationCallbacks -- ^ pAllocator
+                                           -> Ptr VkInstance -- ^ pInstance
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
+--
+-- > VkResult vkCreateInstance
+-- >     ( const VkInstanceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkInstance* pInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateInstance vkCreateInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateInstanceSafe@ and @vkCreateInstance@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateInstance <- vkGetInstanceProc @VkCreateInstance VK_NULL
+--
+-- or less efficient:
+--
+-- > myCreateInstance <- vkGetProc @VkCreateInstance
+--
+vkCreateInstance ::
+                 Ptr VkInstanceCreateInfo -- ^ pCreateInfo
+                                          ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkInstance -- ^ pInstance
+                                                               -> IO VkResult
+vkCreateInstance
+  = unsafeDupablePerformIO (vkGetProc @VkCreateInstance)
+
+{-# NOINLINE vkCreateInstance #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
+--
+-- > VkResult vkCreateInstance
+-- >     ( const VkInstanceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkInstance* pInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateInstance vkCreateInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateInstance" vkCreateInstanceSafe
+               ::
+               Ptr VkInstanceCreateInfo -- ^ pCreateInfo
+                                        ->
+                 Ptr VkAllocationCallbacks -- ^ pAllocator
+                                           -> Ptr VkInstance -- ^ pInstance
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
+--
+-- > VkResult vkCreateInstance
+-- >     ( const VkInstanceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkInstance* pInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateInstance vkCreateInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateInstanceSafe@ and @vkCreateInstance@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateInstance <- vkGetInstanceProc @VkCreateInstance VK_NULL
+--
+-- or less efficient:
+--
+-- > myCreateInstance <- vkGetProc @VkCreateInstance
+--
+vkCreateInstanceSafe ::
+                     Ptr VkInstanceCreateInfo -- ^ pCreateInfo
+                                              ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkInstance -- ^ pInstance
+                                                                   -> IO VkResult
+vkCreateInstanceSafe = vkCreateInstance
+
+{-# INLINE vkCreateInstanceSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_LAYER_NOT_PRESENT', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_INCOMPATIBLE_DRIVER'.
+--
+--   > VkResult vkCreateInstance
+--   >     ( const VkInstanceCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkInstance* pInstance
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateInstance vkCreateInstance registry at www.khronos.org>
+type HS_vkCreateInstance =
+     Ptr VkInstanceCreateInfo -- ^ pCreateInfo
+                              ->
+       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                 -> Ptr VkInstance -- ^ pInstance
+                                                   -> IO VkResult
+
+type PFN_vkCreateInstance = FunPtr HS_vkCreateInstance
+
+foreign import ccall "dynamic" unwrapVkCreateInstance ::
+               PFN_vkCreateInstance -> HS_vkCreateInstance
+
+instance VulkanProc "vkCreateInstance" where
+        type VkProcType "vkCreateInstance" = HS_vkCreateInstance
+        vkProcSymbol = _VkCreateInstance
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateInstance
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyInstance :: CString
+
+pattern VkDestroyInstance <- (is_VkDestroyInstance -> True)
+  where VkDestroyInstance = _VkDestroyInstance
+
+{-# INLINE _VkDestroyInstance #-}
+
+_VkDestroyInstance :: CString
+_VkDestroyInstance = Ptr "vkDestroyInstance\NUL"##
+
+{-# INLINE is_VkDestroyInstance #-}
+
+is_VkDestroyInstance :: CString -> Bool
+is_VkDestroyInstance = (EQ ==) . cmpCStrings _VkDestroyInstance
+
+type VkDestroyInstance = "vkDestroyInstance"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyInstance
+-- >     ( VkInstance instance
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyInstance vkDestroyInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyInstance" vkDestroyInstance
+               :: VkInstance -- ^ instance
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+##else
+-- |
+-- > void vkDestroyInstance
+-- >     ( VkInstance instance
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyInstance vkDestroyInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyInstanceSafe@ and @vkDestroyInstance@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyInstance <- vkGetInstanceProc @VkDestroyInstance vkInstance
+--
+-- or less efficient:
+--
+-- > myDestroyInstance <- vkGetProc @VkDestroyInstance
+--
+vkDestroyInstance ::
+                  VkInstance -- ^ instance
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+vkDestroyInstance
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyInstance)
+
+{-# NOINLINE vkDestroyInstance #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyInstance
+-- >     ( VkInstance instance
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyInstance vkDestroyInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyInstance" vkDestroyInstanceSafe
+               :: VkInstance -- ^ instance
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+##else
+-- |
+-- > void vkDestroyInstance
+-- >     ( VkInstance instance
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyInstance vkDestroyInstance registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyInstanceSafe@ and @vkDestroyInstance@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyInstance <- vkGetInstanceProc @VkDestroyInstance vkInstance
+--
+-- or less efficient:
+--
+-- > myDestroyInstance <- vkGetProc @VkDestroyInstance
+--
+vkDestroyInstanceSafe ::
+                      VkInstance -- ^ instance
+                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                              -> IO ()
+vkDestroyInstanceSafe = vkDestroyInstance
+
+{-# INLINE vkDestroyInstanceSafe #-}
+##endif
+
+-- | > void vkDestroyInstance
+--   >     ( VkInstance instance
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyInstance vkDestroyInstance registry at www.khronos.org>
+type HS_vkDestroyInstance =
+     VkInstance -- ^ instance
+                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> IO ()
+
+type PFN_vkDestroyInstance = FunPtr HS_vkDestroyInstance
+
+foreign import ccall "dynamic" unwrapVkDestroyInstance ::
+               PFN_vkDestroyInstance -> HS_vkDestroyInstance
+
+instance VulkanProc "vkDestroyInstance" where
+        type VkProcType "vkDestroyInstance" = HS_vkDestroyInstance
+        vkProcSymbol = _VkDestroyInstance
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyInstance
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEnumeratePhysicalDevices :: CString
+
+pattern VkEnumeratePhysicalDevices <-
+        (is_VkEnumeratePhysicalDevices -> True)
+  where VkEnumeratePhysicalDevices = _VkEnumeratePhysicalDevices
+
+{-# INLINE _VkEnumeratePhysicalDevices #-}
+
+_VkEnumeratePhysicalDevices :: CString
+_VkEnumeratePhysicalDevices = Ptr "vkEnumeratePhysicalDevices\NUL"##
+
+{-# INLINE is_VkEnumeratePhysicalDevices #-}
+
+is_VkEnumeratePhysicalDevices :: CString -> Bool
+is_VkEnumeratePhysicalDevices
+  = (EQ ==) . cmpCStrings _VkEnumeratePhysicalDevices
+
+type VkEnumeratePhysicalDevices = "vkEnumeratePhysicalDevices"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDevices
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceCount
+-- >     , VkPhysicalDevice* pPhysicalDevices
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumeratePhysicalDevices"
+               vkEnumeratePhysicalDevices ::
+               VkInstance -- ^ instance
+                          -> Ptr Word32 -- ^ pPhysicalDeviceCount
+                                        -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDevices
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceCount
+-- >     , VkPhysicalDevice* pPhysicalDevices
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumeratePhysicalDevicesSafe@ and @vkEnumeratePhysicalDevices@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumeratePhysicalDevices <- vkGetInstanceProc @VkEnumeratePhysicalDevices vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumeratePhysicalDevices <- vkGetProc @VkEnumeratePhysicalDevices
+--
+vkEnumeratePhysicalDevices ::
+                           VkInstance -- ^ instance
+                                      -> Ptr Word32 -- ^ pPhysicalDeviceCount
+                                                    -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
+                                                                            -> IO VkResult
+vkEnumeratePhysicalDevices
+  = unsafeDupablePerformIO (vkGetProc @VkEnumeratePhysicalDevices)
+
+{-# NOINLINE vkEnumeratePhysicalDevices #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDevices
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceCount
+-- >     , VkPhysicalDevice* pPhysicalDevices
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumeratePhysicalDevices"
+               vkEnumeratePhysicalDevicesSafe ::
+               VkInstance -- ^ instance
+                          -> Ptr Word32 -- ^ pPhysicalDeviceCount
+                                        -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDevices
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceCount
+-- >     , VkPhysicalDevice* pPhysicalDevices
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumeratePhysicalDevicesSafe@ and @vkEnumeratePhysicalDevices@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumeratePhysicalDevices <- vkGetInstanceProc @VkEnumeratePhysicalDevices vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumeratePhysicalDevices <- vkGetProc @VkEnumeratePhysicalDevices
+--
+vkEnumeratePhysicalDevicesSafe ::
+                               VkInstance -- ^ instance
+                                          -> Ptr Word32 -- ^ pPhysicalDeviceCount
+                                                        -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
+                                                                                -> IO VkResult
+vkEnumeratePhysicalDevicesSafe = vkEnumeratePhysicalDevices
+
+{-# INLINE vkEnumeratePhysicalDevicesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+--   > VkResult vkEnumeratePhysicalDevices
+--   >     ( VkInstance instance
+--   >     , uint32_t* pPhysicalDeviceCount
+--   >     , VkPhysicalDevice* pPhysicalDevices
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices registry at www.khronos.org>
+type HS_vkEnumeratePhysicalDevices =
+     VkInstance -- ^ instance
+                -> Ptr Word32 -- ^ pPhysicalDeviceCount
+                              -> Ptr VkPhysicalDevice -- ^ pPhysicalDevices
+                                                      -> IO VkResult
+
+type PFN_vkEnumeratePhysicalDevices =
+     FunPtr HS_vkEnumeratePhysicalDevices
+
+foreign import ccall "dynamic" unwrapVkEnumeratePhysicalDevices ::
+               PFN_vkEnumeratePhysicalDevices -> HS_vkEnumeratePhysicalDevices
+
+instance VulkanProc "vkEnumeratePhysicalDevices" where
+        type VkProcType "vkEnumeratePhysicalDevices" =
+             HS_vkEnumeratePhysicalDevices
+        vkProcSymbol = _VkEnumeratePhysicalDevices
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumeratePhysicalDevices
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceFeatures :: CString
+
+pattern VkGetPhysicalDeviceFeatures <-
+        (is_VkGetPhysicalDeviceFeatures -> True)
+  where VkGetPhysicalDeviceFeatures = _VkGetPhysicalDeviceFeatures
+
+{-# INLINE _VkGetPhysicalDeviceFeatures #-}
+
+_VkGetPhysicalDeviceFeatures :: CString
+_VkGetPhysicalDeviceFeatures
+  = Ptr "vkGetPhysicalDeviceFeatures\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceFeatures #-}
+
+is_VkGetPhysicalDeviceFeatures :: CString -> Bool
+is_VkGetPhysicalDeviceFeatures
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFeatures
+
+type VkGetPhysicalDeviceFeatures = "vkGetPhysicalDeviceFeatures"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceFeatures
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceFeatures"
+               vkGetPhysicalDeviceFeatures ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceFeatures
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFeaturesSafe@ and @vkGetPhysicalDeviceFeatures@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFeatures <- vkGetInstanceProc @VkGetPhysicalDeviceFeatures vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFeatures <- vkGetProc @VkGetPhysicalDeviceFeatures
+--
+vkGetPhysicalDeviceFeatures ::
+                            VkPhysicalDevice -- ^ physicalDevice
+                                             -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
+                                                                             -> IO ()
+vkGetPhysicalDeviceFeatures
+  = unsafeDupablePerformIO (vkGetProc @VkGetPhysicalDeviceFeatures)
+
+{-# NOINLINE vkGetPhysicalDeviceFeatures #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceFeatures
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceFeatures"
+               vkGetPhysicalDeviceFeaturesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceFeatures
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFeaturesSafe@ and @vkGetPhysicalDeviceFeatures@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFeatures <- vkGetInstanceProc @VkGetPhysicalDeviceFeatures vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFeatures <- vkGetProc @VkGetPhysicalDeviceFeatures
+--
+vkGetPhysicalDeviceFeaturesSafe ::
+                                VkPhysicalDevice -- ^ physicalDevice
+                                                 -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
+                                                                                 -> IO ()
+vkGetPhysicalDeviceFeaturesSafe = vkGetPhysicalDeviceFeatures
+
+{-# INLINE vkGetPhysicalDeviceFeaturesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceFeatures
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceFeatures* pFeatures
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFeatures =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceFeatures -- ^ pFeatures
+                                                      -> IO ()
+
+type PFN_vkGetPhysicalDeviceFeatures =
+     FunPtr HS_vkGetPhysicalDeviceFeatures
+
+foreign import ccall "dynamic" unwrapVkGetPhysicalDeviceFeatures ::
+               PFN_vkGetPhysicalDeviceFeatures -> HS_vkGetPhysicalDeviceFeatures
+
+instance VulkanProc "vkGetPhysicalDeviceFeatures" where
+        type VkProcType "vkGetPhysicalDeviceFeatures" =
+             HS_vkGetPhysicalDeviceFeatures
+        vkProcSymbol = _VkGetPhysicalDeviceFeatures
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFeatures
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceFormatProperties :: CString
+
+pattern VkGetPhysicalDeviceFormatProperties <-
+        (is_VkGetPhysicalDeviceFormatProperties -> True)
+  where VkGetPhysicalDeviceFormatProperties
+          = _VkGetPhysicalDeviceFormatProperties
+
+{-# INLINE _VkGetPhysicalDeviceFormatProperties #-}
+
+_VkGetPhysicalDeviceFormatProperties :: CString
+_VkGetPhysicalDeviceFormatProperties
+  = Ptr "vkGetPhysicalDeviceFormatProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceFormatProperties #-}
+
+is_VkGetPhysicalDeviceFormatProperties :: CString -> Bool
+is_VkGetPhysicalDeviceFormatProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFormatProperties
+
+type VkGetPhysicalDeviceFormatProperties =
+     "vkGetPhysicalDeviceFormatProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties"
+               vkGetPhysicalDeviceFormatProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> VkFormat -- ^ format
+                                            -> Ptr VkFormatProperties -- ^ pFormatProperties
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFormatPropertiesSafe@ and @vkGetPhysicalDeviceFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFormatProperties <- vkGetProc @VkGetPhysicalDeviceFormatProperties
+--
+vkGetPhysicalDeviceFormatProperties ::
+                                    VkPhysicalDevice -- ^ physicalDevice
+                                                     -> VkFormat -- ^ format
+                                                                 -> Ptr VkFormatProperties -- ^ pFormatProperties
+                                                                                           -> IO ()
+vkGetPhysicalDeviceFormatProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceFormatProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceFormatProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceFormatProperties"
+               vkGetPhysicalDeviceFormatPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> VkFormat -- ^ format
+                                            -> Ptr VkFormatProperties -- ^ pFormatProperties
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFormatPropertiesSafe@ and @vkGetPhysicalDeviceFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFormatProperties <- vkGetProc @VkGetPhysicalDeviceFormatProperties
+--
+vkGetPhysicalDeviceFormatPropertiesSafe ::
+                                        VkPhysicalDevice -- ^ physicalDevice
+                                                         ->
+                                          VkFormat -- ^ format
+                                                   -> Ptr VkFormatProperties -- ^ pFormatProperties
+                                                                             -> IO ()
+vkGetPhysicalDeviceFormatPropertiesSafe
+  = vkGetPhysicalDeviceFormatProperties
+
+{-# INLINE vkGetPhysicalDeviceFormatPropertiesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceFormatProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkFormat format
+--   >     , VkFormatProperties* pFormatProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFormatProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> VkFormat -- ^ format
+                                  -> Ptr VkFormatProperties -- ^ pFormatProperties
+                                                            -> IO ()
+
+type PFN_vkGetPhysicalDeviceFormatProperties =
+     FunPtr HS_vkGetPhysicalDeviceFormatProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceFormatProperties ::
+               PFN_vkGetPhysicalDeviceFormatProperties ->
+                 HS_vkGetPhysicalDeviceFormatProperties
+
+instance VulkanProc "vkGetPhysicalDeviceFormatProperties" where
+        type VkProcType "vkGetPhysicalDeviceFormatProperties" =
+             HS_vkGetPhysicalDeviceFormatProperties
+        vkProcSymbol = _VkGetPhysicalDeviceFormatProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFormatProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceImageFormatProperties :: CString
+
+pattern VkGetPhysicalDeviceImageFormatProperties <-
+        (is_VkGetPhysicalDeviceImageFormatProperties -> True)
+  where VkGetPhysicalDeviceImageFormatProperties
+          = _VkGetPhysicalDeviceImageFormatProperties
+
+{-# INLINE _VkGetPhysicalDeviceImageFormatProperties #-}
+
+_VkGetPhysicalDeviceImageFormatProperties :: CString
+_VkGetPhysicalDeviceImageFormatProperties
+  = Ptr "vkGetPhysicalDeviceImageFormatProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceImageFormatProperties #-}
+
+is_VkGetPhysicalDeviceImageFormatProperties :: CString -> Bool
+is_VkGetPhysicalDeviceImageFormatProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceImageFormatProperties
+
+type VkGetPhysicalDeviceImageFormatProperties =
+     "vkGetPhysicalDeviceImageFormatProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkImageTiling tiling
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageCreateFlags flags
+-- >     , VkImageFormatProperties* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceImageFormatProperties"
+               vkGetPhysicalDeviceImageFormatProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkFormat -- ^ format
+                          ->
+                   VkImageType -- ^ type
+                               ->
+                     VkImageTiling -- ^ tiling
+                                   ->
+                       VkImageUsageFlags -- ^ usage
+                                         ->
+                         VkImageCreateFlags -- ^ flags
+                                            -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties
+                                                                           -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkImageTiling tiling
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageCreateFlags flags
+-- >     , VkImageFormatProperties* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceImageFormatPropertiesSafe@ and @vkGetPhysicalDeviceImageFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceImageFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceImageFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceImageFormatProperties <- vkGetProc @VkGetPhysicalDeviceImageFormatProperties
+--
+vkGetPhysicalDeviceImageFormatProperties ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           VkFormat -- ^ format
+                                                    ->
+                                             VkImageType -- ^ type
+                                                         ->
+                                               VkImageTiling -- ^ tiling
+                                                             ->
+                                                 VkImageUsageFlags -- ^ usage
+                                                                   ->
+                                                   VkImageCreateFlags -- ^ flags
+                                                                      ->
+                                                     Ptr VkImageFormatProperties -- ^ pImageFormatProperties
+                                                                                 -> IO VkResult
+vkGetPhysicalDeviceImageFormatProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceImageFormatProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceImageFormatProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkImageTiling tiling
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageCreateFlags flags
+-- >     , VkImageFormatProperties* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceImageFormatProperties"
+               vkGetPhysicalDeviceImageFormatPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkFormat -- ^ format
+                          ->
+                   VkImageType -- ^ type
+                               ->
+                     VkImageTiling -- ^ tiling
+                                   ->
+                       VkImageUsageFlags -- ^ usage
+                                         ->
+                         VkImageCreateFlags -- ^ flags
+                                            -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties
+                                                                           -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkImageTiling tiling
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageCreateFlags flags
+-- >     , VkImageFormatProperties* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceImageFormatPropertiesSafe@ and @vkGetPhysicalDeviceImageFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceImageFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceImageFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceImageFormatProperties <- vkGetProc @VkGetPhysicalDeviceImageFormatProperties
+--
+vkGetPhysicalDeviceImageFormatPropertiesSafe ::
+                                             VkPhysicalDevice -- ^ physicalDevice
+                                                              ->
+                                               VkFormat -- ^ format
+                                                        ->
+                                                 VkImageType -- ^ type
+                                                             ->
+                                                   VkImageTiling -- ^ tiling
+                                                                 ->
+                                                     VkImageUsageFlags -- ^ usage
+                                                                       ->
+                                                       VkImageCreateFlags -- ^ flags
+                                                                          ->
+                                                         Ptr VkImageFormatProperties -- ^ pImageFormatProperties
+                                                                                     -> IO VkResult
+vkGetPhysicalDeviceImageFormatPropertiesSafe
+  = vkGetPhysicalDeviceImageFormatProperties
+
+{-# INLINE vkGetPhysicalDeviceImageFormatPropertiesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+--   > VkResult vkGetPhysicalDeviceImageFormatProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkFormat format
+--   >     , VkImageType type
+--   >     , VkImageTiling tiling
+--   >     , VkImageUsageFlags usage
+--   >     , VkImageCreateFlags flags
+--   >     , VkImageFormatProperties* pImageFormatProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceImageFormatProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkFormat -- ^ format
+                ->
+         VkImageType -- ^ type
+                     ->
+           VkImageTiling -- ^ tiling
+                         ->
+             VkImageUsageFlags -- ^ usage
+                               ->
+               VkImageCreateFlags -- ^ flags
+                                  -> Ptr VkImageFormatProperties -- ^ pImageFormatProperties
+                                                                 -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceImageFormatProperties =
+     FunPtr HS_vkGetPhysicalDeviceImageFormatProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceImageFormatProperties ::
+               PFN_vkGetPhysicalDeviceImageFormatProperties ->
+                 HS_vkGetPhysicalDeviceImageFormatProperties
+
+instance VulkanProc "vkGetPhysicalDeviceImageFormatProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceImageFormatProperties" =
+             HS_vkGetPhysicalDeviceImageFormatProperties
+        vkProcSymbol = _VkGetPhysicalDeviceImageFormatProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceImageFormatProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceProperties :: CString
+
+pattern VkGetPhysicalDeviceProperties <-
+        (is_VkGetPhysicalDeviceProperties -> True)
+  where VkGetPhysicalDeviceProperties
+          = _VkGetPhysicalDeviceProperties
+
+{-# INLINE _VkGetPhysicalDeviceProperties #-}
+
+_VkGetPhysicalDeviceProperties :: CString
+_VkGetPhysicalDeviceProperties
+  = Ptr "vkGetPhysicalDeviceProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceProperties #-}
+
+is_VkGetPhysicalDeviceProperties :: CString -> Bool
+is_VkGetPhysicalDeviceProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceProperties
+
+type VkGetPhysicalDeviceProperties =
+     "vkGetPhysicalDeviceProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceProperties"
+               vkGetPhysicalDeviceProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
+                                                                  -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDevicePropertiesSafe@ and @vkGetPhysicalDeviceProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceProperties <- vkGetInstanceProc @VkGetPhysicalDeviceProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceProperties <- vkGetProc @VkGetPhysicalDeviceProperties
+--
+vkGetPhysicalDeviceProperties ::
+                              VkPhysicalDevice -- ^ physicalDevice
+                                               -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
+                                                                                 -> IO ()
+vkGetPhysicalDeviceProperties
+  = unsafeDupablePerformIO (vkGetProc @VkGetPhysicalDeviceProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceProperties"
+               vkGetPhysicalDevicePropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
+                                                                  -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDevicePropertiesSafe@ and @vkGetPhysicalDeviceProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceProperties <- vkGetInstanceProc @VkGetPhysicalDeviceProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceProperties <- vkGetProc @VkGetPhysicalDeviceProperties
+--
+vkGetPhysicalDevicePropertiesSafe ::
+                                  VkPhysicalDevice -- ^ physicalDevice
+                                                   -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
+                                                                                     -> IO ()
+vkGetPhysicalDevicePropertiesSafe = vkGetPhysicalDeviceProperties
+
+{-# INLINE vkGetPhysicalDevicePropertiesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceProperties -- ^ pProperties
+                                                        -> IO ()
+
+type PFN_vkGetPhysicalDeviceProperties =
+     FunPtr HS_vkGetPhysicalDeviceProperties
+
+foreign import ccall "dynamic" unwrapVkGetPhysicalDeviceProperties
+               ::
+               PFN_vkGetPhysicalDeviceProperties ->
+                 HS_vkGetPhysicalDeviceProperties
+
+instance VulkanProc "vkGetPhysicalDeviceProperties" where
+        type VkProcType "vkGetPhysicalDeviceProperties" =
+             HS_vkGetPhysicalDeviceProperties
+        vkProcSymbol = _VkGetPhysicalDeviceProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties :: CString
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties <-
+        (is_VkGetPhysicalDeviceQueueFamilyProperties -> True)
+  where VkGetPhysicalDeviceQueueFamilyProperties
+          = _VkGetPhysicalDeviceQueueFamilyProperties
+
+{-# INLINE _VkGetPhysicalDeviceQueueFamilyProperties #-}
+
+_VkGetPhysicalDeviceQueueFamilyProperties :: CString
+_VkGetPhysicalDeviceQueueFamilyProperties
+  = Ptr "vkGetPhysicalDeviceQueueFamilyProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceQueueFamilyProperties #-}
+
+is_VkGetPhysicalDeviceQueueFamilyProperties :: CString -> Bool
+is_VkGetPhysicalDeviceQueueFamilyProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceQueueFamilyProperties
+
+type VkGetPhysicalDeviceQueueFamilyProperties =
+     "vkGetPhysicalDeviceQueueFamilyProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceQueueFamilyProperties"
+               vkGetPhysicalDeviceQueueFamilyProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                            -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
+                                                           -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceQueueFamilyPropertiesSafe@ and @vkGetPhysicalDeviceQueueFamilyProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties <- vkGetInstanceProc @VkGetPhysicalDeviceQueueFamilyProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties <- vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties
+--
+vkGetPhysicalDeviceQueueFamilyProperties ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                                                      -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
+                                                                                     -> IO ()
+vkGetPhysicalDeviceQueueFamilyProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceQueueFamilyProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceQueueFamilyProperties"
+               vkGetPhysicalDeviceQueueFamilyPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                            -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
+                                                           -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceQueueFamilyPropertiesSafe@ and @vkGetPhysicalDeviceQueueFamilyProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties <- vkGetInstanceProc @VkGetPhysicalDeviceQueueFamilyProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties <- vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties
+--
+vkGetPhysicalDeviceQueueFamilyPropertiesSafe ::
+                                             VkPhysicalDevice -- ^ physicalDevice
+                                                              ->
+                                               Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                                                          -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
+                                                                                         -> IO ()
+vkGetPhysicalDeviceQueueFamilyPropertiesSafe
+  = vkGetPhysicalDeviceQueueFamilyProperties
+
+{-# INLINE vkGetPhysicalDeviceQueueFamilyPropertiesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceQueueFamilyProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t* pQueueFamilyPropertyCount
+--   >     , VkQueueFamilyProperties* pQueueFamilyProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceQueueFamilyProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                  -> Ptr VkQueueFamilyProperties -- ^ pQueueFamilyProperties
+                                                 -> IO ()
+
+type PFN_vkGetPhysicalDeviceQueueFamilyProperties =
+     FunPtr HS_vkGetPhysicalDeviceQueueFamilyProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceQueueFamilyProperties ::
+               PFN_vkGetPhysicalDeviceQueueFamilyProperties ->
+                 HS_vkGetPhysicalDeviceQueueFamilyProperties
+
+instance VulkanProc "vkGetPhysicalDeviceQueueFamilyProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceQueueFamilyProperties" =
+             HS_vkGetPhysicalDeviceQueueFamilyProperties
+        vkProcSymbol = _VkGetPhysicalDeviceQueueFamilyProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceQueueFamilyProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceMemoryProperties :: CString
+
+pattern VkGetPhysicalDeviceMemoryProperties <-
+        (is_VkGetPhysicalDeviceMemoryProperties -> True)
+  where VkGetPhysicalDeviceMemoryProperties
+          = _VkGetPhysicalDeviceMemoryProperties
+
+{-# INLINE _VkGetPhysicalDeviceMemoryProperties #-}
+
+_VkGetPhysicalDeviceMemoryProperties :: CString
+_VkGetPhysicalDeviceMemoryProperties
+  = Ptr "vkGetPhysicalDeviceMemoryProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceMemoryProperties #-}
+
+is_VkGetPhysicalDeviceMemoryProperties :: CString -> Bool
+is_VkGetPhysicalDeviceMemoryProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceMemoryProperties
+
+type VkGetPhysicalDeviceMemoryProperties =
+     "vkGetPhysicalDeviceMemoryProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties"
+               vkGetPhysicalDeviceMemoryProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
+                                                                        -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMemoryPropertiesSafe@ and @vkGetPhysicalDeviceMemoryProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMemoryProperties <- vkGetInstanceProc @VkGetPhysicalDeviceMemoryProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMemoryProperties <- vkGetProc @VkGetPhysicalDeviceMemoryProperties
+--
+vkGetPhysicalDeviceMemoryProperties ::
+                                    VkPhysicalDevice -- ^ physicalDevice
+                                                     ->
+                                      Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
+                                                                           -> IO ()
+vkGetPhysicalDeviceMemoryProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceMemoryProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceMemoryProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceMemoryProperties"
+               vkGetPhysicalDeviceMemoryPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
+                                                                        -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMemoryPropertiesSafe@ and @vkGetPhysicalDeviceMemoryProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMemoryProperties <- vkGetInstanceProc @VkGetPhysicalDeviceMemoryProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMemoryProperties <- vkGetProc @VkGetPhysicalDeviceMemoryProperties
+--
+vkGetPhysicalDeviceMemoryPropertiesSafe ::
+                                        VkPhysicalDevice -- ^ physicalDevice
+                                                         ->
+                                          Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
+                                                                               -> IO ()
+vkGetPhysicalDeviceMemoryPropertiesSafe
+  = vkGetPhysicalDeviceMemoryProperties
+
+{-# INLINE vkGetPhysicalDeviceMemoryPropertiesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceMemoryProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceMemoryProperties* pMemoryProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceMemoryProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceMemoryProperties -- ^ pMemoryProperties
+                                                              -> IO ()
+
+type PFN_vkGetPhysicalDeviceMemoryProperties =
+     FunPtr HS_vkGetPhysicalDeviceMemoryProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceMemoryProperties ::
+               PFN_vkGetPhysicalDeviceMemoryProperties ->
+                 HS_vkGetPhysicalDeviceMemoryProperties
+
+instance VulkanProc "vkGetPhysicalDeviceMemoryProperties" where
+        type VkProcType "vkGetPhysicalDeviceMemoryProperties" =
+             HS_vkGetPhysicalDeviceMemoryProperties
+        vkProcSymbol = _VkGetPhysicalDeviceMemoryProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceMemoryProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetInstanceProcAddr :: CString
+
+pattern VkGetInstanceProcAddr <- (is_VkGetInstanceProcAddr -> True)
+  where VkGetInstanceProcAddr = _VkGetInstanceProcAddr
+
+{-# INLINE _VkGetInstanceProcAddr #-}
+
+_VkGetInstanceProcAddr :: CString
+_VkGetInstanceProcAddr = Ptr "vkGetInstanceProcAddr\NUL"##
+
+{-# INLINE is_VkGetInstanceProcAddr #-}
+
+is_VkGetInstanceProcAddr :: CString -> Bool
+is_VkGetInstanceProcAddr
+  = (EQ ==) . cmpCStrings _VkGetInstanceProcAddr
+
+type VkGetInstanceProcAddr = "vkGetInstanceProcAddr"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > PFN_vkVoidFunction vkGetInstanceProcAddr
+-- >     ( VkInstance instance
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetInstanceProcAddr vkGetInstanceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetInstanceProcAddr"
+               vkGetInstanceProcAddr ::
+               VkInstance -- ^ instance
+                          -> CString -- ^ pName
+                                     -> IO PFN_vkVoidFunction
+
+##else
+-- |
+-- > PFN_vkVoidFunction vkGetInstanceProcAddr
+-- >     ( VkInstance instance
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetInstanceProcAddr vkGetInstanceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetInstanceProcAddrSafe@ and @vkGetInstanceProcAddr@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetInstanceProcAddr <- vkGetInstanceProc @VkGetInstanceProcAddr vkInstance
+--
+-- or less efficient:
+--
+-- > myGetInstanceProcAddr <- vkGetProc @VkGetInstanceProcAddr
+--
+vkGetInstanceProcAddr ::
+                      VkInstance -- ^ instance
+                                 -> CString -- ^ pName
+                                            -> IO PFN_vkVoidFunction
+vkGetInstanceProcAddr
+  = unsafeDupablePerformIO (vkGetProc @VkGetInstanceProcAddr)
+
+{-# NOINLINE vkGetInstanceProcAddr #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > PFN_vkVoidFunction vkGetInstanceProcAddr
+-- >     ( VkInstance instance
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetInstanceProcAddr vkGetInstanceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetInstanceProcAddr"
+               vkGetInstanceProcAddrSafe ::
+               VkInstance -- ^ instance
+                          -> CString -- ^ pName
+                                     -> IO PFN_vkVoidFunction
+
+##else
+-- |
+-- > PFN_vkVoidFunction vkGetInstanceProcAddr
+-- >     ( VkInstance instance
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetInstanceProcAddr vkGetInstanceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetInstanceProcAddrSafe@ and @vkGetInstanceProcAddr@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetInstanceProcAddr <- vkGetInstanceProc @VkGetInstanceProcAddr vkInstance
+--
+-- or less efficient:
+--
+-- > myGetInstanceProcAddr <- vkGetProc @VkGetInstanceProcAddr
+--
+vkGetInstanceProcAddrSafe ::
+                          VkInstance -- ^ instance
+                                     -> CString -- ^ pName
+                                                -> IO PFN_vkVoidFunction
+vkGetInstanceProcAddrSafe = vkGetInstanceProcAddr
+
+{-# INLINE vkGetInstanceProcAddrSafe #-}
+##endif
+
+-- | > PFN_vkVoidFunction vkGetInstanceProcAddr
+--   >     ( VkInstance instance
+--   >     , const char* pName
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetInstanceProcAddr vkGetInstanceProcAddr registry at www.khronos.org>
+type HS_vkGetInstanceProcAddr =
+     VkInstance -- ^ instance
+                -> CString -- ^ pName
+                           -> IO PFN_vkVoidFunction
+
+type PFN_vkGetInstanceProcAddr = FunPtr HS_vkGetInstanceProcAddr
+
+foreign import ccall "dynamic" unwrapVkGetInstanceProcAddr ::
+               PFN_vkGetInstanceProcAddr -> HS_vkGetInstanceProcAddr
+
+instance VulkanProc "vkGetInstanceProcAddr" where
+        type VkProcType "vkGetInstanceProcAddr" = HS_vkGetInstanceProcAddr
+        vkProcSymbol = _VkGetInstanceProcAddr
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetInstanceProcAddr
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDeviceProcAddr :: CString
+
+pattern VkGetDeviceProcAddr <- (is_VkGetDeviceProcAddr -> True)
+  where VkGetDeviceProcAddr = _VkGetDeviceProcAddr
+
+{-# INLINE _VkGetDeviceProcAddr #-}
+
+_VkGetDeviceProcAddr :: CString
+_VkGetDeviceProcAddr = Ptr "vkGetDeviceProcAddr\NUL"##
+
+{-# INLINE is_VkGetDeviceProcAddr #-}
+
+is_VkGetDeviceProcAddr :: CString -> Bool
+is_VkGetDeviceProcAddr = (EQ ==) . cmpCStrings _VkGetDeviceProcAddr
+
+type VkGetDeviceProcAddr = "vkGetDeviceProcAddr"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > PFN_vkVoidFunction vkGetDeviceProcAddr
+-- >     ( VkDevice device
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceProcAddr vkGetDeviceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDeviceProcAddr"
+               vkGetDeviceProcAddr :: VkDevice -- ^ device
+                                               -> CString -- ^ pName
+                                                          -> IO PFN_vkVoidFunction
+
+##else
+-- |
+-- > PFN_vkVoidFunction vkGetDeviceProcAddr
+-- >     ( VkDevice device
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceProcAddr vkGetDeviceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceProcAddrSafe@ and @vkGetDeviceProcAddr@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceProcAddr <- vkGetDeviceProc @VkGetDeviceProcAddr vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceProcAddr <- vkGetProc @VkGetDeviceProcAddr
+--
+vkGetDeviceProcAddr :: VkDevice -- ^ device
+                                -> CString -- ^ pName
+                                           -> IO PFN_vkVoidFunction
+vkGetDeviceProcAddr
+  = unsafeDupablePerformIO (vkGetProc @VkGetDeviceProcAddr)
+
+{-# NOINLINE vkGetDeviceProcAddr #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > PFN_vkVoidFunction vkGetDeviceProcAddr
+-- >     ( VkDevice device
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceProcAddr vkGetDeviceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceProcAddr"
+               vkGetDeviceProcAddrSafe ::
+               VkDevice -- ^ device
+                        -> CString -- ^ pName
+                                   -> IO PFN_vkVoidFunction
+
+##else
+-- |
+-- > PFN_vkVoidFunction vkGetDeviceProcAddr
+-- >     ( VkDevice device
+-- >     , const char* pName
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceProcAddr vkGetDeviceProcAddr registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceProcAddrSafe@ and @vkGetDeviceProcAddr@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceProcAddr <- vkGetDeviceProc @VkGetDeviceProcAddr vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceProcAddr <- vkGetProc @VkGetDeviceProcAddr
+--
+vkGetDeviceProcAddrSafe ::
+                        VkDevice -- ^ device
+                                 -> CString -- ^ pName
+                                            -> IO PFN_vkVoidFunction
+vkGetDeviceProcAddrSafe = vkGetDeviceProcAddr
+
+{-# INLINE vkGetDeviceProcAddrSafe #-}
+##endif
+
+-- | > PFN_vkVoidFunction vkGetDeviceProcAddr
+--   >     ( VkDevice device
+--   >     , const char* pName
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceProcAddr vkGetDeviceProcAddr registry at www.khronos.org>
+type HS_vkGetDeviceProcAddr =
+     VkDevice -- ^ device
+              -> CString -- ^ pName
+                         -> IO PFN_vkVoidFunction
+
+type PFN_vkGetDeviceProcAddr = FunPtr HS_vkGetDeviceProcAddr
+
+foreign import ccall "dynamic" unwrapVkGetDeviceProcAddr ::
+               PFN_vkGetDeviceProcAddr -> HS_vkGetDeviceProcAddr
+
+instance VulkanProc "vkGetDeviceProcAddr" where
+        type VkProcType "vkGetDeviceProcAddr" = HS_vkGetDeviceProcAddr
+        vkProcSymbol = _VkGetDeviceProcAddr
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceProcAddr
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDevice :: CString
+
+pattern VkCreateDevice <- (is_VkCreateDevice -> True)
+  where VkCreateDevice = _VkCreateDevice
+
+{-# INLINE _VkCreateDevice #-}
+
+_VkCreateDevice :: CString
+_VkCreateDevice = Ptr "vkCreateDevice\NUL"##
+
+{-# INLINE is_VkCreateDevice #-}
+
+is_VkCreateDevice :: CString -> Bool
+is_VkCreateDevice = (EQ ==) . cmpCStrings _VkCreateDevice
+
+type VkCreateDevice = "vkCreateDevice"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkCreateDevice
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkDeviceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDevice* pDevice
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDevice vkCreateDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDevice" vkCreateDevice ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkDeviceCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDevice -- ^ pDevice
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkCreateDevice
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkDeviceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDevice* pDevice
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDevice vkCreateDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDeviceSafe@ and @vkCreateDevice@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDevice <- vkGetInstanceProc @VkCreateDevice vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDevice <- vkGetProc @VkCreateDevice
+--
+vkCreateDevice ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkDeviceCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDevice -- ^ pDevice
+                                                             -> IO VkResult
+vkCreateDevice = unsafeDupablePerformIO (vkGetProc @VkCreateDevice)
+
+{-# NOINLINE vkCreateDevice #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkCreateDevice
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkDeviceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDevice* pDevice
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDevice vkCreateDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDevice" vkCreateDeviceSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkDeviceCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDevice -- ^ pDevice
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkCreateDevice
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkDeviceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDevice* pDevice
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDevice vkCreateDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDeviceSafe@ and @vkCreateDevice@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDevice <- vkGetInstanceProc @VkCreateDevice vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDevice <- vkGetProc @VkCreateDevice
+--
+vkCreateDeviceSafe ::
+                   VkPhysicalDevice -- ^ physicalDevice
+                                    ->
+                     Ptr VkDeviceCreateInfo -- ^ pCreateInfo
+                                            ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkDevice -- ^ pDevice
+                                                                 -> IO VkResult
+vkCreateDeviceSafe = vkCreateDevice
+
+{-# INLINE vkCreateDeviceSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED', 'VK_ERROR_EXTENSION_NOT_PRESENT', 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkCreateDevice
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkDeviceCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDevice* pDevice
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDevice vkCreateDevice registry at www.khronos.org>
+type HS_vkCreateDevice =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkDeviceCreateInfo -- ^ pCreateInfo
+                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkDevice -- ^ pDevice
+                                                   -> IO VkResult
+
+type PFN_vkCreateDevice = FunPtr HS_vkCreateDevice
+
+foreign import ccall "dynamic" unwrapVkCreateDevice ::
+               PFN_vkCreateDevice -> HS_vkCreateDevice
+
+instance VulkanProc "vkCreateDevice" where
+        type VkProcType "vkCreateDevice" = HS_vkCreateDevice
+        vkProcSymbol = _VkCreateDevice
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDevice
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDevice :: CString
+
+pattern VkDestroyDevice <- (is_VkDestroyDevice -> True)
+  where VkDestroyDevice = _VkDestroyDevice
+
+{-# INLINE _VkDestroyDevice #-}
+
+_VkDestroyDevice :: CString
+_VkDestroyDevice = Ptr "vkDestroyDevice\NUL"##
+
+{-# INLINE is_VkDestroyDevice #-}
+
+is_VkDestroyDevice :: CString -> Bool
+is_VkDestroyDevice = (EQ ==) . cmpCStrings _VkDestroyDevice
+
+type VkDestroyDevice = "vkDestroyDevice"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDevice
+-- >     ( VkDevice device
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDevice vkDestroyDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyDevice" vkDestroyDevice ::
+               VkDevice -- ^ device
+                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDevice
+-- >     ( VkDevice device
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDevice vkDestroyDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDeviceSafe@ and @vkDestroyDevice@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDevice <- vkGetDeviceProc @VkDestroyDevice vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDevice <- vkGetProc @VkDestroyDevice
+--
+vkDestroyDevice :: VkDevice -- ^ device
+                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> IO ()
+vkDestroyDevice
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyDevice)
+
+{-# NOINLINE vkDestroyDevice #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDevice
+-- >     ( VkDevice device
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDevice vkDestroyDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyDevice" vkDestroyDeviceSafe ::
+               VkDevice -- ^ device
+                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDevice
+-- >     ( VkDevice device
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDevice vkDestroyDevice registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDeviceSafe@ and @vkDestroyDevice@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDevice <- vkGetDeviceProc @VkDestroyDevice vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDevice <- vkGetProc @VkDestroyDevice
+--
+vkDestroyDeviceSafe ::
+                    VkDevice -- ^ device
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+vkDestroyDeviceSafe = vkDestroyDevice
+
+{-# INLINE vkDestroyDeviceSafe #-}
+##endif
+
+-- | > void vkDestroyDevice
+--   >     ( VkDevice device
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDevice vkDestroyDevice registry at www.khronos.org>
+type HS_vkDestroyDevice =
+     VkDevice -- ^ device
+              -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                           -> IO ()
+
+type PFN_vkDestroyDevice = FunPtr HS_vkDestroyDevice
+
+foreign import ccall "dynamic" unwrapVkDestroyDevice ::
+               PFN_vkDestroyDevice -> HS_vkDestroyDevice
+
+instance VulkanProc "vkDestroyDevice" where
+        type VkProcType "vkDestroyDevice" = HS_vkDestroyDevice
+        vkProcSymbol = _VkDestroyDevice
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDevice
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEnumerateInstanceExtensionProperties :: CString
+
+pattern VkEnumerateInstanceExtensionProperties <-
+        (is_VkEnumerateInstanceExtensionProperties -> True)
+  where VkEnumerateInstanceExtensionProperties
+          = _VkEnumerateInstanceExtensionProperties
+
+{-# INLINE _VkEnumerateInstanceExtensionProperties #-}
+
+_VkEnumerateInstanceExtensionProperties :: CString
+_VkEnumerateInstanceExtensionProperties
+  = Ptr "vkEnumerateInstanceExtensionProperties\NUL"##
+
+{-# INLINE is_VkEnumerateInstanceExtensionProperties #-}
+
+is_VkEnumerateInstanceExtensionProperties :: CString -> Bool
+is_VkEnumerateInstanceExtensionProperties
+  = (EQ ==) . cmpCStrings _VkEnumerateInstanceExtensionProperties
+
+type VkEnumerateInstanceExtensionProperties =
+     "vkEnumerateInstanceExtensionProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateInstanceExtensionProperties
+-- >     ( const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkEnumerateInstanceExtensionProperties"
+               vkEnumerateInstanceExtensionProperties ::
+               CString -- ^ pLayerName
+                       -> Ptr Word32 -- ^ pPropertyCount
+                                     -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateInstanceExtensionProperties
+-- >     ( const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceExtensionPropertiesSafe@ and @vkEnumerateInstanceExtensionProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceExtensionProperties <- vkGetInstanceProc @VkEnumerateInstanceExtensionProperties VK_NULL
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceExtensionProperties <- vkGetProc @VkEnumerateInstanceExtensionProperties
+--
+vkEnumerateInstanceExtensionProperties ::
+                                       CString -- ^ pLayerName
+                                               ->
+                                         Ptr Word32 -- ^ pPropertyCount
+                                                    -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                                 -> IO VkResult
+vkEnumerateInstanceExtensionProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkEnumerateInstanceExtensionProperties)
+
+{-# NOINLINE vkEnumerateInstanceExtensionProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateInstanceExtensionProperties
+-- >     ( const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumerateInstanceExtensionProperties"
+               vkEnumerateInstanceExtensionPropertiesSafe ::
+               CString -- ^ pLayerName
+                       -> Ptr Word32 -- ^ pPropertyCount
+                                     -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateInstanceExtensionProperties
+-- >     ( const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceExtensionPropertiesSafe@ and @vkEnumerateInstanceExtensionProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceExtensionProperties <- vkGetInstanceProc @VkEnumerateInstanceExtensionProperties VK_NULL
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceExtensionProperties <- vkGetProc @VkEnumerateInstanceExtensionProperties
+--
+vkEnumerateInstanceExtensionPropertiesSafe ::
+                                           CString -- ^ pLayerName
+                                                   ->
+                                             Ptr Word32 -- ^ pPropertyCount
+                                                        -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                                     -> IO VkResult
+vkEnumerateInstanceExtensionPropertiesSafe
+  = vkEnumerateInstanceExtensionProperties
+
+{-# INLINE vkEnumerateInstanceExtensionPropertiesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+--   > VkResult vkEnumerateInstanceExtensionProperties
+--   >     ( const char* pLayerName
+--   >     , uint32_t* pPropertyCount
+--   >     , VkExtensionProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties registry at www.khronos.org>
+type HS_vkEnumerateInstanceExtensionProperties =
+     CString -- ^ pLayerName
+             -> Ptr Word32 -- ^ pPropertyCount
+                           -> Ptr VkExtensionProperties -- ^ pProperties
+                                                        -> IO VkResult
+
+type PFN_vkEnumerateInstanceExtensionProperties =
+     FunPtr HS_vkEnumerateInstanceExtensionProperties
+
+foreign import ccall "dynamic"
+               unwrapVkEnumerateInstanceExtensionProperties ::
+               PFN_vkEnumerateInstanceExtensionProperties ->
+                 HS_vkEnumerateInstanceExtensionProperties
+
+instance VulkanProc "vkEnumerateInstanceExtensionProperties" where
+        type VkProcType "vkEnumerateInstanceExtensionProperties" =
+             HS_vkEnumerateInstanceExtensionProperties
+        vkProcSymbol = _VkEnumerateInstanceExtensionProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumerateInstanceExtensionProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEnumerateDeviceExtensionProperties :: CString
+
+pattern VkEnumerateDeviceExtensionProperties <-
+        (is_VkEnumerateDeviceExtensionProperties -> True)
+  where VkEnumerateDeviceExtensionProperties
+          = _VkEnumerateDeviceExtensionProperties
+
+{-# INLINE _VkEnumerateDeviceExtensionProperties #-}
+
+_VkEnumerateDeviceExtensionProperties :: CString
+_VkEnumerateDeviceExtensionProperties
+  = Ptr "vkEnumerateDeviceExtensionProperties\NUL"##
+
+{-# INLINE is_VkEnumerateDeviceExtensionProperties #-}
+
+is_VkEnumerateDeviceExtensionProperties :: CString -> Bool
+is_VkEnumerateDeviceExtensionProperties
+  = (EQ ==) . cmpCStrings _VkEnumerateDeviceExtensionProperties
+
+type VkEnumerateDeviceExtensionProperties =
+     "vkEnumerateDeviceExtensionProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateDeviceExtensionProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumerateDeviceExtensionProperties"
+               vkEnumerateDeviceExtensionProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 CString -- ^ pLayerName
+                         -> Ptr Word32 -- ^ pPropertyCount
+                                       -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateDeviceExtensionProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateDeviceExtensionPropertiesSafe@ and @vkEnumerateDeviceExtensionProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateDeviceExtensionProperties <- vkGetInstanceProc @VkEnumerateDeviceExtensionProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateDeviceExtensionProperties <- vkGetProc @VkEnumerateDeviceExtensionProperties
+--
+vkEnumerateDeviceExtensionProperties ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       CString -- ^ pLayerName
+                                               ->
+                                         Ptr Word32 -- ^ pPropertyCount
+                                                    -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                                 -> IO VkResult
+vkEnumerateDeviceExtensionProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkEnumerateDeviceExtensionProperties)
+
+{-# NOINLINE vkEnumerateDeviceExtensionProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateDeviceExtensionProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumerateDeviceExtensionProperties"
+               vkEnumerateDeviceExtensionPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 CString -- ^ pLayerName
+                         -> Ptr Word32 -- ^ pPropertyCount
+                                       -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+-- > VkResult vkEnumerateDeviceExtensionProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const char* pLayerName
+-- >     , uint32_t* pPropertyCount
+-- >     , VkExtensionProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateDeviceExtensionPropertiesSafe@ and @vkEnumerateDeviceExtensionProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateDeviceExtensionProperties <- vkGetInstanceProc @VkEnumerateDeviceExtensionProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateDeviceExtensionProperties <- vkGetProc @VkEnumerateDeviceExtensionProperties
+--
+vkEnumerateDeviceExtensionPropertiesSafe ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           CString -- ^ pLayerName
+                                                   ->
+                                             Ptr Word32 -- ^ pPropertyCount
+                                                        -> Ptr VkExtensionProperties -- ^ pProperties
+                                                                                     -> IO VkResult
+vkEnumerateDeviceExtensionPropertiesSafe
+  = vkEnumerateDeviceExtensionProperties
+
+{-# INLINE vkEnumerateDeviceExtensionPropertiesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_LAYER_NOT_PRESENT'.
+--
+--   > VkResult vkEnumerateDeviceExtensionProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const char* pLayerName
+--   >     , uint32_t* pPropertyCount
+--   >     , VkExtensionProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties registry at www.khronos.org>
+type HS_vkEnumerateDeviceExtensionProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       CString -- ^ pLayerName
+               -> Ptr Word32 -- ^ pPropertyCount
+                             -> Ptr VkExtensionProperties -- ^ pProperties
+                                                          -> IO VkResult
+
+type PFN_vkEnumerateDeviceExtensionProperties =
+     FunPtr HS_vkEnumerateDeviceExtensionProperties
+
+foreign import ccall "dynamic"
+               unwrapVkEnumerateDeviceExtensionProperties ::
+               PFN_vkEnumerateDeviceExtensionProperties ->
+                 HS_vkEnumerateDeviceExtensionProperties
+
+instance VulkanProc "vkEnumerateDeviceExtensionProperties" where
+        type VkProcType "vkEnumerateDeviceExtensionProperties" =
+             HS_vkEnumerateDeviceExtensionProperties
+        vkProcSymbol = _VkEnumerateDeviceExtensionProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumerateDeviceExtensionProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEnumerateInstanceLayerProperties :: CString
+
+pattern VkEnumerateInstanceLayerProperties <-
+        (is_VkEnumerateInstanceLayerProperties -> True)
+  where VkEnumerateInstanceLayerProperties
+          = _VkEnumerateInstanceLayerProperties
+
+{-# INLINE _VkEnumerateInstanceLayerProperties #-}
+
+_VkEnumerateInstanceLayerProperties :: CString
+_VkEnumerateInstanceLayerProperties
+  = Ptr "vkEnumerateInstanceLayerProperties\NUL"##
+
+{-# INLINE is_VkEnumerateInstanceLayerProperties #-}
+
+is_VkEnumerateInstanceLayerProperties :: CString -> Bool
+is_VkEnumerateInstanceLayerProperties
+  = (EQ ==) . cmpCStrings _VkEnumerateInstanceLayerProperties
+
+type VkEnumerateInstanceLayerProperties =
+     "vkEnumerateInstanceLayerProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateInstanceLayerProperties
+-- >     ( uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumerateInstanceLayerProperties"
+               vkEnumerateInstanceLayerProperties ::
+               Ptr Word32 -- ^ pPropertyCount
+                          -> Ptr VkLayerProperties -- ^ pProperties
+                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateInstanceLayerProperties
+-- >     ( uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceLayerPropertiesSafe@ and @vkEnumerateInstanceLayerProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceLayerProperties <- vkGetInstanceProc @VkEnumerateInstanceLayerProperties VK_NULL
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceLayerProperties <- vkGetProc @VkEnumerateInstanceLayerProperties
+--
+vkEnumerateInstanceLayerProperties ::
+                                   Ptr Word32 -- ^ pPropertyCount
+                                              -> Ptr VkLayerProperties -- ^ pProperties
+                                                                       -> IO VkResult
+vkEnumerateInstanceLayerProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkEnumerateInstanceLayerProperties)
+
+{-# NOINLINE vkEnumerateInstanceLayerProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateInstanceLayerProperties
+-- >     ( uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumerateInstanceLayerProperties"
+               vkEnumerateInstanceLayerPropertiesSafe ::
+               Ptr Word32 -- ^ pPropertyCount
+                          -> Ptr VkLayerProperties -- ^ pProperties
+                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateInstanceLayerProperties
+-- >     ( uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceLayerPropertiesSafe@ and @vkEnumerateInstanceLayerProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceLayerProperties <- vkGetInstanceProc @VkEnumerateInstanceLayerProperties VK_NULL
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceLayerProperties <- vkGetProc @VkEnumerateInstanceLayerProperties
+--
+vkEnumerateInstanceLayerPropertiesSafe ::
+                                       Ptr Word32 -- ^ pPropertyCount
+                                                  -> Ptr VkLayerProperties -- ^ pProperties
+                                                                           -> IO VkResult
+vkEnumerateInstanceLayerPropertiesSafe
+  = vkEnumerateInstanceLayerProperties
+
+{-# INLINE vkEnumerateInstanceLayerPropertiesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkEnumerateInstanceLayerProperties
+--   >     ( uint32_t* pPropertyCount
+--   >     , VkLayerProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties registry at www.khronos.org>
+type HS_vkEnumerateInstanceLayerProperties =
+     Ptr Word32 -- ^ pPropertyCount
+                -> Ptr VkLayerProperties -- ^ pProperties
+                                         -> IO VkResult
+
+type PFN_vkEnumerateInstanceLayerProperties =
+     FunPtr HS_vkEnumerateInstanceLayerProperties
+
+foreign import ccall "dynamic"
+               unwrapVkEnumerateInstanceLayerProperties ::
+               PFN_vkEnumerateInstanceLayerProperties ->
+                 HS_vkEnumerateInstanceLayerProperties
+
+instance VulkanProc "vkEnumerateInstanceLayerProperties" where
+        type VkProcType "vkEnumerateInstanceLayerProperties" =
+             HS_vkEnumerateInstanceLayerProperties
+        vkProcSymbol = _VkEnumerateInstanceLayerProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumerateInstanceLayerProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEnumerateDeviceLayerProperties :: CString
+
+pattern VkEnumerateDeviceLayerProperties <-
+        (is_VkEnumerateDeviceLayerProperties -> True)
+  where VkEnumerateDeviceLayerProperties
+          = _VkEnumerateDeviceLayerProperties
+
+{-# INLINE _VkEnumerateDeviceLayerProperties #-}
+
+_VkEnumerateDeviceLayerProperties :: CString
+_VkEnumerateDeviceLayerProperties
+  = Ptr "vkEnumerateDeviceLayerProperties\NUL"##
+
+{-# INLINE is_VkEnumerateDeviceLayerProperties #-}
+
+is_VkEnumerateDeviceLayerProperties :: CString -> Bool
+is_VkEnumerateDeviceLayerProperties
+  = (EQ ==) . cmpCStrings _VkEnumerateDeviceLayerProperties
+
+type VkEnumerateDeviceLayerProperties =
+     "vkEnumerateDeviceLayerProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateDeviceLayerProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumerateDeviceLayerProperties"
+               vkEnumerateDeviceLayerProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkLayerProperties -- ^ pProperties
+                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateDeviceLayerProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateDeviceLayerPropertiesSafe@ and @vkEnumerateDeviceLayerProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateDeviceLayerProperties <- vkGetInstanceProc @VkEnumerateDeviceLayerProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateDeviceLayerProperties <- vkGetProc @VkEnumerateDeviceLayerProperties
+--
+vkEnumerateDeviceLayerProperties ::
+                                 VkPhysicalDevice -- ^ physicalDevice
+                                                  ->
+                                   Ptr Word32 -- ^ pPropertyCount
+                                              -> Ptr VkLayerProperties -- ^ pProperties
+                                                                       -> IO VkResult
+vkEnumerateDeviceLayerProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkEnumerateDeviceLayerProperties)
+
+{-# NOINLINE vkEnumerateDeviceLayerProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateDeviceLayerProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumerateDeviceLayerProperties"
+               vkEnumerateDeviceLayerPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkLayerProperties -- ^ pProperties
+                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEnumerateDeviceLayerProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkLayerProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateDeviceLayerPropertiesSafe@ and @vkEnumerateDeviceLayerProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateDeviceLayerProperties <- vkGetInstanceProc @VkEnumerateDeviceLayerProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateDeviceLayerProperties <- vkGetProc @VkEnumerateDeviceLayerProperties
+--
+vkEnumerateDeviceLayerPropertiesSafe ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       Ptr Word32 -- ^ pPropertyCount
+                                                  -> Ptr VkLayerProperties -- ^ pProperties
+                                                                           -> IO VkResult
+vkEnumerateDeviceLayerPropertiesSafe
+  = vkEnumerateDeviceLayerProperties
+
+{-# INLINE vkEnumerateDeviceLayerPropertiesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkEnumerateDeviceLayerProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t* pPropertyCount
+--   >     , VkLayerProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties registry at www.khronos.org>
+type HS_vkEnumerateDeviceLayerProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pPropertyCount
+                  -> Ptr VkLayerProperties -- ^ pProperties
+                                           -> IO VkResult
+
+type PFN_vkEnumerateDeviceLayerProperties =
+     FunPtr HS_vkEnumerateDeviceLayerProperties
+
+foreign import ccall "dynamic"
+               unwrapVkEnumerateDeviceLayerProperties ::
+               PFN_vkEnumerateDeviceLayerProperties ->
+                 HS_vkEnumerateDeviceLayerProperties
+
+instance VulkanProc "vkEnumerateDeviceLayerProperties" where
+        type VkProcType "vkEnumerateDeviceLayerProperties" =
+             HS_vkEnumerateDeviceLayerProperties
+        vkProcSymbol = _VkEnumerateDeviceLayerProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumerateDeviceLayerProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDeviceQueue :: CString
+
+pattern VkGetDeviceQueue <- (is_VkGetDeviceQueue -> True)
+  where VkGetDeviceQueue = _VkGetDeviceQueue
+
+{-# INLINE _VkGetDeviceQueue #-}
+
+_VkGetDeviceQueue :: CString
+_VkGetDeviceQueue = Ptr "vkGetDeviceQueue\NUL"##
+
+{-# INLINE is_VkGetDeviceQueue #-}
+
+is_VkGetDeviceQueue :: CString -> Bool
+is_VkGetDeviceQueue = (EQ ==) . cmpCStrings _VkGetDeviceQueue
+
+type VkGetDeviceQueue = "vkGetDeviceQueue"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetDeviceQueue
+-- >     ( VkDevice device
+-- >     , uint32_t queueFamilyIndex
+-- >     , uint32_t queueIndex
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue vkGetDeviceQueue registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDeviceQueue" vkGetDeviceQueue ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ queueFamilyIndex
+                                  -> Word32 -- ^ queueIndex
+                                            -> Ptr VkQueue -- ^ pQueue
+                                                           -> IO ()
+
+##else
+-- |
+-- > void vkGetDeviceQueue
+-- >     ( VkDevice device
+-- >     , uint32_t queueFamilyIndex
+-- >     , uint32_t queueIndex
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue vkGetDeviceQueue registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceQueueSafe@ and @vkGetDeviceQueue@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceQueue <- vkGetDeviceProc @VkGetDeviceQueue vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceQueue <- vkGetProc @VkGetDeviceQueue
+--
+vkGetDeviceQueue ::
+                 VkDevice -- ^ device
+                          -> Word32 -- ^ queueFamilyIndex
+                                    -> Word32 -- ^ queueIndex
+                                              -> Ptr VkQueue -- ^ pQueue
+                                                             -> IO ()
+vkGetDeviceQueue
+  = unsafeDupablePerformIO (vkGetProc @VkGetDeviceQueue)
+
+{-# NOINLINE vkGetDeviceQueue #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetDeviceQueue
+-- >     ( VkDevice device
+-- >     , uint32_t queueFamilyIndex
+-- >     , uint32_t queueIndex
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue vkGetDeviceQueue registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceQueue" vkGetDeviceQueueSafe
+               :: VkDevice -- ^ device
+                           -> Word32 -- ^ queueFamilyIndex
+                                     -> Word32 -- ^ queueIndex
+                                               -> Ptr VkQueue -- ^ pQueue
+                                                              -> IO ()
+
+##else
+-- |
+-- > void vkGetDeviceQueue
+-- >     ( VkDevice device
+-- >     , uint32_t queueFamilyIndex
+-- >     , uint32_t queueIndex
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue vkGetDeviceQueue registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceQueueSafe@ and @vkGetDeviceQueue@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceQueue <- vkGetDeviceProc @VkGetDeviceQueue vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceQueue <- vkGetProc @VkGetDeviceQueue
+--
+vkGetDeviceQueueSafe ::
+                     VkDevice -- ^ device
+                              -> Word32 -- ^ queueFamilyIndex
+                                        -> Word32 -- ^ queueIndex
+                                                  -> Ptr VkQueue -- ^ pQueue
+                                                                 -> IO ()
+vkGetDeviceQueueSafe = vkGetDeviceQueue
+
+{-# INLINE vkGetDeviceQueueSafe #-}
+##endif
+
+-- | > void vkGetDeviceQueue
+--   >     ( VkDevice device
+--   >     , uint32_t queueFamilyIndex
+--   >     , uint32_t queueIndex
+--   >     , VkQueue* pQueue
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue vkGetDeviceQueue registry at www.khronos.org>
+type HS_vkGetDeviceQueue =
+     VkDevice -- ^ device
+              -> Word32 -- ^ queueFamilyIndex
+                        -> Word32 -- ^ queueIndex
+                                  -> Ptr VkQueue -- ^ pQueue
+                                                 -> IO ()
+
+type PFN_vkGetDeviceQueue = FunPtr HS_vkGetDeviceQueue
+
+foreign import ccall "dynamic" unwrapVkGetDeviceQueue ::
+               PFN_vkGetDeviceQueue -> HS_vkGetDeviceQueue
+
+instance VulkanProc "vkGetDeviceQueue" where
+        type VkProcType "vkGetDeviceQueue" = HS_vkGetDeviceQueue
+        vkProcSymbol = _VkGetDeviceQueue
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceQueue
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueSubmit :: CString
+
+pattern VkQueueSubmit <- (is_VkQueueSubmit -> True)
+  where VkQueueSubmit = _VkQueueSubmit
+
+{-# INLINE _VkQueueSubmit #-}
+
+_VkQueueSubmit :: CString
+_VkQueueSubmit = Ptr "vkQueueSubmit\NUL"##
+
+{-# INLINE is_VkQueueSubmit #-}
+
+is_VkQueueSubmit :: CString -> Bool
+is_VkQueueSubmit = (EQ ==) . cmpCStrings _VkQueueSubmit
+
+type VkQueueSubmit = "vkQueueSubmit"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueSubmit
+-- >     ( VkQueue queue
+-- >     , uint32_t submitCount
+-- >     , const VkSubmitInfo* pSubmits
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueSubmit vkQueueSubmit registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkQueueSubmit" vkQueueSubmit ::
+               VkQueue -- ^ queue
+                       -> Word32 -- ^ submitCount
+                                 -> Ptr VkSubmitInfo -- ^ pSubmits
+                                                     -> VkFence -- ^ fence
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueSubmit
+-- >     ( VkQueue queue
+-- >     , uint32_t submitCount
+-- >     , const VkSubmitInfo* pSubmits
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueSubmit vkQueueSubmit registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueSubmitSafe@ and @vkQueueSubmit@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueSubmit <- vkGetInstanceProc @VkQueueSubmit vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueSubmit <- vkGetProc @VkQueueSubmit
+--
+vkQueueSubmit ::
+              VkQueue -- ^ queue
+                      -> Word32 -- ^ submitCount
+                                -> Ptr VkSubmitInfo -- ^ pSubmits
+                                                    -> VkFence -- ^ fence
+                                                               -> IO VkResult
+vkQueueSubmit = unsafeDupablePerformIO (vkGetProc @VkQueueSubmit)
+
+{-# NOINLINE vkQueueSubmit #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueSubmit
+-- >     ( VkQueue queue
+-- >     , uint32_t submitCount
+-- >     , const VkSubmitInfo* pSubmits
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueSubmit vkQueueSubmit registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkQueueSubmit" vkQueueSubmitSafe ::
+               VkQueue -- ^ queue
+                       -> Word32 -- ^ submitCount
+                                 -> Ptr VkSubmitInfo -- ^ pSubmits
+                                                     -> VkFence -- ^ fence
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueSubmit
+-- >     ( VkQueue queue
+-- >     , uint32_t submitCount
+-- >     , const VkSubmitInfo* pSubmits
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueSubmit vkQueueSubmit registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueSubmitSafe@ and @vkQueueSubmit@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueSubmit <- vkGetInstanceProc @VkQueueSubmit vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueSubmit <- vkGetProc @VkQueueSubmit
+--
+vkQueueSubmitSafe ::
+                  VkQueue -- ^ queue
+                          -> Word32 -- ^ submitCount
+                                    -> Ptr VkSubmitInfo -- ^ pSubmits
+                                                        -> VkFence -- ^ fence
+                                                                   -> IO VkResult
+vkQueueSubmitSafe = vkQueueSubmit
+
+{-# INLINE vkQueueSubmitSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkQueueSubmit
+--   >     ( VkQueue queue
+--   >     , uint32_t submitCount
+--   >     , const VkSubmitInfo* pSubmits
+--   >     , VkFence fence
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueSubmit vkQueueSubmit registry at www.khronos.org>
+type HS_vkQueueSubmit =
+     VkQueue -- ^ queue
+             -> Word32 -- ^ submitCount
+                       -> Ptr VkSubmitInfo -- ^ pSubmits
+                                           -> VkFence -- ^ fence
+                                                      -> IO VkResult
+
+type PFN_vkQueueSubmit = FunPtr HS_vkQueueSubmit
+
+foreign import ccall "dynamic" unwrapVkQueueSubmit ::
+               PFN_vkQueueSubmit -> HS_vkQueueSubmit
+
+instance VulkanProc "vkQueueSubmit" where
+        type VkProcType "vkQueueSubmit" = HS_vkQueueSubmit
+        vkProcSymbol = _VkQueueSubmit
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueSubmit
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueWaitIdle :: CString
+
+pattern VkQueueWaitIdle <- (is_VkQueueWaitIdle -> True)
+  where VkQueueWaitIdle = _VkQueueWaitIdle
+
+{-# INLINE _VkQueueWaitIdle #-}
+
+_VkQueueWaitIdle :: CString
+_VkQueueWaitIdle = Ptr "vkQueueWaitIdle\NUL"##
+
+{-# INLINE is_VkQueueWaitIdle #-}
+
+is_VkQueueWaitIdle :: CString -> Bool
+is_VkQueueWaitIdle = (EQ ==) . cmpCStrings _VkQueueWaitIdle
+
+type VkQueueWaitIdle = "vkQueueWaitIdle"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueWaitIdle
+-- >     ( VkQueue queue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueWaitIdle vkQueueWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkQueueWaitIdle" vkQueueWaitIdle ::
+               VkQueue -- ^ queue
+                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueWaitIdle
+-- >     ( VkQueue queue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueWaitIdle vkQueueWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueWaitIdleSafe@ and @vkQueueWaitIdle@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueWaitIdle <- vkGetInstanceProc @VkQueueWaitIdle vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueWaitIdle <- vkGetProc @VkQueueWaitIdle
+--
+vkQueueWaitIdle :: VkQueue -- ^ queue
+                           -> IO VkResult
+vkQueueWaitIdle
+  = unsafeDupablePerformIO (vkGetProc @VkQueueWaitIdle)
+
+{-# NOINLINE vkQueueWaitIdle #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueWaitIdle
+-- >     ( VkQueue queue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueWaitIdle vkQueueWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkQueueWaitIdle" vkQueueWaitIdleSafe ::
+               VkQueue -- ^ queue
+                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkQueueWaitIdle
+-- >     ( VkQueue queue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueWaitIdle vkQueueWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueWaitIdleSafe@ and @vkQueueWaitIdle@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueWaitIdle <- vkGetInstanceProc @VkQueueWaitIdle vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueWaitIdle <- vkGetProc @VkQueueWaitIdle
+--
+vkQueueWaitIdleSafe :: VkQueue -- ^ queue
+                               -> IO VkResult
+vkQueueWaitIdleSafe = vkQueueWaitIdle
+
+{-# INLINE vkQueueWaitIdleSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkQueueWaitIdle
+--   >     ( VkQueue queue
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueWaitIdle vkQueueWaitIdle registry at www.khronos.org>
+type HS_vkQueueWaitIdle = VkQueue -- ^ queue
+                                  -> IO VkResult
+
+type PFN_vkQueueWaitIdle = FunPtr HS_vkQueueWaitIdle
+
+foreign import ccall "dynamic" unwrapVkQueueWaitIdle ::
+               PFN_vkQueueWaitIdle -> HS_vkQueueWaitIdle
+
+instance VulkanProc "vkQueueWaitIdle" where
+        type VkProcType "vkQueueWaitIdle" = HS_vkQueueWaitIdle
+        vkProcSymbol = _VkQueueWaitIdle
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueWaitIdle
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDeviceWaitIdle :: CString
+
+pattern VkDeviceWaitIdle <- (is_VkDeviceWaitIdle -> True)
+  where VkDeviceWaitIdle = _VkDeviceWaitIdle
+
+{-# INLINE _VkDeviceWaitIdle #-}
+
+_VkDeviceWaitIdle :: CString
+_VkDeviceWaitIdle = Ptr "vkDeviceWaitIdle\NUL"##
+
+{-# INLINE is_VkDeviceWaitIdle #-}
+
+is_VkDeviceWaitIdle :: CString -> Bool
+is_VkDeviceWaitIdle = (EQ ==) . cmpCStrings _VkDeviceWaitIdle
+
+type VkDeviceWaitIdle = "vkDeviceWaitIdle"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkDeviceWaitIdle
+-- >     ( VkDevice device
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDeviceWaitIdle vkDeviceWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDeviceWaitIdle" vkDeviceWaitIdle ::
+               VkDevice -- ^ device
+                        -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkDeviceWaitIdle
+-- >     ( VkDevice device
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDeviceWaitIdle vkDeviceWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDeviceWaitIdleSafe@ and @vkDeviceWaitIdle@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDeviceWaitIdle <- vkGetDeviceProc @VkDeviceWaitIdle vkDevice
+--
+-- or less efficient:
+--
+-- > myDeviceWaitIdle <- vkGetProc @VkDeviceWaitIdle
+--
+vkDeviceWaitIdle :: VkDevice -- ^ device
+                             -> IO VkResult
+vkDeviceWaitIdle
+  = unsafeDupablePerformIO (vkGetProc @VkDeviceWaitIdle)
+
+{-# NOINLINE vkDeviceWaitIdle #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkDeviceWaitIdle
+-- >     ( VkDevice device
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDeviceWaitIdle vkDeviceWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDeviceWaitIdle" vkDeviceWaitIdleSafe
+               :: VkDevice -- ^ device
+                           -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkDeviceWaitIdle
+-- >     ( VkDevice device
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDeviceWaitIdle vkDeviceWaitIdle registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDeviceWaitIdleSafe@ and @vkDeviceWaitIdle@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDeviceWaitIdle <- vkGetDeviceProc @VkDeviceWaitIdle vkDevice
+--
+-- or less efficient:
+--
+-- > myDeviceWaitIdle <- vkGetProc @VkDeviceWaitIdle
+--
+vkDeviceWaitIdleSafe :: VkDevice -- ^ device
+                                 -> IO VkResult
+vkDeviceWaitIdleSafe = vkDeviceWaitIdle
+
+{-# INLINE vkDeviceWaitIdleSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkDeviceWaitIdle
+--   >     ( VkDevice device
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDeviceWaitIdle vkDeviceWaitIdle registry at www.khronos.org>
+type HS_vkDeviceWaitIdle = VkDevice -- ^ device
+                                    -> IO VkResult
+
+type PFN_vkDeviceWaitIdle = FunPtr HS_vkDeviceWaitIdle
+
+foreign import ccall "dynamic" unwrapVkDeviceWaitIdle ::
+               PFN_vkDeviceWaitIdle -> HS_vkDeviceWaitIdle
+
+instance VulkanProc "vkDeviceWaitIdle" where
+        type VkProcType "vkDeviceWaitIdle" = HS_vkDeviceWaitIdle
+        vkProcSymbol = _VkDeviceWaitIdle
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDeviceWaitIdle
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkAllocateMemory :: CString
+
+pattern VkAllocateMemory <- (is_VkAllocateMemory -> True)
+  where VkAllocateMemory = _VkAllocateMemory
+
+{-# INLINE _VkAllocateMemory #-}
+
+_VkAllocateMemory :: CString
+_VkAllocateMemory = Ptr "vkAllocateMemory\NUL"##
+
+{-# INLINE is_VkAllocateMemory #-}
+
+is_VkAllocateMemory :: CString -> Bool
+is_VkAllocateMemory = (EQ ==) . cmpCStrings _VkAllocateMemory
+
+type VkAllocateMemory = "vkAllocateMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
+--
+-- > VkResult vkAllocateMemory
+-- >     ( VkDevice device
+-- >     , const VkMemoryAllocateInfo* pAllocateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDeviceMemory* pMemory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateMemory vkAllocateMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkAllocateMemory" vkAllocateMemory ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
+                                          ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDeviceMemory -- ^ pMemory
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
+--
+-- > VkResult vkAllocateMemory
+-- >     ( VkDevice device
+-- >     , const VkMemoryAllocateInfo* pAllocateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDeviceMemory* pMemory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateMemory vkAllocateMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateMemorySafe@ and @vkAllocateMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateMemory <- vkGetDeviceProc @VkAllocateMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateMemory <- vkGetProc @VkAllocateMemory
+--
+vkAllocateMemory ::
+                 VkDevice -- ^ device
+                          ->
+                   Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
+                                            ->
+                     Ptr VkAllocationCallbacks -- ^ pAllocator
+                                               -> Ptr VkDeviceMemory -- ^ pMemory
+                                                                     -> IO VkResult
+vkAllocateMemory
+  = unsafeDupablePerformIO (vkGetProc @VkAllocateMemory)
+
+{-# NOINLINE vkAllocateMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
+--
+-- > VkResult vkAllocateMemory
+-- >     ( VkDevice device
+-- >     , const VkMemoryAllocateInfo* pAllocateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDeviceMemory* pMemory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateMemory vkAllocateMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkAllocateMemory" vkAllocateMemorySafe
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
+                                          ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDeviceMemory -- ^ pMemory
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
+--
+-- > VkResult vkAllocateMemory
+-- >     ( VkDevice device
+-- >     , const VkMemoryAllocateInfo* pAllocateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDeviceMemory* pMemory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateMemory vkAllocateMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateMemorySafe@ and @vkAllocateMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateMemory <- vkGetDeviceProc @VkAllocateMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateMemory <- vkGetProc @VkAllocateMemory
+--
+vkAllocateMemorySafe ::
+                     VkDevice -- ^ device
+                              ->
+                       Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
+                                                ->
+                         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                   -> Ptr VkDeviceMemory -- ^ pMemory
+                                                                         -> IO VkResult
+vkAllocateMemorySafe = vkAllocateMemory
+
+{-# INLINE vkAllocateMemorySafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
+--
+--   > VkResult vkAllocateMemory
+--   >     ( VkDevice device
+--   >     , const VkMemoryAllocateInfo* pAllocateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDeviceMemory* pMemory
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateMemory vkAllocateMemory registry at www.khronos.org>
+type HS_vkAllocateMemory =
+     VkDevice -- ^ device
+              ->
+       Ptr VkMemoryAllocateInfo -- ^ pAllocateInfo
+                                ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkDeviceMemory -- ^ pMemory
+                                                         -> IO VkResult
+
+type PFN_vkAllocateMemory = FunPtr HS_vkAllocateMemory
+
+foreign import ccall "dynamic" unwrapVkAllocateMemory ::
+               PFN_vkAllocateMemory -> HS_vkAllocateMemory
+
+instance VulkanProc "vkAllocateMemory" where
+        type VkProcType "vkAllocateMemory" = HS_vkAllocateMemory
+        vkProcSymbol = _VkAllocateMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAllocateMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkFreeMemory :: CString
+
+pattern VkFreeMemory <- (is_VkFreeMemory -> True)
+  where VkFreeMemory = _VkFreeMemory
+
+{-# INLINE _VkFreeMemory #-}
+
+_VkFreeMemory :: CString
+_VkFreeMemory = Ptr "vkFreeMemory\NUL"##
+
+{-# INLINE is_VkFreeMemory #-}
+
+is_VkFreeMemory :: CString -> Bool
+is_VkFreeMemory = (EQ ==) . cmpCStrings _VkFreeMemory
+
+type VkFreeMemory = "vkFreeMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkFreeMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeMemory vkFreeMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkFreeMemory" vkFreeMemory ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkFreeMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeMemory vkFreeMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeMemorySafe@ and @vkFreeMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeMemory <- vkGetDeviceProc @VkFreeMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeMemory <- vkGetProc @VkFreeMemory
+--
+vkFreeMemory ::
+             VkDevice -- ^ device
+                      -> VkDeviceMemory -- ^ memory
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+vkFreeMemory = unsafeDupablePerformIO (vkGetProc @VkFreeMemory)
+
+{-# NOINLINE vkFreeMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkFreeMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeMemory vkFreeMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkFreeMemory" vkFreeMemorySafe ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkFreeMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeMemory vkFreeMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeMemorySafe@ and @vkFreeMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeMemory <- vkGetDeviceProc @VkFreeMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeMemory <- vkGetProc @VkFreeMemory
+--
+vkFreeMemorySafe ::
+                 VkDevice -- ^ device
+                          -> VkDeviceMemory -- ^ memory
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+vkFreeMemorySafe = vkFreeMemory
+
+{-# INLINE vkFreeMemorySafe #-}
+##endif
+
+-- | > void vkFreeMemory
+--   >     ( VkDevice device
+--   >     , VkDeviceMemory memory
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeMemory vkFreeMemory registry at www.khronos.org>
+type HS_vkFreeMemory =
+     VkDevice -- ^ device
+              -> VkDeviceMemory -- ^ memory
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkFreeMemory = FunPtr HS_vkFreeMemory
+
+foreign import ccall "dynamic" unwrapVkFreeMemory ::
+               PFN_vkFreeMemory -> HS_vkFreeMemory
+
+instance VulkanProc "vkFreeMemory" where
+        type VkProcType "vkFreeMemory" = HS_vkFreeMemory
+        vkProcSymbol = _VkFreeMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkFreeMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkMapMemory :: CString
+
+pattern VkMapMemory <- (is_VkMapMemory -> True)
+  where VkMapMemory = _VkMapMemory
+
+{-# INLINE _VkMapMemory #-}
+
+_VkMapMemory :: CString
+_VkMapMemory = Ptr "vkMapMemory\NUL"##
+
+{-# INLINE is_VkMapMemory #-}
+
+is_VkMapMemory :: CString -> Bool
+is_VkMapMemory = (EQ ==) . cmpCStrings _VkMapMemory
+
+type VkMapMemory = "vkMapMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
+--
+-- > VkResult vkMapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize offset
+-- >     , VkDeviceSize size
+-- >     , VkMemoryMapFlags flags
+-- >     , void** ppData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMapMemory vkMapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkMapMemory" vkMapMemory ::
+               VkDevice -- ^ device
+                        ->
+                 VkDeviceMemory -- ^ memory
+                                ->
+                   VkDeviceSize -- ^ offset
+                                ->
+                     VkDeviceSize -- ^ size
+                                  -> VkMemoryMapFlags -- ^ flags
+                                                      -> Ptr (Ptr Void) -- ^ ppData
+                                                                        -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
+--
+-- > VkResult vkMapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize offset
+-- >     , VkDeviceSize size
+-- >     , VkMemoryMapFlags flags
+-- >     , void** ppData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMapMemory vkMapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkMapMemorySafe@ and @vkMapMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myMapMemory <- vkGetDeviceProc @VkMapMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myMapMemory <- vkGetProc @VkMapMemory
+--
+vkMapMemory ::
+            VkDevice -- ^ device
+                     ->
+              VkDeviceMemory -- ^ memory
+                             ->
+                VkDeviceSize -- ^ offset
+                             ->
+                  VkDeviceSize -- ^ size
+                               -> VkMemoryMapFlags -- ^ flags
+                                                   -> Ptr (Ptr Void) -- ^ ppData
+                                                                     -> IO VkResult
+vkMapMemory = unsafeDupablePerformIO (vkGetProc @VkMapMemory)
+
+{-# NOINLINE vkMapMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
+--
+-- > VkResult vkMapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize offset
+-- >     , VkDeviceSize size
+-- >     , VkMemoryMapFlags flags
+-- >     , void** ppData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMapMemory vkMapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkMapMemory" vkMapMemorySafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDeviceMemory -- ^ memory
+                                ->
+                   VkDeviceSize -- ^ offset
+                                ->
+                     VkDeviceSize -- ^ size
+                                  -> VkMemoryMapFlags -- ^ flags
+                                                      -> Ptr (Ptr Void) -- ^ ppData
+                                                                        -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
+--
+-- > VkResult vkMapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize offset
+-- >     , VkDeviceSize size
+-- >     , VkMemoryMapFlags flags
+-- >     , void** ppData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMapMemory vkMapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkMapMemorySafe@ and @vkMapMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myMapMemory <- vkGetDeviceProc @VkMapMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myMapMemory <- vkGetProc @VkMapMemory
+--
+vkMapMemorySafe ::
+                VkDevice -- ^ device
+                         ->
+                  VkDeviceMemory -- ^ memory
+                                 ->
+                    VkDeviceSize -- ^ offset
+                                 ->
+                      VkDeviceSize -- ^ size
+                                   -> VkMemoryMapFlags -- ^ flags
+                                                       -> Ptr (Ptr Void) -- ^ ppData
+                                                                         -> IO VkResult
+vkMapMemorySafe = vkMapMemory
+
+{-# INLINE vkMapMemorySafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_MEMORY_MAP_FAILED'.
+--
+--   > VkResult vkMapMemory
+--   >     ( VkDevice device
+--   >     , VkDeviceMemory memory
+--   >     , VkDeviceSize offset
+--   >     , VkDeviceSize size
+--   >     , VkMemoryMapFlags flags
+--   >     , void** ppData
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMapMemory vkMapMemory registry at www.khronos.org>
+type HS_vkMapMemory =
+     VkDevice -- ^ device
+              ->
+       VkDeviceMemory -- ^ memory
+                      ->
+         VkDeviceSize -- ^ offset
+                      ->
+           VkDeviceSize -- ^ size
+                        -> VkMemoryMapFlags -- ^ flags
+                                            -> Ptr (Ptr Void) -- ^ ppData
+                                                              -> IO VkResult
+
+type PFN_vkMapMemory = FunPtr HS_vkMapMemory
+
+foreign import ccall "dynamic" unwrapVkMapMemory ::
+               PFN_vkMapMemory -> HS_vkMapMemory
+
+instance VulkanProc "vkMapMemory" where
+        type VkProcType "vkMapMemory" = HS_vkMapMemory
+        vkProcSymbol = _VkMapMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkMapMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkUnmapMemory :: CString
+
+pattern VkUnmapMemory <- (is_VkUnmapMemory -> True)
+  where VkUnmapMemory = _VkUnmapMemory
+
+{-# INLINE _VkUnmapMemory #-}
+
+_VkUnmapMemory :: CString
+_VkUnmapMemory = Ptr "vkUnmapMemory\NUL"##
+
+{-# INLINE is_VkUnmapMemory #-}
+
+is_VkUnmapMemory :: CString -> Bool
+is_VkUnmapMemory = (EQ ==) . cmpCStrings _VkUnmapMemory
+
+type VkUnmapMemory = "vkUnmapMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkUnmapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnmapMemory vkUnmapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkUnmapMemory" vkUnmapMemory ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> IO ()
+
+##else
+-- |
+-- > void vkUnmapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnmapMemory vkUnmapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUnmapMemorySafe@ and @vkUnmapMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUnmapMemory <- vkGetDeviceProc @VkUnmapMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myUnmapMemory <- vkGetProc @VkUnmapMemory
+--
+vkUnmapMemory :: VkDevice -- ^ device
+                          -> VkDeviceMemory -- ^ memory
+                                            -> IO ()
+vkUnmapMemory = unsafeDupablePerformIO (vkGetProc @VkUnmapMemory)
+
+{-# NOINLINE vkUnmapMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkUnmapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnmapMemory vkUnmapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkUnmapMemory" vkUnmapMemorySafe ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> IO ()
+
+##else
+-- |
+-- > void vkUnmapMemory
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnmapMemory vkUnmapMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUnmapMemorySafe@ and @vkUnmapMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUnmapMemory <- vkGetDeviceProc @VkUnmapMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myUnmapMemory <- vkGetProc @VkUnmapMemory
+--
+vkUnmapMemorySafe :: VkDevice -- ^ device
+                              -> VkDeviceMemory -- ^ memory
+                                                -> IO ()
+vkUnmapMemorySafe = vkUnmapMemory
+
+{-# INLINE vkUnmapMemorySafe #-}
+##endif
+
+-- | > void vkUnmapMemory
+--   >     ( VkDevice device
+--   >     , VkDeviceMemory memory
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnmapMemory vkUnmapMemory registry at www.khronos.org>
+type HS_vkUnmapMemory = VkDevice -- ^ device
+                                 -> VkDeviceMemory -- ^ memory
+                                                   -> IO ()
+
+type PFN_vkUnmapMemory = FunPtr HS_vkUnmapMemory
+
+foreign import ccall "dynamic" unwrapVkUnmapMemory ::
+               PFN_vkUnmapMemory -> HS_vkUnmapMemory
+
+instance VulkanProc "vkUnmapMemory" where
+        type VkProcType "vkUnmapMemory" = HS_vkUnmapMemory
+        vkProcSymbol = _VkUnmapMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkUnmapMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkFlushMappedMemoryRanges :: CString
+
+pattern VkFlushMappedMemoryRanges <-
+        (is_VkFlushMappedMemoryRanges -> True)
+  where VkFlushMappedMemoryRanges = _VkFlushMappedMemoryRanges
+
+{-# INLINE _VkFlushMappedMemoryRanges #-}
+
+_VkFlushMappedMemoryRanges :: CString
+_VkFlushMappedMemoryRanges = Ptr "vkFlushMappedMemoryRanges\NUL"##
+
+{-# INLINE is_VkFlushMappedMemoryRanges #-}
+
+is_VkFlushMappedMemoryRanges :: CString -> Bool
+is_VkFlushMappedMemoryRanges
+  = (EQ ==) . cmpCStrings _VkFlushMappedMemoryRanges
+
+type VkFlushMappedMemoryRanges = "vkFlushMappedMemoryRanges"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFlushMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkFlushMappedMemoryRanges"
+               vkFlushMappedMemoryRanges ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ memoryRangeCount
+                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFlushMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFlushMappedMemoryRangesSafe@ and @vkFlushMappedMemoryRanges@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFlushMappedMemoryRanges <- vkGetDeviceProc @VkFlushMappedMemoryRanges vkDevice
+--
+-- or less efficient:
+--
+-- > myFlushMappedMemoryRanges <- vkGetProc @VkFlushMappedMemoryRanges
+--
+vkFlushMappedMemoryRanges ::
+                          VkDevice -- ^ device
+                                   -> Word32 -- ^ memoryRangeCount
+                                             -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                                        -> IO VkResult
+vkFlushMappedMemoryRanges
+  = unsafeDupablePerformIO (vkGetProc @VkFlushMappedMemoryRanges)
+
+{-# NOINLINE vkFlushMappedMemoryRanges #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFlushMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkFlushMappedMemoryRanges"
+               vkFlushMappedMemoryRangesSafe ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ memoryRangeCount
+                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFlushMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFlushMappedMemoryRangesSafe@ and @vkFlushMappedMemoryRanges@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFlushMappedMemoryRanges <- vkGetDeviceProc @VkFlushMappedMemoryRanges vkDevice
+--
+-- or less efficient:
+--
+-- > myFlushMappedMemoryRanges <- vkGetProc @VkFlushMappedMemoryRanges
+--
+vkFlushMappedMemoryRangesSafe ::
+                              VkDevice -- ^ device
+                                       -> Word32 -- ^ memoryRangeCount
+                                                 -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                                            -> IO VkResult
+vkFlushMappedMemoryRangesSafe = vkFlushMappedMemoryRanges
+
+{-# INLINE vkFlushMappedMemoryRangesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkFlushMappedMemoryRanges
+--   >     ( VkDevice device
+--   >     , uint32_t memoryRangeCount
+--   >     , const VkMappedMemoryRange* pMemoryRanges
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges registry at www.khronos.org>
+type HS_vkFlushMappedMemoryRanges =
+     VkDevice -- ^ device
+              -> Word32 -- ^ memoryRangeCount
+                        -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                   -> IO VkResult
+
+type PFN_vkFlushMappedMemoryRanges =
+     FunPtr HS_vkFlushMappedMemoryRanges
+
+foreign import ccall "dynamic" unwrapVkFlushMappedMemoryRanges ::
+               PFN_vkFlushMappedMemoryRanges -> HS_vkFlushMappedMemoryRanges
+
+instance VulkanProc "vkFlushMappedMemoryRanges" where
+        type VkProcType "vkFlushMappedMemoryRanges" =
+             HS_vkFlushMappedMemoryRanges
+        vkProcSymbol = _VkFlushMappedMemoryRanges
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkFlushMappedMemoryRanges
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkInvalidateMappedMemoryRanges :: CString
+
+pattern VkInvalidateMappedMemoryRanges <-
+        (is_VkInvalidateMappedMemoryRanges -> True)
+  where VkInvalidateMappedMemoryRanges
+          = _VkInvalidateMappedMemoryRanges
+
+{-# INLINE _VkInvalidateMappedMemoryRanges #-}
+
+_VkInvalidateMappedMemoryRanges :: CString
+_VkInvalidateMappedMemoryRanges
+  = Ptr "vkInvalidateMappedMemoryRanges\NUL"##
+
+{-# INLINE is_VkInvalidateMappedMemoryRanges #-}
+
+is_VkInvalidateMappedMemoryRanges :: CString -> Bool
+is_VkInvalidateMappedMemoryRanges
+  = (EQ ==) . cmpCStrings _VkInvalidateMappedMemoryRanges
+
+type VkInvalidateMappedMemoryRanges =
+     "vkInvalidateMappedMemoryRanges"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkInvalidateMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkInvalidateMappedMemoryRanges"
+               vkInvalidateMappedMemoryRanges ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ memoryRangeCount
+                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkInvalidateMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkInvalidateMappedMemoryRangesSafe@ and @vkInvalidateMappedMemoryRanges@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myInvalidateMappedMemoryRanges <- vkGetDeviceProc @VkInvalidateMappedMemoryRanges vkDevice
+--
+-- or less efficient:
+--
+-- > myInvalidateMappedMemoryRanges <- vkGetProc @VkInvalidateMappedMemoryRanges
+--
+vkInvalidateMappedMemoryRanges ::
+                               VkDevice -- ^ device
+                                        -> Word32 -- ^ memoryRangeCount
+                                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                                             -> IO VkResult
+vkInvalidateMappedMemoryRanges
+  = unsafeDupablePerformIO
+      (vkGetProc @VkInvalidateMappedMemoryRanges)
+
+{-# NOINLINE vkInvalidateMappedMemoryRanges #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkInvalidateMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkInvalidateMappedMemoryRanges"
+               vkInvalidateMappedMemoryRangesSafe ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ memoryRangeCount
+                                  -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkInvalidateMappedMemoryRanges
+-- >     ( VkDevice device
+-- >     , uint32_t memoryRangeCount
+-- >     , const VkMappedMemoryRange* pMemoryRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkInvalidateMappedMemoryRangesSafe@ and @vkInvalidateMappedMemoryRanges@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myInvalidateMappedMemoryRanges <- vkGetDeviceProc @VkInvalidateMappedMemoryRanges vkDevice
+--
+-- or less efficient:
+--
+-- > myInvalidateMappedMemoryRanges <- vkGetProc @VkInvalidateMappedMemoryRanges
+--
+vkInvalidateMappedMemoryRangesSafe ::
+                                   VkDevice -- ^ device
+                                            -> Word32 -- ^ memoryRangeCount
+                                                      -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                                                 -> IO VkResult
+vkInvalidateMappedMemoryRangesSafe = vkInvalidateMappedMemoryRanges
+
+{-# INLINE vkInvalidateMappedMemoryRangesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkInvalidateMappedMemoryRanges
+--   >     ( VkDevice device
+--   >     , uint32_t memoryRangeCount
+--   >     , const VkMappedMemoryRange* pMemoryRanges
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges registry at www.khronos.org>
+type HS_vkInvalidateMappedMemoryRanges =
+     VkDevice -- ^ device
+              -> Word32 -- ^ memoryRangeCount
+                        -> Ptr VkMappedMemoryRange -- ^ pMemoryRanges
+                                                   -> IO VkResult
+
+type PFN_vkInvalidateMappedMemoryRanges =
+     FunPtr HS_vkInvalidateMappedMemoryRanges
+
+foreign import ccall "dynamic" unwrapVkInvalidateMappedMemoryRanges
+               ::
+               PFN_vkInvalidateMappedMemoryRanges ->
+                 HS_vkInvalidateMappedMemoryRanges
+
+instance VulkanProc "vkInvalidateMappedMemoryRanges" where
+        type VkProcType "vkInvalidateMappedMemoryRanges" =
+             HS_vkInvalidateMappedMemoryRanges
+        vkProcSymbol = _VkInvalidateMappedMemoryRanges
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkInvalidateMappedMemoryRanges
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDeviceMemoryCommitment :: CString
+
+pattern VkGetDeviceMemoryCommitment <-
+        (is_VkGetDeviceMemoryCommitment -> True)
+  where VkGetDeviceMemoryCommitment = _VkGetDeviceMemoryCommitment
+
+{-# INLINE _VkGetDeviceMemoryCommitment #-}
+
+_VkGetDeviceMemoryCommitment :: CString
+_VkGetDeviceMemoryCommitment
+  = Ptr "vkGetDeviceMemoryCommitment\NUL"##
+
+{-# INLINE is_VkGetDeviceMemoryCommitment #-}
+
+is_VkGetDeviceMemoryCommitment :: CString -> Bool
+is_VkGetDeviceMemoryCommitment
+  = (EQ ==) . cmpCStrings _VkGetDeviceMemoryCommitment
+
+type VkGetDeviceMemoryCommitment = "vkGetDeviceMemoryCommitment"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetDeviceMemoryCommitment
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize* pCommittedMemoryInBytes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDeviceMemoryCommitment"
+               vkGetDeviceMemoryCommitment ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
+                                                              -> IO ()
+
+##else
+-- |
+-- > void vkGetDeviceMemoryCommitment
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize* pCommittedMemoryInBytes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceMemoryCommitmentSafe@ and @vkGetDeviceMemoryCommitment@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceMemoryCommitment <- vkGetDeviceProc @VkGetDeviceMemoryCommitment vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceMemoryCommitment <- vkGetProc @VkGetDeviceMemoryCommitment
+--
+vkGetDeviceMemoryCommitment ::
+                            VkDevice -- ^ device
+                                     -> VkDeviceMemory -- ^ memory
+                                                       -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
+                                                                           -> IO ()
+vkGetDeviceMemoryCommitment
+  = unsafeDupablePerformIO (vkGetProc @VkGetDeviceMemoryCommitment)
+
+{-# NOINLINE vkGetDeviceMemoryCommitment #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetDeviceMemoryCommitment
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize* pCommittedMemoryInBytes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceMemoryCommitment"
+               vkGetDeviceMemoryCommitmentSafe ::
+               VkDevice -- ^ device
+                        -> VkDeviceMemory -- ^ memory
+                                          -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
+                                                              -> IO ()
+
+##else
+-- |
+-- > void vkGetDeviceMemoryCommitment
+-- >     ( VkDevice device
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize* pCommittedMemoryInBytes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceMemoryCommitmentSafe@ and @vkGetDeviceMemoryCommitment@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceMemoryCommitment <- vkGetDeviceProc @VkGetDeviceMemoryCommitment vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceMemoryCommitment <- vkGetProc @VkGetDeviceMemoryCommitment
+--
+vkGetDeviceMemoryCommitmentSafe ::
+                                VkDevice -- ^ device
+                                         -> VkDeviceMemory -- ^ memory
+                                                           -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
+                                                                               -> IO ()
+vkGetDeviceMemoryCommitmentSafe = vkGetDeviceMemoryCommitment
+
+{-# INLINE vkGetDeviceMemoryCommitmentSafe #-}
+##endif
+
+-- | > void vkGetDeviceMemoryCommitment
+--   >     ( VkDevice device
+--   >     , VkDeviceMemory memory
+--   >     , VkDeviceSize* pCommittedMemoryInBytes
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment registry at www.khronos.org>
+type HS_vkGetDeviceMemoryCommitment =
+     VkDevice -- ^ device
+              -> VkDeviceMemory -- ^ memory
+                                -> Ptr VkDeviceSize -- ^ pCommittedMemoryInBytes
+                                                    -> IO ()
+
+type PFN_vkGetDeviceMemoryCommitment =
+     FunPtr HS_vkGetDeviceMemoryCommitment
+
+foreign import ccall "dynamic" unwrapVkGetDeviceMemoryCommitment ::
+               PFN_vkGetDeviceMemoryCommitment -> HS_vkGetDeviceMemoryCommitment
+
+instance VulkanProc "vkGetDeviceMemoryCommitment" where
+        type VkProcType "vkGetDeviceMemoryCommitment" =
+             HS_vkGetDeviceMemoryCommitment
+        vkProcSymbol = _VkGetDeviceMemoryCommitment
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceMemoryCommitment
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkBindBufferMemory :: CString
+
+pattern VkBindBufferMemory <- (is_VkBindBufferMemory -> True)
+  where VkBindBufferMemory = _VkBindBufferMemory
+
+{-# INLINE _VkBindBufferMemory #-}
+
+_VkBindBufferMemory :: CString
+_VkBindBufferMemory = Ptr "vkBindBufferMemory\NUL"##
+
+{-# INLINE is_VkBindBufferMemory #-}
+
+is_VkBindBufferMemory :: CString -> Bool
+is_VkBindBufferMemory = (EQ ==) . cmpCStrings _VkBindBufferMemory
+
+type VkBindBufferMemory = "vkBindBufferMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory vkBindBufferMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkBindBufferMemory" vkBindBufferMemory
+               ::
+               VkDevice -- ^ device
+                        ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceMemory -- ^ memory
+                                            -> VkDeviceSize -- ^ memoryOffset
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory vkBindBufferMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindBufferMemorySafe@ and @vkBindBufferMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindBufferMemory <- vkGetDeviceProc @VkBindBufferMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myBindBufferMemory <- vkGetProc @VkBindBufferMemory
+--
+vkBindBufferMemory ::
+                   VkDevice -- ^ device
+                            ->
+                     VkBuffer -- ^ buffer
+                              -> VkDeviceMemory -- ^ memory
+                                                -> VkDeviceSize -- ^ memoryOffset
+                                                                -> IO VkResult
+vkBindBufferMemory
+  = unsafeDupablePerformIO (vkGetProc @VkBindBufferMemory)
+
+{-# NOINLINE vkBindBufferMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory vkBindBufferMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkBindBufferMemory"
+               vkBindBufferMemorySafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceMemory -- ^ memory
+                                            -> VkDeviceSize -- ^ memoryOffset
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory vkBindBufferMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindBufferMemorySafe@ and @vkBindBufferMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindBufferMemory <- vkGetDeviceProc @VkBindBufferMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myBindBufferMemory <- vkGetProc @VkBindBufferMemory
+--
+vkBindBufferMemorySafe ::
+                       VkDevice -- ^ device
+                                ->
+                         VkBuffer -- ^ buffer
+                                  -> VkDeviceMemory -- ^ memory
+                                                    -> VkDeviceSize -- ^ memoryOffset
+                                                                    -> IO VkResult
+vkBindBufferMemorySafe = vkBindBufferMemory
+
+{-# INLINE vkBindBufferMemorySafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkBindBufferMemory
+--   >     ( VkDevice device
+--   >     , VkBuffer buffer
+--   >     , VkDeviceMemory memory
+--   >     , VkDeviceSize memoryOffset
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory vkBindBufferMemory registry at www.khronos.org>
+type HS_vkBindBufferMemory =
+     VkDevice -- ^ device
+              ->
+       VkBuffer -- ^ buffer
+                -> VkDeviceMemory -- ^ memory
+                                  -> VkDeviceSize -- ^ memoryOffset
+                                                  -> IO VkResult
+
+type PFN_vkBindBufferMemory = FunPtr HS_vkBindBufferMemory
+
+foreign import ccall "dynamic" unwrapVkBindBufferMemory ::
+               PFN_vkBindBufferMemory -> HS_vkBindBufferMemory
+
+instance VulkanProc "vkBindBufferMemory" where
+        type VkProcType "vkBindBufferMemory" = HS_vkBindBufferMemory
+        vkProcSymbol = _VkBindBufferMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindBufferMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkBindImageMemory :: CString
+
+pattern VkBindImageMemory <- (is_VkBindImageMemory -> True)
+  where VkBindImageMemory = _VkBindImageMemory
+
+{-# INLINE _VkBindImageMemory #-}
+
+_VkBindImageMemory :: CString
+_VkBindImageMemory = Ptr "vkBindImageMemory\NUL"##
+
+{-# INLINE is_VkBindImageMemory #-}
+
+is_VkBindImageMemory :: CString -> Bool
+is_VkBindImageMemory = (EQ ==) . cmpCStrings _VkBindImageMemory
+
+type VkBindImageMemory = "vkBindImageMemory"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory vkBindImageMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkBindImageMemory" vkBindImageMemory
+               ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         -> VkDeviceMemory -- ^ memory
+                                           -> VkDeviceSize -- ^ memoryOffset
+                                                           -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory vkBindImageMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindImageMemorySafe@ and @vkBindImageMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindImageMemory <- vkGetDeviceProc @VkBindImageMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myBindImageMemory <- vkGetProc @VkBindImageMemory
+--
+vkBindImageMemory ::
+                  VkDevice -- ^ device
+                           ->
+                    VkImage -- ^ image
+                            -> VkDeviceMemory -- ^ memory
+                                              -> VkDeviceSize -- ^ memoryOffset
+                                                              -> IO VkResult
+vkBindImageMemory
+  = unsafeDupablePerformIO (vkGetProc @VkBindImageMemory)
+
+{-# NOINLINE vkBindImageMemory #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory vkBindImageMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkBindImageMemory" vkBindImageMemorySafe
+               ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         -> VkDeviceMemory -- ^ memory
+                                           -> VkDeviceSize -- ^ memoryOffset
+                                                           -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkDeviceMemory memory
+-- >     , VkDeviceSize memoryOffset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory vkBindImageMemory registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindImageMemorySafe@ and @vkBindImageMemory@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindImageMemory <- vkGetDeviceProc @VkBindImageMemory vkDevice
+--
+-- or less efficient:
+--
+-- > myBindImageMemory <- vkGetProc @VkBindImageMemory
+--
+vkBindImageMemorySafe ::
+                      VkDevice -- ^ device
+                               ->
+                        VkImage -- ^ image
+                                -> VkDeviceMemory -- ^ memory
+                                                  -> VkDeviceSize -- ^ memoryOffset
+                                                                  -> IO VkResult
+vkBindImageMemorySafe = vkBindImageMemory
+
+{-# INLINE vkBindImageMemorySafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkBindImageMemory
+--   >     ( VkDevice device
+--   >     , VkImage image
+--   >     , VkDeviceMemory memory
+--   >     , VkDeviceSize memoryOffset
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory vkBindImageMemory registry at www.khronos.org>
+type HS_vkBindImageMemory =
+     VkDevice -- ^ device
+              ->
+       VkImage -- ^ image
+               -> VkDeviceMemory -- ^ memory
+                                 -> VkDeviceSize -- ^ memoryOffset
+                                                 -> IO VkResult
+
+type PFN_vkBindImageMemory = FunPtr HS_vkBindImageMemory
+
+foreign import ccall "dynamic" unwrapVkBindImageMemory ::
+               PFN_vkBindImageMemory -> HS_vkBindImageMemory
+
+instance VulkanProc "vkBindImageMemory" where
+        type VkProcType "vkBindImageMemory" = HS_vkBindImageMemory
+        vkProcSymbol = _VkBindImageMemory
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindImageMemory
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetBufferMemoryRequirements :: CString
+
+pattern VkGetBufferMemoryRequirements <-
+        (is_VkGetBufferMemoryRequirements -> True)
+  where VkGetBufferMemoryRequirements
+          = _VkGetBufferMemoryRequirements
+
+{-# INLINE _VkGetBufferMemoryRequirements #-}
+
+_VkGetBufferMemoryRequirements :: CString
+_VkGetBufferMemoryRequirements
+  = Ptr "vkGetBufferMemoryRequirements\NUL"##
+
+{-# INLINE is_VkGetBufferMemoryRequirements #-}
+
+is_VkGetBufferMemoryRequirements :: CString -> Bool
+is_VkGetBufferMemoryRequirements
+  = (EQ ==) . cmpCStrings _VkGetBufferMemoryRequirements
+
+type VkGetBufferMemoryRequirements =
+     "vkGetBufferMemoryRequirements"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetBufferMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetBufferMemoryRequirements"
+               vkGetBufferMemoryRequirements ::
+               VkDevice -- ^ device
+                        -> VkBuffer -- ^ buffer
+                                    -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkGetBufferMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetBufferMemoryRequirementsSafe@ and @vkGetBufferMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetBufferMemoryRequirements <- vkGetDeviceProc @VkGetBufferMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetBufferMemoryRequirements <- vkGetProc @VkGetBufferMemoryRequirements
+--
+vkGetBufferMemoryRequirements ::
+                              VkDevice -- ^ device
+                                       -> VkBuffer -- ^ buffer
+                                                   -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                               -> IO ()
+vkGetBufferMemoryRequirements
+  = unsafeDupablePerformIO (vkGetProc @VkGetBufferMemoryRequirements)
+
+{-# NOINLINE vkGetBufferMemoryRequirements #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetBufferMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetBufferMemoryRequirements"
+               vkGetBufferMemoryRequirementsSafe ::
+               VkDevice -- ^ device
+                        -> VkBuffer -- ^ buffer
+                                    -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkGetBufferMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetBufferMemoryRequirementsSafe@ and @vkGetBufferMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetBufferMemoryRequirements <- vkGetDeviceProc @VkGetBufferMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetBufferMemoryRequirements <- vkGetProc @VkGetBufferMemoryRequirements
+--
+vkGetBufferMemoryRequirementsSafe ::
+                                  VkDevice -- ^ device
+                                           -> VkBuffer -- ^ buffer
+                                                       -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                                   -> IO ()
+vkGetBufferMemoryRequirementsSafe = vkGetBufferMemoryRequirements
+
+{-# INLINE vkGetBufferMemoryRequirementsSafe #-}
+##endif
+
+-- | > void vkGetBufferMemoryRequirements
+--   >     ( VkDevice device
+--   >     , VkBuffer buffer
+--   >     , VkMemoryRequirements* pMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements registry at www.khronos.org>
+type HS_vkGetBufferMemoryRequirements =
+     VkDevice -- ^ device
+              -> VkBuffer -- ^ buffer
+                          -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                      -> IO ()
+
+type PFN_vkGetBufferMemoryRequirements =
+     FunPtr HS_vkGetBufferMemoryRequirements
+
+foreign import ccall "dynamic" unwrapVkGetBufferMemoryRequirements
+               ::
+               PFN_vkGetBufferMemoryRequirements ->
+                 HS_vkGetBufferMemoryRequirements
+
+instance VulkanProc "vkGetBufferMemoryRequirements" where
+        type VkProcType "vkGetBufferMemoryRequirements" =
+             HS_vkGetBufferMemoryRequirements
+        vkProcSymbol = _VkGetBufferMemoryRequirements
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetBufferMemoryRequirements
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetImageMemoryRequirements :: CString
+
+pattern VkGetImageMemoryRequirements <-
+        (is_VkGetImageMemoryRequirements -> True)
+  where VkGetImageMemoryRequirements = _VkGetImageMemoryRequirements
+
+{-# INLINE _VkGetImageMemoryRequirements #-}
+
+_VkGetImageMemoryRequirements :: CString
+_VkGetImageMemoryRequirements
+  = Ptr "vkGetImageMemoryRequirements\NUL"##
+
+{-# INLINE is_VkGetImageMemoryRequirements #-}
+
+is_VkGetImageMemoryRequirements :: CString -> Bool
+is_VkGetImageMemoryRequirements
+  = (EQ ==) . cmpCStrings _VkGetImageMemoryRequirements
+
+type VkGetImageMemoryRequirements = "vkGetImageMemoryRequirements"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements vkGetImageMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetImageMemoryRequirements"
+               vkGetImageMemoryRequirements ::
+               VkDevice -- ^ device
+                        -> VkImage -- ^ image
+                                   -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                               -> IO ()
+
+##else
+-- |
+-- > void vkGetImageMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements vkGetImageMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageMemoryRequirementsSafe@ and @vkGetImageMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageMemoryRequirements <- vkGetDeviceProc @VkGetImageMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageMemoryRequirements <- vkGetProc @VkGetImageMemoryRequirements
+--
+vkGetImageMemoryRequirements ::
+                             VkDevice -- ^ device
+                                      -> VkImage -- ^ image
+                                                 -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                             -> IO ()
+vkGetImageMemoryRequirements
+  = unsafeDupablePerformIO (vkGetProc @VkGetImageMemoryRequirements)
+
+{-# NOINLINE vkGetImageMemoryRequirements #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements vkGetImageMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetImageMemoryRequirements"
+               vkGetImageMemoryRequirementsSafe ::
+               VkDevice -- ^ device
+                        -> VkImage -- ^ image
+                                   -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                               -> IO ()
+
+##else
+-- |
+-- > void vkGetImageMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , VkMemoryRequirements* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements vkGetImageMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageMemoryRequirementsSafe@ and @vkGetImageMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageMemoryRequirements <- vkGetDeviceProc @VkGetImageMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageMemoryRequirements <- vkGetProc @VkGetImageMemoryRequirements
+--
+vkGetImageMemoryRequirementsSafe ::
+                                 VkDevice -- ^ device
+                                          -> VkImage -- ^ image
+                                                     -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                                                 -> IO ()
+vkGetImageMemoryRequirementsSafe = vkGetImageMemoryRequirements
+
+{-# INLINE vkGetImageMemoryRequirementsSafe #-}
+##endif
+
+-- | > void vkGetImageMemoryRequirements
+--   >     ( VkDevice device
+--   >     , VkImage image
+--   >     , VkMemoryRequirements* pMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements vkGetImageMemoryRequirements registry at www.khronos.org>
+type HS_vkGetImageMemoryRequirements =
+     VkDevice -- ^ device
+              -> VkImage -- ^ image
+                         -> Ptr VkMemoryRequirements -- ^ pMemoryRequirements
+                                                     -> IO ()
+
+type PFN_vkGetImageMemoryRequirements =
+     FunPtr HS_vkGetImageMemoryRequirements
+
+foreign import ccall "dynamic" unwrapVkGetImageMemoryRequirements
+               ::
+               PFN_vkGetImageMemoryRequirements -> HS_vkGetImageMemoryRequirements
+
+instance VulkanProc "vkGetImageMemoryRequirements" where
+        type VkProcType "vkGetImageMemoryRequirements" =
+             HS_vkGetImageMemoryRequirements
+        vkProcSymbol = _VkGetImageMemoryRequirements
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageMemoryRequirements
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetImageSparseMemoryRequirements :: CString
+
+pattern VkGetImageSparseMemoryRequirements <-
+        (is_VkGetImageSparseMemoryRequirements -> True)
+  where VkGetImageSparseMemoryRequirements
+          = _VkGetImageSparseMemoryRequirements
+
+{-# INLINE _VkGetImageSparseMemoryRequirements #-}
+
+_VkGetImageSparseMemoryRequirements :: CString
+_VkGetImageSparseMemoryRequirements
+  = Ptr "vkGetImageSparseMemoryRequirements\NUL"##
+
+{-# INLINE is_VkGetImageSparseMemoryRequirements #-}
+
+is_VkGetImageSparseMemoryRequirements :: CString -> Bool
+is_VkGetImageSparseMemoryRequirements
+  = (EQ ==) . cmpCStrings _VkGetImageSparseMemoryRequirements
+
+type VkGetImageSparseMemoryRequirements =
+     "vkGetImageSparseMemoryRequirements"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageSparseMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetImageSparseMemoryRequirements"
+               vkGetImageSparseMemoryRequirements ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         ->
+                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                              -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkGetImageSparseMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSparseMemoryRequirementsSafe@ and @vkGetImageSparseMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSparseMemoryRequirements <- vkGetDeviceProc @VkGetImageSparseMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSparseMemoryRequirements <- vkGetProc @VkGetImageSparseMemoryRequirements
+--
+vkGetImageSparseMemoryRequirements ::
+                                   VkDevice -- ^ device
+                                            ->
+                                     VkImage -- ^ image
+                                             ->
+                                       Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                                                  -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
+                                                                                         -> IO ()
+vkGetImageSparseMemoryRequirements
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetImageSparseMemoryRequirements)
+
+{-# NOINLINE vkGetImageSparseMemoryRequirements #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageSparseMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetImageSparseMemoryRequirements"
+               vkGetImageSparseMemoryRequirementsSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         ->
+                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                              -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkGetImageSparseMemoryRequirements
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSparseMemoryRequirementsSafe@ and @vkGetImageSparseMemoryRequirements@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSparseMemoryRequirements <- vkGetDeviceProc @VkGetImageSparseMemoryRequirements vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSparseMemoryRequirements <- vkGetProc @VkGetImageSparseMemoryRequirements
+--
+vkGetImageSparseMemoryRequirementsSafe ::
+                                       VkDevice -- ^ device
+                                                ->
+                                         VkImage -- ^ image
+                                                 ->
+                                           Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                                                      ->
+                                             Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
+                                                                                 -> IO ()
+vkGetImageSparseMemoryRequirementsSafe
+  = vkGetImageSparseMemoryRequirements
+
+{-# INLINE vkGetImageSparseMemoryRequirementsSafe #-}
+##endif
+
+-- | > void vkGetImageSparseMemoryRequirements
+--   >     ( VkDevice device
+--   >     , VkImage image
+--   >     , uint32_t* pSparseMemoryRequirementCount
+--   >     , VkSparseImageMemoryRequirements* pSparseMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements registry at www.khronos.org>
+type HS_vkGetImageSparseMemoryRequirements =
+     VkDevice -- ^ device
+              ->
+       VkImage -- ^ image
+               ->
+         Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                    -> Ptr VkSparseImageMemoryRequirements -- ^ pSparseMemoryRequirements
+                                                           -> IO ()
+
+type PFN_vkGetImageSparseMemoryRequirements =
+     FunPtr HS_vkGetImageSparseMemoryRequirements
+
+foreign import ccall "dynamic"
+               unwrapVkGetImageSparseMemoryRequirements ::
+               PFN_vkGetImageSparseMemoryRequirements ->
+                 HS_vkGetImageSparseMemoryRequirements
+
+instance VulkanProc "vkGetImageSparseMemoryRequirements" where
+        type VkProcType "vkGetImageSparseMemoryRequirements" =
+             HS_vkGetImageSparseMemoryRequirements
+        vkProcSymbol = _VkGetImageSparseMemoryRequirements
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageSparseMemoryRequirements
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties :: CString
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties <-
+        (is_VkGetPhysicalDeviceSparseImageFormatProperties -> True)
+  where VkGetPhysicalDeviceSparseImageFormatProperties
+          = _VkGetPhysicalDeviceSparseImageFormatProperties
+
+{-# INLINE _VkGetPhysicalDeviceSparseImageFormatProperties #-}
+
+_VkGetPhysicalDeviceSparseImageFormatProperties :: CString
+_VkGetPhysicalDeviceSparseImageFormatProperties
+  = Ptr "vkGetPhysicalDeviceSparseImageFormatProperties\NUL"##
+
+{-# INLINE is_VkGetPhysicalDeviceSparseImageFormatProperties #-}
+
+is_VkGetPhysicalDeviceSparseImageFormatProperties ::
+                                                  CString -> Bool
+is_VkGetPhysicalDeviceSparseImageFormatProperties
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceSparseImageFormatProperties
+
+type VkGetPhysicalDeviceSparseImageFormatProperties =
+     "vkGetPhysicalDeviceSparseImageFormatProperties"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkSampleCountFlagBits samples
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageTiling tiling
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceSparseImageFormatProperties"
+               vkGetPhysicalDeviceSparseImageFormatProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkFormat -- ^ format
+                          ->
+                   VkImageType -- ^ type
+                               ->
+                     VkSampleCountFlagBits -- ^ samples
+                                           ->
+                       VkImageUsageFlags -- ^ usage
+                                         ->
+                         VkImageTiling -- ^ tiling
+                                       ->
+                           Ptr Word32 -- ^ pPropertyCount
+                                      -> Ptr VkSparseImageFormatProperties -- ^ pProperties
+                                                                           -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkSampleCountFlagBits samples
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageTiling tiling
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSparseImageFormatPropertiesSafe@ and @vkGetPhysicalDeviceSparseImageFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceSparseImageFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties <- vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties
+--
+vkGetPhysicalDeviceSparseImageFormatProperties ::
+                                               VkPhysicalDevice -- ^ physicalDevice
+                                                                ->
+                                                 VkFormat -- ^ format
+                                                          ->
+                                                   VkImageType -- ^ type
+                                                               ->
+                                                     VkSampleCountFlagBits -- ^ samples
+                                                                           ->
+                                                       VkImageUsageFlags -- ^ usage
+                                                                         ->
+                                                         VkImageTiling -- ^ tiling
+                                                                       ->
+                                                           Ptr Word32 -- ^ pPropertyCount
+                                                                      ->
+                                                             Ptr VkSparseImageFormatProperties -- ^ pProperties
+                                                                                               ->
+                                                               IO ()
+vkGetPhysicalDeviceSparseImageFormatProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceSparseImageFormatProperties #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkSampleCountFlagBits samples
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageTiling tiling
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceSparseImageFormatProperties"
+               vkGetPhysicalDeviceSparseImageFormatPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkFormat -- ^ format
+                          ->
+                   VkImageType -- ^ type
+                               ->
+                     VkSampleCountFlagBits -- ^ samples
+                                           ->
+                       VkImageUsageFlags -- ^ usage
+                                         ->
+                         VkImageTiling -- ^ tiling
+                                       ->
+                           Ptr Word32 -- ^ pPropertyCount
+                                      -> Ptr VkSparseImageFormatProperties -- ^ pProperties
+                                                                           -> IO ()
+
+##else
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkImageType type
+-- >     , VkSampleCountFlagBits samples
+-- >     , VkImageUsageFlags usage
+-- >     , VkImageTiling tiling
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSparseImageFormatPropertiesSafe@ and @vkGetPhysicalDeviceSparseImageFormatProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties <- vkGetInstanceProc @VkGetPhysicalDeviceSparseImageFormatProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties <- vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties
+--
+vkGetPhysicalDeviceSparseImageFormatPropertiesSafe ::
+                                                   VkPhysicalDevice -- ^ physicalDevice
+                                                                    ->
+                                                     VkFormat -- ^ format
+                                                              ->
+                                                       VkImageType -- ^ type
+                                                                   ->
+                                                         VkSampleCountFlagBits -- ^ samples
+                                                                               ->
+                                                           VkImageUsageFlags -- ^ usage
+                                                                             ->
+                                                             VkImageTiling -- ^ tiling
+                                                                           ->
+                                                               Ptr Word32 -- ^ pPropertyCount
+                                                                          ->
+                                                                 Ptr VkSparseImageFormatProperties -- ^ pProperties
+                                                                   -> IO ()
+vkGetPhysicalDeviceSparseImageFormatPropertiesSafe
+  = vkGetPhysicalDeviceSparseImageFormatProperties
+
+{-# INLINE vkGetPhysicalDeviceSparseImageFormatPropertiesSafe #-}
+##endif
+
+-- | > void vkGetPhysicalDeviceSparseImageFormatProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkFormat format
+--   >     , VkImageType type
+--   >     , VkSampleCountFlagBits samples
+--   >     , VkImageUsageFlags usage
+--   >     , VkImageTiling tiling
+--   >     , uint32_t* pPropertyCount
+--   >     , VkSparseImageFormatProperties* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSparseImageFormatProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkFormat -- ^ format
+                ->
+         VkImageType -- ^ type
+                     ->
+           VkSampleCountFlagBits -- ^ samples
+                                 ->
+             VkImageUsageFlags -- ^ usage
+                               ->
+               VkImageTiling -- ^ tiling
+                             ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkSparseImageFormatProperties -- ^ pProperties
+                                                                 -> IO ()
+
+type PFN_vkGetPhysicalDeviceSparseImageFormatProperties =
+     FunPtr HS_vkGetPhysicalDeviceSparseImageFormatProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSparseImageFormatProperties ::
+               PFN_vkGetPhysicalDeviceSparseImageFormatProperties ->
+                 HS_vkGetPhysicalDeviceSparseImageFormatProperties
+
+instance VulkanProc
+           "vkGetPhysicalDeviceSparseImageFormatProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceSparseImageFormatProperties" =
+             HS_vkGetPhysicalDeviceSparseImageFormatProperties
+        vkProcSymbol = _VkGetPhysicalDeviceSparseImageFormatProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceSparseImageFormatProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueBindSparse :: CString
+
+pattern VkQueueBindSparse <- (is_VkQueueBindSparse -> True)
+  where VkQueueBindSparse = _VkQueueBindSparse
+
+{-# INLINE _VkQueueBindSparse #-}
+
+_VkQueueBindSparse :: CString
+_VkQueueBindSparse = Ptr "vkQueueBindSparse\NUL"##
+
+{-# INLINE is_VkQueueBindSparse #-}
+
+is_VkQueueBindSparse :: CString -> Bool
+is_VkQueueBindSparse = (EQ ==) . cmpCStrings _VkQueueBindSparse
+
+type VkQueueBindSparse = "vkQueueBindSparse"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- Queues: 'sparse_binding'.
+--
+-- > VkResult vkQueueBindSparse
+-- >     ( VkQueue queue
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindSparseInfo* pBindInfo
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBindSparse vkQueueBindSparse registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkQueueBindSparse" vkQueueBindSparse
+               ::
+               VkQueue -- ^ queue
+                       -> Word32 -- ^ bindInfoCount
+                                 -> Ptr VkBindSparseInfo -- ^ pBindInfo
+                                                         -> VkFence -- ^ fence
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- Queues: 'sparse_binding'.
+--
+-- > VkResult vkQueueBindSparse
+-- >     ( VkQueue queue
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindSparseInfo* pBindInfo
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBindSparse vkQueueBindSparse registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueBindSparseSafe@ and @vkQueueBindSparse@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueBindSparse <- vkGetInstanceProc @VkQueueBindSparse vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueBindSparse <- vkGetProc @VkQueueBindSparse
+--
+vkQueueBindSparse ::
+                  VkQueue -- ^ queue
+                          -> Word32 -- ^ bindInfoCount
+                                    -> Ptr VkBindSparseInfo -- ^ pBindInfo
+                                                            -> VkFence -- ^ fence
+                                                                       -> IO VkResult
+vkQueueBindSparse
+  = unsafeDupablePerformIO (vkGetProc @VkQueueBindSparse)
+
+{-# NOINLINE vkQueueBindSparse #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- Queues: 'sparse_binding'.
+--
+-- > VkResult vkQueueBindSparse
+-- >     ( VkQueue queue
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindSparseInfo* pBindInfo
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBindSparse vkQueueBindSparse registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkQueueBindSparse" vkQueueBindSparseSafe
+               ::
+               VkQueue -- ^ queue
+                       -> Word32 -- ^ bindInfoCount
+                                 -> Ptr VkBindSparseInfo -- ^ pBindInfo
+                                                         -> VkFence -- ^ fence
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- Queues: 'sparse_binding'.
+--
+-- > VkResult vkQueueBindSparse
+-- >     ( VkQueue queue
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindSparseInfo* pBindInfo
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBindSparse vkQueueBindSparse registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueueBindSparseSafe@ and @vkQueueBindSparse@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueueBindSparse <- vkGetInstanceProc @VkQueueBindSparse vkInstance
+--
+-- or less efficient:
+--
+-- > myQueueBindSparse <- vkGetProc @VkQueueBindSparse
+--
+vkQueueBindSparseSafe ::
+                      VkQueue -- ^ queue
+                              -> Word32 -- ^ bindInfoCount
+                                        -> Ptr VkBindSparseInfo -- ^ pBindInfo
+                                                                -> VkFence -- ^ fence
+                                                                           -> IO VkResult
+vkQueueBindSparseSafe = vkQueueBindSparse
+
+{-# INLINE vkQueueBindSparseSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   Queues: 'sparse_binding'.
+--
+--   > VkResult vkQueueBindSparse
+--   >     ( VkQueue queue
+--   >     , uint32_t bindInfoCount
+--   >     , const VkBindSparseInfo* pBindInfo
+--   >     , VkFence fence
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBindSparse vkQueueBindSparse registry at www.khronos.org>
+type HS_vkQueueBindSparse =
+     VkQueue -- ^ queue
+             -> Word32 -- ^ bindInfoCount
+                       -> Ptr VkBindSparseInfo -- ^ pBindInfo
+                                               -> VkFence -- ^ fence
+                                                          -> IO VkResult
+
+type PFN_vkQueueBindSparse = FunPtr HS_vkQueueBindSparse
+
+foreign import ccall "dynamic" unwrapVkQueueBindSparse ::
+               PFN_vkQueueBindSparse -> HS_vkQueueBindSparse
+
+instance VulkanProc "vkQueueBindSparse" where
+        type VkProcType "vkQueueBindSparse" = HS_vkQueueBindSparse
+        vkProcSymbol = _VkQueueBindSparse
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueBindSparse
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateFence :: CString
+
+pattern VkCreateFence <- (is_VkCreateFence -> True)
+  where VkCreateFence = _VkCreateFence
+
+{-# INLINE _VkCreateFence #-}
+
+_VkCreateFence :: CString
+_VkCreateFence = Ptr "vkCreateFence\NUL"##
+
+{-# INLINE is_VkCreateFence #-}
+
+is_VkCreateFence :: CString -> Bool
+is_VkCreateFence = (EQ ==) . cmpCStrings _VkCreateFence
+
+type VkCreateFence = "vkCreateFence"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFence
+-- >     ( VkDevice device
+-- >     , const VkFenceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFence* pFence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFence vkCreateFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateFence" vkCreateFence ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkFenceCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkFence -- ^ pFence
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFence
+-- >     ( VkDevice device
+-- >     , const VkFenceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFence* pFence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFence vkCreateFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateFenceSafe@ and @vkCreateFence@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateFence <- vkGetDeviceProc @VkCreateFence vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateFence <- vkGetProc @VkCreateFence
+--
+vkCreateFence ::
+              VkDevice -- ^ device
+                       ->
+                Ptr VkFenceCreateInfo -- ^ pCreateInfo
+                                      ->
+                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                            -> Ptr VkFence -- ^ pFence
+                                                           -> IO VkResult
+vkCreateFence = unsafeDupablePerformIO (vkGetProc @VkCreateFence)
+
+{-# NOINLINE vkCreateFence #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFence
+-- >     ( VkDevice device
+-- >     , const VkFenceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFence* pFence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFence vkCreateFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateFence" vkCreateFenceSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkFenceCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkFence -- ^ pFence
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFence
+-- >     ( VkDevice device
+-- >     , const VkFenceCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFence* pFence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFence vkCreateFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateFenceSafe@ and @vkCreateFence@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateFence <- vkGetDeviceProc @VkCreateFence vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateFence <- vkGetProc @VkCreateFence
+--
+vkCreateFenceSafe ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkFenceCreateInfo -- ^ pCreateInfo
+                                          ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkFence -- ^ pFence
+                                                               -> IO VkResult
+vkCreateFenceSafe = vkCreateFence
+
+{-# INLINE vkCreateFenceSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateFence
+--   >     ( VkDevice device
+--   >     , const VkFenceCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkFence* pFence
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFence vkCreateFence registry at www.khronos.org>
+type HS_vkCreateFence =
+     VkDevice -- ^ device
+              ->
+       Ptr VkFenceCreateInfo -- ^ pCreateInfo
+                             ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkFence -- ^ pFence
+                                                  -> IO VkResult
+
+type PFN_vkCreateFence = FunPtr HS_vkCreateFence
+
+foreign import ccall "dynamic" unwrapVkCreateFence ::
+               PFN_vkCreateFence -> HS_vkCreateFence
+
+instance VulkanProc "vkCreateFence" where
+        type VkProcType "vkCreateFence" = HS_vkCreateFence
+        vkProcSymbol = _VkCreateFence
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateFence
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyFence :: CString
+
+pattern VkDestroyFence <- (is_VkDestroyFence -> True)
+  where VkDestroyFence = _VkDestroyFence
+
+{-# INLINE _VkDestroyFence #-}
+
+_VkDestroyFence :: CString
+_VkDestroyFence = Ptr "vkDestroyFence\NUL"##
+
+{-# INLINE is_VkDestroyFence #-}
+
+is_VkDestroyFence :: CString -> Bool
+is_VkDestroyFence = (EQ ==) . cmpCStrings _VkDestroyFence
+
+type VkDestroyFence = "vkDestroyFence"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyFence
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFence vkDestroyFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyFence" vkDestroyFence ::
+               VkDevice -- ^ device
+                        -> VkFence -- ^ fence
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyFence
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFence vkDestroyFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyFenceSafe@ and @vkDestroyFence@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyFence <- vkGetDeviceProc @VkDestroyFence vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyFence <- vkGetProc @VkDestroyFence
+--
+vkDestroyFence ::
+               VkDevice -- ^ device
+                        -> VkFence -- ^ fence
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+vkDestroyFence = unsafeDupablePerformIO (vkGetProc @VkDestroyFence)
+
+{-# NOINLINE vkDestroyFence #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyFence
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFence vkDestroyFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyFence" vkDestroyFenceSafe ::
+               VkDevice -- ^ device
+                        -> VkFence -- ^ fence
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyFence
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFence vkDestroyFence registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyFenceSafe@ and @vkDestroyFence@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyFence <- vkGetDeviceProc @VkDestroyFence vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyFence <- vkGetProc @VkDestroyFence
+--
+vkDestroyFenceSafe ::
+                   VkDevice -- ^ device
+                            -> VkFence -- ^ fence
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+vkDestroyFenceSafe = vkDestroyFence
+
+{-# INLINE vkDestroyFenceSafe #-}
+##endif
+
+-- | > void vkDestroyFence
+--   >     ( VkDevice device
+--   >     , VkFence fence
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFence vkDestroyFence registry at www.khronos.org>
+type HS_vkDestroyFence =
+     VkDevice -- ^ device
+              -> VkFence -- ^ fence
+                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> IO ()
+
+type PFN_vkDestroyFence = FunPtr HS_vkDestroyFence
+
+foreign import ccall "dynamic" unwrapVkDestroyFence ::
+               PFN_vkDestroyFence -> HS_vkDestroyFence
+
+instance VulkanProc "vkDestroyFence" where
+        type VkProcType "vkDestroyFence" = HS_vkDestroyFence
+        vkProcSymbol = _VkDestroyFence
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyFence
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkResetFences :: CString
+
+pattern VkResetFences <- (is_VkResetFences -> True)
+  where VkResetFences = _VkResetFences
+
+{-# INLINE _VkResetFences #-}
+
+_VkResetFences :: CString
+_VkResetFences = Ptr "vkResetFences\NUL"##
+
+{-# INLINE is_VkResetFences #-}
+
+is_VkResetFences :: CString -> Bool
+is_VkResetFences = (EQ ==) . cmpCStrings _VkResetFences
+
+type VkResetFences = "vkResetFences"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetFences vkResetFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkResetFences" vkResetFences ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ fenceCount
+                                  -> Ptr VkFence -- ^ pFences
+                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetFences vkResetFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetFencesSafe@ and @vkResetFences@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetFences <- vkGetDeviceProc @VkResetFences vkDevice
+--
+-- or less efficient:
+--
+-- > myResetFences <- vkGetProc @VkResetFences
+--
+vkResetFences :: VkDevice -- ^ device
+                          -> Word32 -- ^ fenceCount
+                                    -> Ptr VkFence -- ^ pFences
+                                                   -> IO VkResult
+vkResetFences = unsafeDupablePerformIO (vkGetProc @VkResetFences)
+
+{-# NOINLINE vkResetFences #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetFences vkResetFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkResetFences" vkResetFencesSafe ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ fenceCount
+                                  -> Ptr VkFence -- ^ pFences
+                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetFences vkResetFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetFencesSafe@ and @vkResetFences@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetFences <- vkGetDeviceProc @VkResetFences vkDevice
+--
+-- or less efficient:
+--
+-- > myResetFences <- vkGetProc @VkResetFences
+--
+vkResetFencesSafe ::
+                  VkDevice -- ^ device
+                           -> Word32 -- ^ fenceCount
+                                     -> Ptr VkFence -- ^ pFences
+                                                    -> IO VkResult
+vkResetFencesSafe = vkResetFences
+
+{-# INLINE vkResetFencesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkResetFences
+--   >     ( VkDevice device
+--   >     , uint32_t fenceCount
+--   >     , const VkFence* pFences
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetFences vkResetFences registry at www.khronos.org>
+type HS_vkResetFences =
+     VkDevice -- ^ device
+              -> Word32 -- ^ fenceCount
+                        -> Ptr VkFence -- ^ pFences
+                                       -> IO VkResult
+
+type PFN_vkResetFences = FunPtr HS_vkResetFences
+
+foreign import ccall "dynamic" unwrapVkResetFences ::
+               PFN_vkResetFences -> HS_vkResetFences
+
+instance VulkanProc "vkResetFences" where
+        type VkProcType "vkResetFences" = HS_vkResetFences
+        vkProcSymbol = _VkResetFences
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkResetFences
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetFenceStatus :: CString
+
+pattern VkGetFenceStatus <- (is_VkGetFenceStatus -> True)
+  where VkGetFenceStatus = _VkGetFenceStatus
+
+{-# INLINE _VkGetFenceStatus #-}
+
+_VkGetFenceStatus :: CString
+_VkGetFenceStatus = Ptr "vkGetFenceStatus\NUL"##
+
+{-# INLINE is_VkGetFenceStatus #-}
+
+is_VkGetFenceStatus :: CString -> Bool
+is_VkGetFenceStatus = (EQ ==) . cmpCStrings _VkGetFenceStatus
+
+type VkGetFenceStatus = "vkGetFenceStatus"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetFenceStatus
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceStatus vkGetFenceStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetFenceStatus" vkGetFenceStatus ::
+               VkDevice -- ^ device
+                        -> VkFence -- ^ fence
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetFenceStatus
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceStatus vkGetFenceStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetFenceStatusSafe@ and @vkGetFenceStatus@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetFenceStatus <- vkGetDeviceProc @VkGetFenceStatus vkDevice
+--
+-- or less efficient:
+--
+-- > myGetFenceStatus <- vkGetProc @VkGetFenceStatus
+--
+vkGetFenceStatus :: VkDevice -- ^ device
+                             -> VkFence -- ^ fence
+                                        -> IO VkResult
+vkGetFenceStatus
+  = unsafeDupablePerformIO (vkGetProc @VkGetFenceStatus)
+
+{-# NOINLINE vkGetFenceStatus #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetFenceStatus
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceStatus vkGetFenceStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetFenceStatus" vkGetFenceStatusSafe
+               :: VkDevice -- ^ device
+                           -> VkFence -- ^ fence
+                                      -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetFenceStatus
+-- >     ( VkDevice device
+-- >     , VkFence fence
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceStatus vkGetFenceStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetFenceStatusSafe@ and @vkGetFenceStatus@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetFenceStatus <- vkGetDeviceProc @VkGetFenceStatus vkDevice
+--
+-- or less efficient:
+--
+-- > myGetFenceStatus <- vkGetProc @VkGetFenceStatus
+--
+vkGetFenceStatusSafe :: VkDevice -- ^ device
+                                 -> VkFence -- ^ fence
+                                            -> IO VkResult
+vkGetFenceStatusSafe = vkGetFenceStatus
+
+{-# INLINE vkGetFenceStatusSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkGetFenceStatus
+--   >     ( VkDevice device
+--   >     , VkFence fence
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceStatus vkGetFenceStatus registry at www.khronos.org>
+type HS_vkGetFenceStatus = VkDevice -- ^ device
+                                    -> VkFence -- ^ fence
+                                               -> IO VkResult
+
+type PFN_vkGetFenceStatus = FunPtr HS_vkGetFenceStatus
+
+foreign import ccall "dynamic" unwrapVkGetFenceStatus ::
+               PFN_vkGetFenceStatus -> HS_vkGetFenceStatus
+
+instance VulkanProc "vkGetFenceStatus" where
+        type VkProcType "vkGetFenceStatus" = HS_vkGetFenceStatus
+        vkProcSymbol = _VkGetFenceStatus
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetFenceStatus
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkWaitForFences :: CString
+
+pattern VkWaitForFences <- (is_VkWaitForFences -> True)
+  where VkWaitForFences = _VkWaitForFences
+
+{-# INLINE _VkWaitForFences #-}
+
+_VkWaitForFences :: CString
+_VkWaitForFences = Ptr "vkWaitForFences\NUL"##
+
+{-# INLINE is_VkWaitForFences #-}
+
+is_VkWaitForFences :: CString -> Bool
+is_VkWaitForFences = (EQ ==) . cmpCStrings _VkWaitForFences
+
+type VkWaitForFences = "vkWaitForFences"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkWaitForFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     , VkBool32 waitAll
+-- >     , uint64_t timeout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkWaitForFences vkWaitForFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkWaitForFences" vkWaitForFences ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ fenceCount
+                        -> Ptr VkFence -- ^ pFences
+                                       -> VkBool32 -- ^ waitAll
+                                                   -> Word64 -- ^ timeout
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkWaitForFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     , VkBool32 waitAll
+-- >     , uint64_t timeout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkWaitForFences vkWaitForFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkWaitForFencesSafe@ and @vkWaitForFences@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myWaitForFences <- vkGetDeviceProc @VkWaitForFences vkDevice
+--
+-- or less efficient:
+--
+-- > myWaitForFences <- vkGetProc @VkWaitForFences
+--
+vkWaitForFences ::
+                VkDevice -- ^ device
+                         ->
+                  Word32 -- ^ fenceCount
+                         -> Ptr VkFence -- ^ pFences
+                                        -> VkBool32 -- ^ waitAll
+                                                    -> Word64 -- ^ timeout
+                                                              -> IO VkResult
+vkWaitForFences
+  = unsafeDupablePerformIO (vkGetProc @VkWaitForFences)
+
+{-# NOINLINE vkWaitForFences #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkWaitForFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     , VkBool32 waitAll
+-- >     , uint64_t timeout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkWaitForFences vkWaitForFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkWaitForFences" vkWaitForFencesSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ fenceCount
+                        -> Ptr VkFence -- ^ pFences
+                                       -> VkBool32 -- ^ waitAll
+                                                   -> Word64 -- ^ timeout
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkWaitForFences
+-- >     ( VkDevice device
+-- >     , uint32_t fenceCount
+-- >     , const VkFence* pFences
+-- >     , VkBool32 waitAll
+-- >     , uint64_t timeout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkWaitForFences vkWaitForFences registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkWaitForFencesSafe@ and @vkWaitForFences@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myWaitForFences <- vkGetDeviceProc @VkWaitForFences vkDevice
+--
+-- or less efficient:
+--
+-- > myWaitForFences <- vkGetProc @VkWaitForFences
+--
+vkWaitForFencesSafe ::
+                    VkDevice -- ^ device
+                             ->
+                      Word32 -- ^ fenceCount
+                             -> Ptr VkFence -- ^ pFences
+                                            -> VkBool32 -- ^ waitAll
+                                                        -> Word64 -- ^ timeout
+                                                                  -> IO VkResult
+vkWaitForFencesSafe = vkWaitForFences
+
+{-# INLINE vkWaitForFencesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkWaitForFences
+--   >     ( VkDevice device
+--   >     , uint32_t fenceCount
+--   >     , const VkFence* pFences
+--   >     , VkBool32 waitAll
+--   >     , uint64_t timeout
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkWaitForFences vkWaitForFences registry at www.khronos.org>
+type HS_vkWaitForFences =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ fenceCount
+              -> Ptr VkFence -- ^ pFences
+                             -> VkBool32 -- ^ waitAll
+                                         -> Word64 -- ^ timeout
+                                                   -> IO VkResult
+
+type PFN_vkWaitForFences = FunPtr HS_vkWaitForFences
+
+foreign import ccall "dynamic" unwrapVkWaitForFences ::
+               PFN_vkWaitForFences -> HS_vkWaitForFences
+
+instance VulkanProc "vkWaitForFences" where
+        type VkProcType "vkWaitForFences" = HS_vkWaitForFences
+        vkProcSymbol = _VkWaitForFences
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkWaitForFences
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateSemaphore :: CString
+
+pattern VkCreateSemaphore <- (is_VkCreateSemaphore -> True)
+  where VkCreateSemaphore = _VkCreateSemaphore
+
+{-# INLINE _VkCreateSemaphore #-}
+
+_VkCreateSemaphore :: CString
+_VkCreateSemaphore = Ptr "vkCreateSemaphore\NUL"##
+
+{-# INLINE is_VkCreateSemaphore #-}
+
+is_VkCreateSemaphore :: CString -> Bool
+is_VkCreateSemaphore = (EQ ==) . cmpCStrings _VkCreateSemaphore
+
+type VkCreateSemaphore = "vkCreateSemaphore"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSemaphore
+-- >     ( VkDevice device
+-- >     , const VkSemaphoreCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSemaphore* pSemaphore
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSemaphore vkCreateSemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateSemaphore" vkCreateSemaphore
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSemaphore -- ^ pSemaphore
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSemaphore
+-- >     ( VkDevice device
+-- >     , const VkSemaphoreCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSemaphore* pSemaphore
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSemaphore vkCreateSemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSemaphoreSafe@ and @vkCreateSemaphore@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSemaphore <- vkGetDeviceProc @VkCreateSemaphore vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSemaphore <- vkGetProc @VkCreateSemaphore
+--
+vkCreateSemaphore ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
+                                              ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkSemaphore -- ^ pSemaphore
+                                                                   -> IO VkResult
+vkCreateSemaphore
+  = unsafeDupablePerformIO (vkGetProc @VkCreateSemaphore)
+
+{-# NOINLINE vkCreateSemaphore #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSemaphore
+-- >     ( VkDevice device
+-- >     , const VkSemaphoreCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSemaphore* pSemaphore
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSemaphore vkCreateSemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateSemaphore" vkCreateSemaphoreSafe
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSemaphore -- ^ pSemaphore
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSemaphore
+-- >     ( VkDevice device
+-- >     , const VkSemaphoreCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSemaphore* pSemaphore
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSemaphore vkCreateSemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSemaphoreSafe@ and @vkCreateSemaphore@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSemaphore <- vkGetDeviceProc @VkCreateSemaphore vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSemaphore <- vkGetProc @VkCreateSemaphore
+--
+vkCreateSemaphoreSafe ::
+                      VkDevice -- ^ device
+                               ->
+                        Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
+                                                  ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkSemaphore -- ^ pSemaphore
+                                                                       -> IO VkResult
+vkCreateSemaphoreSafe = vkCreateSemaphore
+
+{-# INLINE vkCreateSemaphoreSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateSemaphore
+--   >     ( VkDevice device
+--   >     , const VkSemaphoreCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSemaphore* pSemaphore
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSemaphore vkCreateSemaphore registry at www.khronos.org>
+type HS_vkCreateSemaphore =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSemaphoreCreateInfo -- ^ pCreateInfo
+                                 ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSemaphore -- ^ pSemaphore
+                                                      -> IO VkResult
+
+type PFN_vkCreateSemaphore = FunPtr HS_vkCreateSemaphore
+
+foreign import ccall "dynamic" unwrapVkCreateSemaphore ::
+               PFN_vkCreateSemaphore -> HS_vkCreateSemaphore
+
+instance VulkanProc "vkCreateSemaphore" where
+        type VkProcType "vkCreateSemaphore" = HS_vkCreateSemaphore
+        vkProcSymbol = _VkCreateSemaphore
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSemaphore
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroySemaphore :: CString
+
+pattern VkDestroySemaphore <- (is_VkDestroySemaphore -> True)
+  where VkDestroySemaphore = _VkDestroySemaphore
+
+{-# INLINE _VkDestroySemaphore #-}
+
+_VkDestroySemaphore :: CString
+_VkDestroySemaphore = Ptr "vkDestroySemaphore\NUL"##
+
+{-# INLINE is_VkDestroySemaphore #-}
+
+is_VkDestroySemaphore :: CString -> Bool
+is_VkDestroySemaphore = (EQ ==) . cmpCStrings _VkDestroySemaphore
+
+type VkDestroySemaphore = "vkDestroySemaphore"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySemaphore
+-- >     ( VkDevice device
+-- >     , VkSemaphore semaphore
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySemaphore vkDestroySemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroySemaphore" vkDestroySemaphore
+               :: VkDevice -- ^ device
+                           -> VkSemaphore -- ^ semaphore
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkDestroySemaphore
+-- >     ( VkDevice device
+-- >     , VkSemaphore semaphore
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySemaphore vkDestroySemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySemaphoreSafe@ and @vkDestroySemaphore@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySemaphore <- vkGetDeviceProc @VkDestroySemaphore vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySemaphore <- vkGetProc @VkDestroySemaphore
+--
+vkDestroySemaphore ::
+                   VkDevice -- ^ device
+                            -> VkSemaphore -- ^ semaphore
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+vkDestroySemaphore
+  = unsafeDupablePerformIO (vkGetProc @VkDestroySemaphore)
+
+{-# NOINLINE vkDestroySemaphore #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySemaphore
+-- >     ( VkDevice device
+-- >     , VkSemaphore semaphore
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySemaphore vkDestroySemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroySemaphore"
+               vkDestroySemaphoreSafe ::
+               VkDevice -- ^ device
+                        -> VkSemaphore -- ^ semaphore
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+
+##else
+-- |
+-- > void vkDestroySemaphore
+-- >     ( VkDevice device
+-- >     , VkSemaphore semaphore
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySemaphore vkDestroySemaphore registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySemaphoreSafe@ and @vkDestroySemaphore@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySemaphore <- vkGetDeviceProc @VkDestroySemaphore vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySemaphore <- vkGetProc @VkDestroySemaphore
+--
+vkDestroySemaphoreSafe ::
+                       VkDevice -- ^ device
+                                -> VkSemaphore -- ^ semaphore
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroySemaphoreSafe = vkDestroySemaphore
+
+{-# INLINE vkDestroySemaphoreSafe #-}
+##endif
+
+-- | > void vkDestroySemaphore
+--   >     ( VkDevice device
+--   >     , VkSemaphore semaphore
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySemaphore vkDestroySemaphore registry at www.khronos.org>
+type HS_vkDestroySemaphore =
+     VkDevice -- ^ device
+              -> VkSemaphore -- ^ semaphore
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+type PFN_vkDestroySemaphore = FunPtr HS_vkDestroySemaphore
+
+foreign import ccall "dynamic" unwrapVkDestroySemaphore ::
+               PFN_vkDestroySemaphore -> HS_vkDestroySemaphore
+
+instance VulkanProc "vkDestroySemaphore" where
+        type VkProcType "vkDestroySemaphore" = HS_vkDestroySemaphore
+        vkProcSymbol = _VkDestroySemaphore
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySemaphore
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateEvent :: CString
+
+pattern VkCreateEvent <- (is_VkCreateEvent -> True)
+  where VkCreateEvent = _VkCreateEvent
+
+{-# INLINE _VkCreateEvent #-}
+
+_VkCreateEvent :: CString
+_VkCreateEvent = Ptr "vkCreateEvent\NUL"##
+
+{-# INLINE is_VkCreateEvent #-}
+
+is_VkCreateEvent :: CString -> Bool
+is_VkCreateEvent = (EQ ==) . cmpCStrings _VkCreateEvent
+
+type VkCreateEvent = "vkCreateEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateEvent
+-- >     ( VkDevice device
+-- >     , const VkEventCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkEvent* pEvent
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateEvent vkCreateEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateEvent" vkCreateEvent ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkEventCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkEvent -- ^ pEvent
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateEvent
+-- >     ( VkDevice device
+-- >     , const VkEventCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkEvent* pEvent
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateEvent vkCreateEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateEventSafe@ and @vkCreateEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateEvent <- vkGetDeviceProc @VkCreateEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateEvent <- vkGetProc @VkCreateEvent
+--
+vkCreateEvent ::
+              VkDevice -- ^ device
+                       ->
+                Ptr VkEventCreateInfo -- ^ pCreateInfo
+                                      ->
+                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                            -> Ptr VkEvent -- ^ pEvent
+                                                           -> IO VkResult
+vkCreateEvent = unsafeDupablePerformIO (vkGetProc @VkCreateEvent)
+
+{-# NOINLINE vkCreateEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateEvent
+-- >     ( VkDevice device
+-- >     , const VkEventCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkEvent* pEvent
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateEvent vkCreateEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateEvent" vkCreateEventSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkEventCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkEvent -- ^ pEvent
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateEvent
+-- >     ( VkDevice device
+-- >     , const VkEventCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkEvent* pEvent
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateEvent vkCreateEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateEventSafe@ and @vkCreateEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateEvent <- vkGetDeviceProc @VkCreateEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateEvent <- vkGetProc @VkCreateEvent
+--
+vkCreateEventSafe ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkEventCreateInfo -- ^ pCreateInfo
+                                          ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkEvent -- ^ pEvent
+                                                               -> IO VkResult
+vkCreateEventSafe = vkCreateEvent
+
+{-# INLINE vkCreateEventSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateEvent
+--   >     ( VkDevice device
+--   >     , const VkEventCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkEvent* pEvent
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateEvent vkCreateEvent registry at www.khronos.org>
+type HS_vkCreateEvent =
+     VkDevice -- ^ device
+              ->
+       Ptr VkEventCreateInfo -- ^ pCreateInfo
+                             ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkEvent -- ^ pEvent
+                                                  -> IO VkResult
+
+type PFN_vkCreateEvent = FunPtr HS_vkCreateEvent
+
+foreign import ccall "dynamic" unwrapVkCreateEvent ::
+               PFN_vkCreateEvent -> HS_vkCreateEvent
+
+instance VulkanProc "vkCreateEvent" where
+        type VkProcType "vkCreateEvent" = HS_vkCreateEvent
+        vkProcSymbol = _VkCreateEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyEvent :: CString
+
+pattern VkDestroyEvent <- (is_VkDestroyEvent -> True)
+  where VkDestroyEvent = _VkDestroyEvent
+
+{-# INLINE _VkDestroyEvent #-}
+
+_VkDestroyEvent :: CString
+_VkDestroyEvent = Ptr "vkDestroyEvent\NUL"##
+
+{-# INLINE is_VkDestroyEvent #-}
+
+is_VkDestroyEvent :: CString -> Bool
+is_VkDestroyEvent = (EQ ==) . cmpCStrings _VkDestroyEvent
+
+type VkDestroyEvent = "vkDestroyEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyEvent vkDestroyEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyEvent" vkDestroyEvent ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyEvent vkDestroyEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyEventSafe@ and @vkDestroyEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyEvent <- vkGetDeviceProc @VkDestroyEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyEvent <- vkGetProc @VkDestroyEvent
+--
+vkDestroyEvent ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+vkDestroyEvent = unsafeDupablePerformIO (vkGetProc @VkDestroyEvent)
+
+{-# NOINLINE vkDestroyEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyEvent vkDestroyEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyEvent" vkDestroyEventSafe ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyEvent vkDestroyEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyEventSafe@ and @vkDestroyEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyEvent <- vkGetDeviceProc @VkDestroyEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyEvent <- vkGetProc @VkDestroyEvent
+--
+vkDestroyEventSafe ::
+                   VkDevice -- ^ device
+                            -> VkEvent -- ^ event
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+vkDestroyEventSafe = vkDestroyEvent
+
+{-# INLINE vkDestroyEventSafe #-}
+##endif
+
+-- | > void vkDestroyEvent
+--   >     ( VkDevice device
+--   >     , VkEvent event
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyEvent vkDestroyEvent registry at www.khronos.org>
+type HS_vkDestroyEvent =
+     VkDevice -- ^ device
+              -> VkEvent -- ^ event
+                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> IO ()
+
+type PFN_vkDestroyEvent = FunPtr HS_vkDestroyEvent
+
+foreign import ccall "dynamic" unwrapVkDestroyEvent ::
+               PFN_vkDestroyEvent -> HS_vkDestroyEvent
+
+instance VulkanProc "vkDestroyEvent" where
+        type VkProcType "vkDestroyEvent" = HS_vkDestroyEvent
+        vkProcSymbol = _VkDestroyEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetEventStatus :: CString
+
+pattern VkGetEventStatus <- (is_VkGetEventStatus -> True)
+  where VkGetEventStatus = _VkGetEventStatus
+
+{-# INLINE _VkGetEventStatus #-}
+
+_VkGetEventStatus :: CString
+_VkGetEventStatus = Ptr "vkGetEventStatus\NUL"##
+
+{-# INLINE is_VkGetEventStatus #-}
+
+is_VkGetEventStatus :: CString -> Bool
+is_VkGetEventStatus = (EQ ==) . cmpCStrings _VkGetEventStatus
+
+type VkGetEventStatus = "vkGetEventStatus"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetEventStatus
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetEventStatus vkGetEventStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetEventStatus" vkGetEventStatus ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetEventStatus
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetEventStatus vkGetEventStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetEventStatusSafe@ and @vkGetEventStatus@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetEventStatus <- vkGetDeviceProc @VkGetEventStatus vkDevice
+--
+-- or less efficient:
+--
+-- > myGetEventStatus <- vkGetProc @VkGetEventStatus
+--
+vkGetEventStatus :: VkDevice -- ^ device
+                             -> VkEvent -- ^ event
+                                        -> IO VkResult
+vkGetEventStatus
+  = unsafeDupablePerformIO (vkGetProc @VkGetEventStatus)
+
+{-# NOINLINE vkGetEventStatus #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetEventStatus
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetEventStatus vkGetEventStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetEventStatus" vkGetEventStatusSafe
+               :: VkDevice -- ^ device
+                           -> VkEvent -- ^ event
+                                      -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetEventStatus
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetEventStatus vkGetEventStatus registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetEventStatusSafe@ and @vkGetEventStatus@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetEventStatus <- vkGetDeviceProc @VkGetEventStatus vkDevice
+--
+-- or less efficient:
+--
+-- > myGetEventStatus <- vkGetProc @VkGetEventStatus
+--
+vkGetEventStatusSafe :: VkDevice -- ^ device
+                                 -> VkEvent -- ^ event
+                                            -> IO VkResult
+vkGetEventStatusSafe = vkGetEventStatus
+
+{-# INLINE vkGetEventStatusSafe #-}
+##endif
+
+-- | Success codes: 'VK_EVENT_SET', 'VK_EVENT_RESET'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkGetEventStatus
+--   >     ( VkDevice device
+--   >     , VkEvent event
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetEventStatus vkGetEventStatus registry at www.khronos.org>
+type HS_vkGetEventStatus = VkDevice -- ^ device
+                                    -> VkEvent -- ^ event
+                                               -> IO VkResult
+
+type PFN_vkGetEventStatus = FunPtr HS_vkGetEventStatus
+
+foreign import ccall "dynamic" unwrapVkGetEventStatus ::
+               PFN_vkGetEventStatus -> HS_vkGetEventStatus
+
+instance VulkanProc "vkGetEventStatus" where
+        type VkProcType "vkGetEventStatus" = HS_vkGetEventStatus
+        vkProcSymbol = _VkGetEventStatus
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetEventStatus
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkSetEvent :: CString
+
+pattern VkSetEvent <- (is_VkSetEvent -> True)
+  where VkSetEvent = _VkSetEvent
+
+{-# INLINE _VkSetEvent #-}
+
+_VkSetEvent :: CString
+_VkSetEvent = Ptr "vkSetEvent\NUL"##
+
+{-# INLINE is_VkSetEvent #-}
+
+is_VkSetEvent :: CString -> Bool
+is_VkSetEvent = (EQ ==) . cmpCStrings _VkSetEvent
+
+type VkSetEvent = "vkSetEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkSetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetEvent vkSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkSetEvent" vkSetEvent ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkSetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetEvent vkSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkSetEventSafe@ and @vkSetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > mySetEvent <- vkGetDeviceProc @VkSetEvent vkDevice
+--
+-- or less efficient:
+--
+-- > mySetEvent <- vkGetProc @VkSetEvent
+--
+vkSetEvent :: VkDevice -- ^ device
+                       -> VkEvent -- ^ event
+                                  -> IO VkResult
+vkSetEvent = unsafeDupablePerformIO (vkGetProc @VkSetEvent)
+
+{-# NOINLINE vkSetEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkSetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetEvent vkSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkSetEvent" vkSetEventSafe ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkSetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetEvent vkSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkSetEventSafe@ and @vkSetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > mySetEvent <- vkGetDeviceProc @VkSetEvent vkDevice
+--
+-- or less efficient:
+--
+-- > mySetEvent <- vkGetProc @VkSetEvent
+--
+vkSetEventSafe :: VkDevice -- ^ device
+                           -> VkEvent -- ^ event
+                                      -> IO VkResult
+vkSetEventSafe = vkSetEvent
+
+{-# INLINE vkSetEventSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkSetEvent
+--   >     ( VkDevice device
+--   >     , VkEvent event
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetEvent vkSetEvent registry at www.khronos.org>
+type HS_vkSetEvent = VkDevice -- ^ device
+                              -> VkEvent -- ^ event
+                                         -> IO VkResult
+
+type PFN_vkSetEvent = FunPtr HS_vkSetEvent
+
+foreign import ccall "dynamic" unwrapVkSetEvent ::
+               PFN_vkSetEvent -> HS_vkSetEvent
+
+instance VulkanProc "vkSetEvent" where
+        type VkProcType "vkSetEvent" = HS_vkSetEvent
+        vkProcSymbol = _VkSetEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkSetEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkResetEvent :: CString
+
+pattern VkResetEvent <- (is_VkResetEvent -> True)
+  where VkResetEvent = _VkResetEvent
+
+{-# INLINE _VkResetEvent #-}
+
+_VkResetEvent :: CString
+_VkResetEvent = Ptr "vkResetEvent\NUL"##
+
+{-# INLINE is_VkResetEvent #-}
+
+is_VkResetEvent :: CString -> Bool
+is_VkResetEvent = (EQ ==) . cmpCStrings _VkResetEvent
+
+type VkResetEvent = "vkResetEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetEvent vkResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkResetEvent" vkResetEvent ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetEvent vkResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetEventSafe@ and @vkResetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetEvent <- vkGetDeviceProc @VkResetEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myResetEvent <- vkGetProc @VkResetEvent
+--
+vkResetEvent :: VkDevice -- ^ device
+                         -> VkEvent -- ^ event
+                                    -> IO VkResult
+vkResetEvent = unsafeDupablePerformIO (vkGetProc @VkResetEvent)
+
+{-# NOINLINE vkResetEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetEvent vkResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkResetEvent" vkResetEventSafe ::
+               VkDevice -- ^ device
+                        -> VkEvent -- ^ event
+                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetEvent
+-- >     ( VkDevice device
+-- >     , VkEvent event
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetEvent vkResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetEventSafe@ and @vkResetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetEvent <- vkGetDeviceProc @VkResetEvent vkDevice
+--
+-- or less efficient:
+--
+-- > myResetEvent <- vkGetProc @VkResetEvent
+--
+vkResetEventSafe :: VkDevice -- ^ device
+                             -> VkEvent -- ^ event
+                                        -> IO VkResult
+vkResetEventSafe = vkResetEvent
+
+{-# INLINE vkResetEventSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkResetEvent
+--   >     ( VkDevice device
+--   >     , VkEvent event
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetEvent vkResetEvent registry at www.khronos.org>
+type HS_vkResetEvent = VkDevice -- ^ device
+                                -> VkEvent -- ^ event
+                                           -> IO VkResult
+
+type PFN_vkResetEvent = FunPtr HS_vkResetEvent
+
+foreign import ccall "dynamic" unwrapVkResetEvent ::
+               PFN_vkResetEvent -> HS_vkResetEvent
+
+instance VulkanProc "vkResetEvent" where
+        type VkProcType "vkResetEvent" = HS_vkResetEvent
+        vkProcSymbol = _VkResetEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkResetEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateQueryPool :: CString
+
+pattern VkCreateQueryPool <- (is_VkCreateQueryPool -> True)
+  where VkCreateQueryPool = _VkCreateQueryPool
+
+{-# INLINE _VkCreateQueryPool #-}
+
+_VkCreateQueryPool :: CString
+_VkCreateQueryPool = Ptr "vkCreateQueryPool\NUL"##
+
+{-# INLINE is_VkCreateQueryPool #-}
+
+is_VkCreateQueryPool :: CString -> Bool
+is_VkCreateQueryPool = (EQ ==) . cmpCStrings _VkCreateQueryPool
+
+type VkCreateQueryPool = "vkCreateQueryPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateQueryPool
+-- >     ( VkDevice device
+-- >     , const VkQueryPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkQueryPool* pQueryPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateQueryPool vkCreateQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateQueryPool" vkCreateQueryPool
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkQueryPool -- ^ pQueryPool
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateQueryPool
+-- >     ( VkDevice device
+-- >     , const VkQueryPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkQueryPool* pQueryPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateQueryPool vkCreateQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateQueryPoolSafe@ and @vkCreateQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateQueryPool <- vkGetDeviceProc @VkCreateQueryPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateQueryPool <- vkGetProc @VkCreateQueryPool
+--
+vkCreateQueryPool ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
+                                              ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkQueryPool -- ^ pQueryPool
+                                                                   -> IO VkResult
+vkCreateQueryPool
+  = unsafeDupablePerformIO (vkGetProc @VkCreateQueryPool)
+
+{-# NOINLINE vkCreateQueryPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateQueryPool
+-- >     ( VkDevice device
+-- >     , const VkQueryPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkQueryPool* pQueryPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateQueryPool vkCreateQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateQueryPool" vkCreateQueryPoolSafe
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkQueryPool -- ^ pQueryPool
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateQueryPool
+-- >     ( VkDevice device
+-- >     , const VkQueryPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkQueryPool* pQueryPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateQueryPool vkCreateQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateQueryPoolSafe@ and @vkCreateQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateQueryPool <- vkGetDeviceProc @VkCreateQueryPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateQueryPool <- vkGetProc @VkCreateQueryPool
+--
+vkCreateQueryPoolSafe ::
+                      VkDevice -- ^ device
+                               ->
+                        Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
+                                                  ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkQueryPool -- ^ pQueryPool
+                                                                       -> IO VkResult
+vkCreateQueryPoolSafe = vkCreateQueryPool
+
+{-# INLINE vkCreateQueryPoolSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateQueryPool
+--   >     ( VkDevice device
+--   >     , const VkQueryPoolCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkQueryPool* pQueryPool
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateQueryPool vkCreateQueryPool registry at www.khronos.org>
+type HS_vkCreateQueryPool =
+     VkDevice -- ^ device
+              ->
+       Ptr VkQueryPoolCreateInfo -- ^ pCreateInfo
+                                 ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkQueryPool -- ^ pQueryPool
+                                                      -> IO VkResult
+
+type PFN_vkCreateQueryPool = FunPtr HS_vkCreateQueryPool
+
+foreign import ccall "dynamic" unwrapVkCreateQueryPool ::
+               PFN_vkCreateQueryPool -> HS_vkCreateQueryPool
+
+instance VulkanProc "vkCreateQueryPool" where
+        type VkProcType "vkCreateQueryPool" = HS_vkCreateQueryPool
+        vkProcSymbol = _VkCreateQueryPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateQueryPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyQueryPool :: CString
+
+pattern VkDestroyQueryPool <- (is_VkDestroyQueryPool -> True)
+  where VkDestroyQueryPool = _VkDestroyQueryPool
+
+{-# INLINE _VkDestroyQueryPool #-}
+
+_VkDestroyQueryPool :: CString
+_VkDestroyQueryPool = Ptr "vkDestroyQueryPool\NUL"##
+
+{-# INLINE is_VkDestroyQueryPool #-}
+
+is_VkDestroyQueryPool :: CString -> Bool
+is_VkDestroyQueryPool = (EQ ==) . cmpCStrings _VkDestroyQueryPool
+
+type VkDestroyQueryPool = "vkDestroyQueryPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyQueryPool
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyQueryPool vkDestroyQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyQueryPool" vkDestroyQueryPool
+               :: VkDevice -- ^ device
+                           -> VkQueryPool -- ^ queryPool
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkDestroyQueryPool
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyQueryPool vkDestroyQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyQueryPoolSafe@ and @vkDestroyQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyQueryPool <- vkGetDeviceProc @VkDestroyQueryPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyQueryPool <- vkGetProc @VkDestroyQueryPool
+--
+vkDestroyQueryPool ::
+                   VkDevice -- ^ device
+                            -> VkQueryPool -- ^ queryPool
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+vkDestroyQueryPool
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyQueryPool)
+
+{-# NOINLINE vkDestroyQueryPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyQueryPool
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyQueryPool vkDestroyQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyQueryPool"
+               vkDestroyQueryPoolSafe ::
+               VkDevice -- ^ device
+                        -> VkQueryPool -- ^ queryPool
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+
+##else
+-- |
+-- > void vkDestroyQueryPool
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyQueryPool vkDestroyQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyQueryPoolSafe@ and @vkDestroyQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyQueryPool <- vkGetDeviceProc @VkDestroyQueryPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyQueryPool <- vkGetProc @VkDestroyQueryPool
+--
+vkDestroyQueryPoolSafe ::
+                       VkDevice -- ^ device
+                                -> VkQueryPool -- ^ queryPool
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroyQueryPoolSafe = vkDestroyQueryPool
+
+{-# INLINE vkDestroyQueryPoolSafe #-}
+##endif
+
+-- | > void vkDestroyQueryPool
+--   >     ( VkDevice device
+--   >     , VkQueryPool queryPool
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyQueryPool vkDestroyQueryPool registry at www.khronos.org>
+type HS_vkDestroyQueryPool =
+     VkDevice -- ^ device
+              -> VkQueryPool -- ^ queryPool
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+type PFN_vkDestroyQueryPool = FunPtr HS_vkDestroyQueryPool
+
+foreign import ccall "dynamic" unwrapVkDestroyQueryPool ::
+               PFN_vkDestroyQueryPool -> HS_vkDestroyQueryPool
+
+instance VulkanProc "vkDestroyQueryPool" where
+        type VkProcType "vkDestroyQueryPool" = HS_vkDestroyQueryPool
+        vkProcSymbol = _VkDestroyQueryPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyQueryPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetQueryPoolResults :: CString
+
+pattern VkGetQueryPoolResults <- (is_VkGetQueryPoolResults -> True)
+  where VkGetQueryPoolResults = _VkGetQueryPoolResults
+
+{-# INLINE _VkGetQueryPoolResults #-}
+
+_VkGetQueryPoolResults :: CString
+_VkGetQueryPoolResults = Ptr "vkGetQueryPoolResults\NUL"##
+
+{-# INLINE is_VkGetQueryPoolResults #-}
+
+is_VkGetQueryPoolResults :: CString -> Bool
+is_VkGetQueryPoolResults
+  = (EQ ==) . cmpCStrings _VkGetQueryPoolResults
+
+type VkGetQueryPoolResults = "vkGetQueryPoolResults"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetQueryPoolResults
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , size_t dataSize
+-- >     , void* pData
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetQueryPoolResults vkGetQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetQueryPoolResults"
+               vkGetQueryPoolResults ::
+               VkDevice -- ^ device
+                        ->
+                 VkQueryPool -- ^ queryPool
+                             ->
+                   Word32 -- ^ firstQuery
+                          ->
+                     Word32 -- ^ queryCount
+                            ->
+                       CSize -- ^ dataSize
+                             ->
+                         Ptr Void -- ^ pData
+                                  -> VkDeviceSize -- ^ stride
+                                                  -> VkQueryResultFlags -- ^ flags
+                                                                        -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetQueryPoolResults
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , size_t dataSize
+-- >     , void* pData
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetQueryPoolResults vkGetQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetQueryPoolResultsSafe@ and @vkGetQueryPoolResults@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetQueryPoolResults <- vkGetDeviceProc @VkGetQueryPoolResults vkDevice
+--
+-- or less efficient:
+--
+-- > myGetQueryPoolResults <- vkGetProc @VkGetQueryPoolResults
+--
+vkGetQueryPoolResults ::
+                      VkDevice -- ^ device
+                               ->
+                        VkQueryPool -- ^ queryPool
+                                    ->
+                          Word32 -- ^ firstQuery
+                                 ->
+                            Word32 -- ^ queryCount
+                                   ->
+                              CSize -- ^ dataSize
+                                    ->
+                                Ptr Void -- ^ pData
+                                         -> VkDeviceSize -- ^ stride
+                                                         -> VkQueryResultFlags -- ^ flags
+                                                                               -> IO VkResult
+vkGetQueryPoolResults
+  = unsafeDupablePerformIO (vkGetProc @VkGetQueryPoolResults)
+
+{-# NOINLINE vkGetQueryPoolResults #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetQueryPoolResults
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , size_t dataSize
+-- >     , void* pData
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetQueryPoolResults vkGetQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetQueryPoolResults"
+               vkGetQueryPoolResultsSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkQueryPool -- ^ queryPool
+                             ->
+                   Word32 -- ^ firstQuery
+                          ->
+                     Word32 -- ^ queryCount
+                            ->
+                       CSize -- ^ dataSize
+                             ->
+                         Ptr Void -- ^ pData
+                                  -> VkDeviceSize -- ^ stride
+                                                  -> VkQueryResultFlags -- ^ flags
+                                                                        -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+-- > VkResult vkGetQueryPoolResults
+-- >     ( VkDevice device
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , size_t dataSize
+-- >     , void* pData
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetQueryPoolResults vkGetQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetQueryPoolResultsSafe@ and @vkGetQueryPoolResults@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetQueryPoolResults <- vkGetDeviceProc @VkGetQueryPoolResults vkDevice
+--
+-- or less efficient:
+--
+-- > myGetQueryPoolResults <- vkGetProc @VkGetQueryPoolResults
+--
+vkGetQueryPoolResultsSafe ::
+                          VkDevice -- ^ device
+                                   ->
+                            VkQueryPool -- ^ queryPool
+                                        ->
+                              Word32 -- ^ firstQuery
+                                     ->
+                                Word32 -- ^ queryCount
+                                       ->
+                                  CSize -- ^ dataSize
+                                        ->
+                                    Ptr Void -- ^ pData
+                                             -> VkDeviceSize -- ^ stride
+                                                             -> VkQueryResultFlags -- ^ flags
+                                                                                   -> IO VkResult
+vkGetQueryPoolResultsSafe = vkGetQueryPoolResults
+
+{-# INLINE vkGetQueryPoolResultsSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_NOT_READY'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST'.
+--
+--   > VkResult vkGetQueryPoolResults
+--   >     ( VkDevice device
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t firstQuery
+--   >     , uint32_t queryCount
+--   >     , size_t dataSize
+--   >     , void* pData
+--   >     , VkDeviceSize stride
+--   >     , VkQueryResultFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetQueryPoolResults vkGetQueryPoolResults registry at www.khronos.org>
+type HS_vkGetQueryPoolResults =
+     VkDevice -- ^ device
+              ->
+       VkQueryPool -- ^ queryPool
+                   ->
+         Word32 -- ^ firstQuery
+                ->
+           Word32 -- ^ queryCount
+                  ->
+             CSize -- ^ dataSize
+                   ->
+               Ptr Void -- ^ pData
+                        -> VkDeviceSize -- ^ stride
+                                        -> VkQueryResultFlags -- ^ flags
+                                                              -> IO VkResult
+
+type PFN_vkGetQueryPoolResults = FunPtr HS_vkGetQueryPoolResults
+
+foreign import ccall "dynamic" unwrapVkGetQueryPoolResults ::
+               PFN_vkGetQueryPoolResults -> HS_vkGetQueryPoolResults
+
+instance VulkanProc "vkGetQueryPoolResults" where
+        type VkProcType "vkGetQueryPoolResults" = HS_vkGetQueryPoolResults
+        vkProcSymbol = _VkGetQueryPoolResults
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetQueryPoolResults
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateBuffer :: CString
+
+pattern VkCreateBuffer <- (is_VkCreateBuffer -> True)
+  where VkCreateBuffer = _VkCreateBuffer
+
+{-# INLINE _VkCreateBuffer #-}
+
+_VkCreateBuffer :: CString
+_VkCreateBuffer = Ptr "vkCreateBuffer\NUL"##
+
+{-# INLINE is_VkCreateBuffer #-}
+
+is_VkCreateBuffer :: CString -> Bool
+is_VkCreateBuffer = (EQ ==) . cmpCStrings _VkCreateBuffer
+
+type VkCreateBuffer = "vkCreateBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBuffer
+-- >     ( VkDevice device
+-- >     , const VkBufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBuffer* pBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBuffer vkCreateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateBuffer" vkCreateBuffer ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkBuffer -- ^ pBuffer
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBuffer
+-- >     ( VkDevice device
+-- >     , const VkBufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBuffer* pBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBuffer vkCreateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateBufferSafe@ and @vkCreateBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateBuffer <- vkGetDeviceProc @VkCreateBuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateBuffer <- vkGetProc @VkCreateBuffer
+--
+vkCreateBuffer ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkBuffer -- ^ pBuffer
+                                                             -> IO VkResult
+vkCreateBuffer = unsafeDupablePerformIO (vkGetProc @VkCreateBuffer)
+
+{-# NOINLINE vkCreateBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBuffer
+-- >     ( VkDevice device
+-- >     , const VkBufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBuffer* pBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBuffer vkCreateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateBuffer" vkCreateBufferSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferCreateInfo -- ^ pCreateInfo
+                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkBuffer -- ^ pBuffer
+                                                             -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBuffer
+-- >     ( VkDevice device
+-- >     , const VkBufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBuffer* pBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBuffer vkCreateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateBufferSafe@ and @vkCreateBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateBuffer <- vkGetDeviceProc @VkCreateBuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateBuffer <- vkGetProc @VkCreateBuffer
+--
+vkCreateBufferSafe ::
+                   VkDevice -- ^ device
+                            ->
+                     Ptr VkBufferCreateInfo -- ^ pCreateInfo
+                                            ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkBuffer -- ^ pBuffer
+                                                                 -> IO VkResult
+vkCreateBufferSafe = vkCreateBuffer
+
+{-# INLINE vkCreateBufferSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateBuffer
+--   >     ( VkDevice device
+--   >     , const VkBufferCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkBuffer* pBuffer
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBuffer vkCreateBuffer registry at www.khronos.org>
+type HS_vkCreateBuffer =
+     VkDevice -- ^ device
+              ->
+       Ptr VkBufferCreateInfo -- ^ pCreateInfo
+                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkBuffer -- ^ pBuffer
+                                                   -> IO VkResult
+
+type PFN_vkCreateBuffer = FunPtr HS_vkCreateBuffer
+
+foreign import ccall "dynamic" unwrapVkCreateBuffer ::
+               PFN_vkCreateBuffer -> HS_vkCreateBuffer
+
+instance VulkanProc "vkCreateBuffer" where
+        type VkProcType "vkCreateBuffer" = HS_vkCreateBuffer
+        vkProcSymbol = _VkCreateBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyBuffer :: CString
+
+pattern VkDestroyBuffer <- (is_VkDestroyBuffer -> True)
+  where VkDestroyBuffer = _VkDestroyBuffer
+
+{-# INLINE _VkDestroyBuffer #-}
+
+_VkDestroyBuffer :: CString
+_VkDestroyBuffer = Ptr "vkDestroyBuffer\NUL"##
+
+{-# INLINE is_VkDestroyBuffer #-}
+
+is_VkDestroyBuffer :: CString -> Bool
+is_VkDestroyBuffer = (EQ ==) . cmpCStrings _VkDestroyBuffer
+
+type VkDestroyBuffer = "vkDestroyBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyBuffer
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBuffer vkDestroyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyBuffer" vkDestroyBuffer ::
+               VkDevice -- ^ device
+                        -> VkBuffer -- ^ buffer
+                                    -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                 -> IO ()
+
+##else
+-- |
+-- > void vkDestroyBuffer
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBuffer vkDestroyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyBufferSafe@ and @vkDestroyBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyBuffer <- vkGetDeviceProc @VkDestroyBuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyBuffer <- vkGetProc @VkDestroyBuffer
+--
+vkDestroyBuffer ::
+                VkDevice -- ^ device
+                         -> VkBuffer -- ^ buffer
+                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                  -> IO ()
+vkDestroyBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyBuffer)
+
+{-# NOINLINE vkDestroyBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyBuffer
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBuffer vkDestroyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyBuffer" vkDestroyBufferSafe ::
+               VkDevice -- ^ device
+                        -> VkBuffer -- ^ buffer
+                                    -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                 -> IO ()
+
+##else
+-- |
+-- > void vkDestroyBuffer
+-- >     ( VkDevice device
+-- >     , VkBuffer buffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBuffer vkDestroyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyBufferSafe@ and @vkDestroyBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyBuffer <- vkGetDeviceProc @VkDestroyBuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyBuffer <- vkGetProc @VkDestroyBuffer
+--
+vkDestroyBufferSafe ::
+                    VkDevice -- ^ device
+                             -> VkBuffer -- ^ buffer
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+vkDestroyBufferSafe = vkDestroyBuffer
+
+{-# INLINE vkDestroyBufferSafe #-}
+##endif
+
+-- | > void vkDestroyBuffer
+--   >     ( VkDevice device
+--   >     , VkBuffer buffer
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBuffer vkDestroyBuffer registry at www.khronos.org>
+type HS_vkDestroyBuffer =
+     VkDevice -- ^ device
+              -> VkBuffer -- ^ buffer
+                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                       -> IO ()
+
+type PFN_vkDestroyBuffer = FunPtr HS_vkDestroyBuffer
+
+foreign import ccall "dynamic" unwrapVkDestroyBuffer ::
+               PFN_vkDestroyBuffer -> HS_vkDestroyBuffer
+
+instance VulkanProc "vkDestroyBuffer" where
+        type VkProcType "vkDestroyBuffer" = HS_vkDestroyBuffer
+        vkProcSymbol = _VkDestroyBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateBufferView :: CString
+
+pattern VkCreateBufferView <- (is_VkCreateBufferView -> True)
+  where VkCreateBufferView = _VkCreateBufferView
+
+{-# INLINE _VkCreateBufferView #-}
+
+_VkCreateBufferView :: CString
+_VkCreateBufferView = Ptr "vkCreateBufferView\NUL"##
+
+{-# INLINE is_VkCreateBufferView #-}
+
+is_VkCreateBufferView :: CString -> Bool
+is_VkCreateBufferView = (EQ ==) . cmpCStrings _VkCreateBufferView
+
+type VkCreateBufferView = "vkCreateBufferView"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBufferView
+-- >     ( VkDevice device
+-- >     , const VkBufferViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBufferView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBufferView vkCreateBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateBufferView" vkCreateBufferView
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
+                                            ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkBufferView -- ^ pView
+                                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBufferView
+-- >     ( VkDevice device
+-- >     , const VkBufferViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBufferView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBufferView vkCreateBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateBufferViewSafe@ and @vkCreateBufferView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateBufferView <- vkGetDeviceProc @VkCreateBufferView vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateBufferView <- vkGetProc @VkCreateBufferView
+--
+vkCreateBufferView ::
+                   VkDevice -- ^ device
+                            ->
+                     Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
+                                                ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkBufferView -- ^ pView
+                                                                     -> IO VkResult
+vkCreateBufferView
+  = unsafeDupablePerformIO (vkGetProc @VkCreateBufferView)
+
+{-# NOINLINE vkCreateBufferView #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBufferView
+-- >     ( VkDevice device
+-- >     , const VkBufferViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBufferView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBufferView vkCreateBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateBufferView"
+               vkCreateBufferViewSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
+                                            ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkBufferView -- ^ pView
+                                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateBufferView
+-- >     ( VkDevice device
+-- >     , const VkBufferViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkBufferView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBufferView vkCreateBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateBufferViewSafe@ and @vkCreateBufferView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateBufferView <- vkGetDeviceProc @VkCreateBufferView vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateBufferView <- vkGetProc @VkCreateBufferView
+--
+vkCreateBufferViewSafe ::
+                       VkDevice -- ^ device
+                                ->
+                         Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
+                                                    ->
+                           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> Ptr VkBufferView -- ^ pView
+                                                                         -> IO VkResult
+vkCreateBufferViewSafe = vkCreateBufferView
+
+{-# INLINE vkCreateBufferViewSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateBufferView
+--   >     ( VkDevice device
+--   >     , const VkBufferViewCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkBufferView* pView
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateBufferView vkCreateBufferView registry at www.khronos.org>
+type HS_vkCreateBufferView =
+     VkDevice -- ^ device
+              ->
+       Ptr VkBufferViewCreateInfo -- ^ pCreateInfo
+                                  ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkBufferView -- ^ pView
+                                                       -> IO VkResult
+
+type PFN_vkCreateBufferView = FunPtr HS_vkCreateBufferView
+
+foreign import ccall "dynamic" unwrapVkCreateBufferView ::
+               PFN_vkCreateBufferView -> HS_vkCreateBufferView
+
+instance VulkanProc "vkCreateBufferView" where
+        type VkProcType "vkCreateBufferView" = HS_vkCreateBufferView
+        vkProcSymbol = _VkCreateBufferView
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateBufferView
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyBufferView :: CString
+
+pattern VkDestroyBufferView <- (is_VkDestroyBufferView -> True)
+  where VkDestroyBufferView = _VkDestroyBufferView
+
+{-# INLINE _VkDestroyBufferView #-}
+
+_VkDestroyBufferView :: CString
+_VkDestroyBufferView = Ptr "vkDestroyBufferView\NUL"##
+
+{-# INLINE is_VkDestroyBufferView #-}
+
+is_VkDestroyBufferView :: CString -> Bool
+is_VkDestroyBufferView = (EQ ==) . cmpCStrings _VkDestroyBufferView
+
+type VkDestroyBufferView = "vkDestroyBufferView"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyBufferView
+-- >     ( VkDevice device
+-- >     , VkBufferView bufferView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBufferView vkDestroyBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyBufferView"
+               vkDestroyBufferView ::
+               VkDevice -- ^ device
+                        -> VkBufferView -- ^ bufferView
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyBufferView
+-- >     ( VkDevice device
+-- >     , VkBufferView bufferView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBufferView vkDestroyBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyBufferViewSafe@ and @vkDestroyBufferView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyBufferView <- vkGetDeviceProc @VkDestroyBufferView vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyBufferView <- vkGetProc @VkDestroyBufferView
+--
+vkDestroyBufferView ::
+                    VkDevice -- ^ device
+                             -> VkBufferView -- ^ bufferView
+                                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                          -> IO ()
+vkDestroyBufferView
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyBufferView)
+
+{-# NOINLINE vkDestroyBufferView #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyBufferView
+-- >     ( VkDevice device
+-- >     , VkBufferView bufferView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBufferView vkDestroyBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyBufferView"
+               vkDestroyBufferViewSafe ::
+               VkDevice -- ^ device
+                        -> VkBufferView -- ^ bufferView
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyBufferView
+-- >     ( VkDevice device
+-- >     , VkBufferView bufferView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBufferView vkDestroyBufferView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyBufferViewSafe@ and @vkDestroyBufferView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyBufferView <- vkGetDeviceProc @VkDestroyBufferView vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyBufferView <- vkGetProc @VkDestroyBufferView
+--
+vkDestroyBufferViewSafe ::
+                        VkDevice -- ^ device
+                                 -> VkBufferView -- ^ bufferView
+                                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                              -> IO ()
+vkDestroyBufferViewSafe = vkDestroyBufferView
+
+{-# INLINE vkDestroyBufferViewSafe #-}
+##endif
+
+-- | > void vkDestroyBufferView
+--   >     ( VkDevice device
+--   >     , VkBufferView bufferView
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyBufferView vkDestroyBufferView registry at www.khronos.org>
+type HS_vkDestroyBufferView =
+     VkDevice -- ^ device
+              -> VkBufferView -- ^ bufferView
+                              -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                           -> IO ()
+
+type PFN_vkDestroyBufferView = FunPtr HS_vkDestroyBufferView
+
+foreign import ccall "dynamic" unwrapVkDestroyBufferView ::
+               PFN_vkDestroyBufferView -> HS_vkDestroyBufferView
+
+instance VulkanProc "vkDestroyBufferView" where
+        type VkProcType "vkDestroyBufferView" = HS_vkDestroyBufferView
+        vkProcSymbol = _VkDestroyBufferView
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyBufferView
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateImage :: CString
+
+pattern VkCreateImage <- (is_VkCreateImage -> True)
+  where VkCreateImage = _VkCreateImage
+
+{-# INLINE _VkCreateImage #-}
+
+_VkCreateImage :: CString
+_VkCreateImage = Ptr "vkCreateImage\NUL"##
+
+{-# INLINE is_VkCreateImage #-}
+
+is_VkCreateImage :: CString -> Bool
+is_VkCreateImage = (EQ ==) . cmpCStrings _VkCreateImage
+
+type VkCreateImage = "vkCreateImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImage
+-- >     ( VkDevice device
+-- >     , const VkImageCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImage* pImage
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImage vkCreateImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateImage" vkCreateImage ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkImage -- ^ pImage
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImage
+-- >     ( VkDevice device
+-- >     , const VkImageCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImage* pImage
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImage vkCreateImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateImageSafe@ and @vkCreateImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateImage <- vkGetDeviceProc @VkCreateImage vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateImage <- vkGetProc @VkCreateImage
+--
+vkCreateImage ::
+              VkDevice -- ^ device
+                       ->
+                Ptr VkImageCreateInfo -- ^ pCreateInfo
+                                      ->
+                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                            -> Ptr VkImage -- ^ pImage
+                                                           -> IO VkResult
+vkCreateImage = unsafeDupablePerformIO (vkGetProc @VkCreateImage)
+
+{-# NOINLINE vkCreateImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImage
+-- >     ( VkDevice device
+-- >     , const VkImageCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImage* pImage
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImage vkCreateImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateImage" vkCreateImageSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageCreateInfo -- ^ pCreateInfo
+                                       ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkImage -- ^ pImage
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImage
+-- >     ( VkDevice device
+-- >     , const VkImageCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImage* pImage
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImage vkCreateImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateImageSafe@ and @vkCreateImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateImage <- vkGetDeviceProc @VkCreateImage vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateImage <- vkGetProc @VkCreateImage
+--
+vkCreateImageSafe ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkImageCreateInfo -- ^ pCreateInfo
+                                          ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkImage -- ^ pImage
+                                                               -> IO VkResult
+vkCreateImageSafe = vkCreateImage
+
+{-# INLINE vkCreateImageSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateImage
+--   >     ( VkDevice device
+--   >     , const VkImageCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkImage* pImage
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImage vkCreateImage registry at www.khronos.org>
+type HS_vkCreateImage =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageCreateInfo -- ^ pCreateInfo
+                             ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkImage -- ^ pImage
+                                                  -> IO VkResult
+
+type PFN_vkCreateImage = FunPtr HS_vkCreateImage
+
+foreign import ccall "dynamic" unwrapVkCreateImage ::
+               PFN_vkCreateImage -> HS_vkCreateImage
+
+instance VulkanProc "vkCreateImage" where
+        type VkProcType "vkCreateImage" = HS_vkCreateImage
+        vkProcSymbol = _VkCreateImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyImage :: CString
+
+pattern VkDestroyImage <- (is_VkDestroyImage -> True)
+  where VkDestroyImage = _VkDestroyImage
+
+{-# INLINE _VkDestroyImage #-}
+
+_VkDestroyImage :: CString
+_VkDestroyImage = Ptr "vkDestroyImage\NUL"##
+
+{-# INLINE is_VkDestroyImage #-}
+
+is_VkDestroyImage :: CString -> Bool
+is_VkDestroyImage = (EQ ==) . cmpCStrings _VkDestroyImage
+
+type VkDestroyImage = "vkDestroyImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyImage
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImage vkDestroyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyImage" vkDestroyImage ::
+               VkDevice -- ^ device
+                        -> VkImage -- ^ image
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyImage
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImage vkDestroyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyImageSafe@ and @vkDestroyImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyImage <- vkGetDeviceProc @VkDestroyImage vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyImage <- vkGetProc @VkDestroyImage
+--
+vkDestroyImage ::
+               VkDevice -- ^ device
+                        -> VkImage -- ^ image
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+vkDestroyImage = unsafeDupablePerformIO (vkGetProc @VkDestroyImage)
+
+{-# NOINLINE vkDestroyImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyImage
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImage vkDestroyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyImage" vkDestroyImageSafe ::
+               VkDevice -- ^ device
+                        -> VkImage -- ^ image
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
+
+##else
+-- |
+-- > void vkDestroyImage
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImage vkDestroyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyImageSafe@ and @vkDestroyImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyImage <- vkGetDeviceProc @VkDestroyImage vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyImage <- vkGetProc @VkDestroyImage
+--
+vkDestroyImageSafe ::
+                   VkDevice -- ^ device
+                            -> VkImage -- ^ image
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+vkDestroyImageSafe = vkDestroyImage
+
+{-# INLINE vkDestroyImageSafe #-}
+##endif
+
+-- | > void vkDestroyImage
+--   >     ( VkDevice device
+--   >     , VkImage image
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImage vkDestroyImage registry at www.khronos.org>
+type HS_vkDestroyImage =
+     VkDevice -- ^ device
+              -> VkImage -- ^ image
+                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> IO ()
+
+type PFN_vkDestroyImage = FunPtr HS_vkDestroyImage
+
+foreign import ccall "dynamic" unwrapVkDestroyImage ::
+               PFN_vkDestroyImage -> HS_vkDestroyImage
+
+instance VulkanProc "vkDestroyImage" where
+        type VkProcType "vkDestroyImage" = HS_vkDestroyImage
+        vkProcSymbol = _VkDestroyImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetImageSubresourceLayout :: CString
+
+pattern VkGetImageSubresourceLayout <-
+        (is_VkGetImageSubresourceLayout -> True)
+  where VkGetImageSubresourceLayout = _VkGetImageSubresourceLayout
+
+{-# INLINE _VkGetImageSubresourceLayout #-}
+
+_VkGetImageSubresourceLayout :: CString
+_VkGetImageSubresourceLayout
+  = Ptr "vkGetImageSubresourceLayout\NUL"##
+
+{-# INLINE is_VkGetImageSubresourceLayout #-}
+
+is_VkGetImageSubresourceLayout :: CString -> Bool
+is_VkGetImageSubresourceLayout
+  = (EQ ==) . cmpCStrings _VkGetImageSubresourceLayout
+
+type VkGetImageSubresourceLayout = "vkGetImageSubresourceLayout"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageSubresourceLayout
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkImageSubresource* pSubresource
+-- >     , VkSubresourceLayout* pLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSubresourceLayout vkGetImageSubresourceLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetImageSubresourceLayout"
+               vkGetImageSubresourceLayout ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         ->
+                   Ptr VkImageSubresource -- ^ pSubresource
+                                          -> Ptr VkSubresourceLayout -- ^ pLayout
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkGetImageSubresourceLayout
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkImageSubresource* pSubresource
+-- >     , VkSubresourceLayout* pLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSubresourceLayout vkGetImageSubresourceLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSubresourceLayoutSafe@ and @vkGetImageSubresourceLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSubresourceLayout <- vkGetDeviceProc @VkGetImageSubresourceLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSubresourceLayout <- vkGetProc @VkGetImageSubresourceLayout
+--
+vkGetImageSubresourceLayout ::
+                            VkDevice -- ^ device
+                                     ->
+                              VkImage -- ^ image
+                                      ->
+                                Ptr VkImageSubresource -- ^ pSubresource
+                                                       -> Ptr VkSubresourceLayout -- ^ pLayout
+                                                                                  -> IO ()
+vkGetImageSubresourceLayout
+  = unsafeDupablePerformIO (vkGetProc @VkGetImageSubresourceLayout)
+
+{-# NOINLINE vkGetImageSubresourceLayout #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetImageSubresourceLayout
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkImageSubresource* pSubresource
+-- >     , VkSubresourceLayout* pLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSubresourceLayout vkGetImageSubresourceLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetImageSubresourceLayout"
+               vkGetImageSubresourceLayoutSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkImage -- ^ image
+                         ->
+                   Ptr VkImageSubresource -- ^ pSubresource
+                                          -> Ptr VkSubresourceLayout -- ^ pLayout
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkGetImageSubresourceLayout
+-- >     ( VkDevice device
+-- >     , VkImage image
+-- >     , const VkImageSubresource* pSubresource
+-- >     , VkSubresourceLayout* pLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSubresourceLayout vkGetImageSubresourceLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSubresourceLayoutSafe@ and @vkGetImageSubresourceLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSubresourceLayout <- vkGetDeviceProc @VkGetImageSubresourceLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSubresourceLayout <- vkGetProc @VkGetImageSubresourceLayout
+--
+vkGetImageSubresourceLayoutSafe ::
+                                VkDevice -- ^ device
+                                         ->
+                                  VkImage -- ^ image
+                                          ->
+                                    Ptr VkImageSubresource -- ^ pSubresource
+                                                           -> Ptr VkSubresourceLayout -- ^ pLayout
+                                                                                      -> IO ()
+vkGetImageSubresourceLayoutSafe = vkGetImageSubresourceLayout
+
+{-# INLINE vkGetImageSubresourceLayoutSafe #-}
+##endif
+
+-- | > void vkGetImageSubresourceLayout
+--   >     ( VkDevice device
+--   >     , VkImage image
+--   >     , const VkImageSubresource* pSubresource
+--   >     , VkSubresourceLayout* pLayout
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSubresourceLayout vkGetImageSubresourceLayout registry at www.khronos.org>
+type HS_vkGetImageSubresourceLayout =
+     VkDevice -- ^ device
+              ->
+       VkImage -- ^ image
+               ->
+         Ptr VkImageSubresource -- ^ pSubresource
+                                -> Ptr VkSubresourceLayout -- ^ pLayout
+                                                           -> IO ()
+
+type PFN_vkGetImageSubresourceLayout =
+     FunPtr HS_vkGetImageSubresourceLayout
+
+foreign import ccall "dynamic" unwrapVkGetImageSubresourceLayout ::
+               PFN_vkGetImageSubresourceLayout -> HS_vkGetImageSubresourceLayout
+
+instance VulkanProc "vkGetImageSubresourceLayout" where
+        type VkProcType "vkGetImageSubresourceLayout" =
+             HS_vkGetImageSubresourceLayout
+        vkProcSymbol = _VkGetImageSubresourceLayout
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageSubresourceLayout
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateImageView :: CString
+
+pattern VkCreateImageView <- (is_VkCreateImageView -> True)
+  where VkCreateImageView = _VkCreateImageView
+
+{-# INLINE _VkCreateImageView #-}
+
+_VkCreateImageView :: CString
+_VkCreateImageView = Ptr "vkCreateImageView\NUL"##
+
+{-# INLINE is_VkCreateImageView #-}
+
+is_VkCreateImageView :: CString -> Bool
+is_VkCreateImageView = (EQ ==) . cmpCStrings _VkCreateImageView
+
+type VkCreateImageView = "vkCreateImageView"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImageView
+-- >     ( VkDevice device
+-- >     , const VkImageViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImageView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImageView vkCreateImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateImageView" vkCreateImageView
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageViewCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkImageView -- ^ pView
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImageView
+-- >     ( VkDevice device
+-- >     , const VkImageViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImageView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImageView vkCreateImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateImageViewSafe@ and @vkCreateImageView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateImageView <- vkGetDeviceProc @VkCreateImageView vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateImageView <- vkGetProc @VkCreateImageView
+--
+vkCreateImageView ::
+                  VkDevice -- ^ device
+                           ->
+                    Ptr VkImageViewCreateInfo -- ^ pCreateInfo
+                                              ->
+                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                -> Ptr VkImageView -- ^ pView
+                                                                   -> IO VkResult
+vkCreateImageView
+  = unsafeDupablePerformIO (vkGetProc @VkCreateImageView)
+
+{-# NOINLINE vkCreateImageView #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImageView
+-- >     ( VkDevice device
+-- >     , const VkImageViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImageView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImageView vkCreateImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateImageView" vkCreateImageViewSafe
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageViewCreateInfo -- ^ pCreateInfo
+                                           ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkImageView -- ^ pView
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateImageView
+-- >     ( VkDevice device
+-- >     , const VkImageViewCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkImageView* pView
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImageView vkCreateImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateImageViewSafe@ and @vkCreateImageView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateImageView <- vkGetDeviceProc @VkCreateImageView vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateImageView <- vkGetProc @VkCreateImageView
+--
+vkCreateImageViewSafe ::
+                      VkDevice -- ^ device
+                               ->
+                        Ptr VkImageViewCreateInfo -- ^ pCreateInfo
+                                                  ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkImageView -- ^ pView
+                                                                       -> IO VkResult
+vkCreateImageViewSafe = vkCreateImageView
+
+{-# INLINE vkCreateImageViewSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateImageView
+--   >     ( VkDevice device
+--   >     , const VkImageViewCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkImageView* pView
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateImageView vkCreateImageView registry at www.khronos.org>
+type HS_vkCreateImageView =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageViewCreateInfo -- ^ pCreateInfo
+                                 ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkImageView -- ^ pView
+                                                      -> IO VkResult
+
+type PFN_vkCreateImageView = FunPtr HS_vkCreateImageView
+
+foreign import ccall "dynamic" unwrapVkCreateImageView ::
+               PFN_vkCreateImageView -> HS_vkCreateImageView
+
+instance VulkanProc "vkCreateImageView" where
+        type VkProcType "vkCreateImageView" = HS_vkCreateImageView
+        vkProcSymbol = _VkCreateImageView
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateImageView
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyImageView :: CString
+
+pattern VkDestroyImageView <- (is_VkDestroyImageView -> True)
+  where VkDestroyImageView = _VkDestroyImageView
+
+{-# INLINE _VkDestroyImageView #-}
+
+_VkDestroyImageView :: CString
+_VkDestroyImageView = Ptr "vkDestroyImageView\NUL"##
+
+{-# INLINE is_VkDestroyImageView #-}
+
+is_VkDestroyImageView :: CString -> Bool
+is_VkDestroyImageView = (EQ ==) . cmpCStrings _VkDestroyImageView
+
+type VkDestroyImageView = "vkDestroyImageView"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyImageView
+-- >     ( VkDevice device
+-- >     , VkImageView imageView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImageView vkDestroyImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyImageView" vkDestroyImageView
+               :: VkDevice -- ^ device
+                           -> VkImageView -- ^ imageView
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkDestroyImageView
+-- >     ( VkDevice device
+-- >     , VkImageView imageView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImageView vkDestroyImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyImageViewSafe@ and @vkDestroyImageView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyImageView <- vkGetDeviceProc @VkDestroyImageView vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyImageView <- vkGetProc @VkDestroyImageView
+--
+vkDestroyImageView ::
+                   VkDevice -- ^ device
+                            -> VkImageView -- ^ imageView
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+vkDestroyImageView
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyImageView)
+
+{-# NOINLINE vkDestroyImageView #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyImageView
+-- >     ( VkDevice device
+-- >     , VkImageView imageView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImageView vkDestroyImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyImageView"
+               vkDestroyImageViewSafe ::
+               VkDevice -- ^ device
+                        -> VkImageView -- ^ imageView
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+
+##else
+-- |
+-- > void vkDestroyImageView
+-- >     ( VkDevice device
+-- >     , VkImageView imageView
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImageView vkDestroyImageView registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyImageViewSafe@ and @vkDestroyImageView@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyImageView <- vkGetDeviceProc @VkDestroyImageView vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyImageView <- vkGetProc @VkDestroyImageView
+--
+vkDestroyImageViewSafe ::
+                       VkDevice -- ^ device
+                                -> VkImageView -- ^ imageView
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroyImageViewSafe = vkDestroyImageView
+
+{-# INLINE vkDestroyImageViewSafe #-}
+##endif
+
+-- | > void vkDestroyImageView
+--   >     ( VkDevice device
+--   >     , VkImageView imageView
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyImageView vkDestroyImageView registry at www.khronos.org>
+type HS_vkDestroyImageView =
+     VkDevice -- ^ device
+              -> VkImageView -- ^ imageView
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+type PFN_vkDestroyImageView = FunPtr HS_vkDestroyImageView
+
+foreign import ccall "dynamic" unwrapVkDestroyImageView ::
+               PFN_vkDestroyImageView -> HS_vkDestroyImageView
+
+instance VulkanProc "vkDestroyImageView" where
+        type VkProcType "vkDestroyImageView" = HS_vkDestroyImageView
+        vkProcSymbol = _VkDestroyImageView
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyImageView
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateShaderModule :: CString
+
+pattern VkCreateShaderModule <- (is_VkCreateShaderModule -> True)
+  where VkCreateShaderModule = _VkCreateShaderModule
+
+{-# INLINE _VkCreateShaderModule #-}
+
+_VkCreateShaderModule :: CString
+_VkCreateShaderModule = Ptr "vkCreateShaderModule\NUL"##
+
+{-# INLINE is_VkCreateShaderModule #-}
+
+is_VkCreateShaderModule :: CString -> Bool
+is_VkCreateShaderModule
+  = (EQ ==) . cmpCStrings _VkCreateShaderModule
+
+type VkCreateShaderModule = "vkCreateShaderModule"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateShaderModule
+-- >     ( VkDevice device
+-- >     , const VkShaderModuleCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkShaderModule* pShaderModule
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateShaderModule vkCreateShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateShaderModule"
+               vkCreateShaderModule ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
+                                              ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkShaderModule -- ^ pShaderModule
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateShaderModule
+-- >     ( VkDevice device
+-- >     , const VkShaderModuleCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkShaderModule* pShaderModule
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateShaderModule vkCreateShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateShaderModuleSafe@ and @vkCreateShaderModule@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateShaderModule <- vkGetDeviceProc @VkCreateShaderModule vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateShaderModule <- vkGetProc @VkCreateShaderModule
+--
+vkCreateShaderModule ::
+                     VkDevice -- ^ device
+                              ->
+                       Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
+                                                    ->
+                         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                   -> Ptr VkShaderModule -- ^ pShaderModule
+                                                                         -> IO VkResult
+vkCreateShaderModule
+  = unsafeDupablePerformIO (vkGetProc @VkCreateShaderModule)
+
+{-# NOINLINE vkCreateShaderModule #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateShaderModule
+-- >     ( VkDevice device
+-- >     , const VkShaderModuleCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkShaderModule* pShaderModule
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateShaderModule vkCreateShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateShaderModule"
+               vkCreateShaderModuleSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
+                                              ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkShaderModule -- ^ pShaderModule
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateShaderModule
+-- >     ( VkDevice device
+-- >     , const VkShaderModuleCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkShaderModule* pShaderModule
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateShaderModule vkCreateShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateShaderModuleSafe@ and @vkCreateShaderModule@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateShaderModule <- vkGetDeviceProc @VkCreateShaderModule vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateShaderModule <- vkGetProc @VkCreateShaderModule
+--
+vkCreateShaderModuleSafe ::
+                         VkDevice -- ^ device
+                                  ->
+                           Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
+                                                        ->
+                             Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                       -> Ptr VkShaderModule -- ^ pShaderModule
+                                                                             -> IO VkResult
+vkCreateShaderModuleSafe = vkCreateShaderModule
+
+{-# INLINE vkCreateShaderModuleSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+--   > VkResult vkCreateShaderModule
+--   >     ( VkDevice device
+--   >     , const VkShaderModuleCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkShaderModule* pShaderModule
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateShaderModule vkCreateShaderModule registry at www.khronos.org>
+type HS_vkCreateShaderModule =
+     VkDevice -- ^ device
+              ->
+       Ptr VkShaderModuleCreateInfo -- ^ pCreateInfo
+                                    ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkShaderModule -- ^ pShaderModule
+                                                         -> IO VkResult
+
+type PFN_vkCreateShaderModule = FunPtr HS_vkCreateShaderModule
+
+foreign import ccall "dynamic" unwrapVkCreateShaderModule ::
+               PFN_vkCreateShaderModule -> HS_vkCreateShaderModule
+
+instance VulkanProc "vkCreateShaderModule" where
+        type VkProcType "vkCreateShaderModule" = HS_vkCreateShaderModule
+        vkProcSymbol = _VkCreateShaderModule
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateShaderModule
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyShaderModule :: CString
+
+pattern VkDestroyShaderModule <- (is_VkDestroyShaderModule -> True)
+  where VkDestroyShaderModule = _VkDestroyShaderModule
+
+{-# INLINE _VkDestroyShaderModule #-}
+
+_VkDestroyShaderModule :: CString
+_VkDestroyShaderModule = Ptr "vkDestroyShaderModule\NUL"##
+
+{-# INLINE is_VkDestroyShaderModule #-}
+
+is_VkDestroyShaderModule :: CString -> Bool
+is_VkDestroyShaderModule
+  = (EQ ==) . cmpCStrings _VkDestroyShaderModule
+
+type VkDestroyShaderModule = "vkDestroyShaderModule"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyShaderModule
+-- >     ( VkDevice device
+-- >     , VkShaderModule shaderModule
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyShaderModule vkDestroyShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyShaderModule"
+               vkDestroyShaderModule ::
+               VkDevice -- ^ device
+                        -> VkShaderModule -- ^ shaderModule
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkDestroyShaderModule
+-- >     ( VkDevice device
+-- >     , VkShaderModule shaderModule
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyShaderModule vkDestroyShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyShaderModuleSafe@ and @vkDestroyShaderModule@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyShaderModule <- vkGetDeviceProc @VkDestroyShaderModule vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyShaderModule <- vkGetProc @VkDestroyShaderModule
+--
+vkDestroyShaderModule ::
+                      VkDevice -- ^ device
+                               -> VkShaderModule -- ^ shaderModule
+                                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                              -> IO ()
+vkDestroyShaderModule
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyShaderModule)
+
+{-# NOINLINE vkDestroyShaderModule #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyShaderModule
+-- >     ( VkDevice device
+-- >     , VkShaderModule shaderModule
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyShaderModule vkDestroyShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyShaderModule"
+               vkDestroyShaderModuleSafe ::
+               VkDevice -- ^ device
+                        -> VkShaderModule -- ^ shaderModule
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+##else
+-- |
+-- > void vkDestroyShaderModule
+-- >     ( VkDevice device
+-- >     , VkShaderModule shaderModule
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyShaderModule vkDestroyShaderModule registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyShaderModuleSafe@ and @vkDestroyShaderModule@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyShaderModule <- vkGetDeviceProc @VkDestroyShaderModule vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyShaderModule <- vkGetProc @VkDestroyShaderModule
+--
+vkDestroyShaderModuleSafe ::
+                          VkDevice -- ^ device
+                                   -> VkShaderModule -- ^ shaderModule
+                                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                  -> IO ()
+vkDestroyShaderModuleSafe = vkDestroyShaderModule
+
+{-# INLINE vkDestroyShaderModuleSafe #-}
+##endif
+
+-- | > void vkDestroyShaderModule
+--   >     ( VkDevice device
+--   >     , VkShaderModule shaderModule
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyShaderModule vkDestroyShaderModule registry at www.khronos.org>
+type HS_vkDestroyShaderModule =
+     VkDevice -- ^ device
+              -> VkShaderModule -- ^ shaderModule
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkDestroyShaderModule = FunPtr HS_vkDestroyShaderModule
+
+foreign import ccall "dynamic" unwrapVkDestroyShaderModule ::
+               PFN_vkDestroyShaderModule -> HS_vkDestroyShaderModule
+
+instance VulkanProc "vkDestroyShaderModule" where
+        type VkProcType "vkDestroyShaderModule" = HS_vkDestroyShaderModule
+        vkProcSymbol = _VkDestroyShaderModule
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyShaderModule
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreatePipelineCache :: CString
+
+pattern VkCreatePipelineCache <- (is_VkCreatePipelineCache -> True)
+  where VkCreatePipelineCache = _VkCreatePipelineCache
+
+{-# INLINE _VkCreatePipelineCache #-}
+
+_VkCreatePipelineCache :: CString
+_VkCreatePipelineCache = Ptr "vkCreatePipelineCache\NUL"##
+
+{-# INLINE is_VkCreatePipelineCache #-}
+
+is_VkCreatePipelineCache :: CString -> Bool
+is_VkCreatePipelineCache
+  = (EQ ==) . cmpCStrings _VkCreatePipelineCache
+
+type VkCreatePipelineCache = "vkCreatePipelineCache"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineCache
+-- >     ( VkDevice device
+-- >     , const VkPipelineCacheCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineCache* pPipelineCache
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineCache vkCreatePipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreatePipelineCache"
+               vkCreatePipelineCache ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
+                                               ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkPipelineCache -- ^ pPipelineCache
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineCache
+-- >     ( VkDevice device
+-- >     , const VkPipelineCacheCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineCache* pPipelineCache
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineCache vkCreatePipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreatePipelineCacheSafe@ and @vkCreatePipelineCache@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreatePipelineCache <- vkGetDeviceProc @VkCreatePipelineCache vkDevice
+--
+-- or less efficient:
+--
+-- > myCreatePipelineCache <- vkGetProc @VkCreatePipelineCache
+--
+vkCreatePipelineCache ::
+                      VkDevice -- ^ device
+                               ->
+                        Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
+                                                      ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkPipelineCache -- ^ pPipelineCache
+                                                                           -> IO VkResult
+vkCreatePipelineCache
+  = unsafeDupablePerformIO (vkGetProc @VkCreatePipelineCache)
+
+{-# NOINLINE vkCreatePipelineCache #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineCache
+-- >     ( VkDevice device
+-- >     , const VkPipelineCacheCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineCache* pPipelineCache
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineCache vkCreatePipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreatePipelineCache"
+               vkCreatePipelineCacheSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
+                                               ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkPipelineCache -- ^ pPipelineCache
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineCache
+-- >     ( VkDevice device
+-- >     , const VkPipelineCacheCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineCache* pPipelineCache
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineCache vkCreatePipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreatePipelineCacheSafe@ and @vkCreatePipelineCache@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreatePipelineCache <- vkGetDeviceProc @VkCreatePipelineCache vkDevice
+--
+-- or less efficient:
+--
+-- > myCreatePipelineCache <- vkGetProc @VkCreatePipelineCache
+--
+vkCreatePipelineCacheSafe ::
+                          VkDevice -- ^ device
+                                   ->
+                            Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
+                                                          ->
+                              Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> Ptr VkPipelineCache -- ^ pPipelineCache
+                                                                               -> IO VkResult
+vkCreatePipelineCacheSafe = vkCreatePipelineCache
+
+{-# INLINE vkCreatePipelineCacheSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreatePipelineCache
+--   >     ( VkDevice device
+--   >     , const VkPipelineCacheCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkPipelineCache* pPipelineCache
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineCache vkCreatePipelineCache registry at www.khronos.org>
+type HS_vkCreatePipelineCache =
+     VkDevice -- ^ device
+              ->
+       Ptr VkPipelineCacheCreateInfo -- ^ pCreateInfo
+                                     ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkPipelineCache -- ^ pPipelineCache
+                                                          -> IO VkResult
+
+type PFN_vkCreatePipelineCache = FunPtr HS_vkCreatePipelineCache
+
+foreign import ccall "dynamic" unwrapVkCreatePipelineCache ::
+               PFN_vkCreatePipelineCache -> HS_vkCreatePipelineCache
+
+instance VulkanProc "vkCreatePipelineCache" where
+        type VkProcType "vkCreatePipelineCache" = HS_vkCreatePipelineCache
+        vkProcSymbol = _VkCreatePipelineCache
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreatePipelineCache
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyPipelineCache :: CString
+
+pattern VkDestroyPipelineCache <-
+        (is_VkDestroyPipelineCache -> True)
+  where VkDestroyPipelineCache = _VkDestroyPipelineCache
+
+{-# INLINE _VkDestroyPipelineCache #-}
+
+_VkDestroyPipelineCache :: CString
+_VkDestroyPipelineCache = Ptr "vkDestroyPipelineCache\NUL"##
+
+{-# INLINE is_VkDestroyPipelineCache #-}
+
+is_VkDestroyPipelineCache :: CString -> Bool
+is_VkDestroyPipelineCache
+  = (EQ ==) . cmpCStrings _VkDestroyPipelineCache
+
+type VkDestroyPipelineCache = "vkDestroyPipelineCache"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipelineCache
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineCache vkDestroyPipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyPipelineCache"
+               vkDestroyPipelineCache ::
+               VkDevice -- ^ device
+                        -> VkPipelineCache -- ^ pipelineCache
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipelineCache
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineCache vkDestroyPipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineCacheSafe@ and @vkDestroyPipelineCache@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipelineCache <- vkGetDeviceProc @VkDestroyPipelineCache vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipelineCache <- vkGetProc @VkDestroyPipelineCache
+--
+vkDestroyPipelineCache ::
+                       VkDevice -- ^ device
+                                -> VkPipelineCache -- ^ pipelineCache
+                                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                -> IO ()
+vkDestroyPipelineCache
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyPipelineCache)
+
+{-# NOINLINE vkDestroyPipelineCache #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipelineCache
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineCache vkDestroyPipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyPipelineCache"
+               vkDestroyPipelineCacheSafe ::
+               VkDevice -- ^ device
+                        -> VkPipelineCache -- ^ pipelineCache
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipelineCache
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineCache vkDestroyPipelineCache registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineCacheSafe@ and @vkDestroyPipelineCache@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipelineCache <- vkGetDeviceProc @VkDestroyPipelineCache vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipelineCache <- vkGetProc @VkDestroyPipelineCache
+--
+vkDestroyPipelineCacheSafe ::
+                           VkDevice -- ^ device
+                                    -> VkPipelineCache -- ^ pipelineCache
+                                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                    -> IO ()
+vkDestroyPipelineCacheSafe = vkDestroyPipelineCache
+
+{-# INLINE vkDestroyPipelineCacheSafe #-}
+##endif
+
+-- | > void vkDestroyPipelineCache
+--   >     ( VkDevice device
+--   >     , VkPipelineCache pipelineCache
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineCache vkDestroyPipelineCache registry at www.khronos.org>
+type HS_vkDestroyPipelineCache =
+     VkDevice -- ^ device
+              -> VkPipelineCache -- ^ pipelineCache
+                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                              -> IO ()
+
+type PFN_vkDestroyPipelineCache = FunPtr HS_vkDestroyPipelineCache
+
+foreign import ccall "dynamic" unwrapVkDestroyPipelineCache ::
+               PFN_vkDestroyPipelineCache -> HS_vkDestroyPipelineCache
+
+instance VulkanProc "vkDestroyPipelineCache" where
+        type VkProcType "vkDestroyPipelineCache" =
+             HS_vkDestroyPipelineCache
+        vkProcSymbol = _VkDestroyPipelineCache
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyPipelineCache
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPipelineCacheData :: CString
+
+pattern VkGetPipelineCacheData <-
+        (is_VkGetPipelineCacheData -> True)
+  where VkGetPipelineCacheData = _VkGetPipelineCacheData
+
+{-# INLINE _VkGetPipelineCacheData #-}
+
+_VkGetPipelineCacheData :: CString
+_VkGetPipelineCacheData = Ptr "vkGetPipelineCacheData\NUL"##
+
+{-# INLINE is_VkGetPipelineCacheData #-}
+
+is_VkGetPipelineCacheData :: CString -> Bool
+is_VkGetPipelineCacheData
+  = (EQ ==) . cmpCStrings _VkGetPipelineCacheData
+
+type VkGetPipelineCacheData = "vkGetPipelineCacheData"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPipelineCacheData
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , size_t* pDataSize
+-- >     , void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPipelineCacheData vkGetPipelineCacheData registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPipelineCacheData"
+               vkGetPipelineCacheData ::
+               VkDevice -- ^ device
+                        -> VkPipelineCache -- ^ pipelineCache
+                                           -> Ptr CSize -- ^ pDataSize
+                                                        -> Ptr Void -- ^ pData
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPipelineCacheData
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , size_t* pDataSize
+-- >     , void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPipelineCacheData vkGetPipelineCacheData registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPipelineCacheDataSafe@ and @vkGetPipelineCacheData@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPipelineCacheData <- vkGetDeviceProc @VkGetPipelineCacheData vkDevice
+--
+-- or less efficient:
+--
+-- > myGetPipelineCacheData <- vkGetProc @VkGetPipelineCacheData
+--
+vkGetPipelineCacheData ::
+                       VkDevice -- ^ device
+                                -> VkPipelineCache -- ^ pipelineCache
+                                                   -> Ptr CSize -- ^ pDataSize
+                                                                -> Ptr Void -- ^ pData
+                                                                            -> IO VkResult
+vkGetPipelineCacheData
+  = unsafeDupablePerformIO (vkGetProc @VkGetPipelineCacheData)
+
+{-# NOINLINE vkGetPipelineCacheData #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPipelineCacheData
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , size_t* pDataSize
+-- >     , void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPipelineCacheData vkGetPipelineCacheData registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPipelineCacheData"
+               vkGetPipelineCacheDataSafe ::
+               VkDevice -- ^ device
+                        -> VkPipelineCache -- ^ pipelineCache
+                                           -> Ptr CSize -- ^ pDataSize
+                                                        -> Ptr Void -- ^ pData
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPipelineCacheData
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , size_t* pDataSize
+-- >     , void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPipelineCacheData vkGetPipelineCacheData registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPipelineCacheDataSafe@ and @vkGetPipelineCacheData@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPipelineCacheData <- vkGetDeviceProc @VkGetPipelineCacheData vkDevice
+--
+-- or less efficient:
+--
+-- > myGetPipelineCacheData <- vkGetProc @VkGetPipelineCacheData
+--
+vkGetPipelineCacheDataSafe ::
+                           VkDevice -- ^ device
+                                    -> VkPipelineCache -- ^ pipelineCache
+                                                       -> Ptr CSize -- ^ pDataSize
+                                                                    -> Ptr Void -- ^ pData
+                                                                                -> IO VkResult
+vkGetPipelineCacheDataSafe = vkGetPipelineCacheData
+
+{-# INLINE vkGetPipelineCacheDataSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetPipelineCacheData
+--   >     ( VkDevice device
+--   >     , VkPipelineCache pipelineCache
+--   >     , size_t* pDataSize
+--   >     , void* pData
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPipelineCacheData vkGetPipelineCacheData registry at www.khronos.org>
+type HS_vkGetPipelineCacheData =
+     VkDevice -- ^ device
+              -> VkPipelineCache -- ^ pipelineCache
+                                 -> Ptr CSize -- ^ pDataSize
+                                              -> Ptr Void -- ^ pData
+                                                          -> IO VkResult
+
+type PFN_vkGetPipelineCacheData = FunPtr HS_vkGetPipelineCacheData
+
+foreign import ccall "dynamic" unwrapVkGetPipelineCacheData ::
+               PFN_vkGetPipelineCacheData -> HS_vkGetPipelineCacheData
+
+instance VulkanProc "vkGetPipelineCacheData" where
+        type VkProcType "vkGetPipelineCacheData" =
+             HS_vkGetPipelineCacheData
+        vkProcSymbol = _VkGetPipelineCacheData
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPipelineCacheData
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkMergePipelineCaches :: CString
+
+pattern VkMergePipelineCaches <- (is_VkMergePipelineCaches -> True)
+  where VkMergePipelineCaches = _VkMergePipelineCaches
+
+{-# INLINE _VkMergePipelineCaches #-}
+
+_VkMergePipelineCaches :: CString
+_VkMergePipelineCaches = Ptr "vkMergePipelineCaches\NUL"##
+
+{-# INLINE is_VkMergePipelineCaches #-}
+
+is_VkMergePipelineCaches :: CString -> Bool
+is_VkMergePipelineCaches
+  = (EQ ==) . cmpCStrings _VkMergePipelineCaches
+
+type VkMergePipelineCaches = "vkMergePipelineCaches"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkMergePipelineCaches
+-- >     ( VkDevice device
+-- >     , VkPipelineCache dstCache
+-- >     , uint32_t srcCacheCount
+-- >     , const VkPipelineCache* pSrcCaches
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergePipelineCaches vkMergePipelineCaches registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkMergePipelineCaches"
+               vkMergePipelineCaches ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ dstCache
+                                 -> Word32 -- ^ srcCacheCount
+                                           -> Ptr VkPipelineCache -- ^ pSrcCaches
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkMergePipelineCaches
+-- >     ( VkDevice device
+-- >     , VkPipelineCache dstCache
+-- >     , uint32_t srcCacheCount
+-- >     , const VkPipelineCache* pSrcCaches
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergePipelineCaches vkMergePipelineCaches registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkMergePipelineCachesSafe@ and @vkMergePipelineCaches@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myMergePipelineCaches <- vkGetDeviceProc @VkMergePipelineCaches vkDevice
+--
+-- or less efficient:
+--
+-- > myMergePipelineCaches <- vkGetProc @VkMergePipelineCaches
+--
+vkMergePipelineCaches ::
+                      VkDevice -- ^ device
+                               ->
+                        VkPipelineCache -- ^ dstCache
+                                        -> Word32 -- ^ srcCacheCount
+                                                  -> Ptr VkPipelineCache -- ^ pSrcCaches
+                                                                         -> IO VkResult
+vkMergePipelineCaches
+  = unsafeDupablePerformIO (vkGetProc @VkMergePipelineCaches)
+
+{-# NOINLINE vkMergePipelineCaches #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkMergePipelineCaches
+-- >     ( VkDevice device
+-- >     , VkPipelineCache dstCache
+-- >     , uint32_t srcCacheCount
+-- >     , const VkPipelineCache* pSrcCaches
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergePipelineCaches vkMergePipelineCaches registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkMergePipelineCaches"
+               vkMergePipelineCachesSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ dstCache
+                                 -> Word32 -- ^ srcCacheCount
+                                           -> Ptr VkPipelineCache -- ^ pSrcCaches
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkMergePipelineCaches
+-- >     ( VkDevice device
+-- >     , VkPipelineCache dstCache
+-- >     , uint32_t srcCacheCount
+-- >     , const VkPipelineCache* pSrcCaches
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergePipelineCaches vkMergePipelineCaches registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkMergePipelineCachesSafe@ and @vkMergePipelineCaches@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myMergePipelineCaches <- vkGetDeviceProc @VkMergePipelineCaches vkDevice
+--
+-- or less efficient:
+--
+-- > myMergePipelineCaches <- vkGetProc @VkMergePipelineCaches
+--
+vkMergePipelineCachesSafe ::
+                          VkDevice -- ^ device
+                                   ->
+                            VkPipelineCache -- ^ dstCache
+                                            -> Word32 -- ^ srcCacheCount
+                                                      -> Ptr VkPipelineCache -- ^ pSrcCaches
+                                                                             -> IO VkResult
+vkMergePipelineCachesSafe = vkMergePipelineCaches
+
+{-# INLINE vkMergePipelineCachesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkMergePipelineCaches
+--   >     ( VkDevice device
+--   >     , VkPipelineCache dstCache
+--   >     , uint32_t srcCacheCount
+--   >     , const VkPipelineCache* pSrcCaches
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergePipelineCaches vkMergePipelineCaches registry at www.khronos.org>
+type HS_vkMergePipelineCaches =
+     VkDevice -- ^ device
+              ->
+       VkPipelineCache -- ^ dstCache
+                       -> Word32 -- ^ srcCacheCount
+                                 -> Ptr VkPipelineCache -- ^ pSrcCaches
+                                                        -> IO VkResult
+
+type PFN_vkMergePipelineCaches = FunPtr HS_vkMergePipelineCaches
+
+foreign import ccall "dynamic" unwrapVkMergePipelineCaches ::
+               PFN_vkMergePipelineCaches -> HS_vkMergePipelineCaches
+
+instance VulkanProc "vkMergePipelineCaches" where
+        type VkProcType "vkMergePipelineCaches" = HS_vkMergePipelineCaches
+        vkProcSymbol = _VkMergePipelineCaches
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkMergePipelineCaches
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateGraphicsPipelines :: CString
+
+pattern VkCreateGraphicsPipelines <-
+        (is_VkCreateGraphicsPipelines -> True)
+  where VkCreateGraphicsPipelines = _VkCreateGraphicsPipelines
+
+{-# INLINE _VkCreateGraphicsPipelines #-}
+
+_VkCreateGraphicsPipelines :: CString
+_VkCreateGraphicsPipelines = Ptr "vkCreateGraphicsPipelines\NUL"##
+
+{-# INLINE is_VkCreateGraphicsPipelines #-}
+
+is_VkCreateGraphicsPipelines :: CString -> Bool
+is_VkCreateGraphicsPipelines
+  = (EQ ==) . cmpCStrings _VkCreateGraphicsPipelines
+
+type VkCreateGraphicsPipelines = "vkCreateGraphicsPipelines"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateGraphicsPipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateGraphicsPipelines vkCreateGraphicsPipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateGraphicsPipelines"
+               vkCreateGraphicsPipelines ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ pipelineCache
+                                 ->
+                   Word32 -- ^ createInfoCount
+                          ->
+                     Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
+                                                      ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkPipeline -- ^ pPipelines
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateGraphicsPipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateGraphicsPipelines vkCreateGraphicsPipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateGraphicsPipelinesSafe@ and @vkCreateGraphicsPipelines@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateGraphicsPipelines <- vkGetDeviceProc @VkCreateGraphicsPipelines vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateGraphicsPipelines <- vkGetProc @VkCreateGraphicsPipelines
+--
+vkCreateGraphicsPipelines ::
+                          VkDevice -- ^ device
+                                   ->
+                            VkPipelineCache -- ^ pipelineCache
+                                            ->
+                              Word32 -- ^ createInfoCount
+                                     ->
+                                Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
+                                                                 ->
+                                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> Ptr VkPipeline -- ^ pPipelines
+                                                                              -> IO VkResult
+vkCreateGraphicsPipelines
+  = unsafeDupablePerformIO (vkGetProc @VkCreateGraphicsPipelines)
+
+{-# NOINLINE vkCreateGraphicsPipelines #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateGraphicsPipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateGraphicsPipelines vkCreateGraphicsPipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateGraphicsPipelines"
+               vkCreateGraphicsPipelinesSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ pipelineCache
+                                 ->
+                   Word32 -- ^ createInfoCount
+                          ->
+                     Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
+                                                      ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkPipeline -- ^ pPipelines
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateGraphicsPipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateGraphicsPipelines vkCreateGraphicsPipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateGraphicsPipelinesSafe@ and @vkCreateGraphicsPipelines@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateGraphicsPipelines <- vkGetDeviceProc @VkCreateGraphicsPipelines vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateGraphicsPipelines <- vkGetProc @VkCreateGraphicsPipelines
+--
+vkCreateGraphicsPipelinesSafe ::
+                              VkDevice -- ^ device
+                                       ->
+                                VkPipelineCache -- ^ pipelineCache
+                                                ->
+                                  Word32 -- ^ createInfoCount
+                                         ->
+                                    Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
+                                                                     ->
+                                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> Ptr VkPipeline -- ^ pPipelines
+                                                                                  -> IO VkResult
+vkCreateGraphicsPipelinesSafe = vkCreateGraphicsPipelines
+
+{-# INLINE vkCreateGraphicsPipelinesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+--   > VkResult vkCreateGraphicsPipelines
+--   >     ( VkDevice device
+--   >     , VkPipelineCache pipelineCache
+--   >     , uint32_t createInfoCount
+--   >     , const VkGraphicsPipelineCreateInfo* pCreateInfos
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkPipeline* pPipelines
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateGraphicsPipelines vkCreateGraphicsPipelines registry at www.khronos.org>
+type HS_vkCreateGraphicsPipelines =
+     VkDevice -- ^ device
+              ->
+       VkPipelineCache -- ^ pipelineCache
+                       ->
+         Word32 -- ^ createInfoCount
+                ->
+           Ptr VkGraphicsPipelineCreateInfo -- ^ pCreateInfos
+                                            ->
+             Ptr VkAllocationCallbacks -- ^ pAllocator
+                                       -> Ptr VkPipeline -- ^ pPipelines
+                                                         -> IO VkResult
+
+type PFN_vkCreateGraphicsPipelines =
+     FunPtr HS_vkCreateGraphicsPipelines
+
+foreign import ccall "dynamic" unwrapVkCreateGraphicsPipelines ::
+               PFN_vkCreateGraphicsPipelines -> HS_vkCreateGraphicsPipelines
+
+instance VulkanProc "vkCreateGraphicsPipelines" where
+        type VkProcType "vkCreateGraphicsPipelines" =
+             HS_vkCreateGraphicsPipelines
+        vkProcSymbol = _VkCreateGraphicsPipelines
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateGraphicsPipelines
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateComputePipelines :: CString
+
+pattern VkCreateComputePipelines <-
+        (is_VkCreateComputePipelines -> True)
+  where VkCreateComputePipelines = _VkCreateComputePipelines
+
+{-# INLINE _VkCreateComputePipelines #-}
+
+_VkCreateComputePipelines :: CString
+_VkCreateComputePipelines = Ptr "vkCreateComputePipelines\NUL"##
+
+{-# INLINE is_VkCreateComputePipelines #-}
+
+is_VkCreateComputePipelines :: CString -> Bool
+is_VkCreateComputePipelines
+  = (EQ ==) . cmpCStrings _VkCreateComputePipelines
+
+type VkCreateComputePipelines = "vkCreateComputePipelines"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateComputePipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkComputePipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateComputePipelines vkCreateComputePipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateComputePipelines"
+               vkCreateComputePipelines ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ pipelineCache
+                                 ->
+                   Word32 -- ^ createInfoCount
+                          ->
+                     Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
+                                                     ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkPipeline -- ^ pPipelines
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateComputePipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkComputePipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateComputePipelines vkCreateComputePipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateComputePipelinesSafe@ and @vkCreateComputePipelines@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateComputePipelines <- vkGetDeviceProc @VkCreateComputePipelines vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateComputePipelines <- vkGetProc @VkCreateComputePipelines
+--
+vkCreateComputePipelines ::
+                         VkDevice -- ^ device
+                                  ->
+                           VkPipelineCache -- ^ pipelineCache
+                                           ->
+                             Word32 -- ^ createInfoCount
+                                    ->
+                               Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
+                                                               ->
+                                 Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                           -> Ptr VkPipeline -- ^ pPipelines
+                                                                             -> IO VkResult
+vkCreateComputePipelines
+  = unsafeDupablePerformIO (vkGetProc @VkCreateComputePipelines)
+
+{-# NOINLINE vkCreateComputePipelines #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateComputePipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkComputePipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateComputePipelines vkCreateComputePipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateComputePipelines"
+               vkCreateComputePipelinesSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkPipelineCache -- ^ pipelineCache
+                                 ->
+                   Word32 -- ^ createInfoCount
+                          ->
+                     Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
+                                                     ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkPipeline -- ^ pPipelines
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+-- > VkResult vkCreateComputePipelines
+-- >     ( VkDevice device
+-- >     , VkPipelineCache pipelineCache
+-- >     , uint32_t createInfoCount
+-- >     , const VkComputePipelineCreateInfo* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipeline* pPipelines
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateComputePipelines vkCreateComputePipelines registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateComputePipelinesSafe@ and @vkCreateComputePipelines@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateComputePipelines <- vkGetDeviceProc @VkCreateComputePipelines vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateComputePipelines <- vkGetProc @VkCreateComputePipelines
+--
+vkCreateComputePipelinesSafe ::
+                             VkDevice -- ^ device
+                                      ->
+                               VkPipelineCache -- ^ pipelineCache
+                                               ->
+                                 Word32 -- ^ createInfoCount
+                                        ->
+                                   Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
+                                                                   ->
+                                     Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> Ptr VkPipeline -- ^ pPipelines
+                                                                                 -> IO VkResult
+vkCreateComputePipelinesSafe = vkCreateComputePipelines
+
+{-# INLINE vkCreateComputePipelinesSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INVALID_SHADER_NV'.
+--
+--   > VkResult vkCreateComputePipelines
+--   >     ( VkDevice device
+--   >     , VkPipelineCache pipelineCache
+--   >     , uint32_t createInfoCount
+--   >     , const VkComputePipelineCreateInfo* pCreateInfos
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkPipeline* pPipelines
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateComputePipelines vkCreateComputePipelines registry at www.khronos.org>
+type HS_vkCreateComputePipelines =
+     VkDevice -- ^ device
+              ->
+       VkPipelineCache -- ^ pipelineCache
+                       ->
+         Word32 -- ^ createInfoCount
+                ->
+           Ptr VkComputePipelineCreateInfo -- ^ pCreateInfos
+                                           ->
+             Ptr VkAllocationCallbacks -- ^ pAllocator
+                                       -> Ptr VkPipeline -- ^ pPipelines
+                                                         -> IO VkResult
+
+type PFN_vkCreateComputePipelines =
+     FunPtr HS_vkCreateComputePipelines
+
+foreign import ccall "dynamic" unwrapVkCreateComputePipelines ::
+               PFN_vkCreateComputePipelines -> HS_vkCreateComputePipelines
+
+instance VulkanProc "vkCreateComputePipelines" where
+        type VkProcType "vkCreateComputePipelines" =
+             HS_vkCreateComputePipelines
+        vkProcSymbol = _VkCreateComputePipelines
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateComputePipelines
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyPipeline :: CString
+
+pattern VkDestroyPipeline <- (is_VkDestroyPipeline -> True)
+  where VkDestroyPipeline = _VkDestroyPipeline
+
+{-# INLINE _VkDestroyPipeline #-}
+
+_VkDestroyPipeline :: CString
+_VkDestroyPipeline = Ptr "vkDestroyPipeline\NUL"##
+
+{-# INLINE is_VkDestroyPipeline #-}
+
+is_VkDestroyPipeline :: CString -> Bool
+is_VkDestroyPipeline = (EQ ==) . cmpCStrings _VkDestroyPipeline
+
+type VkDestroyPipeline = "vkDestroyPipeline"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipeline
+-- >     ( VkDevice device
+-- >     , VkPipeline pipeline
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipeline vkDestroyPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyPipeline" vkDestroyPipeline
+               :: VkDevice -- ^ device
+                           -> VkPipeline -- ^ pipeline
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipeline
+-- >     ( VkDevice device
+-- >     , VkPipeline pipeline
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipeline vkDestroyPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineSafe@ and @vkDestroyPipeline@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipeline <- vkGetDeviceProc @VkDestroyPipeline vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipeline <- vkGetProc @VkDestroyPipeline
+--
+vkDestroyPipeline ::
+                  VkDevice -- ^ device
+                           -> VkPipeline -- ^ pipeline
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+vkDestroyPipeline
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyPipeline)
+
+{-# NOINLINE vkDestroyPipeline #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipeline
+-- >     ( VkDevice device
+-- >     , VkPipeline pipeline
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipeline vkDestroyPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyPipeline" vkDestroyPipelineSafe
+               :: VkDevice -- ^ device
+                           -> VkPipeline -- ^ pipeline
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipeline
+-- >     ( VkDevice device
+-- >     , VkPipeline pipeline
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipeline vkDestroyPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineSafe@ and @vkDestroyPipeline@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipeline <- vkGetDeviceProc @VkDestroyPipeline vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipeline <- vkGetProc @VkDestroyPipeline
+--
+vkDestroyPipelineSafe ::
+                      VkDevice -- ^ device
+                               -> VkPipeline -- ^ pipeline
+                                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                          -> IO ()
+vkDestroyPipelineSafe = vkDestroyPipeline
+
+{-# INLINE vkDestroyPipelineSafe #-}
+##endif
+
+-- | > void vkDestroyPipeline
+--   >     ( VkDevice device
+--   >     , VkPipeline pipeline
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipeline vkDestroyPipeline registry at www.khronos.org>
+type HS_vkDestroyPipeline =
+     VkDevice -- ^ device
+              -> VkPipeline -- ^ pipeline
+                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> IO ()
+
+type PFN_vkDestroyPipeline = FunPtr HS_vkDestroyPipeline
+
+foreign import ccall "dynamic" unwrapVkDestroyPipeline ::
+               PFN_vkDestroyPipeline -> HS_vkDestroyPipeline
+
+instance VulkanProc "vkDestroyPipeline" where
+        type VkProcType "vkDestroyPipeline" = HS_vkDestroyPipeline
+        vkProcSymbol = _VkDestroyPipeline
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyPipeline
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreatePipelineLayout :: CString
+
+pattern VkCreatePipelineLayout <-
+        (is_VkCreatePipelineLayout -> True)
+  where VkCreatePipelineLayout = _VkCreatePipelineLayout
+
+{-# INLINE _VkCreatePipelineLayout #-}
+
+_VkCreatePipelineLayout :: CString
+_VkCreatePipelineLayout = Ptr "vkCreatePipelineLayout\NUL"##
+
+{-# INLINE is_VkCreatePipelineLayout #-}
+
+is_VkCreatePipelineLayout :: CString -> Bool
+is_VkCreatePipelineLayout
+  = (EQ ==) . cmpCStrings _VkCreatePipelineLayout
+
+type VkCreatePipelineLayout = "vkCreatePipelineLayout"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineLayout
+-- >     ( VkDevice device
+-- >     , const VkPipelineLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineLayout* pPipelineLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineLayout vkCreatePipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreatePipelineLayout"
+               vkCreatePipelineLayout ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
+                                                ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkPipelineLayout -- ^ pPipelineLayout
+                                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineLayout
+-- >     ( VkDevice device
+-- >     , const VkPipelineLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineLayout* pPipelineLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineLayout vkCreatePipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreatePipelineLayoutSafe@ and @vkCreatePipelineLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreatePipelineLayout <- vkGetDeviceProc @VkCreatePipelineLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myCreatePipelineLayout <- vkGetProc @VkCreatePipelineLayout
+--
+vkCreatePipelineLayout ::
+                       VkDevice -- ^ device
+                                ->
+                         Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
+                                                        ->
+                           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> Ptr VkPipelineLayout -- ^ pPipelineLayout
+                                                                             -> IO VkResult
+vkCreatePipelineLayout
+  = unsafeDupablePerformIO (vkGetProc @VkCreatePipelineLayout)
+
+{-# NOINLINE vkCreatePipelineLayout #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineLayout
+-- >     ( VkDevice device
+-- >     , const VkPipelineLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineLayout* pPipelineLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineLayout vkCreatePipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreatePipelineLayout"
+               vkCreatePipelineLayoutSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
+                                                ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkPipelineLayout -- ^ pPipelineLayout
+                                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreatePipelineLayout
+-- >     ( VkDevice device
+-- >     , const VkPipelineLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkPipelineLayout* pPipelineLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineLayout vkCreatePipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreatePipelineLayoutSafe@ and @vkCreatePipelineLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreatePipelineLayout <- vkGetDeviceProc @VkCreatePipelineLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myCreatePipelineLayout <- vkGetProc @VkCreatePipelineLayout
+--
+vkCreatePipelineLayoutSafe ::
+                           VkDevice -- ^ device
+                                    ->
+                             Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
+                                                            ->
+                               Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> Ptr VkPipelineLayout -- ^ pPipelineLayout
+                                                                                 -> IO VkResult
+vkCreatePipelineLayoutSafe = vkCreatePipelineLayout
+
+{-# INLINE vkCreatePipelineLayoutSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreatePipelineLayout
+--   >     ( VkDevice device
+--   >     , const VkPipelineLayoutCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkPipelineLayout* pPipelineLayout
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreatePipelineLayout vkCreatePipelineLayout registry at www.khronos.org>
+type HS_vkCreatePipelineLayout =
+     VkDevice -- ^ device
+              ->
+       Ptr VkPipelineLayoutCreateInfo -- ^ pCreateInfo
+                                      ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkPipelineLayout -- ^ pPipelineLayout
+                                                           -> IO VkResult
+
+type PFN_vkCreatePipelineLayout = FunPtr HS_vkCreatePipelineLayout
+
+foreign import ccall "dynamic" unwrapVkCreatePipelineLayout ::
+               PFN_vkCreatePipelineLayout -> HS_vkCreatePipelineLayout
+
+instance VulkanProc "vkCreatePipelineLayout" where
+        type VkProcType "vkCreatePipelineLayout" =
+             HS_vkCreatePipelineLayout
+        vkProcSymbol = _VkCreatePipelineLayout
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreatePipelineLayout
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyPipelineLayout :: CString
+
+pattern VkDestroyPipelineLayout <-
+        (is_VkDestroyPipelineLayout -> True)
+  where VkDestroyPipelineLayout = _VkDestroyPipelineLayout
+
+{-# INLINE _VkDestroyPipelineLayout #-}
+
+_VkDestroyPipelineLayout :: CString
+_VkDestroyPipelineLayout = Ptr "vkDestroyPipelineLayout\NUL"##
+
+{-# INLINE is_VkDestroyPipelineLayout #-}
+
+is_VkDestroyPipelineLayout :: CString -> Bool
+is_VkDestroyPipelineLayout
+  = (EQ ==) . cmpCStrings _VkDestroyPipelineLayout
+
+type VkDestroyPipelineLayout = "vkDestroyPipelineLayout"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipelineLayout
+-- >     ( VkDevice device
+-- >     , VkPipelineLayout pipelineLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineLayout vkDestroyPipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyPipelineLayout"
+               vkDestroyPipelineLayout ::
+               VkDevice -- ^ device
+                        -> VkPipelineLayout -- ^ pipelineLayout
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipelineLayout
+-- >     ( VkDevice device
+-- >     , VkPipelineLayout pipelineLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineLayout vkDestroyPipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineLayoutSafe@ and @vkDestroyPipelineLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipelineLayout <- vkGetDeviceProc @VkDestroyPipelineLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipelineLayout <- vkGetProc @VkDestroyPipelineLayout
+--
+vkDestroyPipelineLayout ::
+                        VkDevice -- ^ device
+                                 -> VkPipelineLayout -- ^ pipelineLayout
+                                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                  -> IO ()
+vkDestroyPipelineLayout
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyPipelineLayout)
+
+{-# NOINLINE vkDestroyPipelineLayout #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyPipelineLayout
+-- >     ( VkDevice device
+-- >     , VkPipelineLayout pipelineLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineLayout vkDestroyPipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyPipelineLayout"
+               vkDestroyPipelineLayoutSafe ::
+               VkDevice -- ^ device
+                        -> VkPipelineLayout -- ^ pipelineLayout
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+##else
+-- |
+-- > void vkDestroyPipelineLayout
+-- >     ( VkDevice device
+-- >     , VkPipelineLayout pipelineLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineLayout vkDestroyPipelineLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyPipelineLayoutSafe@ and @vkDestroyPipelineLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyPipelineLayout <- vkGetDeviceProc @VkDestroyPipelineLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyPipelineLayout <- vkGetProc @VkDestroyPipelineLayout
+--
+vkDestroyPipelineLayoutSafe ::
+                            VkDevice -- ^ device
+                                     -> VkPipelineLayout -- ^ pipelineLayout
+                                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                      -> IO ()
+vkDestroyPipelineLayoutSafe = vkDestroyPipelineLayout
+
+{-# INLINE vkDestroyPipelineLayoutSafe #-}
+##endif
+
+-- | > void vkDestroyPipelineLayout
+--   >     ( VkDevice device
+--   >     , VkPipelineLayout pipelineLayout
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyPipelineLayout vkDestroyPipelineLayout registry at www.khronos.org>
+type HS_vkDestroyPipelineLayout =
+     VkDevice -- ^ device
+              -> VkPipelineLayout -- ^ pipelineLayout
+                                  -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> IO ()
+
+type PFN_vkDestroyPipelineLayout =
+     FunPtr HS_vkDestroyPipelineLayout
+
+foreign import ccall "dynamic" unwrapVkDestroyPipelineLayout ::
+               PFN_vkDestroyPipelineLayout -> HS_vkDestroyPipelineLayout
+
+instance VulkanProc "vkDestroyPipelineLayout" where
+        type VkProcType "vkDestroyPipelineLayout" =
+             HS_vkDestroyPipelineLayout
+        vkProcSymbol = _VkDestroyPipelineLayout
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyPipelineLayout
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateSampler :: CString
+
+pattern VkCreateSampler <- (is_VkCreateSampler -> True)
+  where VkCreateSampler = _VkCreateSampler
+
+{-# INLINE _VkCreateSampler #-}
+
+_VkCreateSampler :: CString
+_VkCreateSampler = Ptr "vkCreateSampler\NUL"##
+
+{-# INLINE is_VkCreateSampler #-}
+
+is_VkCreateSampler :: CString -> Bool
+is_VkCreateSampler = (EQ ==) . cmpCStrings _VkCreateSampler
+
+type VkCreateSampler = "vkCreateSampler"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
+--
+-- > VkResult vkCreateSampler
+-- >     ( VkDevice device
+-- >     , const VkSamplerCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSampler* pSampler
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSampler vkCreateSampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateSampler" vkCreateSampler ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSamplerCreateInfo -- ^ pCreateInfo
+                                         ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSampler -- ^ pSampler
+                                                              -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
+--
+-- > VkResult vkCreateSampler
+-- >     ( VkDevice device
+-- >     , const VkSamplerCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSampler* pSampler
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSampler vkCreateSampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSamplerSafe@ and @vkCreateSampler@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSampler <- vkGetDeviceProc @VkCreateSampler vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSampler <- vkGetProc @VkCreateSampler
+--
+vkCreateSampler ::
+                VkDevice -- ^ device
+                         ->
+                  Ptr VkSamplerCreateInfo -- ^ pCreateInfo
+                                          ->
+                    Ptr VkAllocationCallbacks -- ^ pAllocator
+                                              -> Ptr VkSampler -- ^ pSampler
+                                                               -> IO VkResult
+vkCreateSampler
+  = unsafeDupablePerformIO (vkGetProc @VkCreateSampler)
+
+{-# NOINLINE vkCreateSampler #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
+--
+-- > VkResult vkCreateSampler
+-- >     ( VkDevice device
+-- >     , const VkSamplerCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSampler* pSampler
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSampler vkCreateSampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateSampler" vkCreateSamplerSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSamplerCreateInfo -- ^ pCreateInfo
+                                         ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSampler -- ^ pSampler
+                                                              -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
+--
+-- > VkResult vkCreateSampler
+-- >     ( VkDevice device
+-- >     , const VkSamplerCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSampler* pSampler
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSampler vkCreateSampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSamplerSafe@ and @vkCreateSampler@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSampler <- vkGetDeviceProc @VkCreateSampler vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSampler <- vkGetProc @VkCreateSampler
+--
+vkCreateSamplerSafe ::
+                    VkDevice -- ^ device
+                             ->
+                      Ptr VkSamplerCreateInfo -- ^ pCreateInfo
+                                              ->
+                        Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                  -> Ptr VkSampler -- ^ pSampler
+                                                                   -> IO VkResult
+vkCreateSamplerSafe = vkCreateSampler
+
+{-# INLINE vkCreateSamplerSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_TOO_MANY_OBJECTS'.
+--
+--   > VkResult vkCreateSampler
+--   >     ( VkDevice device
+--   >     , const VkSamplerCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSampler* pSampler
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSampler vkCreateSampler registry at www.khronos.org>
+type HS_vkCreateSampler =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSamplerCreateInfo -- ^ pCreateInfo
+                               ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSampler -- ^ pSampler
+                                                    -> IO VkResult
+
+type PFN_vkCreateSampler = FunPtr HS_vkCreateSampler
+
+foreign import ccall "dynamic" unwrapVkCreateSampler ::
+               PFN_vkCreateSampler -> HS_vkCreateSampler
+
+instance VulkanProc "vkCreateSampler" where
+        type VkProcType "vkCreateSampler" = HS_vkCreateSampler
+        vkProcSymbol = _VkCreateSampler
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSampler
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroySampler :: CString
+
+pattern VkDestroySampler <- (is_VkDestroySampler -> True)
+  where VkDestroySampler = _VkDestroySampler
+
+{-# INLINE _VkDestroySampler #-}
+
+_VkDestroySampler :: CString
+_VkDestroySampler = Ptr "vkDestroySampler\NUL"##
+
+{-# INLINE is_VkDestroySampler #-}
+
+is_VkDestroySampler :: CString -> Bool
+is_VkDestroySampler = (EQ ==) . cmpCStrings _VkDestroySampler
+
+type VkDestroySampler = "vkDestroySampler"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySampler
+-- >     ( VkDevice device
+-- >     , VkSampler sampler
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySampler vkDestroySampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroySampler" vkDestroySampler ::
+               VkDevice -- ^ device
+                        -> VkSampler -- ^ sampler
+                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                  -> IO ()
+
+##else
+-- |
+-- > void vkDestroySampler
+-- >     ( VkDevice device
+-- >     , VkSampler sampler
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySampler vkDestroySampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySamplerSafe@ and @vkDestroySampler@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySampler <- vkGetDeviceProc @VkDestroySampler vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySampler <- vkGetProc @VkDestroySampler
+--
+vkDestroySampler ::
+                 VkDevice -- ^ device
+                          -> VkSampler -- ^ sampler
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+vkDestroySampler
+  = unsafeDupablePerformIO (vkGetProc @VkDestroySampler)
+
+{-# NOINLINE vkDestroySampler #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySampler
+-- >     ( VkDevice device
+-- >     , VkSampler sampler
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySampler vkDestroySampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroySampler" vkDestroySamplerSafe
+               :: VkDevice -- ^ device
+                           -> VkSampler -- ^ sampler
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroySampler
+-- >     ( VkDevice device
+-- >     , VkSampler sampler
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySampler vkDestroySampler registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySamplerSafe@ and @vkDestroySampler@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySampler <- vkGetDeviceProc @VkDestroySampler vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySampler <- vkGetProc @VkDestroySampler
+--
+vkDestroySamplerSafe ::
+                     VkDevice -- ^ device
+                              -> VkSampler -- ^ sampler
+                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                        -> IO ()
+vkDestroySamplerSafe = vkDestroySampler
+
+{-# INLINE vkDestroySamplerSafe #-}
+##endif
+
+-- | > void vkDestroySampler
+--   >     ( VkDevice device
+--   >     , VkSampler sampler
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySampler vkDestroySampler registry at www.khronos.org>
+type HS_vkDestroySampler =
+     VkDevice -- ^ device
+              -> VkSampler -- ^ sampler
+                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> IO ()
+
+type PFN_vkDestroySampler = FunPtr HS_vkDestroySampler
+
+foreign import ccall "dynamic" unwrapVkDestroySampler ::
+               PFN_vkDestroySampler -> HS_vkDestroySampler
+
+instance VulkanProc "vkDestroySampler" where
+        type VkProcType "vkDestroySampler" = HS_vkDestroySampler
+        vkProcSymbol = _VkDestroySampler
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySampler
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDescriptorSetLayout :: CString
+
+pattern VkCreateDescriptorSetLayout <-
+        (is_VkCreateDescriptorSetLayout -> True)
+  where VkCreateDescriptorSetLayout = _VkCreateDescriptorSetLayout
+
+{-# INLINE _VkCreateDescriptorSetLayout #-}
+
+_VkCreateDescriptorSetLayout :: CString
+_VkCreateDescriptorSetLayout
+  = Ptr "vkCreateDescriptorSetLayout\NUL"##
+
+{-# INLINE is_VkCreateDescriptorSetLayout #-}
+
+is_VkCreateDescriptorSetLayout :: CString -> Bool
+is_VkCreateDescriptorSetLayout
+  = (EQ ==) . cmpCStrings _VkCreateDescriptorSetLayout
+
+type VkCreateDescriptorSetLayout = "vkCreateDescriptorSetLayout"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorSetLayout* pSetLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDescriptorSetLayout"
+               vkCreateDescriptorSetLayout ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                     ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkDescriptorSetLayout -- ^ pSetLayout
+                                               -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorSetLayout* pSetLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorSetLayoutSafe@ and @vkCreateDescriptorSetLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorSetLayout <- vkGetDeviceProc @VkCreateDescriptorSetLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorSetLayout <- vkGetProc @VkCreateDescriptorSetLayout
+--
+vkCreateDescriptorSetLayout ::
+                            VkDevice -- ^ device
+                                     ->
+                              Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                                  ->
+                                Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          ->
+                                  Ptr VkDescriptorSetLayout -- ^ pSetLayout
+                                                            -> IO VkResult
+vkCreateDescriptorSetLayout
+  = unsafeDupablePerformIO (vkGetProc @VkCreateDescriptorSetLayout)
+
+{-# NOINLINE vkCreateDescriptorSetLayout #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorSetLayout* pSetLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDescriptorSetLayout"
+               vkCreateDescriptorSetLayoutSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                     ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkDescriptorSetLayout -- ^ pSetLayout
+                                               -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorSetLayout* pSetLayout
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorSetLayoutSafe@ and @vkCreateDescriptorSetLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorSetLayout <- vkGetDeviceProc @VkCreateDescriptorSetLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorSetLayout <- vkGetProc @VkCreateDescriptorSetLayout
+--
+vkCreateDescriptorSetLayoutSafe ::
+                                VkDevice -- ^ device
+                                         ->
+                                  Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                                      ->
+                                    Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                              ->
+                                      Ptr VkDescriptorSetLayout -- ^ pSetLayout
+                                                                -> IO VkResult
+vkCreateDescriptorSetLayoutSafe = vkCreateDescriptorSetLayout
+
+{-# INLINE vkCreateDescriptorSetLayoutSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateDescriptorSetLayout
+--   >     ( VkDevice device
+--   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDescriptorSetLayout* pSetLayout
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout registry at www.khronos.org>
+type HS_vkCreateDescriptorSetLayout =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                           ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkDescriptorSetLayout -- ^ pSetLayout
+                                     -> IO VkResult
+
+type PFN_vkCreateDescriptorSetLayout =
+     FunPtr HS_vkCreateDescriptorSetLayout
+
+foreign import ccall "dynamic" unwrapVkCreateDescriptorSetLayout ::
+               PFN_vkCreateDescriptorSetLayout -> HS_vkCreateDescriptorSetLayout
+
+instance VulkanProc "vkCreateDescriptorSetLayout" where
+        type VkProcType "vkCreateDescriptorSetLayout" =
+             HS_vkCreateDescriptorSetLayout
+        vkProcSymbol = _VkCreateDescriptorSetLayout
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDescriptorSetLayout
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDescriptorSetLayout :: CString
+
+pattern VkDestroyDescriptorSetLayout <-
+        (is_VkDestroyDescriptorSetLayout -> True)
+  where VkDestroyDescriptorSetLayout = _VkDestroyDescriptorSetLayout
+
+{-# INLINE _VkDestroyDescriptorSetLayout #-}
+
+_VkDestroyDescriptorSetLayout :: CString
+_VkDestroyDescriptorSetLayout
+  = Ptr "vkDestroyDescriptorSetLayout\NUL"##
+
+{-# INLINE is_VkDestroyDescriptorSetLayout #-}
+
+is_VkDestroyDescriptorSetLayout :: CString -> Bool
+is_VkDestroyDescriptorSetLayout
+  = (EQ ==) . cmpCStrings _VkDestroyDescriptorSetLayout
+
+type VkDestroyDescriptorSetLayout = "vkDestroyDescriptorSetLayout"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , VkDescriptorSetLayout descriptorSetLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyDescriptorSetLayout"
+               vkDestroyDescriptorSetLayout ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorSetLayout -- ^ descriptorSetLayout
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , VkDescriptorSetLayout descriptorSetLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorSetLayoutSafe@ and @vkDestroyDescriptorSetLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorSetLayout <- vkGetDeviceProc @VkDestroyDescriptorSetLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorSetLayout <- vkGetProc @VkDestroyDescriptorSetLayout
+--
+vkDestroyDescriptorSetLayout ::
+                             VkDevice -- ^ device
+                                      ->
+                               VkDescriptorSetLayout -- ^ descriptorSetLayout
+                                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                  -> IO ()
+vkDestroyDescriptorSetLayout
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyDescriptorSetLayout)
+
+{-# NOINLINE vkDestroyDescriptorSetLayout #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , VkDescriptorSetLayout descriptorSetLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyDescriptorSetLayout"
+               vkDestroyDescriptorSetLayoutSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorSetLayout -- ^ descriptorSetLayout
+                                       -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDescriptorSetLayout
+-- >     ( VkDevice device
+-- >     , VkDescriptorSetLayout descriptorSetLayout
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorSetLayoutSafe@ and @vkDestroyDescriptorSetLayout@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorSetLayout <- vkGetDeviceProc @VkDestroyDescriptorSetLayout vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorSetLayout <- vkGetProc @VkDestroyDescriptorSetLayout
+--
+vkDestroyDescriptorSetLayoutSafe ::
+                                 VkDevice -- ^ device
+                                          ->
+                                   VkDescriptorSetLayout -- ^ descriptorSetLayout
+                                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                      -> IO ()
+vkDestroyDescriptorSetLayoutSafe = vkDestroyDescriptorSetLayout
+
+{-# INLINE vkDestroyDescriptorSetLayoutSafe #-}
+##endif
+
+-- | > void vkDestroyDescriptorSetLayout
+--   >     ( VkDevice device
+--   >     , VkDescriptorSetLayout descriptorSetLayout
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout registry at www.khronos.org>
+type HS_vkDestroyDescriptorSetLayout =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorSetLayout -- ^ descriptorSetLayout
+                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> IO ()
+
+type PFN_vkDestroyDescriptorSetLayout =
+     FunPtr HS_vkDestroyDescriptorSetLayout
+
+foreign import ccall "dynamic" unwrapVkDestroyDescriptorSetLayout
+               ::
+               PFN_vkDestroyDescriptorSetLayout -> HS_vkDestroyDescriptorSetLayout
+
+instance VulkanProc "vkDestroyDescriptorSetLayout" where
+        type VkProcType "vkDestroyDescriptorSetLayout" =
+             HS_vkDestroyDescriptorSetLayout
+        vkProcSymbol = _VkDestroyDescriptorSetLayout
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDescriptorSetLayout
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDescriptorPool :: CString
+
+pattern VkCreateDescriptorPool <-
+        (is_VkCreateDescriptorPool -> True)
+  where VkCreateDescriptorPool = _VkCreateDescriptorPool
+
+{-# INLINE _VkCreateDescriptorPool #-}
+
+_VkCreateDescriptorPool :: CString
+_VkCreateDescriptorPool = Ptr "vkCreateDescriptorPool\NUL"##
+
+{-# INLINE is_VkCreateDescriptorPool #-}
+
+is_VkCreateDescriptorPool :: CString -> Bool
+is_VkCreateDescriptorPool
+  = (EQ ==) . cmpCStrings _VkCreateDescriptorPool
+
+type VkCreateDescriptorPool = "vkCreateDescriptorPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTATION_EXT'.
+--
+-- > VkResult vkCreateDescriptorPool
+-- >     ( VkDevice device
+-- >     , const VkDescriptorPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorPool* pDescriptorPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorPool vkCreateDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDescriptorPool"
+               vkCreateDescriptorPool ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
+                                                ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDescriptorPool -- ^ pDescriptorPool
+                                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTATION_EXT'.
+--
+-- > VkResult vkCreateDescriptorPool
+-- >     ( VkDevice device
+-- >     , const VkDescriptorPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorPool* pDescriptorPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorPool vkCreateDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorPoolSafe@ and @vkCreateDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorPool <- vkGetDeviceProc @VkCreateDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorPool <- vkGetProc @VkCreateDescriptorPool
+--
+vkCreateDescriptorPool ::
+                       VkDevice -- ^ device
+                                ->
+                         Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
+                                                        ->
+                           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> Ptr VkDescriptorPool -- ^ pDescriptorPool
+                                                                             -> IO VkResult
+vkCreateDescriptorPool
+  = unsafeDupablePerformIO (vkGetProc @VkCreateDescriptorPool)
+
+{-# NOINLINE vkCreateDescriptorPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTATION_EXT'.
+--
+-- > VkResult vkCreateDescriptorPool
+-- >     ( VkDevice device
+-- >     , const VkDescriptorPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorPool* pDescriptorPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorPool vkCreateDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDescriptorPool"
+               vkCreateDescriptorPoolSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
+                                                ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkDescriptorPool -- ^ pDescriptorPool
+                                                                     -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTATION_EXT'.
+--
+-- > VkResult vkCreateDescriptorPool
+-- >     ( VkDevice device
+-- >     , const VkDescriptorPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorPool* pDescriptorPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorPool vkCreateDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorPoolSafe@ and @vkCreateDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorPool <- vkGetDeviceProc @VkCreateDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorPool <- vkGetProc @VkCreateDescriptorPool
+--
+vkCreateDescriptorPoolSafe ::
+                           VkDevice -- ^ device
+                                    ->
+                             Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
+                                                            ->
+                               Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> Ptr VkDescriptorPool -- ^ pDescriptorPool
+                                                                                 -> IO VkResult
+vkCreateDescriptorPoolSafe = vkCreateDescriptorPool
+
+{-# INLINE vkCreateDescriptorPoolSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTATION_EXT'.
+--
+--   > VkResult vkCreateDescriptorPool
+--   >     ( VkDevice device
+--   >     , const VkDescriptorPoolCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDescriptorPool* pDescriptorPool
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorPool vkCreateDescriptorPool registry at www.khronos.org>
+type HS_vkCreateDescriptorPool =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorPoolCreateInfo -- ^ pCreateInfo
+                                      ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkDescriptorPool -- ^ pDescriptorPool
+                                                           -> IO VkResult
+
+type PFN_vkCreateDescriptorPool = FunPtr HS_vkCreateDescriptorPool
+
+foreign import ccall "dynamic" unwrapVkCreateDescriptorPool ::
+               PFN_vkCreateDescriptorPool -> HS_vkCreateDescriptorPool
+
+instance VulkanProc "vkCreateDescriptorPool" where
+        type VkProcType "vkCreateDescriptorPool" =
+             HS_vkCreateDescriptorPool
+        vkProcSymbol = _VkCreateDescriptorPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDescriptorPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDescriptorPool :: CString
+
+pattern VkDestroyDescriptorPool <-
+        (is_VkDestroyDescriptorPool -> True)
+  where VkDestroyDescriptorPool = _VkDestroyDescriptorPool
+
+{-# INLINE _VkDestroyDescriptorPool #-}
+
+_VkDestroyDescriptorPool :: CString
+_VkDestroyDescriptorPool = Ptr "vkDestroyDescriptorPool\NUL"##
+
+{-# INLINE is_VkDestroyDescriptorPool #-}
+
+is_VkDestroyDescriptorPool :: CString -> Bool
+is_VkDestroyDescriptorPool
+  = (EQ ==) . cmpCStrings _VkDestroyDescriptorPool
+
+type VkDestroyDescriptorPool = "vkDestroyDescriptorPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorPool vkDestroyDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyDescriptorPool"
+               vkDestroyDescriptorPool ::
+               VkDevice -- ^ device
+                        -> VkDescriptorPool -- ^ descriptorPool
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorPool vkDestroyDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorPoolSafe@ and @vkDestroyDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorPool <- vkGetDeviceProc @VkDestroyDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorPool <- vkGetProc @VkDestroyDescriptorPool
+--
+vkDestroyDescriptorPool ::
+                        VkDevice -- ^ device
+                                 -> VkDescriptorPool -- ^ descriptorPool
+                                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                  -> IO ()
+vkDestroyDescriptorPool
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyDescriptorPool)
+
+{-# NOINLINE vkDestroyDescriptorPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorPool vkDestroyDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyDescriptorPool"
+               vkDestroyDescriptorPoolSafe ::
+               VkDevice -- ^ device
+                        -> VkDescriptorPool -- ^ descriptorPool
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+##else
+-- |
+-- > void vkDestroyDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorPool vkDestroyDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorPoolSafe@ and @vkDestroyDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorPool <- vkGetDeviceProc @VkDestroyDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorPool <- vkGetProc @VkDestroyDescriptorPool
+--
+vkDestroyDescriptorPoolSafe ::
+                            VkDevice -- ^ device
+                                     -> VkDescriptorPool -- ^ descriptorPool
+                                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                      -> IO ()
+vkDestroyDescriptorPoolSafe = vkDestroyDescriptorPool
+
+{-# INLINE vkDestroyDescriptorPoolSafe #-}
+##endif
+
+-- | > void vkDestroyDescriptorPool
+--   >     ( VkDevice device
+--   >     , VkDescriptorPool descriptorPool
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorPool vkDestroyDescriptorPool registry at www.khronos.org>
+type HS_vkDestroyDescriptorPool =
+     VkDevice -- ^ device
+              -> VkDescriptorPool -- ^ descriptorPool
+                                  -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> IO ()
+
+type PFN_vkDestroyDescriptorPool =
+     FunPtr HS_vkDestroyDescriptorPool
+
+foreign import ccall "dynamic" unwrapVkDestroyDescriptorPool ::
+               PFN_vkDestroyDescriptorPool -> HS_vkDestroyDescriptorPool
+
+instance VulkanProc "vkDestroyDescriptorPool" where
+        type VkProcType "vkDestroyDescriptorPool" =
+             HS_vkDestroyDescriptorPool
+        vkProcSymbol = _VkDestroyDescriptorPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDescriptorPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkResetDescriptorPool :: CString
+
+pattern VkResetDescriptorPool <- (is_VkResetDescriptorPool -> True)
+  where VkResetDescriptorPool = _VkResetDescriptorPool
+
+{-# INLINE _VkResetDescriptorPool #-}
+
+_VkResetDescriptorPool :: CString
+_VkResetDescriptorPool = Ptr "vkResetDescriptorPool\NUL"##
+
+{-# INLINE is_VkResetDescriptorPool #-}
+
+is_VkResetDescriptorPool :: CString -> Bool
+is_VkResetDescriptorPool
+  = (EQ ==) . cmpCStrings _VkResetDescriptorPool
+
+type VkResetDescriptorPool = "vkResetDescriptorPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , VkDescriptorPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetDescriptorPool vkResetDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkResetDescriptorPool"
+               vkResetDescriptorPool ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorPool -- ^ descriptorPool
+                                  -> VkDescriptorPoolResetFlags -- ^ flags
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , VkDescriptorPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetDescriptorPool vkResetDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetDescriptorPoolSafe@ and @vkResetDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetDescriptorPool <- vkGetDeviceProc @VkResetDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myResetDescriptorPool <- vkGetProc @VkResetDescriptorPool
+--
+vkResetDescriptorPool ::
+                      VkDevice -- ^ device
+                               ->
+                        VkDescriptorPool -- ^ descriptorPool
+                                         -> VkDescriptorPoolResetFlags -- ^ flags
+                                                                       -> IO VkResult
+vkResetDescriptorPool
+  = unsafeDupablePerformIO (vkGetProc @VkResetDescriptorPool)
+
+{-# NOINLINE vkResetDescriptorPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , VkDescriptorPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetDescriptorPool vkResetDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkResetDescriptorPool"
+               vkResetDescriptorPoolSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorPool -- ^ descriptorPool
+                                  -> VkDescriptorPoolResetFlags -- ^ flags
+                                                                -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetDescriptorPool
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , VkDescriptorPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetDescriptorPool vkResetDescriptorPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetDescriptorPoolSafe@ and @vkResetDescriptorPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetDescriptorPool <- vkGetDeviceProc @VkResetDescriptorPool vkDevice
+--
+-- or less efficient:
+--
+-- > myResetDescriptorPool <- vkGetProc @VkResetDescriptorPool
+--
+vkResetDescriptorPoolSafe ::
+                          VkDevice -- ^ device
+                                   ->
+                            VkDescriptorPool -- ^ descriptorPool
+                                             -> VkDescriptorPoolResetFlags -- ^ flags
+                                                                           -> IO VkResult
+vkResetDescriptorPoolSafe = vkResetDescriptorPool
+
+{-# INLINE vkResetDescriptorPoolSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkResetDescriptorPool
+--   >     ( VkDevice device
+--   >     , VkDescriptorPool descriptorPool
+--   >     , VkDescriptorPoolResetFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetDescriptorPool vkResetDescriptorPool registry at www.khronos.org>
+type HS_vkResetDescriptorPool =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorPool -- ^ descriptorPool
+                        -> VkDescriptorPoolResetFlags -- ^ flags
+                                                      -> IO VkResult
+
+type PFN_vkResetDescriptorPool = FunPtr HS_vkResetDescriptorPool
+
+foreign import ccall "dynamic" unwrapVkResetDescriptorPool ::
+               PFN_vkResetDescriptorPool -> HS_vkResetDescriptorPool
+
+instance VulkanProc "vkResetDescriptorPool" where
+        type VkProcType "vkResetDescriptorPool" = HS_vkResetDescriptorPool
+        vkProcSymbol = _VkResetDescriptorPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkResetDescriptorPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkAllocateDescriptorSets :: CString
+
+pattern VkAllocateDescriptorSets <-
+        (is_VkAllocateDescriptorSets -> True)
+  where VkAllocateDescriptorSets = _VkAllocateDescriptorSets
+
+{-# INLINE _VkAllocateDescriptorSets #-}
+
+_VkAllocateDescriptorSets :: CString
+_VkAllocateDescriptorSets = Ptr "vkAllocateDescriptorSets\NUL"##
+
+{-# INLINE is_VkAllocateDescriptorSets #-}
+
+is_VkAllocateDescriptorSets :: CString -> Bool
+is_VkAllocateDescriptorSets
+  = (EQ ==) . cmpCStrings _VkAllocateDescriptorSets
+
+type VkAllocateDescriptorSets = "vkAllocateDescriptorSets"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
+--
+-- > VkResult vkAllocateDescriptorSets
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
+-- >     , VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateDescriptorSets vkAllocateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkAllocateDescriptorSets"
+               vkAllocateDescriptorSets ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
+                                                 ->
+                   Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
+--
+-- > VkResult vkAllocateDescriptorSets
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
+-- >     , VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateDescriptorSets vkAllocateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateDescriptorSetsSafe@ and @vkAllocateDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateDescriptorSets <- vkGetDeviceProc @VkAllocateDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateDescriptorSets <- vkGetProc @VkAllocateDescriptorSets
+--
+vkAllocateDescriptorSets ::
+                         VkDevice -- ^ device
+                                  ->
+                           Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
+                                                           ->
+                             Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                 -> IO VkResult
+vkAllocateDescriptorSets
+  = unsafeDupablePerformIO (vkGetProc @VkAllocateDescriptorSets)
+
+{-# NOINLINE vkAllocateDescriptorSets #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
+--
+-- > VkResult vkAllocateDescriptorSets
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
+-- >     , VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateDescriptorSets vkAllocateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkAllocateDescriptorSets"
+               vkAllocateDescriptorSetsSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
+                                                 ->
+                   Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
+--
+-- > VkResult vkAllocateDescriptorSets
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
+-- >     , VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateDescriptorSets vkAllocateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateDescriptorSetsSafe@ and @vkAllocateDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateDescriptorSets <- vkGetDeviceProc @VkAllocateDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateDescriptorSets <- vkGetProc @VkAllocateDescriptorSets
+--
+vkAllocateDescriptorSetsSafe ::
+                             VkDevice -- ^ device
+                                      ->
+                               Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
+                                                               ->
+                                 Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                     -> IO VkResult
+vkAllocateDescriptorSetsSafe = vkAllocateDescriptorSets
+
+{-# INLINE vkAllocateDescriptorSetsSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FRAGMENTED_POOL', 'VK_ERROR_OUT_OF_POOL_MEMORY'.
+--
+--   > VkResult vkAllocateDescriptorSets
+--   >     ( VkDevice device
+--   >     , const VkDescriptorSetAllocateInfo* pAllocateInfo
+--   >     , VkDescriptorSet* pDescriptorSets
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateDescriptorSets vkAllocateDescriptorSets registry at www.khronos.org>
+type HS_vkAllocateDescriptorSets =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorSetAllocateInfo -- ^ pAllocateInfo
+                                       ->
+         Ptr VkDescriptorSet -- ^ pDescriptorSets
+                             -> IO VkResult
+
+type PFN_vkAllocateDescriptorSets =
+     FunPtr HS_vkAllocateDescriptorSets
+
+foreign import ccall "dynamic" unwrapVkAllocateDescriptorSets ::
+               PFN_vkAllocateDescriptorSets -> HS_vkAllocateDescriptorSets
+
+instance VulkanProc "vkAllocateDescriptorSets" where
+        type VkProcType "vkAllocateDescriptorSets" =
+             HS_vkAllocateDescriptorSets
+        vkProcSymbol = _VkAllocateDescriptorSets
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAllocateDescriptorSets
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkFreeDescriptorSets :: CString
+
+pattern VkFreeDescriptorSets <- (is_VkFreeDescriptorSets -> True)
+  where VkFreeDescriptorSets = _VkFreeDescriptorSets
+
+{-# INLINE _VkFreeDescriptorSets #-}
+
+_VkFreeDescriptorSets :: CString
+_VkFreeDescriptorSets = Ptr "vkFreeDescriptorSets\NUL"##
+
+{-# INLINE is_VkFreeDescriptorSets #-}
+
+is_VkFreeDescriptorSets :: CString -> Bool
+is_VkFreeDescriptorSets
+  = (EQ ==) . cmpCStrings _VkFreeDescriptorSets
+
+type VkFreeDescriptorSets = "vkFreeDescriptorSets"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFreeDescriptorSets
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeDescriptorSets vkFreeDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkFreeDescriptorSets"
+               vkFreeDescriptorSets ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorPool -- ^ descriptorPool
+                                  -> Word32 -- ^ descriptorSetCount
+                                            -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFreeDescriptorSets
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeDescriptorSets vkFreeDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeDescriptorSetsSafe@ and @vkFreeDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeDescriptorSets <- vkGetDeviceProc @VkFreeDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeDescriptorSets <- vkGetProc @VkFreeDescriptorSets
+--
+vkFreeDescriptorSets ::
+                     VkDevice -- ^ device
+                              ->
+                       VkDescriptorPool -- ^ descriptorPool
+                                        -> Word32 -- ^ descriptorSetCount
+                                                  -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                                         -> IO VkResult
+vkFreeDescriptorSets
+  = unsafeDupablePerformIO (vkGetProc @VkFreeDescriptorSets)
+
+{-# NOINLINE vkFreeDescriptorSets #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFreeDescriptorSets
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeDescriptorSets vkFreeDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkFreeDescriptorSets"
+               vkFreeDescriptorSetsSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorPool -- ^ descriptorPool
+                                  -> Word32 -- ^ descriptorSetCount
+                                            -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                                   -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkFreeDescriptorSets
+-- >     ( VkDevice device
+-- >     , VkDescriptorPool descriptorPool
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeDescriptorSets vkFreeDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeDescriptorSetsSafe@ and @vkFreeDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeDescriptorSets <- vkGetDeviceProc @VkFreeDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeDescriptorSets <- vkGetProc @VkFreeDescriptorSets
+--
+vkFreeDescriptorSetsSafe ::
+                         VkDevice -- ^ device
+                                  ->
+                           VkDescriptorPool -- ^ descriptorPool
+                                            -> Word32 -- ^ descriptorSetCount
+                                                      -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                                             -> IO VkResult
+vkFreeDescriptorSetsSafe = vkFreeDescriptorSets
+
+{-# INLINE vkFreeDescriptorSetsSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkFreeDescriptorSets
+--   >     ( VkDevice device
+--   >     , VkDescriptorPool descriptorPool
+--   >     , uint32_t descriptorSetCount
+--   >     , const VkDescriptorSet* pDescriptorSets
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeDescriptorSets vkFreeDescriptorSets registry at www.khronos.org>
+type HS_vkFreeDescriptorSets =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorPool -- ^ descriptorPool
+                        -> Word32 -- ^ descriptorSetCount
+                                  -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                         -> IO VkResult
+
+type PFN_vkFreeDescriptorSets = FunPtr HS_vkFreeDescriptorSets
+
+foreign import ccall "dynamic" unwrapVkFreeDescriptorSets ::
+               PFN_vkFreeDescriptorSets -> HS_vkFreeDescriptorSets
+
+instance VulkanProc "vkFreeDescriptorSets" where
+        type VkProcType "vkFreeDescriptorSets" = HS_vkFreeDescriptorSets
+        vkProcSymbol = _VkFreeDescriptorSets
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkFreeDescriptorSets
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkUpdateDescriptorSets :: CString
+
+pattern VkUpdateDescriptorSets <-
+        (is_VkUpdateDescriptorSets -> True)
+  where VkUpdateDescriptorSets = _VkUpdateDescriptorSets
+
+{-# INLINE _VkUpdateDescriptorSets #-}
+
+_VkUpdateDescriptorSets :: CString
+_VkUpdateDescriptorSets = Ptr "vkUpdateDescriptorSets\NUL"##
+
+{-# INLINE is_VkUpdateDescriptorSets #-}
+
+is_VkUpdateDescriptorSets :: CString -> Bool
+is_VkUpdateDescriptorSets
+  = (EQ ==) . cmpCStrings _VkUpdateDescriptorSets
+
+type VkUpdateDescriptorSets = "vkUpdateDescriptorSets"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkUpdateDescriptorSets
+-- >     ( VkDevice device
+-- >     , uint32_t descriptorWriteCount
+-- >     , const VkWriteDescriptorSet* pDescriptorWrites
+-- >     , uint32_t descriptorCopyCount
+-- >     , const VkCopyDescriptorSet* pDescriptorCopies
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSets vkUpdateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkUpdateDescriptorSets"
+               vkUpdateDescriptorSets ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ descriptorWriteCount
+                        ->
+                   Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                            ->
+                     Word32 -- ^ descriptorCopyCount
+                            -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
+                                                       -> IO ()
+
+##else
+-- |
+-- > void vkUpdateDescriptorSets
+-- >     ( VkDevice device
+-- >     , uint32_t descriptorWriteCount
+-- >     , const VkWriteDescriptorSet* pDescriptorWrites
+-- >     , uint32_t descriptorCopyCount
+-- >     , const VkCopyDescriptorSet* pDescriptorCopies
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSets vkUpdateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUpdateDescriptorSetsSafe@ and @vkUpdateDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUpdateDescriptorSets <- vkGetDeviceProc @VkUpdateDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myUpdateDescriptorSets <- vkGetProc @VkUpdateDescriptorSets
+--
+vkUpdateDescriptorSets ::
+                       VkDevice -- ^ device
+                                ->
+                         Word32 -- ^ descriptorWriteCount
+                                ->
+                           Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                                    ->
+                             Word32 -- ^ descriptorCopyCount
+                                    -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
+                                                               -> IO ()
+vkUpdateDescriptorSets
+  = unsafeDupablePerformIO (vkGetProc @VkUpdateDescriptorSets)
+
+{-# NOINLINE vkUpdateDescriptorSets #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkUpdateDescriptorSets
+-- >     ( VkDevice device
+-- >     , uint32_t descriptorWriteCount
+-- >     , const VkWriteDescriptorSet* pDescriptorWrites
+-- >     , uint32_t descriptorCopyCount
+-- >     , const VkCopyDescriptorSet* pDescriptorCopies
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSets vkUpdateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkUpdateDescriptorSets"
+               vkUpdateDescriptorSetsSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ descriptorWriteCount
+                        ->
+                   Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                            ->
+                     Word32 -- ^ descriptorCopyCount
+                            -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
+                                                       -> IO ()
+
+##else
+-- |
+-- > void vkUpdateDescriptorSets
+-- >     ( VkDevice device
+-- >     , uint32_t descriptorWriteCount
+-- >     , const VkWriteDescriptorSet* pDescriptorWrites
+-- >     , uint32_t descriptorCopyCount
+-- >     , const VkCopyDescriptorSet* pDescriptorCopies
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSets vkUpdateDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUpdateDescriptorSetsSafe@ and @vkUpdateDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUpdateDescriptorSets <- vkGetDeviceProc @VkUpdateDescriptorSets vkDevice
+--
+-- or less efficient:
+--
+-- > myUpdateDescriptorSets <- vkGetProc @VkUpdateDescriptorSets
+--
+vkUpdateDescriptorSetsSafe ::
+                           VkDevice -- ^ device
+                                    ->
+                             Word32 -- ^ descriptorWriteCount
+                                    ->
+                               Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                                        ->
+                                 Word32 -- ^ descriptorCopyCount
+                                        -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
+                                                                   -> IO ()
+vkUpdateDescriptorSetsSafe = vkUpdateDescriptorSets
+
+{-# INLINE vkUpdateDescriptorSetsSafe #-}
+##endif
+
+-- | > void vkUpdateDescriptorSets
+--   >     ( VkDevice device
+--   >     , uint32_t descriptorWriteCount
+--   >     , const VkWriteDescriptorSet* pDescriptorWrites
+--   >     , uint32_t descriptorCopyCount
+--   >     , const VkCopyDescriptorSet* pDescriptorCopies
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSets vkUpdateDescriptorSets registry at www.khronos.org>
+type HS_vkUpdateDescriptorSets =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ descriptorWriteCount
+              ->
+         Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                  ->
+           Word32 -- ^ descriptorCopyCount
+                  -> Ptr VkCopyDescriptorSet -- ^ pDescriptorCopies
+                                             -> IO ()
+
+type PFN_vkUpdateDescriptorSets = FunPtr HS_vkUpdateDescriptorSets
+
+foreign import ccall "dynamic" unwrapVkUpdateDescriptorSets ::
+               PFN_vkUpdateDescriptorSets -> HS_vkUpdateDescriptorSets
+
+instance VulkanProc "vkUpdateDescriptorSets" where
+        type VkProcType "vkUpdateDescriptorSets" =
+             HS_vkUpdateDescriptorSets
+        vkProcSymbol = _VkUpdateDescriptorSets
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkUpdateDescriptorSets
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateFramebuffer :: CString
+
+pattern VkCreateFramebuffer <- (is_VkCreateFramebuffer -> True)
+  where VkCreateFramebuffer = _VkCreateFramebuffer
+
+{-# INLINE _VkCreateFramebuffer #-}
+
+_VkCreateFramebuffer :: CString
+_VkCreateFramebuffer = Ptr "vkCreateFramebuffer\NUL"##
+
+{-# INLINE is_VkCreateFramebuffer #-}
+
+is_VkCreateFramebuffer :: CString -> Bool
+is_VkCreateFramebuffer = (EQ ==) . cmpCStrings _VkCreateFramebuffer
+
+type VkCreateFramebuffer = "vkCreateFramebuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFramebuffer
+-- >     ( VkDevice device
+-- >     , const VkFramebufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFramebuffer* pFramebuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFramebuffer vkCreateFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateFramebuffer"
+               vkCreateFramebuffer ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
+                                             ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkFramebuffer -- ^ pFramebuffer
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFramebuffer
+-- >     ( VkDevice device
+-- >     , const VkFramebufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFramebuffer* pFramebuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFramebuffer vkCreateFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateFramebufferSafe@ and @vkCreateFramebuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateFramebuffer <- vkGetDeviceProc @VkCreateFramebuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateFramebuffer <- vkGetProc @VkCreateFramebuffer
+--
+vkCreateFramebuffer ::
+                    VkDevice -- ^ device
+                             ->
+                      Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
+                                                  ->
+                        Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                  -> Ptr VkFramebuffer -- ^ pFramebuffer
+                                                                       -> IO VkResult
+vkCreateFramebuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCreateFramebuffer)
+
+{-# NOINLINE vkCreateFramebuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFramebuffer
+-- >     ( VkDevice device
+-- >     , const VkFramebufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFramebuffer* pFramebuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFramebuffer vkCreateFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateFramebuffer"
+               vkCreateFramebufferSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
+                                             ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkFramebuffer -- ^ pFramebuffer
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateFramebuffer
+-- >     ( VkDevice device
+-- >     , const VkFramebufferCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkFramebuffer* pFramebuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFramebuffer vkCreateFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateFramebufferSafe@ and @vkCreateFramebuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateFramebuffer <- vkGetDeviceProc @VkCreateFramebuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateFramebuffer <- vkGetProc @VkCreateFramebuffer
+--
+vkCreateFramebufferSafe ::
+                        VkDevice -- ^ device
+                                 ->
+                          Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
+                                                      ->
+                            Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> Ptr VkFramebuffer -- ^ pFramebuffer
+                                                                           -> IO VkResult
+vkCreateFramebufferSafe = vkCreateFramebuffer
+
+{-# INLINE vkCreateFramebufferSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateFramebuffer
+--   >     ( VkDevice device
+--   >     , const VkFramebufferCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkFramebuffer* pFramebuffer
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateFramebuffer vkCreateFramebuffer registry at www.khronos.org>
+type HS_vkCreateFramebuffer =
+     VkDevice -- ^ device
+              ->
+       Ptr VkFramebufferCreateInfo -- ^ pCreateInfo
+                                   ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkFramebuffer -- ^ pFramebuffer
+                                                        -> IO VkResult
+
+type PFN_vkCreateFramebuffer = FunPtr HS_vkCreateFramebuffer
+
+foreign import ccall "dynamic" unwrapVkCreateFramebuffer ::
+               PFN_vkCreateFramebuffer -> HS_vkCreateFramebuffer
+
+instance VulkanProc "vkCreateFramebuffer" where
+        type VkProcType "vkCreateFramebuffer" = HS_vkCreateFramebuffer
+        vkProcSymbol = _VkCreateFramebuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateFramebuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyFramebuffer :: CString
+
+pattern VkDestroyFramebuffer <- (is_VkDestroyFramebuffer -> True)
+  where VkDestroyFramebuffer = _VkDestroyFramebuffer
+
+{-# INLINE _VkDestroyFramebuffer #-}
+
+_VkDestroyFramebuffer :: CString
+_VkDestroyFramebuffer = Ptr "vkDestroyFramebuffer\NUL"##
+
+{-# INLINE is_VkDestroyFramebuffer #-}
+
+is_VkDestroyFramebuffer :: CString -> Bool
+is_VkDestroyFramebuffer
+  = (EQ ==) . cmpCStrings _VkDestroyFramebuffer
+
+type VkDestroyFramebuffer = "vkDestroyFramebuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyFramebuffer
+-- >     ( VkDevice device
+-- >     , VkFramebuffer framebuffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFramebuffer vkDestroyFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyFramebuffer"
+               vkDestroyFramebuffer ::
+               VkDevice -- ^ device
+                        -> VkFramebuffer -- ^ framebuffer
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyFramebuffer
+-- >     ( VkDevice device
+-- >     , VkFramebuffer framebuffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFramebuffer vkDestroyFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyFramebufferSafe@ and @vkDestroyFramebuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyFramebuffer <- vkGetDeviceProc @VkDestroyFramebuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyFramebuffer <- vkGetProc @VkDestroyFramebuffer
+--
+vkDestroyFramebuffer ::
+                     VkDevice -- ^ device
+                              -> VkFramebuffer -- ^ framebuffer
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroyFramebuffer
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyFramebuffer)
+
+{-# NOINLINE vkDestroyFramebuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyFramebuffer
+-- >     ( VkDevice device
+-- >     , VkFramebuffer framebuffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFramebuffer vkDestroyFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyFramebuffer"
+               vkDestroyFramebufferSafe ::
+               VkDevice -- ^ device
+                        -> VkFramebuffer -- ^ framebuffer
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyFramebuffer
+-- >     ( VkDevice device
+-- >     , VkFramebuffer framebuffer
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFramebuffer vkDestroyFramebuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyFramebufferSafe@ and @vkDestroyFramebuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyFramebuffer <- vkGetDeviceProc @VkDestroyFramebuffer vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyFramebuffer <- vkGetProc @VkDestroyFramebuffer
+--
+vkDestroyFramebufferSafe ::
+                         VkDevice -- ^ device
+                                  -> VkFramebuffer -- ^ framebuffer
+                                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                -> IO ()
+vkDestroyFramebufferSafe = vkDestroyFramebuffer
+
+{-# INLINE vkDestroyFramebufferSafe #-}
+##endif
+
+-- | > void vkDestroyFramebuffer
+--   >     ( VkDevice device
+--   >     , VkFramebuffer framebuffer
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyFramebuffer vkDestroyFramebuffer registry at www.khronos.org>
+type HS_vkDestroyFramebuffer =
+     VkDevice -- ^ device
+              -> VkFramebuffer -- ^ framebuffer
+                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> IO ()
+
+type PFN_vkDestroyFramebuffer = FunPtr HS_vkDestroyFramebuffer
+
+foreign import ccall "dynamic" unwrapVkDestroyFramebuffer ::
+               PFN_vkDestroyFramebuffer -> HS_vkDestroyFramebuffer
+
+instance VulkanProc "vkDestroyFramebuffer" where
+        type VkProcType "vkDestroyFramebuffer" = HS_vkDestroyFramebuffer
+        vkProcSymbol = _VkDestroyFramebuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyFramebuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateRenderPass :: CString
+
+pattern VkCreateRenderPass <- (is_VkCreateRenderPass -> True)
+  where VkCreateRenderPass = _VkCreateRenderPass
+
+{-# INLINE _VkCreateRenderPass #-}
+
+_VkCreateRenderPass :: CString
+_VkCreateRenderPass = Ptr "vkCreateRenderPass\NUL"##
+
+{-# INLINE is_VkCreateRenderPass #-}
+
+is_VkCreateRenderPass :: CString -> Bool
+is_VkCreateRenderPass = (EQ ==) . cmpCStrings _VkCreateRenderPass
+
+type VkCreateRenderPass = "vkCreateRenderPass"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateRenderPass
+-- >     ( VkDevice device
+-- >     , const VkRenderPassCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkRenderPass* pRenderPass
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateRenderPass vkCreateRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateRenderPass" vkCreateRenderPass
+               ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
+                                            ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkRenderPass -- ^ pRenderPass
+                                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateRenderPass
+-- >     ( VkDevice device
+-- >     , const VkRenderPassCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkRenderPass* pRenderPass
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateRenderPass vkCreateRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateRenderPassSafe@ and @vkCreateRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateRenderPass <- vkGetDeviceProc @VkCreateRenderPass vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateRenderPass <- vkGetProc @VkCreateRenderPass
+--
+vkCreateRenderPass ::
+                   VkDevice -- ^ device
+                            ->
+                     Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
+                                                ->
+                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                 -> Ptr VkRenderPass -- ^ pRenderPass
+                                                                     -> IO VkResult
+vkCreateRenderPass
+  = unsafeDupablePerformIO (vkGetProc @VkCreateRenderPass)
+
+{-# NOINLINE vkCreateRenderPass #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateRenderPass
+-- >     ( VkDevice device
+-- >     , const VkRenderPassCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkRenderPass* pRenderPass
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateRenderPass vkCreateRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateRenderPass"
+               vkCreateRenderPassSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
+                                            ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkRenderPass -- ^ pRenderPass
+                                                                 -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateRenderPass
+-- >     ( VkDevice device
+-- >     , const VkRenderPassCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkRenderPass* pRenderPass
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateRenderPass vkCreateRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateRenderPassSafe@ and @vkCreateRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateRenderPass <- vkGetDeviceProc @VkCreateRenderPass vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateRenderPass <- vkGetProc @VkCreateRenderPass
+--
+vkCreateRenderPassSafe ::
+                       VkDevice -- ^ device
+                                ->
+                         Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
+                                                    ->
+                           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> Ptr VkRenderPass -- ^ pRenderPass
+                                                                         -> IO VkResult
+vkCreateRenderPassSafe = vkCreateRenderPass
+
+{-# INLINE vkCreateRenderPassSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateRenderPass
+--   >     ( VkDevice device
+--   >     , const VkRenderPassCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkRenderPass* pRenderPass
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateRenderPass vkCreateRenderPass registry at www.khronos.org>
+type HS_vkCreateRenderPass =
+     VkDevice -- ^ device
+              ->
+       Ptr VkRenderPassCreateInfo -- ^ pCreateInfo
+                                  ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkRenderPass -- ^ pRenderPass
+                                                       -> IO VkResult
+
+type PFN_vkCreateRenderPass = FunPtr HS_vkCreateRenderPass
+
+foreign import ccall "dynamic" unwrapVkCreateRenderPass ::
+               PFN_vkCreateRenderPass -> HS_vkCreateRenderPass
+
+instance VulkanProc "vkCreateRenderPass" where
+        type VkProcType "vkCreateRenderPass" = HS_vkCreateRenderPass
+        vkProcSymbol = _VkCreateRenderPass
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateRenderPass
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyRenderPass :: CString
+
+pattern VkDestroyRenderPass <- (is_VkDestroyRenderPass -> True)
+  where VkDestroyRenderPass = _VkDestroyRenderPass
+
+{-# INLINE _VkDestroyRenderPass #-}
+
+_VkDestroyRenderPass :: CString
+_VkDestroyRenderPass = Ptr "vkDestroyRenderPass\NUL"##
+
+{-# INLINE is_VkDestroyRenderPass #-}
+
+is_VkDestroyRenderPass :: CString -> Bool
+is_VkDestroyRenderPass = (EQ ==) . cmpCStrings _VkDestroyRenderPass
+
+type VkDestroyRenderPass = "vkDestroyRenderPass"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyRenderPass
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyRenderPass vkDestroyRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyRenderPass"
+               vkDestroyRenderPass ::
+               VkDevice -- ^ device
+                        -> VkRenderPass -- ^ renderPass
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyRenderPass
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyRenderPass vkDestroyRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyRenderPassSafe@ and @vkDestroyRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyRenderPass <- vkGetDeviceProc @VkDestroyRenderPass vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyRenderPass <- vkGetProc @VkDestroyRenderPass
+--
+vkDestroyRenderPass ::
+                    VkDevice -- ^ device
+                             -> VkRenderPass -- ^ renderPass
+                                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                          -> IO ()
+vkDestroyRenderPass
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyRenderPass)
+
+{-# NOINLINE vkDestroyRenderPass #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyRenderPass
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyRenderPass vkDestroyRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyRenderPass"
+               vkDestroyRenderPassSafe ::
+               VkDevice -- ^ device
+                        -> VkRenderPass -- ^ renderPass
+                                        -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                     -> IO ()
+
+##else
+-- |
+-- > void vkDestroyRenderPass
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyRenderPass vkDestroyRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyRenderPassSafe@ and @vkDestroyRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyRenderPass <- vkGetDeviceProc @VkDestroyRenderPass vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyRenderPass <- vkGetProc @VkDestroyRenderPass
+--
+vkDestroyRenderPassSafe ::
+                        VkDevice -- ^ device
+                                 -> VkRenderPass -- ^ renderPass
+                                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                              -> IO ()
+vkDestroyRenderPassSafe = vkDestroyRenderPass
+
+{-# INLINE vkDestroyRenderPassSafe #-}
+##endif
+
+-- | > void vkDestroyRenderPass
+--   >     ( VkDevice device
+--   >     , VkRenderPass renderPass
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyRenderPass vkDestroyRenderPass registry at www.khronos.org>
+type HS_vkDestroyRenderPass =
+     VkDevice -- ^ device
+              -> VkRenderPass -- ^ renderPass
+                              -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                           -> IO ()
+
+type PFN_vkDestroyRenderPass = FunPtr HS_vkDestroyRenderPass
+
+foreign import ccall "dynamic" unwrapVkDestroyRenderPass ::
+               PFN_vkDestroyRenderPass -> HS_vkDestroyRenderPass
+
+instance VulkanProc "vkDestroyRenderPass" where
+        type VkProcType "vkDestroyRenderPass" = HS_vkDestroyRenderPass
+        vkProcSymbol = _VkDestroyRenderPass
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyRenderPass
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetRenderAreaGranularity :: CString
+
+pattern VkGetRenderAreaGranularity <-
+        (is_VkGetRenderAreaGranularity -> True)
+  where VkGetRenderAreaGranularity = _VkGetRenderAreaGranularity
+
+{-# INLINE _VkGetRenderAreaGranularity #-}
+
+_VkGetRenderAreaGranularity :: CString
+_VkGetRenderAreaGranularity = Ptr "vkGetRenderAreaGranularity\NUL"##
+
+{-# INLINE is_VkGetRenderAreaGranularity #-}
+
+is_VkGetRenderAreaGranularity :: CString -> Bool
+is_VkGetRenderAreaGranularity
+  = (EQ ==) . cmpCStrings _VkGetRenderAreaGranularity
+
+type VkGetRenderAreaGranularity = "vkGetRenderAreaGranularity"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetRenderAreaGranularity
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , VkExtent2D* pGranularity
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRenderAreaGranularity vkGetRenderAreaGranularity registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetRenderAreaGranularity"
+               vkGetRenderAreaGranularity ::
+               VkDevice -- ^ device
+                        -> VkRenderPass -- ^ renderPass
+                                        -> Ptr VkExtent2D -- ^ pGranularity
+                                                          -> IO ()
+
+##else
+-- |
+-- > void vkGetRenderAreaGranularity
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , VkExtent2D* pGranularity
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRenderAreaGranularity vkGetRenderAreaGranularity registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetRenderAreaGranularitySafe@ and @vkGetRenderAreaGranularity@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetRenderAreaGranularity <- vkGetDeviceProc @VkGetRenderAreaGranularity vkDevice
+--
+-- or less efficient:
+--
+-- > myGetRenderAreaGranularity <- vkGetProc @VkGetRenderAreaGranularity
+--
+vkGetRenderAreaGranularity ::
+                           VkDevice -- ^ device
+                                    -> VkRenderPass -- ^ renderPass
+                                                    -> Ptr VkExtent2D -- ^ pGranularity
+                                                                      -> IO ()
+vkGetRenderAreaGranularity
+  = unsafeDupablePerformIO (vkGetProc @VkGetRenderAreaGranularity)
+
+{-# NOINLINE vkGetRenderAreaGranularity #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkGetRenderAreaGranularity
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , VkExtent2D* pGranularity
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRenderAreaGranularity vkGetRenderAreaGranularity registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetRenderAreaGranularity"
+               vkGetRenderAreaGranularitySafe ::
+               VkDevice -- ^ device
+                        -> VkRenderPass -- ^ renderPass
+                                        -> Ptr VkExtent2D -- ^ pGranularity
+                                                          -> IO ()
+
+##else
+-- |
+-- > void vkGetRenderAreaGranularity
+-- >     ( VkDevice device
+-- >     , VkRenderPass renderPass
+-- >     , VkExtent2D* pGranularity
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRenderAreaGranularity vkGetRenderAreaGranularity registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetRenderAreaGranularitySafe@ and @vkGetRenderAreaGranularity@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetRenderAreaGranularity <- vkGetDeviceProc @VkGetRenderAreaGranularity vkDevice
+--
+-- or less efficient:
+--
+-- > myGetRenderAreaGranularity <- vkGetProc @VkGetRenderAreaGranularity
+--
+vkGetRenderAreaGranularitySafe ::
+                               VkDevice -- ^ device
+                                        -> VkRenderPass -- ^ renderPass
+                                                        -> Ptr VkExtent2D -- ^ pGranularity
+                                                                          -> IO ()
+vkGetRenderAreaGranularitySafe = vkGetRenderAreaGranularity
+
+{-# INLINE vkGetRenderAreaGranularitySafe #-}
+##endif
+
+-- | > void vkGetRenderAreaGranularity
+--   >     ( VkDevice device
+--   >     , VkRenderPass renderPass
+--   >     , VkExtent2D* pGranularity
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRenderAreaGranularity vkGetRenderAreaGranularity registry at www.khronos.org>
+type HS_vkGetRenderAreaGranularity =
+     VkDevice -- ^ device
+              -> VkRenderPass -- ^ renderPass
+                              -> Ptr VkExtent2D -- ^ pGranularity
+                                                -> IO ()
+
+type PFN_vkGetRenderAreaGranularity =
+     FunPtr HS_vkGetRenderAreaGranularity
+
+foreign import ccall "dynamic" unwrapVkGetRenderAreaGranularity ::
+               PFN_vkGetRenderAreaGranularity -> HS_vkGetRenderAreaGranularity
+
+instance VulkanProc "vkGetRenderAreaGranularity" where
+        type VkProcType "vkGetRenderAreaGranularity" =
+             HS_vkGetRenderAreaGranularity
+        vkProcSymbol = _VkGetRenderAreaGranularity
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetRenderAreaGranularity
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateCommandPool :: CString
+
+pattern VkCreateCommandPool <- (is_VkCreateCommandPool -> True)
+  where VkCreateCommandPool = _VkCreateCommandPool
+
+{-# INLINE _VkCreateCommandPool #-}
+
+_VkCreateCommandPool :: CString
+_VkCreateCommandPool = Ptr "vkCreateCommandPool\NUL"##
+
+{-# INLINE is_VkCreateCommandPool #-}
+
+is_VkCreateCommandPool :: CString -> Bool
+is_VkCreateCommandPool = (EQ ==) . cmpCStrings _VkCreateCommandPool
+
+type VkCreateCommandPool = "vkCreateCommandPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateCommandPool
+-- >     ( VkDevice device
+-- >     , const VkCommandPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkCommandPool* pCommandPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateCommandPool vkCreateCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateCommandPool"
+               vkCreateCommandPool ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
+                                             ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkCommandPool -- ^ pCommandPool
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateCommandPool
+-- >     ( VkDevice device
+-- >     , const VkCommandPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkCommandPool* pCommandPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateCommandPool vkCreateCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateCommandPoolSafe@ and @vkCreateCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateCommandPool <- vkGetDeviceProc @VkCreateCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateCommandPool <- vkGetProc @VkCreateCommandPool
+--
+vkCreateCommandPool ::
+                    VkDevice -- ^ device
+                             ->
+                      Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
+                                                  ->
+                        Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                  -> Ptr VkCommandPool -- ^ pCommandPool
+                                                                       -> IO VkResult
+vkCreateCommandPool
+  = unsafeDupablePerformIO (vkGetProc @VkCreateCommandPool)
+
+{-# NOINLINE vkCreateCommandPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateCommandPool
+-- >     ( VkDevice device
+-- >     , const VkCommandPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkCommandPool* pCommandPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateCommandPool vkCreateCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateCommandPool"
+               vkCreateCommandPoolSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
+                                             ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkCommandPool -- ^ pCommandPool
+                                                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateCommandPool
+-- >     ( VkDevice device
+-- >     , const VkCommandPoolCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkCommandPool* pCommandPool
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateCommandPool vkCreateCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateCommandPoolSafe@ and @vkCreateCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateCommandPool <- vkGetDeviceProc @VkCreateCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateCommandPool <- vkGetProc @VkCreateCommandPool
+--
+vkCreateCommandPoolSafe ::
+                        VkDevice -- ^ device
+                                 ->
+                          Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
+                                                      ->
+                            Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> Ptr VkCommandPool -- ^ pCommandPool
+                                                                           -> IO VkResult
+vkCreateCommandPoolSafe = vkCreateCommandPool
+
+{-# INLINE vkCreateCommandPoolSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateCommandPool
+--   >     ( VkDevice device
+--   >     , const VkCommandPoolCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkCommandPool* pCommandPool
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateCommandPool vkCreateCommandPool registry at www.khronos.org>
+type HS_vkCreateCommandPool =
+     VkDevice -- ^ device
+              ->
+       Ptr VkCommandPoolCreateInfo -- ^ pCreateInfo
+                                   ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkCommandPool -- ^ pCommandPool
+                                                        -> IO VkResult
+
+type PFN_vkCreateCommandPool = FunPtr HS_vkCreateCommandPool
+
+foreign import ccall "dynamic" unwrapVkCreateCommandPool ::
+               PFN_vkCreateCommandPool -> HS_vkCreateCommandPool
+
+instance VulkanProc "vkCreateCommandPool" where
+        type VkProcType "vkCreateCommandPool" = HS_vkCreateCommandPool
+        vkProcSymbol = _VkCreateCommandPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateCommandPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyCommandPool :: CString
+
+pattern VkDestroyCommandPool <- (is_VkDestroyCommandPool -> True)
+  where VkDestroyCommandPool = _VkDestroyCommandPool
+
+{-# INLINE _VkDestroyCommandPool #-}
+
+_VkDestroyCommandPool :: CString
+_VkDestroyCommandPool = Ptr "vkDestroyCommandPool\NUL"##
+
+{-# INLINE is_VkDestroyCommandPool #-}
+
+is_VkDestroyCommandPool :: CString -> Bool
+is_VkDestroyCommandPool
+  = (EQ ==) . cmpCStrings _VkDestroyCommandPool
+
+type VkDestroyCommandPool = "vkDestroyCommandPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyCommandPool vkDestroyCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyCommandPool"
+               vkDestroyCommandPool ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyCommandPool vkDestroyCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyCommandPoolSafe@ and @vkDestroyCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyCommandPool <- vkGetDeviceProc @VkDestroyCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyCommandPool <- vkGetProc @VkDestroyCommandPool
+--
+vkDestroyCommandPool ::
+                     VkDevice -- ^ device
+                              -> VkCommandPool -- ^ commandPool
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroyCommandPool
+  = unsafeDupablePerformIO (vkGetProc @VkDestroyCommandPool)
+
+{-# NOINLINE vkDestroyCommandPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroyCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyCommandPool vkDestroyCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyCommandPool"
+               vkDestroyCommandPoolSafe ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                      -> IO ()
+
+##else
+-- |
+-- > void vkDestroyCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyCommandPool vkDestroyCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyCommandPoolSafe@ and @vkDestroyCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyCommandPool <- vkGetDeviceProc @VkDestroyCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyCommandPool <- vkGetProc @VkDestroyCommandPool
+--
+vkDestroyCommandPoolSafe ::
+                         VkDevice -- ^ device
+                                  -> VkCommandPool -- ^ commandPool
+                                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                -> IO ()
+vkDestroyCommandPoolSafe = vkDestroyCommandPool
+
+{-# INLINE vkDestroyCommandPoolSafe #-}
+##endif
+
+-- | > void vkDestroyCommandPool
+--   >     ( VkDevice device
+--   >     , VkCommandPool commandPool
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyCommandPool vkDestroyCommandPool registry at www.khronos.org>
+type HS_vkDestroyCommandPool =
+     VkDevice -- ^ device
+              -> VkCommandPool -- ^ commandPool
+                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> IO ()
+
+type PFN_vkDestroyCommandPool = FunPtr HS_vkDestroyCommandPool
+
+foreign import ccall "dynamic" unwrapVkDestroyCommandPool ::
+               PFN_vkDestroyCommandPool -> HS_vkDestroyCommandPool
+
+instance VulkanProc "vkDestroyCommandPool" where
+        type VkProcType "vkDestroyCommandPool" = HS_vkDestroyCommandPool
+        vkProcSymbol = _VkDestroyCommandPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyCommandPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkResetCommandPool :: CString
+
+pattern VkResetCommandPool <- (is_VkResetCommandPool -> True)
+  where VkResetCommandPool = _VkResetCommandPool
+
+{-# INLINE _VkResetCommandPool #-}
+
+_VkResetCommandPool :: CString
+_VkResetCommandPool = Ptr "vkResetCommandPool\NUL"##
+
+{-# INLINE is_VkResetCommandPool #-}
+
+is_VkResetCommandPool :: CString -> Bool
+is_VkResetCommandPool = (EQ ==) . cmpCStrings _VkResetCommandPool
+
+type VkResetCommandPool = "vkResetCommandPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandPool vkResetCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkResetCommandPool" vkResetCommandPool
+               ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> VkCommandPoolResetFlags -- ^ flags
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandPool vkResetCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetCommandPoolSafe@ and @vkResetCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetCommandPool <- vkGetDeviceProc @VkResetCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myResetCommandPool <- vkGetProc @VkResetCommandPool
+--
+vkResetCommandPool ::
+                   VkDevice -- ^ device
+                            -> VkCommandPool -- ^ commandPool
+                                             -> VkCommandPoolResetFlags -- ^ flags
+                                                                        -> IO VkResult
+vkResetCommandPool
+  = unsafeDupablePerformIO (vkGetProc @VkResetCommandPool)
+
+{-# NOINLINE vkResetCommandPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandPool vkResetCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkResetCommandPool"
+               vkResetCommandPoolSafe ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> VkCommandPoolResetFlags -- ^ flags
+                                                                    -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandPool vkResetCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetCommandPoolSafe@ and @vkResetCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetCommandPool <- vkGetDeviceProc @VkResetCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myResetCommandPool <- vkGetProc @VkResetCommandPool
+--
+vkResetCommandPoolSafe ::
+                       VkDevice -- ^ device
+                                -> VkCommandPool -- ^ commandPool
+                                                 -> VkCommandPoolResetFlags -- ^ flags
+                                                                            -> IO VkResult
+vkResetCommandPoolSafe = vkResetCommandPool
+
+{-# INLINE vkResetCommandPoolSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkResetCommandPool
+--   >     ( VkDevice device
+--   >     , VkCommandPool commandPool
+--   >     , VkCommandPoolResetFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandPool vkResetCommandPool registry at www.khronos.org>
+type HS_vkResetCommandPool =
+     VkDevice -- ^ device
+              -> VkCommandPool -- ^ commandPool
+                               -> VkCommandPoolResetFlags -- ^ flags
+                                                          -> IO VkResult
+
+type PFN_vkResetCommandPool = FunPtr HS_vkResetCommandPool
+
+foreign import ccall "dynamic" unwrapVkResetCommandPool ::
+               PFN_vkResetCommandPool -> HS_vkResetCommandPool
+
+instance VulkanProc "vkResetCommandPool" where
+        type VkProcType "vkResetCommandPool" = HS_vkResetCommandPool
+        vkProcSymbol = _VkResetCommandPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkResetCommandPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkAllocateCommandBuffers :: CString
+
+pattern VkAllocateCommandBuffers <-
+        (is_VkAllocateCommandBuffers -> True)
+  where VkAllocateCommandBuffers = _VkAllocateCommandBuffers
+
+{-# INLINE _VkAllocateCommandBuffers #-}
+
+_VkAllocateCommandBuffers :: CString
+_VkAllocateCommandBuffers = Ptr "vkAllocateCommandBuffers\NUL"##
+
+{-# INLINE is_VkAllocateCommandBuffers #-}
+
+is_VkAllocateCommandBuffers :: CString -> Bool
+is_VkAllocateCommandBuffers
+  = (EQ ==) . cmpCStrings _VkAllocateCommandBuffers
+
+type VkAllocateCommandBuffers = "vkAllocateCommandBuffers"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkAllocateCommandBuffers
+-- >     ( VkDevice device
+-- >     , const VkCommandBufferAllocateInfo* pAllocateInfo
+-- >     , VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateCommandBuffers vkAllocateCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkAllocateCommandBuffers"
+               vkAllocateCommandBuffers ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
+                                                 ->
+                   Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkAllocateCommandBuffers
+-- >     ( VkDevice device
+-- >     , const VkCommandBufferAllocateInfo* pAllocateInfo
+-- >     , VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateCommandBuffers vkAllocateCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateCommandBuffersSafe@ and @vkAllocateCommandBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateCommandBuffers <- vkGetDeviceProc @VkAllocateCommandBuffers vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateCommandBuffers <- vkGetProc @VkAllocateCommandBuffers
+--
+vkAllocateCommandBuffers ::
+                         VkDevice -- ^ device
+                                  ->
+                           Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
+                                                           ->
+                             Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                 -> IO VkResult
+vkAllocateCommandBuffers
+  = unsafeDupablePerformIO (vkGetProc @VkAllocateCommandBuffers)
+
+{-# NOINLINE vkAllocateCommandBuffers #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkAllocateCommandBuffers
+-- >     ( VkDevice device
+-- >     , const VkCommandBufferAllocateInfo* pAllocateInfo
+-- >     , VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateCommandBuffers vkAllocateCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkAllocateCommandBuffers"
+               vkAllocateCommandBuffersSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
+                                                 ->
+                   Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                       -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkAllocateCommandBuffers
+-- >     ( VkDevice device
+-- >     , const VkCommandBufferAllocateInfo* pAllocateInfo
+-- >     , VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateCommandBuffers vkAllocateCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAllocateCommandBuffersSafe@ and @vkAllocateCommandBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAllocateCommandBuffers <- vkGetDeviceProc @VkAllocateCommandBuffers vkDevice
+--
+-- or less efficient:
+--
+-- > myAllocateCommandBuffers <- vkGetProc @VkAllocateCommandBuffers
+--
+vkAllocateCommandBuffersSafe ::
+                             VkDevice -- ^ device
+                                      ->
+                               Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
+                                                               ->
+                                 Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                     -> IO VkResult
+vkAllocateCommandBuffersSafe = vkAllocateCommandBuffers
+
+{-# INLINE vkAllocateCommandBuffersSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkAllocateCommandBuffers
+--   >     ( VkDevice device
+--   >     , const VkCommandBufferAllocateInfo* pAllocateInfo
+--   >     , VkCommandBuffer* pCommandBuffers
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAllocateCommandBuffers vkAllocateCommandBuffers registry at www.khronos.org>
+type HS_vkAllocateCommandBuffers =
+     VkDevice -- ^ device
+              ->
+       Ptr VkCommandBufferAllocateInfo -- ^ pAllocateInfo
+                                       ->
+         Ptr VkCommandBuffer -- ^ pCommandBuffers
+                             -> IO VkResult
+
+type PFN_vkAllocateCommandBuffers =
+     FunPtr HS_vkAllocateCommandBuffers
+
+foreign import ccall "dynamic" unwrapVkAllocateCommandBuffers ::
+               PFN_vkAllocateCommandBuffers -> HS_vkAllocateCommandBuffers
+
+instance VulkanProc "vkAllocateCommandBuffers" where
+        type VkProcType "vkAllocateCommandBuffers" =
+             HS_vkAllocateCommandBuffers
+        vkProcSymbol = _VkAllocateCommandBuffers
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAllocateCommandBuffers
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkFreeCommandBuffers :: CString
+
+pattern VkFreeCommandBuffers <- (is_VkFreeCommandBuffers -> True)
+  where VkFreeCommandBuffers = _VkFreeCommandBuffers
+
+{-# INLINE _VkFreeCommandBuffers #-}
+
+_VkFreeCommandBuffers :: CString
+_VkFreeCommandBuffers = Ptr "vkFreeCommandBuffers\NUL"##
+
+{-# INLINE is_VkFreeCommandBuffers #-}
+
+is_VkFreeCommandBuffers :: CString -> Bool
+is_VkFreeCommandBuffers
+  = (EQ ==) . cmpCStrings _VkFreeCommandBuffers
+
+type VkFreeCommandBuffers = "vkFreeCommandBuffers"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkFreeCommandBuffers
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeCommandBuffers vkFreeCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkFreeCommandBuffers"
+               vkFreeCommandBuffers ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> Word32 -- ^ commandBufferCount
+                                                   -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                          -> IO ()
+
+##else
+-- |
+-- > void vkFreeCommandBuffers
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeCommandBuffers vkFreeCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeCommandBuffersSafe@ and @vkFreeCommandBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeCommandBuffers <- vkGetDeviceProc @VkFreeCommandBuffers vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeCommandBuffers <- vkGetProc @VkFreeCommandBuffers
+--
+vkFreeCommandBuffers ::
+                     VkDevice -- ^ device
+                              -> VkCommandPool -- ^ commandPool
+                                               -> Word32 -- ^ commandBufferCount
+                                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                                -> IO ()
+vkFreeCommandBuffers
+  = unsafeDupablePerformIO (vkGetProc @VkFreeCommandBuffers)
+
+{-# NOINLINE vkFreeCommandBuffers #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkFreeCommandBuffers
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeCommandBuffers vkFreeCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkFreeCommandBuffers"
+               vkFreeCommandBuffersSafe ::
+               VkDevice -- ^ device
+                        -> VkCommandPool -- ^ commandPool
+                                         -> Word32 -- ^ commandBufferCount
+                                                   -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                          -> IO ()
+
+##else
+-- |
+-- > void vkFreeCommandBuffers
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeCommandBuffers vkFreeCommandBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkFreeCommandBuffersSafe@ and @vkFreeCommandBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myFreeCommandBuffers <- vkGetDeviceProc @VkFreeCommandBuffers vkDevice
+--
+-- or less efficient:
+--
+-- > myFreeCommandBuffers <- vkGetProc @VkFreeCommandBuffers
+--
+vkFreeCommandBuffersSafe ::
+                         VkDevice -- ^ device
+                                  -> VkCommandPool -- ^ commandPool
+                                                   -> Word32 -- ^ commandBufferCount
+                                                             -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                                    -> IO ()
+vkFreeCommandBuffersSafe = vkFreeCommandBuffers
+
+{-# INLINE vkFreeCommandBuffersSafe #-}
+##endif
+
+-- | > void vkFreeCommandBuffers
+--   >     ( VkDevice device
+--   >     , VkCommandPool commandPool
+--   >     , uint32_t commandBufferCount
+--   >     , const VkCommandBuffer* pCommandBuffers
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkFreeCommandBuffers vkFreeCommandBuffers registry at www.khronos.org>
+type HS_vkFreeCommandBuffers =
+     VkDevice -- ^ device
+              -> VkCommandPool -- ^ commandPool
+                               -> Word32 -- ^ commandBufferCount
+                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                -> IO ()
+
+type PFN_vkFreeCommandBuffers = FunPtr HS_vkFreeCommandBuffers
+
+foreign import ccall "dynamic" unwrapVkFreeCommandBuffers ::
+               PFN_vkFreeCommandBuffers -> HS_vkFreeCommandBuffers
+
+instance VulkanProc "vkFreeCommandBuffers" where
+        type VkProcType "vkFreeCommandBuffers" = HS_vkFreeCommandBuffers
+        vkProcSymbol = _VkFreeCommandBuffers
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkFreeCommandBuffers
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkBeginCommandBuffer :: CString
+
+pattern VkBeginCommandBuffer <- (is_VkBeginCommandBuffer -> True)
+  where VkBeginCommandBuffer = _VkBeginCommandBuffer
+
+{-# INLINE _VkBeginCommandBuffer #-}
+
+_VkBeginCommandBuffer :: CString
+_VkBeginCommandBuffer = Ptr "vkBeginCommandBuffer\NUL"##
+
+{-# INLINE is_VkBeginCommandBuffer #-}
+
+is_VkBeginCommandBuffer :: CString -> Bool
+is_VkBeginCommandBuffer
+  = (EQ ==) . cmpCStrings _VkBeginCommandBuffer
+
+type VkBeginCommandBuffer = "vkBeginCommandBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBeginCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkCommandBufferBeginInfo* pBeginInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBeginCommandBuffer vkBeginCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkBeginCommandBuffer"
+               vkBeginCommandBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
+                                                               -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBeginCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkCommandBufferBeginInfo* pBeginInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBeginCommandBuffer vkBeginCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBeginCommandBufferSafe@ and @vkBeginCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBeginCommandBuffer <- vkGetInstanceProc @VkBeginCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myBeginCommandBuffer <- vkGetProc @VkBeginCommandBuffer
+--
+vkBeginCommandBuffer ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
+                                                                     -> IO VkResult
+vkBeginCommandBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkBeginCommandBuffer)
+
+{-# NOINLINE vkBeginCommandBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBeginCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkCommandBufferBeginInfo* pBeginInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBeginCommandBuffer vkBeginCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkBeginCommandBuffer"
+               vkBeginCommandBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
+                                                               -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBeginCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkCommandBufferBeginInfo* pBeginInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBeginCommandBuffer vkBeginCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBeginCommandBufferSafe@ and @vkBeginCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBeginCommandBuffer <- vkGetInstanceProc @VkBeginCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myBeginCommandBuffer <- vkGetProc @VkBeginCommandBuffer
+--
+vkBeginCommandBufferSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
+                                                                         -> IO VkResult
+vkBeginCommandBufferSafe = vkBeginCommandBuffer
+
+{-# INLINE vkBeginCommandBufferSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkBeginCommandBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , const VkCommandBufferBeginInfo* pBeginInfo
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBeginCommandBuffer vkBeginCommandBuffer registry at www.khronos.org>
+type HS_vkBeginCommandBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkCommandBufferBeginInfo -- ^ pBeginInfo
+                                                     -> IO VkResult
+
+type PFN_vkBeginCommandBuffer = FunPtr HS_vkBeginCommandBuffer
+
+foreign import ccall "dynamic" unwrapVkBeginCommandBuffer ::
+               PFN_vkBeginCommandBuffer -> HS_vkBeginCommandBuffer
+
+instance VulkanProc "vkBeginCommandBuffer" where
+        type VkProcType "vkBeginCommandBuffer" = HS_vkBeginCommandBuffer
+        vkProcSymbol = _VkBeginCommandBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBeginCommandBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkEndCommandBuffer :: CString
+
+pattern VkEndCommandBuffer <- (is_VkEndCommandBuffer -> True)
+  where VkEndCommandBuffer = _VkEndCommandBuffer
+
+{-# INLINE _VkEndCommandBuffer #-}
+
+_VkEndCommandBuffer :: CString
+_VkEndCommandBuffer = Ptr "vkEndCommandBuffer\NUL"##
+
+{-# INLINE is_VkEndCommandBuffer #-}
+
+is_VkEndCommandBuffer :: CString -> Bool
+is_VkEndCommandBuffer = (EQ ==) . cmpCStrings _VkEndCommandBuffer
+
+type VkEndCommandBuffer = "vkEndCommandBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEndCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEndCommandBuffer vkEndCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEndCommandBuffer" vkEndCommandBuffer
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEndCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEndCommandBuffer vkEndCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEndCommandBufferSafe@ and @vkEndCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEndCommandBuffer <- vkGetInstanceProc @VkEndCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myEndCommandBuffer <- vkGetProc @VkEndCommandBuffer
+--
+vkEndCommandBuffer :: VkCommandBuffer -- ^ commandBuffer
+                                      -> IO VkResult
+vkEndCommandBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkEndCommandBuffer)
+
+{-# NOINLINE vkEndCommandBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEndCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEndCommandBuffer vkEndCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEndCommandBuffer"
+               vkEndCommandBufferSafe :: VkCommandBuffer -- ^ commandBuffer
+                                                         -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkEndCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEndCommandBuffer vkEndCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEndCommandBufferSafe@ and @vkEndCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEndCommandBuffer <- vkGetInstanceProc @VkEndCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myEndCommandBuffer <- vkGetProc @VkEndCommandBuffer
+--
+vkEndCommandBufferSafe :: VkCommandBuffer -- ^ commandBuffer
+                                          -> IO VkResult
+vkEndCommandBufferSafe = vkEndCommandBuffer
+
+{-# INLINE vkEndCommandBufferSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkEndCommandBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEndCommandBuffer vkEndCommandBuffer registry at www.khronos.org>
+type HS_vkEndCommandBuffer = VkCommandBuffer -- ^ commandBuffer
+                                             -> IO VkResult
+
+type PFN_vkEndCommandBuffer = FunPtr HS_vkEndCommandBuffer
+
+foreign import ccall "dynamic" unwrapVkEndCommandBuffer ::
+               PFN_vkEndCommandBuffer -> HS_vkEndCommandBuffer
+
+instance VulkanProc "vkEndCommandBuffer" where
+        type VkProcType "vkEndCommandBuffer" = HS_vkEndCommandBuffer
+        vkProcSymbol = _VkEndCommandBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEndCommandBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkResetCommandBuffer :: CString
+
+pattern VkResetCommandBuffer <- (is_VkResetCommandBuffer -> True)
+  where VkResetCommandBuffer = _VkResetCommandBuffer
+
+{-# INLINE _VkResetCommandBuffer #-}
+
+_VkResetCommandBuffer :: CString
+_VkResetCommandBuffer = Ptr "vkResetCommandBuffer\NUL"##
+
+{-# INLINE is_VkResetCommandBuffer #-}
+
+is_VkResetCommandBuffer :: CString -> Bool
+is_VkResetCommandBuffer
+  = (EQ ==) . cmpCStrings _VkResetCommandBuffer
+
+type VkResetCommandBuffer = "vkResetCommandBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkCommandBufferResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandBuffer vkResetCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkResetCommandBuffer"
+               vkResetCommandBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkCommandBufferResetFlags -- ^ flags
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkCommandBufferResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandBuffer vkResetCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetCommandBufferSafe@ and @vkResetCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetCommandBuffer <- vkGetInstanceProc @VkResetCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myResetCommandBuffer <- vkGetProc @VkResetCommandBuffer
+--
+vkResetCommandBuffer ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> VkCommandBufferResetFlags -- ^ flags
+                                                                  -> IO VkResult
+vkResetCommandBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkResetCommandBuffer)
+
+{-# NOINLINE vkResetCommandBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkCommandBufferResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandBuffer vkResetCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkResetCommandBuffer"
+               vkResetCommandBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkCommandBufferResetFlags -- ^ flags
+                                                            -> IO VkResult
+
+##else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkResetCommandBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkCommandBufferResetFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandBuffer vkResetCommandBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkResetCommandBufferSafe@ and @vkResetCommandBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myResetCommandBuffer <- vkGetInstanceProc @VkResetCommandBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myResetCommandBuffer <- vkGetProc @VkResetCommandBuffer
+--
+vkResetCommandBufferSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> VkCommandBufferResetFlags -- ^ flags
+                                                                      -> IO VkResult
+vkResetCommandBufferSafe = vkResetCommandBuffer
+
+{-# INLINE vkResetCommandBufferSafe #-}
+##endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkResetCommandBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkCommandBufferResetFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkResetCommandBuffer vkResetCommandBuffer registry at www.khronos.org>
+type HS_vkResetCommandBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkCommandBufferResetFlags -- ^ flags
+                                                  -> IO VkResult
+
+type PFN_vkResetCommandBuffer = FunPtr HS_vkResetCommandBuffer
+
+foreign import ccall "dynamic" unwrapVkResetCommandBuffer ::
+               PFN_vkResetCommandBuffer -> HS_vkResetCommandBuffer
+
+instance VulkanProc "vkResetCommandBuffer" where
+        type VkProcType "vkResetCommandBuffer" = HS_vkResetCommandBuffer
+        vkProcSymbol = _VkResetCommandBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkResetCommandBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBindPipeline :: CString
+
+pattern VkCmdBindPipeline <- (is_VkCmdBindPipeline -> True)
+  where VkCmdBindPipeline = _VkCmdBindPipeline
+
+{-# INLINE _VkCmdBindPipeline #-}
+
+_VkCmdBindPipeline :: CString
+_VkCmdBindPipeline = Ptr "vkCmdBindPipeline\NUL"##
+
+{-# INLINE is_VkCmdBindPipeline #-}
+
+is_VkCmdBindPipeline :: CString -> Bool
+is_VkCmdBindPipeline = (EQ ==) . cmpCStrings _VkCmdBindPipeline
+
+type VkCmdBindPipeline = "vkCmdBindPipeline"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindPipeline
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipeline pipeline
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindPipeline vkCmdBindPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBindPipeline" vkCmdBindPipeline
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> VkPipelineBindPoint -- ^ pipelineBindPoint
+                                                         -> VkPipeline -- ^ pipeline
+                                                                       -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindPipeline
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipeline pipeline
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindPipeline vkCmdBindPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindPipelineSafe@ and @vkCmdBindPipeline@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindPipeline <- vkGetInstanceProc @VkCmdBindPipeline vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindPipeline <- vkGetProc @VkCmdBindPipeline
+--
+vkCmdBindPipeline ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  -> VkPipelineBindPoint -- ^ pipelineBindPoint
+                                                         -> VkPipeline -- ^ pipeline
+                                                                       -> IO ()
+vkCmdBindPipeline
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBindPipeline)
+
+{-# NOINLINE vkCmdBindPipeline #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindPipeline
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipeline pipeline
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindPipeline vkCmdBindPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBindPipeline" vkCmdBindPipelineSafe
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> VkPipelineBindPoint -- ^ pipelineBindPoint
+                                                         -> VkPipeline -- ^ pipeline
+                                                                       -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindPipeline
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipeline pipeline
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindPipeline vkCmdBindPipeline registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindPipelineSafe@ and @vkCmdBindPipeline@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindPipeline <- vkGetInstanceProc @VkCmdBindPipeline vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindPipeline <- vkGetProc @VkCmdBindPipeline
+--
+vkCmdBindPipelineSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      -> VkPipelineBindPoint -- ^ pipelineBindPoint
+                                                             -> VkPipeline -- ^ pipeline
+                                                                           -> IO ()
+vkCmdBindPipelineSafe = vkCmdBindPipeline
+
+{-# INLINE vkCmdBindPipelineSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdBindPipeline
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkPipelineBindPoint pipelineBindPoint
+--   >     , VkPipeline pipeline
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindPipeline vkCmdBindPipeline registry at www.khronos.org>
+type HS_vkCmdBindPipeline =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkPipelineBindPoint -- ^ pipelineBindPoint
+                                            -> VkPipeline -- ^ pipeline
+                                                          -> IO ()
+
+type PFN_vkCmdBindPipeline = FunPtr HS_vkCmdBindPipeline
+
+foreign import ccall "dynamic" unwrapVkCmdBindPipeline ::
+               PFN_vkCmdBindPipeline -> HS_vkCmdBindPipeline
+
+instance VulkanProc "vkCmdBindPipeline" where
+        type VkProcType "vkCmdBindPipeline" = HS_vkCmdBindPipeline
+        vkProcSymbol = _VkCmdBindPipeline
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBindPipeline
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetViewport :: CString
+
+pattern VkCmdSetViewport <- (is_VkCmdSetViewport -> True)
+  where VkCmdSetViewport = _VkCmdSetViewport
+
+{-# INLINE _VkCmdSetViewport #-}
+
+_VkCmdSetViewport :: CString
+_VkCmdSetViewport = Ptr "vkCmdSetViewport\NUL"##
+
+{-# INLINE is_VkCmdSetViewport #-}
+
+is_VkCmdSetViewport :: CString -> Bool
+is_VkCmdSetViewport = (EQ ==) . cmpCStrings _VkCmdSetViewport
+
+type VkCmdSetViewport = "vkCmdSetViewport"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetViewport
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstViewport
+-- >     , uint32_t viewportCount
+-- >     , const VkViewport* pViewports
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewport vkCmdSetViewport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetViewport" vkCmdSetViewport ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ firstViewport
+                                         -> Word32 -- ^ viewportCount
+                                                   -> Ptr VkViewport -- ^ pViewports
+                                                                     -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetViewport
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstViewport
+-- >     , uint32_t viewportCount
+-- >     , const VkViewport* pViewports
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewport vkCmdSetViewport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetViewportSafe@ and @vkCmdSetViewport@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetViewport <- vkGetInstanceProc @VkCmdSetViewport vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetViewport <- vkGetProc @VkCmdSetViewport
+--
+vkCmdSetViewport ::
+                 VkCommandBuffer -- ^ commandBuffer
+                                 -> Word32 -- ^ firstViewport
+                                           -> Word32 -- ^ viewportCount
+                                                     -> Ptr VkViewport -- ^ pViewports
+                                                                       -> IO ()
+vkCmdSetViewport
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetViewport)
+
+{-# NOINLINE vkCmdSetViewport #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetViewport
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstViewport
+-- >     , uint32_t viewportCount
+-- >     , const VkViewport* pViewports
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewport vkCmdSetViewport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetViewport" vkCmdSetViewportSafe
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> Word32 -- ^ firstViewport
+                                            -> Word32 -- ^ viewportCount
+                                                      -> Ptr VkViewport -- ^ pViewports
+                                                                        -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetViewport
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstViewport
+-- >     , uint32_t viewportCount
+-- >     , const VkViewport* pViewports
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewport vkCmdSetViewport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetViewportSafe@ and @vkCmdSetViewport@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetViewport <- vkGetInstanceProc @VkCmdSetViewport vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetViewport <- vkGetProc @VkCmdSetViewport
+--
+vkCmdSetViewportSafe ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> Word32 -- ^ firstViewport
+                                               -> Word32 -- ^ viewportCount
+                                                         -> Ptr VkViewport -- ^ pViewports
+                                                                           -> IO ()
+vkCmdSetViewportSafe = vkCmdSetViewport
+
+{-# INLINE vkCmdSetViewportSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetViewport
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t firstViewport
+--   >     , uint32_t viewportCount
+--   >     , const VkViewport* pViewports
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewport vkCmdSetViewport registry at www.khronos.org>
+type HS_vkCmdSetViewport =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ firstViewport
+                               -> Word32 -- ^ viewportCount
+                                         -> Ptr VkViewport -- ^ pViewports
+                                                           -> IO ()
+
+type PFN_vkCmdSetViewport = FunPtr HS_vkCmdSetViewport
+
+foreign import ccall "dynamic" unwrapVkCmdSetViewport ::
+               PFN_vkCmdSetViewport -> HS_vkCmdSetViewport
+
+instance VulkanProc "vkCmdSetViewport" where
+        type VkProcType "vkCmdSetViewport" = HS_vkCmdSetViewport
+        vkProcSymbol = _VkCmdSetViewport
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetViewport
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetScissor :: CString
+
+pattern VkCmdSetScissor <- (is_VkCmdSetScissor -> True)
+  where VkCmdSetScissor = _VkCmdSetScissor
+
+{-# INLINE _VkCmdSetScissor #-}
+
+_VkCmdSetScissor :: CString
+_VkCmdSetScissor = Ptr "vkCmdSetScissor\NUL"##
+
+{-# INLINE is_VkCmdSetScissor #-}
+
+is_VkCmdSetScissor :: CString -> Bool
+is_VkCmdSetScissor = (EQ ==) . cmpCStrings _VkCmdSetScissor
+
+type VkCmdSetScissor = "vkCmdSetScissor"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetScissor
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstScissor
+-- >     , uint32_t scissorCount
+-- >     , const VkRect2D* pScissors
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetScissor vkCmdSetScissor registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetScissor" vkCmdSetScissor ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ firstScissor
+                                         -> Word32 -- ^ scissorCount
+                                                   -> Ptr VkRect2D -- ^ pScissors
+                                                                   -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetScissor
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstScissor
+-- >     , uint32_t scissorCount
+-- >     , const VkRect2D* pScissors
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetScissor vkCmdSetScissor registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetScissorSafe@ and @vkCmdSetScissor@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetScissor <- vkGetInstanceProc @VkCmdSetScissor vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetScissor <- vkGetProc @VkCmdSetScissor
+--
+vkCmdSetScissor ::
+                VkCommandBuffer -- ^ commandBuffer
+                                -> Word32 -- ^ firstScissor
+                                          -> Word32 -- ^ scissorCount
+                                                    -> Ptr VkRect2D -- ^ pScissors
+                                                                    -> IO ()
+vkCmdSetScissor
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetScissor)
+
+{-# NOINLINE vkCmdSetScissor #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetScissor
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstScissor
+-- >     , uint32_t scissorCount
+-- >     , const VkRect2D* pScissors
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetScissor vkCmdSetScissor registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetScissor" vkCmdSetScissorSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ firstScissor
+                                         -> Word32 -- ^ scissorCount
+                                                   -> Ptr VkRect2D -- ^ pScissors
+                                                                   -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetScissor
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstScissor
+-- >     , uint32_t scissorCount
+-- >     , const VkRect2D* pScissors
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetScissor vkCmdSetScissor registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetScissorSafe@ and @vkCmdSetScissor@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetScissor <- vkGetInstanceProc @VkCmdSetScissor vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetScissor <- vkGetProc @VkCmdSetScissor
+--
+vkCmdSetScissorSafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    -> Word32 -- ^ firstScissor
+                                              -> Word32 -- ^ scissorCount
+                                                        -> Ptr VkRect2D -- ^ pScissors
+                                                                        -> IO ()
+vkCmdSetScissorSafe = vkCmdSetScissor
+
+{-# INLINE vkCmdSetScissorSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetScissor
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t firstScissor
+--   >     , uint32_t scissorCount
+--   >     , const VkRect2D* pScissors
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetScissor vkCmdSetScissor registry at www.khronos.org>
+type HS_vkCmdSetScissor =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ firstScissor
+                               -> Word32 -- ^ scissorCount
+                                         -> Ptr VkRect2D -- ^ pScissors
+                                                         -> IO ()
+
+type PFN_vkCmdSetScissor = FunPtr HS_vkCmdSetScissor
+
+foreign import ccall "dynamic" unwrapVkCmdSetScissor ::
+               PFN_vkCmdSetScissor -> HS_vkCmdSetScissor
+
+instance VulkanProc "vkCmdSetScissor" where
+        type VkProcType "vkCmdSetScissor" = HS_vkCmdSetScissor
+        vkProcSymbol = _VkCmdSetScissor
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetScissor
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetLineWidth :: CString
+
+pattern VkCmdSetLineWidth <- (is_VkCmdSetLineWidth -> True)
+  where VkCmdSetLineWidth = _VkCmdSetLineWidth
+
+{-# INLINE _VkCmdSetLineWidth #-}
+
+_VkCmdSetLineWidth :: CString
+_VkCmdSetLineWidth = Ptr "vkCmdSetLineWidth\NUL"##
+
+{-# INLINE is_VkCmdSetLineWidth #-}
+
+is_VkCmdSetLineWidth :: CString -> Bool
+is_VkCmdSetLineWidth = (EQ ==) . cmpCStrings _VkCmdSetLineWidth
+
+type VkCmdSetLineWidth = "vkCmdSetLineWidth"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetLineWidth
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float lineWidth
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetLineWidth vkCmdSetLineWidth registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetLineWidth" vkCmdSetLineWidth
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetLineWidth
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float lineWidth
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetLineWidth vkCmdSetLineWidth registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetLineWidthSafe@ and @vkCmdSetLineWidth@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetLineWidth <- vkGetInstanceProc @VkCmdSetLineWidth vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetLineWidth <- vkGetProc @VkCmdSetLineWidth
+--
+vkCmdSetLineWidth ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  -> #{type float} -> IO ()
+vkCmdSetLineWidth
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetLineWidth)
+
+{-# NOINLINE vkCmdSetLineWidth #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetLineWidth
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float lineWidth
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetLineWidth vkCmdSetLineWidth registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetLineWidth" vkCmdSetLineWidthSafe
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetLineWidth
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float lineWidth
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetLineWidth vkCmdSetLineWidth registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetLineWidthSafe@ and @vkCmdSetLineWidth@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetLineWidth <- vkGetInstanceProc @VkCmdSetLineWidth vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetLineWidth <- vkGetProc @VkCmdSetLineWidth
+--
+vkCmdSetLineWidthSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      -> #{type float} -> IO ()
+vkCmdSetLineWidthSafe = vkCmdSetLineWidth
+
+{-# INLINE vkCmdSetLineWidthSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetLineWidth
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , float lineWidth
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetLineWidth vkCmdSetLineWidth registry at www.khronos.org>
+type HS_vkCmdSetLineWidth =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> #{type float} -> IO ()
+
+type PFN_vkCmdSetLineWidth = FunPtr HS_vkCmdSetLineWidth
+
+foreign import ccall "dynamic" unwrapVkCmdSetLineWidth ::
+               PFN_vkCmdSetLineWidth -> HS_vkCmdSetLineWidth
+
+instance VulkanProc "vkCmdSetLineWidth" where
+        type VkProcType "vkCmdSetLineWidth" = HS_vkCmdSetLineWidth
+        vkProcSymbol = _VkCmdSetLineWidth
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetLineWidth
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetDepthBias :: CString
+
+pattern VkCmdSetDepthBias <- (is_VkCmdSetDepthBias -> True)
+  where VkCmdSetDepthBias = _VkCmdSetDepthBias
+
+{-# INLINE _VkCmdSetDepthBias #-}
+
+_VkCmdSetDepthBias :: CString
+_VkCmdSetDepthBias = Ptr "vkCmdSetDepthBias\NUL"##
+
+{-# INLINE is_VkCmdSetDepthBias #-}
+
+is_VkCmdSetDepthBias :: CString -> Bool
+is_VkCmdSetDepthBias = (EQ ==) . cmpCStrings _VkCmdSetDepthBias
+
+type VkCmdSetDepthBias = "vkCmdSetDepthBias"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBias
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float depthBiasConstantFactor
+-- >     , float depthBiasClamp
+-- >     , float depthBiasSlopeFactor
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBias vkCmdSetDepthBias registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetDepthBias" vkCmdSetDepthBias
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 #{type float} ->
+                   #{type float} -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBias
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float depthBiasConstantFactor
+-- >     , float depthBiasClamp
+-- >     , float depthBiasSlopeFactor
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBias vkCmdSetDepthBias registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDepthBiasSafe@ and @vkCmdSetDepthBias@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDepthBias <- vkGetInstanceProc @VkCmdSetDepthBias vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDepthBias <- vkGetProc @VkCmdSetDepthBias
+--
+vkCmdSetDepthBias ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  ->
+                    #{type float} ->
+                      #{type float} -> #{type float} -> IO ()
+vkCmdSetDepthBias
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetDepthBias)
+
+{-# NOINLINE vkCmdSetDepthBias #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBias
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float depthBiasConstantFactor
+-- >     , float depthBiasClamp
+-- >     , float depthBiasSlopeFactor
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBias vkCmdSetDepthBias registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetDepthBias" vkCmdSetDepthBiasSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 #{type float} ->
+                   #{type float} -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBias
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float depthBiasConstantFactor
+-- >     , float depthBiasClamp
+-- >     , float depthBiasSlopeFactor
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBias vkCmdSetDepthBias registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDepthBiasSafe@ and @vkCmdSetDepthBias@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDepthBias <- vkGetInstanceProc @VkCmdSetDepthBias vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDepthBias <- vkGetProc @VkCmdSetDepthBias
+--
+vkCmdSetDepthBiasSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        #{type float} ->
+                          #{type float} -> #{type float} -> IO ()
+vkCmdSetDepthBiasSafe = vkCmdSetDepthBias
+
+{-# INLINE vkCmdSetDepthBiasSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetDepthBias
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , float depthBiasConstantFactor
+--   >     , float depthBiasClamp
+--   >     , float depthBiasSlopeFactor
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBias vkCmdSetDepthBias registry at www.khronos.org>
+type HS_vkCmdSetDepthBias =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       #{type float} ->
+         #{type float} -> #{type float} -> IO ()
+
+type PFN_vkCmdSetDepthBias = FunPtr HS_vkCmdSetDepthBias
+
+foreign import ccall "dynamic" unwrapVkCmdSetDepthBias ::
+               PFN_vkCmdSetDepthBias -> HS_vkCmdSetDepthBias
+
+instance VulkanProc "vkCmdSetDepthBias" where
+        type VkProcType "vkCmdSetDepthBias" = HS_vkCmdSetDepthBias
+        vkProcSymbol = _VkCmdSetDepthBias
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetDepthBias
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetBlendConstants :: CString
+
+pattern VkCmdSetBlendConstants <-
+        (is_VkCmdSetBlendConstants -> True)
+  where VkCmdSetBlendConstants = _VkCmdSetBlendConstants
+
+{-# INLINE _VkCmdSetBlendConstants #-}
+
+_VkCmdSetBlendConstants :: CString
+_VkCmdSetBlendConstants = Ptr "vkCmdSetBlendConstants\NUL"##
+
+{-# INLINE is_VkCmdSetBlendConstants #-}
+
+is_VkCmdSetBlendConstants :: CString -> Bool
+is_VkCmdSetBlendConstants
+  = (EQ ==) . cmpCStrings _VkCmdSetBlendConstants
+
+type VkCmdSetBlendConstants = "vkCmdSetBlendConstants"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetBlendConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const float blendConstants[4]
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetBlendConstants vkCmdSetBlendConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetBlendConstants"
+               vkCmdSetBlendConstants ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Ptr #{type float} -- ^ blendConstants
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetBlendConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const float blendConstants[4]
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetBlendConstants vkCmdSetBlendConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetBlendConstantsSafe@ and @vkCmdSetBlendConstants@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetBlendConstants <- vkGetInstanceProc @VkCmdSetBlendConstants vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetBlendConstants <- vkGetProc @VkCmdSetBlendConstants
+--
+vkCmdSetBlendConstants ::
+                       VkCommandBuffer -- ^ commandBuffer
+                                       -> Ptr #{type float} -- ^ blendConstants
+                                                                        -> IO ()
+vkCmdSetBlendConstants
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetBlendConstants)
+
+{-# NOINLINE vkCmdSetBlendConstants #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetBlendConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const float blendConstants[4]
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetBlendConstants vkCmdSetBlendConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetBlendConstants"
+               vkCmdSetBlendConstantsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Ptr #{type float} -- ^ blendConstants
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetBlendConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const float blendConstants[4]
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetBlendConstants vkCmdSetBlendConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetBlendConstantsSafe@ and @vkCmdSetBlendConstants@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetBlendConstants <- vkGetInstanceProc @VkCmdSetBlendConstants vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetBlendConstants <- vkGetProc @VkCmdSetBlendConstants
+--
+vkCmdSetBlendConstantsSafe ::
+                           VkCommandBuffer -- ^ commandBuffer
+                                           -> Ptr #{type float} -- ^ blendConstants
+                                                                            -> IO ()
+vkCmdSetBlendConstantsSafe = vkCmdSetBlendConstants
+
+{-# INLINE vkCmdSetBlendConstantsSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetBlendConstants
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , const float blendConstants[4]
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetBlendConstants vkCmdSetBlendConstants registry at www.khronos.org>
+type HS_vkCmdSetBlendConstants =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr #{type float} -- ^ blendConstants
+                                                      -> IO ()
+
+type PFN_vkCmdSetBlendConstants = FunPtr HS_vkCmdSetBlendConstants
+
+foreign import ccall "dynamic" unwrapVkCmdSetBlendConstants ::
+               PFN_vkCmdSetBlendConstants -> HS_vkCmdSetBlendConstants
+
+instance VulkanProc "vkCmdSetBlendConstants" where
+        type VkProcType "vkCmdSetBlendConstants" =
+             HS_vkCmdSetBlendConstants
+        vkProcSymbol = _VkCmdSetBlendConstants
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetBlendConstants
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetDepthBounds :: CString
+
+pattern VkCmdSetDepthBounds <- (is_VkCmdSetDepthBounds -> True)
+  where VkCmdSetDepthBounds = _VkCmdSetDepthBounds
+
+{-# INLINE _VkCmdSetDepthBounds #-}
+
+_VkCmdSetDepthBounds :: CString
+_VkCmdSetDepthBounds = Ptr "vkCmdSetDepthBounds\NUL"##
+
+{-# INLINE is_VkCmdSetDepthBounds #-}
+
+is_VkCmdSetDepthBounds :: CString -> Bool
+is_VkCmdSetDepthBounds = (EQ ==) . cmpCStrings _VkCmdSetDepthBounds
+
+type VkCmdSetDepthBounds = "vkCmdSetDepthBounds"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBounds
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float minDepthBounds
+-- >     , float maxDepthBounds
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBounds vkCmdSetDepthBounds registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetDepthBounds"
+               vkCmdSetDepthBounds ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 #{type float} -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBounds
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float minDepthBounds
+-- >     , float maxDepthBounds
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBounds vkCmdSetDepthBounds registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDepthBoundsSafe@ and @vkCmdSetDepthBounds@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDepthBounds <- vkGetInstanceProc @VkCmdSetDepthBounds vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDepthBounds <- vkGetProc @VkCmdSetDepthBounds
+--
+vkCmdSetDepthBounds ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      #{type float} -> #{type float} -> IO ()
+vkCmdSetDepthBounds
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetDepthBounds)
+
+{-# NOINLINE vkCmdSetDepthBounds #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBounds
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float minDepthBounds
+-- >     , float maxDepthBounds
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBounds vkCmdSetDepthBounds registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetDepthBounds"
+               vkCmdSetDepthBoundsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 #{type float} -> #{type float} -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDepthBounds
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , float minDepthBounds
+-- >     , float maxDepthBounds
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBounds vkCmdSetDepthBounds registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDepthBoundsSafe@ and @vkCmdSetDepthBounds@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDepthBounds <- vkGetInstanceProc @VkCmdSetDepthBounds vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDepthBounds <- vkGetProc @VkCmdSetDepthBounds
+--
+vkCmdSetDepthBoundsSafe ::
+                        VkCommandBuffer -- ^ commandBuffer
+                                        ->
+                          #{type float} -> #{type float} -> IO ()
+vkCmdSetDepthBoundsSafe = vkCmdSetDepthBounds
+
+{-# INLINE vkCmdSetDepthBoundsSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetDepthBounds
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , float minDepthBounds
+--   >     , float maxDepthBounds
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDepthBounds vkCmdSetDepthBounds registry at www.khronos.org>
+type HS_vkCmdSetDepthBounds =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       #{type float} -> #{type float} -> IO ()
+
+type PFN_vkCmdSetDepthBounds = FunPtr HS_vkCmdSetDepthBounds
+
+foreign import ccall "dynamic" unwrapVkCmdSetDepthBounds ::
+               PFN_vkCmdSetDepthBounds -> HS_vkCmdSetDepthBounds
+
+instance VulkanProc "vkCmdSetDepthBounds" where
+        type VkProcType "vkCmdSetDepthBounds" = HS_vkCmdSetDepthBounds
+        vkProcSymbol = _VkCmdSetDepthBounds
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetDepthBounds
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetStencilCompareMask :: CString
+
+pattern VkCmdSetStencilCompareMask <-
+        (is_VkCmdSetStencilCompareMask -> True)
+  where VkCmdSetStencilCompareMask = _VkCmdSetStencilCompareMask
+
+{-# INLINE _VkCmdSetStencilCompareMask #-}
+
+_VkCmdSetStencilCompareMask :: CString
+_VkCmdSetStencilCompareMask = Ptr "vkCmdSetStencilCompareMask\NUL"##
+
+{-# INLINE is_VkCmdSetStencilCompareMask #-}
+
+is_VkCmdSetStencilCompareMask :: CString -> Bool
+is_VkCmdSetStencilCompareMask
+  = (EQ ==) . cmpCStrings _VkCmdSetStencilCompareMask
+
+type VkCmdSetStencilCompareMask = "vkCmdSetStencilCompareMask"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilCompareMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t compareMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetStencilCompareMask"
+               vkCmdSetStencilCompareMask ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ compareMask
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilCompareMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t compareMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilCompareMaskSafe@ and @vkCmdSetStencilCompareMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilCompareMask <- vkGetInstanceProc @VkCmdSetStencilCompareMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilCompareMask <- vkGetProc @VkCmdSetStencilCompareMask
+--
+vkCmdSetStencilCompareMask ::
+                           VkCommandBuffer -- ^ commandBuffer
+                                           -> VkStencilFaceFlags -- ^ faceMask
+                                                                 -> Word32 -- ^ compareMask
+                                                                           -> IO ()
+vkCmdSetStencilCompareMask
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetStencilCompareMask)
+
+{-# NOINLINE vkCmdSetStencilCompareMask #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilCompareMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t compareMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetStencilCompareMask"
+               vkCmdSetStencilCompareMaskSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ compareMask
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilCompareMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t compareMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilCompareMaskSafe@ and @vkCmdSetStencilCompareMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilCompareMask <- vkGetInstanceProc @VkCmdSetStencilCompareMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilCompareMask <- vkGetProc @VkCmdSetStencilCompareMask
+--
+vkCmdSetStencilCompareMaskSafe ::
+                               VkCommandBuffer -- ^ commandBuffer
+                                               -> VkStencilFaceFlags -- ^ faceMask
+                                                                     -> Word32 -- ^ compareMask
+                                                                               -> IO ()
+vkCmdSetStencilCompareMaskSafe = vkCmdSetStencilCompareMask
+
+{-# INLINE vkCmdSetStencilCompareMaskSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetStencilCompareMask
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkStencilFaceFlags faceMask
+--   >     , uint32_t compareMask
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask registry at www.khronos.org>
+type HS_vkCmdSetStencilCompareMask =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkStencilFaceFlags -- ^ faceMask
+                                           -> Word32 -- ^ compareMask
+                                                     -> IO ()
+
+type PFN_vkCmdSetStencilCompareMask =
+     FunPtr HS_vkCmdSetStencilCompareMask
+
+foreign import ccall "dynamic" unwrapVkCmdSetStencilCompareMask ::
+               PFN_vkCmdSetStencilCompareMask -> HS_vkCmdSetStencilCompareMask
+
+instance VulkanProc "vkCmdSetStencilCompareMask" where
+        type VkProcType "vkCmdSetStencilCompareMask" =
+             HS_vkCmdSetStencilCompareMask
+        vkProcSymbol = _VkCmdSetStencilCompareMask
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetStencilCompareMask
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetStencilWriteMask :: CString
+
+pattern VkCmdSetStencilWriteMask <-
+        (is_VkCmdSetStencilWriteMask -> True)
+  where VkCmdSetStencilWriteMask = _VkCmdSetStencilWriteMask
+
+{-# INLINE _VkCmdSetStencilWriteMask #-}
+
+_VkCmdSetStencilWriteMask :: CString
+_VkCmdSetStencilWriteMask = Ptr "vkCmdSetStencilWriteMask\NUL"##
+
+{-# INLINE is_VkCmdSetStencilWriteMask #-}
+
+is_VkCmdSetStencilWriteMask :: CString -> Bool
+is_VkCmdSetStencilWriteMask
+  = (EQ ==) . cmpCStrings _VkCmdSetStencilWriteMask
+
+type VkCmdSetStencilWriteMask = "vkCmdSetStencilWriteMask"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilWriteMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t writeMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetStencilWriteMask"
+               vkCmdSetStencilWriteMask ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ writeMask
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilWriteMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t writeMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilWriteMaskSafe@ and @vkCmdSetStencilWriteMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilWriteMask <- vkGetInstanceProc @VkCmdSetStencilWriteMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilWriteMask <- vkGetProc @VkCmdSetStencilWriteMask
+--
+vkCmdSetStencilWriteMask ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> VkStencilFaceFlags -- ^ faceMask
+                                                               -> Word32 -- ^ writeMask
+                                                                         -> IO ()
+vkCmdSetStencilWriteMask
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetStencilWriteMask)
+
+{-# NOINLINE vkCmdSetStencilWriteMask #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilWriteMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t writeMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetStencilWriteMask"
+               vkCmdSetStencilWriteMaskSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ writeMask
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilWriteMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t writeMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilWriteMaskSafe@ and @vkCmdSetStencilWriteMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilWriteMask <- vkGetInstanceProc @VkCmdSetStencilWriteMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilWriteMask <- vkGetProc @VkCmdSetStencilWriteMask
+--
+vkCmdSetStencilWriteMaskSafe ::
+                             VkCommandBuffer -- ^ commandBuffer
+                                             -> VkStencilFaceFlags -- ^ faceMask
+                                                                   -> Word32 -- ^ writeMask
+                                                                             -> IO ()
+vkCmdSetStencilWriteMaskSafe = vkCmdSetStencilWriteMask
+
+{-# INLINE vkCmdSetStencilWriteMaskSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetStencilWriteMask
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkStencilFaceFlags faceMask
+--   >     , uint32_t writeMask
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask registry at www.khronos.org>
+type HS_vkCmdSetStencilWriteMask =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkStencilFaceFlags -- ^ faceMask
+                                           -> Word32 -- ^ writeMask
+                                                     -> IO ()
+
+type PFN_vkCmdSetStencilWriteMask =
+     FunPtr HS_vkCmdSetStencilWriteMask
+
+foreign import ccall "dynamic" unwrapVkCmdSetStencilWriteMask ::
+               PFN_vkCmdSetStencilWriteMask -> HS_vkCmdSetStencilWriteMask
+
+instance VulkanProc "vkCmdSetStencilWriteMask" where
+        type VkProcType "vkCmdSetStencilWriteMask" =
+             HS_vkCmdSetStencilWriteMask
+        vkProcSymbol = _VkCmdSetStencilWriteMask
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetStencilWriteMask
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetStencilReference :: CString
+
+pattern VkCmdSetStencilReference <-
+        (is_VkCmdSetStencilReference -> True)
+  where VkCmdSetStencilReference = _VkCmdSetStencilReference
+
+{-# INLINE _VkCmdSetStencilReference #-}
+
+_VkCmdSetStencilReference :: CString
+_VkCmdSetStencilReference = Ptr "vkCmdSetStencilReference\NUL"##
+
+{-# INLINE is_VkCmdSetStencilReference #-}
+
+is_VkCmdSetStencilReference :: CString -> Bool
+is_VkCmdSetStencilReference
+  = (EQ ==) . cmpCStrings _VkCmdSetStencilReference
+
+type VkCmdSetStencilReference = "vkCmdSetStencilReference"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilReference
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t reference
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilReference vkCmdSetStencilReference registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetStencilReference"
+               vkCmdSetStencilReference ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ reference
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilReference
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t reference
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilReference vkCmdSetStencilReference registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilReferenceSafe@ and @vkCmdSetStencilReference@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilReference <- vkGetInstanceProc @VkCmdSetStencilReference vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilReference <- vkGetProc @VkCmdSetStencilReference
+--
+vkCmdSetStencilReference ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> VkStencilFaceFlags -- ^ faceMask
+                                                               -> Word32 -- ^ reference
+                                                                         -> IO ()
+vkCmdSetStencilReference
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetStencilReference)
+
+{-# NOINLINE vkCmdSetStencilReference #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilReference
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t reference
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilReference vkCmdSetStencilReference registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetStencilReference"
+               vkCmdSetStencilReferenceSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkStencilFaceFlags -- ^ faceMask
+                                                     -> Word32 -- ^ reference
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetStencilReference
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkStencilFaceFlags faceMask
+-- >     , uint32_t reference
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilReference vkCmdSetStencilReference registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetStencilReferenceSafe@ and @vkCmdSetStencilReference@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetStencilReference <- vkGetInstanceProc @VkCmdSetStencilReference vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetStencilReference <- vkGetProc @VkCmdSetStencilReference
+--
+vkCmdSetStencilReferenceSafe ::
+                             VkCommandBuffer -- ^ commandBuffer
+                                             -> VkStencilFaceFlags -- ^ faceMask
+                                                                   -> Word32 -- ^ reference
+                                                                             -> IO ()
+vkCmdSetStencilReferenceSafe = vkCmdSetStencilReference
+
+{-# INLINE vkCmdSetStencilReferenceSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetStencilReference
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkStencilFaceFlags faceMask
+--   >     , uint32_t reference
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetStencilReference vkCmdSetStencilReference registry at www.khronos.org>
+type HS_vkCmdSetStencilReference =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkStencilFaceFlags -- ^ faceMask
+                                           -> Word32 -- ^ reference
+                                                     -> IO ()
+
+type PFN_vkCmdSetStencilReference =
+     FunPtr HS_vkCmdSetStencilReference
+
+foreign import ccall "dynamic" unwrapVkCmdSetStencilReference ::
+               PFN_vkCmdSetStencilReference -> HS_vkCmdSetStencilReference
+
+instance VulkanProc "vkCmdSetStencilReference" where
+        type VkProcType "vkCmdSetStencilReference" =
+             HS_vkCmdSetStencilReference
+        vkProcSymbol = _VkCmdSetStencilReference
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetStencilReference
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBindDescriptorSets :: CString
+
+pattern VkCmdBindDescriptorSets <-
+        (is_VkCmdBindDescriptorSets -> True)
+  where VkCmdBindDescriptorSets = _VkCmdBindDescriptorSets
+
+{-# INLINE _VkCmdBindDescriptorSets #-}
+
+_VkCmdBindDescriptorSets :: CString
+_VkCmdBindDescriptorSets = Ptr "vkCmdBindDescriptorSets\NUL"##
+
+{-# INLINE is_VkCmdBindDescriptorSets #-}
+
+is_VkCmdBindDescriptorSets :: CString -> Bool
+is_VkCmdBindDescriptorSets
+  = (EQ ==) . cmpCStrings _VkCmdBindDescriptorSets
+
+type VkCmdBindDescriptorSets = "vkCmdBindDescriptorSets"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindDescriptorSets
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipelineLayout layout
+-- >     , uint32_t firstSet
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     , uint32_t dynamicOffsetCount
+-- >     , const uint32_t* pDynamicOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindDescriptorSets vkCmdBindDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBindDescriptorSets"
+               vkCmdBindDescriptorSets ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineBindPoint -- ^ pipelineBindPoint
+                                     ->
+                   VkPipelineLayout -- ^ layout
+                                    ->
+                     Word32 -- ^ firstSet
+                            ->
+                       Word32 -- ^ descriptorSetCount
+                              -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                     -> Word32 -- ^ dynamicOffsetCount
+                                                               -> Ptr Word32 -- ^ pDynamicOffsets
+                                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindDescriptorSets
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipelineLayout layout
+-- >     , uint32_t firstSet
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     , uint32_t dynamicOffsetCount
+-- >     , const uint32_t* pDynamicOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindDescriptorSets vkCmdBindDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindDescriptorSetsSafe@ and @vkCmdBindDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindDescriptorSets <- vkGetInstanceProc @VkCmdBindDescriptorSets vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindDescriptorSets <- vkGetProc @VkCmdBindDescriptorSets
+--
+vkCmdBindDescriptorSets ::
+                        VkCommandBuffer -- ^ commandBuffer
+                                        ->
+                          VkPipelineBindPoint -- ^ pipelineBindPoint
+                                              ->
+                            VkPipelineLayout -- ^ layout
+                                             ->
+                              Word32 -- ^ firstSet
+                                     ->
+                                Word32 -- ^ descriptorSetCount
+                                       -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                              -> Word32 -- ^ dynamicOffsetCount
+                                                                        -> Ptr Word32 -- ^ pDynamicOffsets
+                                                                                      -> IO ()
+vkCmdBindDescriptorSets
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBindDescriptorSets)
+
+{-# NOINLINE vkCmdBindDescriptorSets #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindDescriptorSets
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipelineLayout layout
+-- >     , uint32_t firstSet
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     , uint32_t dynamicOffsetCount
+-- >     , const uint32_t* pDynamicOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindDescriptorSets vkCmdBindDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBindDescriptorSets"
+               vkCmdBindDescriptorSetsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineBindPoint -- ^ pipelineBindPoint
+                                     ->
+                   VkPipelineLayout -- ^ layout
+                                    ->
+                     Word32 -- ^ firstSet
+                            ->
+                       Word32 -- ^ descriptorSetCount
+                              -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                     -> Word32 -- ^ dynamicOffsetCount
+                                                               -> Ptr Word32 -- ^ pDynamicOffsets
+                                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindDescriptorSets
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineBindPoint pipelineBindPoint
+-- >     , VkPipelineLayout layout
+-- >     , uint32_t firstSet
+-- >     , uint32_t descriptorSetCount
+-- >     , const VkDescriptorSet* pDescriptorSets
+-- >     , uint32_t dynamicOffsetCount
+-- >     , const uint32_t* pDynamicOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindDescriptorSets vkCmdBindDescriptorSets registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindDescriptorSetsSafe@ and @vkCmdBindDescriptorSets@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindDescriptorSets <- vkGetInstanceProc @VkCmdBindDescriptorSets vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindDescriptorSets <- vkGetProc @VkCmdBindDescriptorSets
+--
+vkCmdBindDescriptorSetsSafe ::
+                            VkCommandBuffer -- ^ commandBuffer
+                                            ->
+                              VkPipelineBindPoint -- ^ pipelineBindPoint
+                                                  ->
+                                VkPipelineLayout -- ^ layout
+                                                 ->
+                                  Word32 -- ^ firstSet
+                                         ->
+                                    Word32 -- ^ descriptorSetCount
+                                           -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                                                  -> Word32 -- ^ dynamicOffsetCount
+                                                                            -> Ptr Word32 -- ^ pDynamicOffsets
+                                                                                          -> IO ()
+vkCmdBindDescriptorSetsSafe = vkCmdBindDescriptorSets
+
+{-# INLINE vkCmdBindDescriptorSetsSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdBindDescriptorSets
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkPipelineBindPoint pipelineBindPoint
+--   >     , VkPipelineLayout layout
+--   >     , uint32_t firstSet
+--   >     , uint32_t descriptorSetCount
+--   >     , const VkDescriptorSet* pDescriptorSets
+--   >     , uint32_t dynamicOffsetCount
+--   >     , const uint32_t* pDynamicOffsets
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindDescriptorSets vkCmdBindDescriptorSets registry at www.khronos.org>
+type HS_vkCmdBindDescriptorSets =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineBindPoint -- ^ pipelineBindPoint
+                           ->
+         VkPipelineLayout -- ^ layout
+                          ->
+           Word32 -- ^ firstSet
+                  ->
+             Word32 -- ^ descriptorSetCount
+                    -> Ptr VkDescriptorSet -- ^ pDescriptorSets
+                                           -> Word32 -- ^ dynamicOffsetCount
+                                                     -> Ptr Word32 -- ^ pDynamicOffsets
+                                                                   -> IO ()
+
+type PFN_vkCmdBindDescriptorSets =
+     FunPtr HS_vkCmdBindDescriptorSets
+
+foreign import ccall "dynamic" unwrapVkCmdBindDescriptorSets ::
+               PFN_vkCmdBindDescriptorSets -> HS_vkCmdBindDescriptorSets
+
+instance VulkanProc "vkCmdBindDescriptorSets" where
+        type VkProcType "vkCmdBindDescriptorSets" =
+             HS_vkCmdBindDescriptorSets
+        vkProcSymbol = _VkCmdBindDescriptorSets
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBindDescriptorSets
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBindIndexBuffer :: CString
+
+pattern VkCmdBindIndexBuffer <- (is_VkCmdBindIndexBuffer -> True)
+  where VkCmdBindIndexBuffer = _VkCmdBindIndexBuffer
+
+{-# INLINE _VkCmdBindIndexBuffer #-}
+
+_VkCmdBindIndexBuffer :: CString
+_VkCmdBindIndexBuffer = Ptr "vkCmdBindIndexBuffer\NUL"##
+
+{-# INLINE is_VkCmdBindIndexBuffer #-}
+
+is_VkCmdBindIndexBuffer :: CString -> Bool
+is_VkCmdBindIndexBuffer
+  = (EQ ==) . cmpCStrings _VkCmdBindIndexBuffer
+
+type VkCmdBindIndexBuffer = "vkCmdBindIndexBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindIndexBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , VkIndexType indexType
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindIndexBuffer vkCmdBindIndexBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBindIndexBuffer"
+               vkCmdBindIndexBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkBuffer -- ^ buffer
+                                           -> VkDeviceSize -- ^ offset
+                                                           -> VkIndexType -- ^ indexType
+                                                                          -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindIndexBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , VkIndexType indexType
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindIndexBuffer vkCmdBindIndexBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindIndexBufferSafe@ and @vkCmdBindIndexBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindIndexBuffer <- vkGetInstanceProc @VkCmdBindIndexBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindIndexBuffer <- vkGetProc @VkCmdBindIndexBuffer
+--
+vkCmdBindIndexBuffer ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> VkBuffer -- ^ buffer
+                                                 -> VkDeviceSize -- ^ offset
+                                                                 -> VkIndexType -- ^ indexType
+                                                                                -> IO ()
+vkCmdBindIndexBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBindIndexBuffer)
+
+{-# NOINLINE vkCmdBindIndexBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindIndexBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , VkIndexType indexType
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindIndexBuffer vkCmdBindIndexBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBindIndexBuffer"
+               vkCmdBindIndexBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkBuffer -- ^ buffer
+                                           -> VkDeviceSize -- ^ offset
+                                                           -> VkIndexType -- ^ indexType
+                                                                          -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindIndexBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , VkIndexType indexType
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindIndexBuffer vkCmdBindIndexBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindIndexBufferSafe@ and @vkCmdBindIndexBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindIndexBuffer <- vkGetInstanceProc @VkCmdBindIndexBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindIndexBuffer <- vkGetProc @VkCmdBindIndexBuffer
+--
+vkCmdBindIndexBufferSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> VkBuffer -- ^ buffer
+                                                     -> VkDeviceSize -- ^ offset
+                                                                     -> VkIndexType -- ^ indexType
+                                                                                    -> IO ()
+vkCmdBindIndexBufferSafe = vkCmdBindIndexBuffer
+
+{-# INLINE vkCmdBindIndexBufferSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdBindIndexBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer buffer
+--   >     , VkDeviceSize offset
+--   >     , VkIndexType indexType
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindIndexBuffer vkCmdBindIndexBuffer registry at www.khronos.org>
+type HS_vkCmdBindIndexBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkBuffer -- ^ buffer
+                                 -> VkDeviceSize -- ^ offset
+                                                 -> VkIndexType -- ^ indexType
+                                                                -> IO ()
+
+type PFN_vkCmdBindIndexBuffer = FunPtr HS_vkCmdBindIndexBuffer
+
+foreign import ccall "dynamic" unwrapVkCmdBindIndexBuffer ::
+               PFN_vkCmdBindIndexBuffer -> HS_vkCmdBindIndexBuffer
+
+instance VulkanProc "vkCmdBindIndexBuffer" where
+        type VkProcType "vkCmdBindIndexBuffer" = HS_vkCmdBindIndexBuffer
+        vkProcSymbol = _VkCmdBindIndexBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBindIndexBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBindVertexBuffers :: CString
+
+pattern VkCmdBindVertexBuffers <-
+        (is_VkCmdBindVertexBuffers -> True)
+  where VkCmdBindVertexBuffers = _VkCmdBindVertexBuffers
+
+{-# INLINE _VkCmdBindVertexBuffers #-}
+
+_VkCmdBindVertexBuffers :: CString
+_VkCmdBindVertexBuffers = Ptr "vkCmdBindVertexBuffers\NUL"##
+
+{-# INLINE is_VkCmdBindVertexBuffers #-}
+
+is_VkCmdBindVertexBuffers :: CString -> Bool
+is_VkCmdBindVertexBuffers
+  = (EQ ==) . cmpCStrings _VkCmdBindVertexBuffers
+
+type VkCmdBindVertexBuffers = "vkCmdBindVertexBuffers"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindVertexBuffers
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstBinding
+-- >     , uint32_t bindingCount
+-- >     , const VkBuffer* pBuffers
+-- >     , const VkDeviceSize* pOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindVertexBuffers vkCmdBindVertexBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBindVertexBuffers"
+               vkCmdBindVertexBuffers ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ firstBinding
+                        -> Word32 -- ^ bindingCount
+                                  -> Ptr VkBuffer -- ^ pBuffers
+                                                  -> Ptr VkDeviceSize -- ^ pOffsets
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindVertexBuffers
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstBinding
+-- >     , uint32_t bindingCount
+-- >     , const VkBuffer* pBuffers
+-- >     , const VkDeviceSize* pOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindVertexBuffers vkCmdBindVertexBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindVertexBuffersSafe@ and @vkCmdBindVertexBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindVertexBuffers <- vkGetInstanceProc @VkCmdBindVertexBuffers vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindVertexBuffers <- vkGetProc @VkCmdBindVertexBuffers
+--
+vkCmdBindVertexBuffers ::
+                       VkCommandBuffer -- ^ commandBuffer
+                                       ->
+                         Word32 -- ^ firstBinding
+                                -> Word32 -- ^ bindingCount
+                                          -> Ptr VkBuffer -- ^ pBuffers
+                                                          -> Ptr VkDeviceSize -- ^ pOffsets
+                                                                              -> IO ()
+vkCmdBindVertexBuffers
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBindVertexBuffers)
+
+{-# NOINLINE vkCmdBindVertexBuffers #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindVertexBuffers
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstBinding
+-- >     , uint32_t bindingCount
+-- >     , const VkBuffer* pBuffers
+-- >     , const VkDeviceSize* pOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindVertexBuffers vkCmdBindVertexBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBindVertexBuffers"
+               vkCmdBindVertexBuffersSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ firstBinding
+                        -> Word32 -- ^ bindingCount
+                                  -> Ptr VkBuffer -- ^ pBuffers
+                                                  -> Ptr VkDeviceSize -- ^ pOffsets
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBindVertexBuffers
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t firstBinding
+-- >     , uint32_t bindingCount
+-- >     , const VkBuffer* pBuffers
+-- >     , const VkDeviceSize* pOffsets
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindVertexBuffers vkCmdBindVertexBuffers registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBindVertexBuffersSafe@ and @vkCmdBindVertexBuffers@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBindVertexBuffers <- vkGetInstanceProc @VkCmdBindVertexBuffers vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBindVertexBuffers <- vkGetProc @VkCmdBindVertexBuffers
+--
+vkCmdBindVertexBuffersSafe ::
+                           VkCommandBuffer -- ^ commandBuffer
+                                           ->
+                             Word32 -- ^ firstBinding
+                                    -> Word32 -- ^ bindingCount
+                                              -> Ptr VkBuffer -- ^ pBuffers
+                                                              -> Ptr VkDeviceSize -- ^ pOffsets
+                                                                                  -> IO ()
+vkCmdBindVertexBuffersSafe = vkCmdBindVertexBuffers
+
+{-# INLINE vkCmdBindVertexBuffersSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdBindVertexBuffers
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t firstBinding
+--   >     , uint32_t bindingCount
+--   >     , const VkBuffer* pBuffers
+--   >     , const VkDeviceSize* pOffsets
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBindVertexBuffers vkCmdBindVertexBuffers registry at www.khronos.org>
+type HS_vkCmdBindVertexBuffers =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ firstBinding
+              -> Word32 -- ^ bindingCount
+                        -> Ptr VkBuffer -- ^ pBuffers
+                                        -> Ptr VkDeviceSize -- ^ pOffsets
+                                                            -> IO ()
+
+type PFN_vkCmdBindVertexBuffers = FunPtr HS_vkCmdBindVertexBuffers
+
+foreign import ccall "dynamic" unwrapVkCmdBindVertexBuffers ::
+               PFN_vkCmdBindVertexBuffers -> HS_vkCmdBindVertexBuffers
+
+instance VulkanProc "vkCmdBindVertexBuffers" where
+        type VkProcType "vkCmdBindVertexBuffers" =
+             HS_vkCmdBindVertexBuffers
+        vkProcSymbol = _VkCmdBindVertexBuffers
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBindVertexBuffers
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDraw :: CString
+
+pattern VkCmdDraw <- (is_VkCmdDraw -> True)
+  where VkCmdDraw = _VkCmdDraw
+
+{-# INLINE _VkCmdDraw #-}
+
+_VkCmdDraw :: CString
+_VkCmdDraw = Ptr "vkCmdDraw\NUL"##
+
+{-# INLINE is_VkCmdDraw #-}
+
+is_VkCmdDraw :: CString -> Bool
+is_VkCmdDraw = (EQ ==) . cmpCStrings _VkCmdDraw
+
+type VkCmdDraw = "vkCmdDraw"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDraw
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t vertexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstVertex
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDraw vkCmdDraw registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDraw" vkCmdDraw ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ vertexCount
+                                         -> Word32 -- ^ instanceCount
+                                                   -> Word32 -- ^ firstVertex
+                                                             -> Word32 -- ^ firstInstance
+                                                                       -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDraw
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t vertexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstVertex
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDraw vkCmdDraw registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawSafe@ and @vkCmdDraw@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDraw <- vkGetInstanceProc @VkCmdDraw vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDraw <- vkGetProc @VkCmdDraw
+--
+vkCmdDraw ::
+          VkCommandBuffer -- ^ commandBuffer
+                          -> Word32 -- ^ vertexCount
+                                    -> Word32 -- ^ instanceCount
+                                              -> Word32 -- ^ firstVertex
+                                                        -> Word32 -- ^ firstInstance
+                                                                  -> IO ()
+vkCmdDraw = unsafeDupablePerformIO (vkGetProc @VkCmdDraw)
+
+{-# NOINLINE vkCmdDraw #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDraw
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t vertexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstVertex
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDraw vkCmdDraw registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDraw" vkCmdDrawSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ vertexCount
+                                         -> Word32 -- ^ instanceCount
+                                                   -> Word32 -- ^ firstVertex
+                                                             -> Word32 -- ^ firstInstance
+                                                                       -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDraw
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t vertexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstVertex
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDraw vkCmdDraw registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawSafe@ and @vkCmdDraw@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDraw <- vkGetInstanceProc @VkCmdDraw vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDraw <- vkGetProc @VkCmdDraw
+--
+vkCmdDrawSafe ::
+              VkCommandBuffer -- ^ commandBuffer
+                              -> Word32 -- ^ vertexCount
+                                        -> Word32 -- ^ instanceCount
+                                                  -> Word32 -- ^ firstVertex
+                                                            -> Word32 -- ^ firstInstance
+                                                                      -> IO ()
+vkCmdDrawSafe = vkCmdDraw
+
+{-# INLINE vkCmdDrawSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdDraw
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t vertexCount
+--   >     , uint32_t instanceCount
+--   >     , uint32_t firstVertex
+--   >     , uint32_t firstInstance
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDraw vkCmdDraw registry at www.khronos.org>
+type HS_vkCmdDraw =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ vertexCount
+                               -> Word32 -- ^ instanceCount
+                                         -> Word32 -- ^ firstVertex
+                                                   -> Word32 -- ^ firstInstance
+                                                             -> IO ()
+
+type PFN_vkCmdDraw = FunPtr HS_vkCmdDraw
+
+foreign import ccall "dynamic" unwrapVkCmdDraw ::
+               PFN_vkCmdDraw -> HS_vkCmdDraw
+
+instance VulkanProc "vkCmdDraw" where
+        type VkProcType "vkCmdDraw" = HS_vkCmdDraw
+        vkProcSymbol = _VkCmdDraw
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDraw
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDrawIndexed :: CString
+
+pattern VkCmdDrawIndexed <- (is_VkCmdDrawIndexed -> True)
+  where VkCmdDrawIndexed = _VkCmdDrawIndexed
+
+{-# INLINE _VkCmdDrawIndexed #-}
+
+_VkCmdDrawIndexed :: CString
+_VkCmdDrawIndexed = Ptr "vkCmdDrawIndexed\NUL"##
+
+{-# INLINE is_VkCmdDrawIndexed #-}
+
+is_VkCmdDrawIndexed :: CString -> Bool
+is_VkCmdDrawIndexed = (EQ ==) . cmpCStrings _VkCmdDrawIndexed
+
+type VkCmdDrawIndexed = "vkCmdDrawIndexed"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexed
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t indexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstIndex
+-- >     , int32_t vertexOffset
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexed vkCmdDrawIndexed registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDrawIndexed" vkCmdDrawIndexed ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ indexCount
+                        -> Word32 -- ^ instanceCount
+                                  -> Word32 -- ^ firstIndex
+                                            -> Int32 -- ^ vertexOffset
+                                                     -> Word32 -- ^ firstInstance
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexed
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t indexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstIndex
+-- >     , int32_t vertexOffset
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexed vkCmdDrawIndexed registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndexedSafe@ and @vkCmdDrawIndexed@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndexed <- vkGetInstanceProc @VkCmdDrawIndexed vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndexed <- vkGetProc @VkCmdDrawIndexed
+--
+vkCmdDrawIndexed ::
+                 VkCommandBuffer -- ^ commandBuffer
+                                 ->
+                   Word32 -- ^ indexCount
+                          -> Word32 -- ^ instanceCount
+                                    -> Word32 -- ^ firstIndex
+                                              -> Int32 -- ^ vertexOffset
+                                                       -> Word32 -- ^ firstInstance
+                                                                 -> IO ()
+vkCmdDrawIndexed
+  = unsafeDupablePerformIO (vkGetProc @VkCmdDrawIndexed)
+
+{-# NOINLINE vkCmdDrawIndexed #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexed
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t indexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstIndex
+-- >     , int32_t vertexOffset
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexed vkCmdDrawIndexed registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDrawIndexed" vkCmdDrawIndexedSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ indexCount
+                        -> Word32 -- ^ instanceCount
+                                  -> Word32 -- ^ firstIndex
+                                            -> Int32 -- ^ vertexOffset
+                                                     -> Word32 -- ^ firstInstance
+                                                               -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexed
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t indexCount
+-- >     , uint32_t instanceCount
+-- >     , uint32_t firstIndex
+-- >     , int32_t vertexOffset
+-- >     , uint32_t firstInstance
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexed vkCmdDrawIndexed registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndexedSafe@ and @vkCmdDrawIndexed@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndexed <- vkGetInstanceProc @VkCmdDrawIndexed vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndexed <- vkGetProc @VkCmdDrawIndexed
+--
+vkCmdDrawIndexedSafe ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     ->
+                       Word32 -- ^ indexCount
+                              -> Word32 -- ^ instanceCount
+                                        -> Word32 -- ^ firstIndex
+                                                  -> Int32 -- ^ vertexOffset
+                                                           -> Word32 -- ^ firstInstance
+                                                                     -> IO ()
+vkCmdDrawIndexedSafe = vkCmdDrawIndexed
+
+{-# INLINE vkCmdDrawIndexedSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdDrawIndexed
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t indexCount
+--   >     , uint32_t instanceCount
+--   >     , uint32_t firstIndex
+--   >     , int32_t vertexOffset
+--   >     , uint32_t firstInstance
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexed vkCmdDrawIndexed registry at www.khronos.org>
+type HS_vkCmdDrawIndexed =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ indexCount
+              -> Word32 -- ^ instanceCount
+                        -> Word32 -- ^ firstIndex
+                                  -> Int32 -- ^ vertexOffset
+                                           -> Word32 -- ^ firstInstance
+                                                     -> IO ()
+
+type PFN_vkCmdDrawIndexed = FunPtr HS_vkCmdDrawIndexed
+
+foreign import ccall "dynamic" unwrapVkCmdDrawIndexed ::
+               PFN_vkCmdDrawIndexed -> HS_vkCmdDrawIndexed
+
+instance VulkanProc "vkCmdDrawIndexed" where
+        type VkProcType "vkCmdDrawIndexed" = HS_vkCmdDrawIndexed
+        vkProcSymbol = _VkCmdDrawIndexed
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDrawIndexed
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDrawIndirect :: CString
+
+pattern VkCmdDrawIndirect <- (is_VkCmdDrawIndirect -> True)
+  where VkCmdDrawIndirect = _VkCmdDrawIndirect
+
+{-# INLINE _VkCmdDrawIndirect #-}
+
+_VkCmdDrawIndirect :: CString
+_VkCmdDrawIndirect = Ptr "vkCmdDrawIndirect\NUL"##
+
+{-# INLINE is_VkCmdDrawIndirect #-}
+
+is_VkCmdDrawIndirect :: CString -> Bool
+is_VkCmdDrawIndirect = (EQ ==) . cmpCStrings _VkCmdDrawIndirect
+
+type VkCmdDrawIndirect = "vkCmdDrawIndirect"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirect vkCmdDrawIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDrawIndirect" vkCmdDrawIndirect
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceSize -- ^ offset
+                                          -> Word32 -- ^ drawCount
+                                                    -> Word32 -- ^ stride
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirect vkCmdDrawIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndirectSafe@ and @vkCmdDrawIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndirect <- vkGetInstanceProc @VkCmdDrawIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndirect <- vkGetProc @VkCmdDrawIndirect
+--
+vkCmdDrawIndirect ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  ->
+                    VkBuffer -- ^ buffer
+                             -> VkDeviceSize -- ^ offset
+                                             -> Word32 -- ^ drawCount
+                                                       -> Word32 -- ^ stride
+                                                                 -> IO ()
+vkCmdDrawIndirect
+  = unsafeDupablePerformIO (vkGetProc @VkCmdDrawIndirect)
+
+{-# NOINLINE vkCmdDrawIndirect #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirect vkCmdDrawIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDrawIndirect" vkCmdDrawIndirectSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceSize -- ^ offset
+                                          -> Word32 -- ^ drawCount
+                                                    -> Word32 -- ^ stride
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirect vkCmdDrawIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndirectSafe@ and @vkCmdDrawIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndirect <- vkGetInstanceProc @VkCmdDrawIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndirect <- vkGetProc @VkCmdDrawIndirect
+--
+vkCmdDrawIndirectSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        VkBuffer -- ^ buffer
+                                 -> VkDeviceSize -- ^ offset
+                                                 -> Word32 -- ^ drawCount
+                                                           -> Word32 -- ^ stride
+                                                                     -> IO ()
+vkCmdDrawIndirectSafe = vkCmdDrawIndirect
+
+{-# INLINE vkCmdDrawIndirectSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdDrawIndirect
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer buffer
+--   >     , VkDeviceSize offset
+--   >     , uint32_t drawCount
+--   >     , uint32_t stride
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirect vkCmdDrawIndirect registry at www.khronos.org>
+type HS_vkCmdDrawIndirect =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ buffer
+                -> VkDeviceSize -- ^ offset
+                                -> Word32 -- ^ drawCount
+                                          -> Word32 -- ^ stride
+                                                    -> IO ()
+
+type PFN_vkCmdDrawIndirect = FunPtr HS_vkCmdDrawIndirect
+
+foreign import ccall "dynamic" unwrapVkCmdDrawIndirect ::
+               PFN_vkCmdDrawIndirect -> HS_vkCmdDrawIndirect
+
+instance VulkanProc "vkCmdDrawIndirect" where
+        type VkProcType "vkCmdDrawIndirect" = HS_vkCmdDrawIndirect
+        vkProcSymbol = _VkCmdDrawIndirect
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDrawIndirect
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDrawIndexedIndirect :: CString
+
+pattern VkCmdDrawIndexedIndirect <-
+        (is_VkCmdDrawIndexedIndirect -> True)
+  where VkCmdDrawIndexedIndirect = _VkCmdDrawIndexedIndirect
+
+{-# INLINE _VkCmdDrawIndexedIndirect #-}
+
+_VkCmdDrawIndexedIndirect :: CString
+_VkCmdDrawIndexedIndirect = Ptr "vkCmdDrawIndexedIndirect\NUL"##
+
+{-# INLINE is_VkCmdDrawIndexedIndirect #-}
+
+is_VkCmdDrawIndexedIndirect :: CString -> Bool
+is_VkCmdDrawIndexedIndirect
+  = (EQ ==) . cmpCStrings _VkCmdDrawIndexedIndirect
+
+type VkCmdDrawIndexedIndirect = "vkCmdDrawIndexedIndirect"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexedIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDrawIndexedIndirect"
+               vkCmdDrawIndexedIndirect ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceSize -- ^ offset
+                                          -> Word32 -- ^ drawCount
+                                                    -> Word32 -- ^ stride
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexedIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndexedIndirectSafe@ and @vkCmdDrawIndexedIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndexedIndirect <- vkGetInstanceProc @VkCmdDrawIndexedIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndexedIndirect <- vkGetProc @VkCmdDrawIndexedIndirect
+--
+vkCmdDrawIndexedIndirect ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         ->
+                           VkBuffer -- ^ buffer
+                                    -> VkDeviceSize -- ^ offset
+                                                    -> Word32 -- ^ drawCount
+                                                              -> Word32 -- ^ stride
+                                                                        -> IO ()
+vkCmdDrawIndexedIndirect
+  = unsafeDupablePerformIO (vkGetProc @VkCmdDrawIndexedIndirect)
+
+{-# NOINLINE vkCmdDrawIndexedIndirect #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexedIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDrawIndexedIndirect"
+               vkCmdDrawIndexedIndirectSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ buffer
+                          -> VkDeviceSize -- ^ offset
+                                          -> Word32 -- ^ drawCount
+                                                    -> Word32 -- ^ stride
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdDrawIndexedIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     , uint32_t drawCount
+-- >     , uint32_t stride
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDrawIndexedIndirectSafe@ and @vkCmdDrawIndexedIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDrawIndexedIndirect <- vkGetInstanceProc @VkCmdDrawIndexedIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDrawIndexedIndirect <- vkGetProc @VkCmdDrawIndexedIndirect
+--
+vkCmdDrawIndexedIndirectSafe ::
+                             VkCommandBuffer -- ^ commandBuffer
+                                             ->
+                               VkBuffer -- ^ buffer
+                                        -> VkDeviceSize -- ^ offset
+                                                        -> Word32 -- ^ drawCount
+                                                                  -> Word32 -- ^ stride
+                                                                            -> IO ()
+vkCmdDrawIndexedIndirectSafe = vkCmdDrawIndexedIndirect
+
+{-# INLINE vkCmdDrawIndexedIndirectSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdDrawIndexedIndirect
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer buffer
+--   >     , VkDeviceSize offset
+--   >     , uint32_t drawCount
+--   >     , uint32_t stride
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect registry at www.khronos.org>
+type HS_vkCmdDrawIndexedIndirect =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ buffer
+                -> VkDeviceSize -- ^ offset
+                                -> Word32 -- ^ drawCount
+                                          -> Word32 -- ^ stride
+                                                    -> IO ()
+
+type PFN_vkCmdDrawIndexedIndirect =
+     FunPtr HS_vkCmdDrawIndexedIndirect
+
+foreign import ccall "dynamic" unwrapVkCmdDrawIndexedIndirect ::
+               PFN_vkCmdDrawIndexedIndirect -> HS_vkCmdDrawIndexedIndirect
+
+instance VulkanProc "vkCmdDrawIndexedIndirect" where
+        type VkProcType "vkCmdDrawIndexedIndirect" =
+             HS_vkCmdDrawIndexedIndirect
+        vkProcSymbol = _VkCmdDrawIndexedIndirect
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDrawIndexedIndirect
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDispatch :: CString
+
+pattern VkCmdDispatch <- (is_VkCmdDispatch -> True)
+  where VkCmdDispatch = _VkCmdDispatch
+
+{-# INLINE _VkCmdDispatch #-}
+
+_VkCmdDispatch :: CString
+_VkCmdDispatch = Ptr "vkCmdDispatch\NUL"##
+
+{-# INLINE is_VkCmdDispatch #-}
+
+is_VkCmdDispatch :: CString -> Bool
+is_VkCmdDispatch = (EQ ==) . cmpCStrings _VkCmdDispatch
+
+type VkCmdDispatch = "vkCmdDispatch"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatch
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatch vkCmdDispatch registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDispatch" vkCmdDispatch ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ groupCountX
+                                         -> Word32 -- ^ groupCountY
+                                                   -> Word32 -- ^ groupCountZ
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatch
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatch vkCmdDispatch registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchSafe@ and @vkCmdDispatch@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatch <- vkGetInstanceProc @VkCmdDispatch vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatch <- vkGetProc @VkCmdDispatch
+--
+vkCmdDispatch ::
+              VkCommandBuffer -- ^ commandBuffer
+                              -> Word32 -- ^ groupCountX
+                                        -> Word32 -- ^ groupCountY
+                                                  -> Word32 -- ^ groupCountZ
+                                                            -> IO ()
+vkCmdDispatch = unsafeDupablePerformIO (vkGetProc @VkCmdDispatch)
+
+{-# NOINLINE vkCmdDispatch #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatch
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatch vkCmdDispatch registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDispatch" vkCmdDispatchSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ groupCountX
+                                         -> Word32 -- ^ groupCountY
+                                                   -> Word32 -- ^ groupCountZ
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatch
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatch vkCmdDispatch registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchSafe@ and @vkCmdDispatch@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatch <- vkGetInstanceProc @VkCmdDispatch vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatch <- vkGetProc @VkCmdDispatch
+--
+vkCmdDispatchSafe ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  -> Word32 -- ^ groupCountX
+                                            -> Word32 -- ^ groupCountY
+                                                      -> Word32 -- ^ groupCountZ
+                                                                -> IO ()
+vkCmdDispatchSafe = vkCmdDispatch
+
+{-# INLINE vkCmdDispatchSafe #-}
+##endif
+
+-- | Queues: 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @compute@
+--
+--   > void vkCmdDispatch
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t groupCountX
+--   >     , uint32_t groupCountY
+--   >     , uint32_t groupCountZ
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatch vkCmdDispatch registry at www.khronos.org>
+type HS_vkCmdDispatch =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ groupCountX
+                               -> Word32 -- ^ groupCountY
+                                         -> Word32 -- ^ groupCountZ
+                                                   -> IO ()
+
+type PFN_vkCmdDispatch = FunPtr HS_vkCmdDispatch
+
+foreign import ccall "dynamic" unwrapVkCmdDispatch ::
+               PFN_vkCmdDispatch -> HS_vkCmdDispatch
+
+instance VulkanProc "vkCmdDispatch" where
+        type VkProcType "vkCmdDispatch" = HS_vkCmdDispatch
+        vkProcSymbol = _VkCmdDispatch
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDispatch
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDispatchIndirect :: CString
+
+pattern VkCmdDispatchIndirect <- (is_VkCmdDispatchIndirect -> True)
+  where VkCmdDispatchIndirect = _VkCmdDispatchIndirect
+
+{-# INLINE _VkCmdDispatchIndirect #-}
+
+_VkCmdDispatchIndirect :: CString
+_VkCmdDispatchIndirect = Ptr "vkCmdDispatchIndirect\NUL"##
+
+{-# INLINE is_VkCmdDispatchIndirect #-}
+
+is_VkCmdDispatchIndirect :: CString -> Bool
+is_VkCmdDispatchIndirect
+  = (EQ ==) . cmpCStrings _VkCmdDispatchIndirect
+
+type VkCmdDispatchIndirect = "vkCmdDispatchIndirect"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatchIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchIndirect vkCmdDispatchIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDispatchIndirect"
+               vkCmdDispatchIndirect ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkBuffer -- ^ buffer
+                                           -> VkDeviceSize -- ^ offset
+                                                           -> IO ()
+
+##else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatchIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchIndirect vkCmdDispatchIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchIndirectSafe@ and @vkCmdDispatchIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatchIndirect <- vkGetInstanceProc @VkCmdDispatchIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatchIndirect <- vkGetProc @VkCmdDispatchIndirect
+--
+vkCmdDispatchIndirect ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      -> VkBuffer -- ^ buffer
+                                                  -> VkDeviceSize -- ^ offset
+                                                                  -> IO ()
+vkCmdDispatchIndirect
+  = unsafeDupablePerformIO (vkGetProc @VkCmdDispatchIndirect)
+
+{-# NOINLINE vkCmdDispatchIndirect #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatchIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchIndirect vkCmdDispatchIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDispatchIndirect"
+               vkCmdDispatchIndirectSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkBuffer -- ^ buffer
+                                           -> VkDeviceSize -- ^ offset
+                                                           -> IO ()
+
+##else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @compute@
+--
+-- > void vkCmdDispatchIndirect
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer buffer
+-- >     , VkDeviceSize offset
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchIndirect vkCmdDispatchIndirect registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchIndirectSafe@ and @vkCmdDispatchIndirect@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatchIndirect <- vkGetInstanceProc @VkCmdDispatchIndirect vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatchIndirect <- vkGetProc @VkCmdDispatchIndirect
+--
+vkCmdDispatchIndirectSafe ::
+                          VkCommandBuffer -- ^ commandBuffer
+                                          -> VkBuffer -- ^ buffer
+                                                      -> VkDeviceSize -- ^ offset
+                                                                      -> IO ()
+vkCmdDispatchIndirectSafe = vkCmdDispatchIndirect
+
+{-# INLINE vkCmdDispatchIndirectSafe #-}
+##endif
+
+-- | Queues: 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @compute@
+--
+--   > void vkCmdDispatchIndirect
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer buffer
+--   >     , VkDeviceSize offset
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchIndirect vkCmdDispatchIndirect registry at www.khronos.org>
+type HS_vkCmdDispatchIndirect =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkBuffer -- ^ buffer
+                                 -> VkDeviceSize -- ^ offset
+                                                 -> IO ()
+
+type PFN_vkCmdDispatchIndirect = FunPtr HS_vkCmdDispatchIndirect
+
+foreign import ccall "dynamic" unwrapVkCmdDispatchIndirect ::
+               PFN_vkCmdDispatchIndirect -> HS_vkCmdDispatchIndirect
+
+instance VulkanProc "vkCmdDispatchIndirect" where
+        type VkProcType "vkCmdDispatchIndirect" = HS_vkCmdDispatchIndirect
+        vkProcSymbol = _VkCmdDispatchIndirect
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDispatchIndirect
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdCopyBuffer :: CString
+
+pattern VkCmdCopyBuffer <- (is_VkCmdCopyBuffer -> True)
+  where VkCmdCopyBuffer = _VkCmdCopyBuffer
+
+{-# INLINE _VkCmdCopyBuffer #-}
+
+_VkCmdCopyBuffer :: CString
+_VkCmdCopyBuffer = Ptr "vkCmdCopyBuffer\NUL"##
+
+{-# INLINE is_VkCmdCopyBuffer #-}
+
+is_VkCmdCopyBuffer :: CString -> Bool
+is_VkCmdCopyBuffer = (EQ ==) . cmpCStrings _VkCmdCopyBuffer
+
+type VkCmdCopyBuffer = "vkCmdCopyBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBuffer vkCmdCopyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdCopyBuffer" vkCmdCopyBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ srcBuffer
+                          -> VkBuffer -- ^ dstBuffer
+                                      -> Word32 -- ^ regionCount
+                                                -> Ptr VkBufferCopy -- ^ pRegions
+                                                                    -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBuffer vkCmdCopyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyBufferSafe@ and @vkCmdCopyBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyBuffer <- vkGetInstanceProc @VkCmdCopyBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyBuffer <- vkGetProc @VkCmdCopyBuffer
+--
+vkCmdCopyBuffer ::
+                VkCommandBuffer -- ^ commandBuffer
+                                ->
+                  VkBuffer -- ^ srcBuffer
+                           -> VkBuffer -- ^ dstBuffer
+                                       -> Word32 -- ^ regionCount
+                                                 -> Ptr VkBufferCopy -- ^ pRegions
+                                                                     -> IO ()
+vkCmdCopyBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCmdCopyBuffer)
+
+{-# NOINLINE vkCmdCopyBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBuffer vkCmdCopyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdCopyBuffer" vkCmdCopyBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ srcBuffer
+                          -> VkBuffer -- ^ dstBuffer
+                                      -> Word32 -- ^ regionCount
+                                                -> Ptr VkBufferCopy -- ^ pRegions
+                                                                    -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBuffer vkCmdCopyBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyBufferSafe@ and @vkCmdCopyBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyBuffer <- vkGetInstanceProc @VkCmdCopyBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyBuffer <- vkGetProc @VkCmdCopyBuffer
+--
+vkCmdCopyBufferSafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      VkBuffer -- ^ srcBuffer
+                               -> VkBuffer -- ^ dstBuffer
+                                           -> Word32 -- ^ regionCount
+                                                     -> Ptr VkBufferCopy -- ^ pRegions
+                                                                         -> IO ()
+vkCmdCopyBufferSafe = vkCmdCopyBuffer
+
+{-# INLINE vkCmdCopyBufferSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdCopyBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer srcBuffer
+--   >     , VkBuffer dstBuffer
+--   >     , uint32_t regionCount
+--   >     , const VkBufferCopy* pRegions
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBuffer vkCmdCopyBuffer registry at www.khronos.org>
+type HS_vkCmdCopyBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ srcBuffer
+                -> VkBuffer -- ^ dstBuffer
+                            -> Word32 -- ^ regionCount
+                                      -> Ptr VkBufferCopy -- ^ pRegions
+                                                          -> IO ()
+
+type PFN_vkCmdCopyBuffer = FunPtr HS_vkCmdCopyBuffer
+
+foreign import ccall "dynamic" unwrapVkCmdCopyBuffer ::
+               PFN_vkCmdCopyBuffer -> HS_vkCmdCopyBuffer
+
+instance VulkanProc "vkCmdCopyBuffer" where
+        type VkProcType "vkCmdCopyBuffer" = HS_vkCmdCopyBuffer
+        vkProcSymbol = _VkCmdCopyBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdCopyBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdCopyImage :: CString
+
+pattern VkCmdCopyImage <- (is_VkCmdCopyImage -> True)
+  where VkCmdCopyImage = _VkCmdCopyImage
+
+{-# INLINE _VkCmdCopyImage #-}
+
+_VkCmdCopyImage :: CString
+_VkCmdCopyImage = Ptr "vkCmdCopyImage\NUL"##
+
+{-# INLINE is_VkCmdCopyImage #-}
+
+is_VkCmdCopyImage :: CString -> Bool
+is_VkCmdCopyImage = (EQ ==) . cmpCStrings _VkCmdCopyImage
+
+type VkCmdCopyImage = "vkCmdCopyImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImage vkCmdCopyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdCopyImage" vkCmdCopyImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             -> VkImageLayout -- ^ dstImageLayout
+                                              -> Word32 -- ^ regionCount
+                                                        -> Ptr VkImageCopy -- ^ pRegions
+                                                                           -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImage vkCmdCopyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyImageSafe@ and @vkCmdCopyImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyImage <- vkGetInstanceProc @VkCmdCopyImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyImage <- vkGetProc @VkCmdCopyImage
+--
+vkCmdCopyImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             -> VkImageLayout -- ^ dstImageLayout
+                                              -> Word32 -- ^ regionCount
+                                                        -> Ptr VkImageCopy -- ^ pRegions
+                                                                           -> IO ()
+vkCmdCopyImage = unsafeDupablePerformIO (vkGetProc @VkCmdCopyImage)
+
+{-# NOINLINE vkCmdCopyImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImage vkCmdCopyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdCopyImage" vkCmdCopyImageSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             -> VkImageLayout -- ^ dstImageLayout
+                                              -> Word32 -- ^ regionCount
+                                                        -> Ptr VkImageCopy -- ^ pRegions
+                                                                           -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImage vkCmdCopyImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyImageSafe@ and @vkCmdCopyImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyImage <- vkGetInstanceProc @VkCmdCopyImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyImage <- vkGetProc @VkCmdCopyImage
+--
+vkCmdCopyImageSafe ::
+                   VkCommandBuffer -- ^ commandBuffer
+                                   ->
+                     VkImage -- ^ srcImage
+                             ->
+                       VkImageLayout -- ^ srcImageLayout
+                                     ->
+                         VkImage -- ^ dstImage
+                                 -> VkImageLayout -- ^ dstImageLayout
+                                                  -> Word32 -- ^ regionCount
+                                                            -> Ptr VkImageCopy -- ^ pRegions
+                                                                               -> IO ()
+vkCmdCopyImageSafe = vkCmdCopyImage
+
+{-# INLINE vkCmdCopyImageSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdCopyImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage srcImage
+--   >     , VkImageLayout srcImageLayout
+--   >     , VkImage dstImage
+--   >     , VkImageLayout dstImageLayout
+--   >     , uint32_t regionCount
+--   >     , const VkImageCopy* pRegions
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImage vkCmdCopyImage registry at www.khronos.org>
+type HS_vkCmdCopyImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ srcImage
+               ->
+         VkImageLayout -- ^ srcImageLayout
+                       ->
+           VkImage -- ^ dstImage
+                   -> VkImageLayout -- ^ dstImageLayout
+                                    -> Word32 -- ^ regionCount
+                                              -> Ptr VkImageCopy -- ^ pRegions
+                                                                 -> IO ()
+
+type PFN_vkCmdCopyImage = FunPtr HS_vkCmdCopyImage
+
+foreign import ccall "dynamic" unwrapVkCmdCopyImage ::
+               PFN_vkCmdCopyImage -> HS_vkCmdCopyImage
+
+instance VulkanProc "vkCmdCopyImage" where
+        type VkProcType "vkCmdCopyImage" = HS_vkCmdCopyImage
+        vkProcSymbol = _VkCmdCopyImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdCopyImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBlitImage :: CString
+
+pattern VkCmdBlitImage <- (is_VkCmdBlitImage -> True)
+  where VkCmdBlitImage = _VkCmdBlitImage
+
+{-# INLINE _VkCmdBlitImage #-}
+
+_VkCmdBlitImage :: CString
+_VkCmdBlitImage = Ptr "vkCmdBlitImage\NUL"##
+
+{-# INLINE is_VkCmdBlitImage #-}
+
+is_VkCmdBlitImage :: CString -> Bool
+is_VkCmdBlitImage = (EQ ==) . cmpCStrings _VkCmdBlitImage
+
+type VkCmdBlitImage = "vkCmdBlitImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdBlitImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageBlit* pRegions
+-- >     , VkFilter filter
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBlitImage vkCmdBlitImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBlitImage" vkCmdBlitImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             ->
+                       VkImageLayout -- ^ dstImageLayout
+                                     -> Word32 -- ^ regionCount
+                                               -> Ptr VkImageBlit -- ^ pRegions
+                                                                  -> VkFilter -- ^ filter
+                                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdBlitImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageBlit* pRegions
+-- >     , VkFilter filter
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBlitImage vkCmdBlitImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBlitImageSafe@ and @vkCmdBlitImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBlitImage <- vkGetInstanceProc @VkCmdBlitImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBlitImage <- vkGetProc @VkCmdBlitImage
+--
+vkCmdBlitImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             ->
+                       VkImageLayout -- ^ dstImageLayout
+                                     -> Word32 -- ^ regionCount
+                                               -> Ptr VkImageBlit -- ^ pRegions
+                                                                  -> VkFilter -- ^ filter
+                                                                              -> IO ()
+vkCmdBlitImage = unsafeDupablePerformIO (vkGetProc @VkCmdBlitImage)
+
+{-# NOINLINE vkCmdBlitImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdBlitImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageBlit* pRegions
+-- >     , VkFilter filter
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBlitImage vkCmdBlitImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBlitImage" vkCmdBlitImageSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             ->
+                       VkImageLayout -- ^ dstImageLayout
+                                     -> Word32 -- ^ regionCount
+                                               -> Ptr VkImageBlit -- ^ pRegions
+                                                                  -> VkFilter -- ^ filter
+                                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdBlitImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageBlit* pRegions
+-- >     , VkFilter filter
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBlitImage vkCmdBlitImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBlitImageSafe@ and @vkCmdBlitImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBlitImage <- vkGetInstanceProc @VkCmdBlitImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBlitImage <- vkGetProc @VkCmdBlitImage
+--
+vkCmdBlitImageSafe ::
+                   VkCommandBuffer -- ^ commandBuffer
+                                   ->
+                     VkImage -- ^ srcImage
+                             ->
+                       VkImageLayout -- ^ srcImageLayout
+                                     ->
+                         VkImage -- ^ dstImage
+                                 ->
+                           VkImageLayout -- ^ dstImageLayout
+                                         -> Word32 -- ^ regionCount
+                                                   -> Ptr VkImageBlit -- ^ pRegions
+                                                                      -> VkFilter -- ^ filter
+                                                                                  -> IO ()
+vkCmdBlitImageSafe = vkCmdBlitImage
+
+{-# INLINE vkCmdBlitImageSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdBlitImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage srcImage
+--   >     , VkImageLayout srcImageLayout
+--   >     , VkImage dstImage
+--   >     , VkImageLayout dstImageLayout
+--   >     , uint32_t regionCount
+--   >     , const VkImageBlit* pRegions
+--   >     , VkFilter filter
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBlitImage vkCmdBlitImage registry at www.khronos.org>
+type HS_vkCmdBlitImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ srcImage
+               ->
+         VkImageLayout -- ^ srcImageLayout
+                       ->
+           VkImage -- ^ dstImage
+                   ->
+             VkImageLayout -- ^ dstImageLayout
+                           -> Word32 -- ^ regionCount
+                                     -> Ptr VkImageBlit -- ^ pRegions
+                                                        -> VkFilter -- ^ filter
+                                                                    -> IO ()
+
+type PFN_vkCmdBlitImage = FunPtr HS_vkCmdBlitImage
+
+foreign import ccall "dynamic" unwrapVkCmdBlitImage ::
+               PFN_vkCmdBlitImage -> HS_vkCmdBlitImage
+
+instance VulkanProc "vkCmdBlitImage" where
+        type VkProcType "vkCmdBlitImage" = HS_vkCmdBlitImage
+        vkProcSymbol = _VkCmdBlitImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBlitImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdCopyBufferToImage :: CString
+
+pattern VkCmdCopyBufferToImage <-
+        (is_VkCmdCopyBufferToImage -> True)
+  where VkCmdCopyBufferToImage = _VkCmdCopyBufferToImage
+
+{-# INLINE _VkCmdCopyBufferToImage #-}
+
+_VkCmdCopyBufferToImage :: CString
+_VkCmdCopyBufferToImage = Ptr "vkCmdCopyBufferToImage\NUL"##
+
+{-# INLINE is_VkCmdCopyBufferToImage #-}
+
+is_VkCmdCopyBufferToImage :: CString -> Bool
+is_VkCmdCopyBufferToImage
+  = (EQ ==) . cmpCStrings _VkCmdCopyBufferToImage
+
+type VkCmdCopyBufferToImage = "vkCmdCopyBufferToImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBufferToImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBufferToImage vkCmdCopyBufferToImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdCopyBufferToImage"
+               vkCmdCopyBufferToImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ srcBuffer
+                          ->
+                   VkImage -- ^ dstImage
+                           ->
+                     VkImageLayout -- ^ dstImageLayout
+                                   -> Word32 -- ^ regionCount
+                                             -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBufferToImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBufferToImage vkCmdCopyBufferToImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyBufferToImageSafe@ and @vkCmdCopyBufferToImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyBufferToImage <- vkGetInstanceProc @VkCmdCopyBufferToImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyBufferToImage <- vkGetProc @VkCmdCopyBufferToImage
+--
+vkCmdCopyBufferToImage ::
+                       VkCommandBuffer -- ^ commandBuffer
+                                       ->
+                         VkBuffer -- ^ srcBuffer
+                                  ->
+                           VkImage -- ^ dstImage
+                                   ->
+                             VkImageLayout -- ^ dstImageLayout
+                                           -> Word32 -- ^ regionCount
+                                                     -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                              -> IO ()
+vkCmdCopyBufferToImage
+  = unsafeDupablePerformIO (vkGetProc @VkCmdCopyBufferToImage)
+
+{-# NOINLINE vkCmdCopyBufferToImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBufferToImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBufferToImage vkCmdCopyBufferToImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdCopyBufferToImage"
+               vkCmdCopyBufferToImageSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ srcBuffer
+                          ->
+                   VkImage -- ^ dstImage
+                           ->
+                     VkImageLayout -- ^ dstImageLayout
+                                   -> Word32 -- ^ regionCount
+                                             -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyBufferToImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer srcBuffer
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBufferToImage vkCmdCopyBufferToImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyBufferToImageSafe@ and @vkCmdCopyBufferToImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyBufferToImage <- vkGetInstanceProc @VkCmdCopyBufferToImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyBufferToImage <- vkGetProc @VkCmdCopyBufferToImage
+--
+vkCmdCopyBufferToImageSafe ::
+                           VkCommandBuffer -- ^ commandBuffer
+                                           ->
+                             VkBuffer -- ^ srcBuffer
+                                      ->
+                               VkImage -- ^ dstImage
+                                       ->
+                                 VkImageLayout -- ^ dstImageLayout
+                                               -> Word32 -- ^ regionCount
+                                                         -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                                  -> IO ()
+vkCmdCopyBufferToImageSafe = vkCmdCopyBufferToImage
+
+{-# INLINE vkCmdCopyBufferToImageSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdCopyBufferToImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer srcBuffer
+--   >     , VkImage dstImage
+--   >     , VkImageLayout dstImageLayout
+--   >     , uint32_t regionCount
+--   >     , const VkBufferImageCopy* pRegions
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyBufferToImage vkCmdCopyBufferToImage registry at www.khronos.org>
+type HS_vkCmdCopyBufferToImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ srcBuffer
+                ->
+         VkImage -- ^ dstImage
+                 ->
+           VkImageLayout -- ^ dstImageLayout
+                         -> Word32 -- ^ regionCount
+                                   -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                            -> IO ()
+
+type PFN_vkCmdCopyBufferToImage = FunPtr HS_vkCmdCopyBufferToImage
+
+foreign import ccall "dynamic" unwrapVkCmdCopyBufferToImage ::
+               PFN_vkCmdCopyBufferToImage -> HS_vkCmdCopyBufferToImage
+
+instance VulkanProc "vkCmdCopyBufferToImage" where
+        type VkProcType "vkCmdCopyBufferToImage" =
+             HS_vkCmdCopyBufferToImage
+        vkProcSymbol = _VkCmdCopyBufferToImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdCopyBufferToImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdCopyImageToBuffer :: CString
+
+pattern VkCmdCopyImageToBuffer <-
+        (is_VkCmdCopyImageToBuffer -> True)
+  where VkCmdCopyImageToBuffer = _VkCmdCopyImageToBuffer
+
+{-# INLINE _VkCmdCopyImageToBuffer #-}
+
+_VkCmdCopyImageToBuffer :: CString
+_VkCmdCopyImageToBuffer = Ptr "vkCmdCopyImageToBuffer\NUL"##
+
+{-# INLINE is_VkCmdCopyImageToBuffer #-}
+
+is_VkCmdCopyImageToBuffer :: CString -> Bool
+is_VkCmdCopyImageToBuffer
+  = (EQ ==) . cmpCStrings _VkCmdCopyImageToBuffer
+
+type VkCmdCopyImageToBuffer = "vkCmdCopyImageToBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImageToBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdCopyImageToBuffer"
+               vkCmdCopyImageToBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkBuffer -- ^ dstBuffer
+                              -> Word32 -- ^ regionCount
+                                        -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                 -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImageToBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyImageToBufferSafe@ and @vkCmdCopyImageToBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyImageToBuffer <- vkGetInstanceProc @VkCmdCopyImageToBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyImageToBuffer <- vkGetProc @VkCmdCopyImageToBuffer
+--
+vkCmdCopyImageToBuffer ::
+                       VkCommandBuffer -- ^ commandBuffer
+                                       ->
+                         VkImage -- ^ srcImage
+                                 ->
+                           VkImageLayout -- ^ srcImageLayout
+                                         ->
+                             VkBuffer -- ^ dstBuffer
+                                      -> Word32 -- ^ regionCount
+                                                -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                         -> IO ()
+vkCmdCopyImageToBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCmdCopyImageToBuffer)
+
+{-# NOINLINE vkCmdCopyImageToBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImageToBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdCopyImageToBuffer"
+               vkCmdCopyImageToBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkBuffer -- ^ dstBuffer
+                              -> Word32 -- ^ regionCount
+                                        -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                 -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyImageToBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkBuffer dstBuffer
+-- >     , uint32_t regionCount
+-- >     , const VkBufferImageCopy* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyImageToBufferSafe@ and @vkCmdCopyImageToBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyImageToBuffer <- vkGetInstanceProc @VkCmdCopyImageToBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyImageToBuffer <- vkGetProc @VkCmdCopyImageToBuffer
+--
+vkCmdCopyImageToBufferSafe ::
+                           VkCommandBuffer -- ^ commandBuffer
+                                           ->
+                             VkImage -- ^ srcImage
+                                     ->
+                               VkImageLayout -- ^ srcImageLayout
+                                             ->
+                                 VkBuffer -- ^ dstBuffer
+                                          -> Word32 -- ^ regionCount
+                                                    -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                                             -> IO ()
+vkCmdCopyImageToBufferSafe = vkCmdCopyImageToBuffer
+
+{-# INLINE vkCmdCopyImageToBufferSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdCopyImageToBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage srcImage
+--   >     , VkImageLayout srcImageLayout
+--   >     , VkBuffer dstBuffer
+--   >     , uint32_t regionCount
+--   >     , const VkBufferImageCopy* pRegions
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer registry at www.khronos.org>
+type HS_vkCmdCopyImageToBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ srcImage
+               ->
+         VkImageLayout -- ^ srcImageLayout
+                       ->
+           VkBuffer -- ^ dstBuffer
+                    -> Word32 -- ^ regionCount
+                              -> Ptr VkBufferImageCopy -- ^ pRegions
+                                                       -> IO ()
+
+type PFN_vkCmdCopyImageToBuffer = FunPtr HS_vkCmdCopyImageToBuffer
+
+foreign import ccall "dynamic" unwrapVkCmdCopyImageToBuffer ::
+               PFN_vkCmdCopyImageToBuffer -> HS_vkCmdCopyImageToBuffer
+
+instance VulkanProc "vkCmdCopyImageToBuffer" where
+        type VkProcType "vkCmdCopyImageToBuffer" =
+             HS_vkCmdCopyImageToBuffer
+        vkProcSymbol = _VkCmdCopyImageToBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdCopyImageToBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdUpdateBuffer :: CString
+
+pattern VkCmdUpdateBuffer <- (is_VkCmdUpdateBuffer -> True)
+  where VkCmdUpdateBuffer = _VkCmdUpdateBuffer
+
+{-# INLINE _VkCmdUpdateBuffer #-}
+
+_VkCmdUpdateBuffer :: CString
+_VkCmdUpdateBuffer = Ptr "vkCmdUpdateBuffer\NUL"##
+
+{-# INLINE is_VkCmdUpdateBuffer #-}
+
+is_VkCmdUpdateBuffer :: CString -> Bool
+is_VkCmdUpdateBuffer = (EQ ==) . cmpCStrings _VkCmdUpdateBuffer
+
+type VkCmdUpdateBuffer = "vkCmdUpdateBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdUpdateBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize dataSize
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdUpdateBuffer vkCmdUpdateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdUpdateBuffer" vkCmdUpdateBuffer
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ dstBuffer
+                          -> VkDeviceSize -- ^ dstOffset
+                                          -> VkDeviceSize -- ^ dataSize
+                                                          -> Ptr Void -- ^ pData
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdUpdateBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize dataSize
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdUpdateBuffer vkCmdUpdateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdUpdateBufferSafe@ and @vkCmdUpdateBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdUpdateBuffer <- vkGetInstanceProc @VkCmdUpdateBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdUpdateBuffer <- vkGetProc @VkCmdUpdateBuffer
+--
+vkCmdUpdateBuffer ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  ->
+                    VkBuffer -- ^ dstBuffer
+                             -> VkDeviceSize -- ^ dstOffset
+                                             -> VkDeviceSize -- ^ dataSize
+                                                             -> Ptr Void -- ^ pData
+                                                                         -> IO ()
+vkCmdUpdateBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCmdUpdateBuffer)
+
+{-# NOINLINE vkCmdUpdateBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdUpdateBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize dataSize
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdUpdateBuffer vkCmdUpdateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdUpdateBuffer" vkCmdUpdateBufferSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ dstBuffer
+                          -> VkDeviceSize -- ^ dstOffset
+                                          -> VkDeviceSize -- ^ dataSize
+                                                          -> Ptr Void -- ^ pData
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdUpdateBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize dataSize
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdUpdateBuffer vkCmdUpdateBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdUpdateBufferSafe@ and @vkCmdUpdateBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdUpdateBuffer <- vkGetInstanceProc @VkCmdUpdateBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdUpdateBuffer <- vkGetProc @VkCmdUpdateBuffer
+--
+vkCmdUpdateBufferSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        VkBuffer -- ^ dstBuffer
+                                 -> VkDeviceSize -- ^ dstOffset
+                                                 -> VkDeviceSize -- ^ dataSize
+                                                                 -> Ptr Void -- ^ pData
+                                                                             -> IO ()
+vkCmdUpdateBufferSafe = vkCmdUpdateBuffer
+
+{-# INLINE vkCmdUpdateBufferSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdUpdateBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer dstBuffer
+--   >     , VkDeviceSize dstOffset
+--   >     , VkDeviceSize dataSize
+--   >     , const void* pData
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdUpdateBuffer vkCmdUpdateBuffer registry at www.khronos.org>
+type HS_vkCmdUpdateBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ dstBuffer
+                -> VkDeviceSize -- ^ dstOffset
+                                -> VkDeviceSize -- ^ dataSize
+                                                -> Ptr Void -- ^ pData
+                                                            -> IO ()
+
+type PFN_vkCmdUpdateBuffer = FunPtr HS_vkCmdUpdateBuffer
+
+foreign import ccall "dynamic" unwrapVkCmdUpdateBuffer ::
+               PFN_vkCmdUpdateBuffer -> HS_vkCmdUpdateBuffer
+
+instance VulkanProc "vkCmdUpdateBuffer" where
+        type VkProcType "vkCmdUpdateBuffer" = HS_vkCmdUpdateBuffer
+        vkProcSymbol = _VkCmdUpdateBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdUpdateBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdFillBuffer :: CString
+
+pattern VkCmdFillBuffer <- (is_VkCmdFillBuffer -> True)
+  where VkCmdFillBuffer = _VkCmdFillBuffer
+
+{-# INLINE _VkCmdFillBuffer #-}
+
+_VkCmdFillBuffer :: CString
+_VkCmdFillBuffer = Ptr "vkCmdFillBuffer\NUL"##
+
+{-# INLINE is_VkCmdFillBuffer #-}
+
+is_VkCmdFillBuffer :: CString -> Bool
+is_VkCmdFillBuffer = (EQ ==) . cmpCStrings _VkCmdFillBuffer
+
+type VkCmdFillBuffer = "vkCmdFillBuffer"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
+--
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdFillBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize size
+-- >     , uint32_t data
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdFillBuffer vkCmdFillBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdFillBuffer" vkCmdFillBuffer ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ dstBuffer
+                          -> VkDeviceSize -- ^ dstOffset
+                                          -> VkDeviceSize -- ^ size
+                                                          -> Word32 -- ^ data
+                                                                    -> IO ()
+
+##else
+-- |
+-- transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
+--
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdFillBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize size
+-- >     , uint32_t data
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdFillBuffer vkCmdFillBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdFillBufferSafe@ and @vkCmdFillBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdFillBuffer <- vkGetInstanceProc @VkCmdFillBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdFillBuffer <- vkGetProc @VkCmdFillBuffer
+--
+vkCmdFillBuffer ::
+                VkCommandBuffer -- ^ commandBuffer
+                                ->
+                  VkBuffer -- ^ dstBuffer
+                           -> VkDeviceSize -- ^ dstOffset
+                                           -> VkDeviceSize -- ^ size
+                                                           -> Word32 -- ^ data
+                                                                     -> IO ()
+vkCmdFillBuffer
+  = unsafeDupablePerformIO (vkGetProc @VkCmdFillBuffer)
+
+{-# NOINLINE vkCmdFillBuffer #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
+--
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdFillBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize size
+-- >     , uint32_t data
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdFillBuffer vkCmdFillBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdFillBuffer" vkCmdFillBufferSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkBuffer -- ^ dstBuffer
+                          -> VkDeviceSize -- ^ dstOffset
+                                          -> VkDeviceSize -- ^ size
+                                                          -> Word32 -- ^ data
+                                                                    -> IO ()
+
+##else
+-- |
+-- transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
+--
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdFillBuffer
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize size
+-- >     , uint32_t data
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdFillBuffer vkCmdFillBuffer registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdFillBufferSafe@ and @vkCmdFillBuffer@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdFillBuffer <- vkGetInstanceProc @VkCmdFillBuffer vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdFillBuffer <- vkGetProc @VkCmdFillBuffer
+--
+vkCmdFillBufferSafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      VkBuffer -- ^ dstBuffer
+                               -> VkDeviceSize -- ^ dstOffset
+                                               -> VkDeviceSize -- ^ size
+                                                               -> Word32 -- ^ data
+                                                                         -> IO ()
+vkCmdFillBufferSafe = vkCmdFillBuffer
+
+{-# INLINE vkCmdFillBufferSafe #-}
+##endif
+
+-- | transfer support is only available when VK_KHR_maintenance1 is enabled, as documented in valid usage language in the specification
+--
+--   Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdFillBuffer
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkBuffer dstBuffer
+--   >     , VkDeviceSize dstOffset
+--   >     , VkDeviceSize size
+--   >     , uint32_t data
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdFillBuffer vkCmdFillBuffer registry at www.khronos.org>
+type HS_vkCmdFillBuffer =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ dstBuffer
+                -> VkDeviceSize -- ^ dstOffset
+                                -> VkDeviceSize -- ^ size
+                                                -> Word32 -- ^ data
+                                                          -> IO ()
+
+type PFN_vkCmdFillBuffer = FunPtr HS_vkCmdFillBuffer
+
+foreign import ccall "dynamic" unwrapVkCmdFillBuffer ::
+               PFN_vkCmdFillBuffer -> HS_vkCmdFillBuffer
+
+instance VulkanProc "vkCmdFillBuffer" where
+        type VkProcType "vkCmdFillBuffer" = HS_vkCmdFillBuffer
+        vkProcSymbol = _VkCmdFillBuffer
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdFillBuffer
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdClearColorImage :: CString
+
+pattern VkCmdClearColorImage <- (is_VkCmdClearColorImage -> True)
+  where VkCmdClearColorImage = _VkCmdClearColorImage
+
+{-# INLINE _VkCmdClearColorImage #-}
+
+_VkCmdClearColorImage :: CString
+_VkCmdClearColorImage = Ptr "vkCmdClearColorImage\NUL"##
+
+{-# INLINE is_VkCmdClearColorImage #-}
+
+is_VkCmdClearColorImage :: CString -> Bool
+is_VkCmdClearColorImage
+  = (EQ ==) . cmpCStrings _VkCmdClearColorImage
+
+type VkCmdClearColorImage = "vkCmdClearColorImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearColorImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearColorValue* pColor
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearColorImage vkCmdClearColorImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdClearColorImage"
+               vkCmdClearColorImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ image
+                         ->
+                   VkImageLayout -- ^ imageLayout
+                                 ->
+                     Ptr VkClearColorValue -- ^ pColor
+                                           ->
+                       Word32 -- ^ rangeCount
+                              -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearColorImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearColorValue* pColor
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearColorImage vkCmdClearColorImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearColorImageSafe@ and @vkCmdClearColorImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearColorImage <- vkGetInstanceProc @VkCmdClearColorImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearColorImage <- vkGetProc @VkCmdClearColorImage
+--
+vkCmdClearColorImage ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     ->
+                       VkImage -- ^ image
+                               ->
+                         VkImageLayout -- ^ imageLayout
+                                       ->
+                           Ptr VkClearColorValue -- ^ pColor
+                                                 ->
+                             Word32 -- ^ rangeCount
+                                    -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                                   -> IO ()
+vkCmdClearColorImage
+  = unsafeDupablePerformIO (vkGetProc @VkCmdClearColorImage)
+
+{-# NOINLINE vkCmdClearColorImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearColorImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearColorValue* pColor
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearColorImage vkCmdClearColorImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdClearColorImage"
+               vkCmdClearColorImageSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ image
+                         ->
+                   VkImageLayout -- ^ imageLayout
+                                 ->
+                     Ptr VkClearColorValue -- ^ pColor
+                                           ->
+                       Word32 -- ^ rangeCount
+                              -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearColorImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearColorValue* pColor
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearColorImage vkCmdClearColorImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearColorImageSafe@ and @vkCmdClearColorImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearColorImage <- vkGetInstanceProc @VkCmdClearColorImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearColorImage <- vkGetProc @VkCmdClearColorImage
+--
+vkCmdClearColorImageSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         ->
+                           VkImage -- ^ image
+                                   ->
+                             VkImageLayout -- ^ imageLayout
+                                           ->
+                               Ptr VkClearColorValue -- ^ pColor
+                                                     ->
+                                 Word32 -- ^ rangeCount
+                                        -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                                       -> IO ()
+vkCmdClearColorImageSafe = vkCmdClearColorImage
+
+{-# INLINE vkCmdClearColorImageSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdClearColorImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage image
+--   >     , VkImageLayout imageLayout
+--   >     , const VkClearColorValue* pColor
+--   >     , uint32_t rangeCount
+--   >     , const VkImageSubresourceRange* pRanges
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearColorImage vkCmdClearColorImage registry at www.khronos.org>
+type HS_vkCmdClearColorImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ image
+               ->
+         VkImageLayout -- ^ imageLayout
+                       ->
+           Ptr VkClearColorValue -- ^ pColor
+                                 ->
+             Word32 -- ^ rangeCount
+                    -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                   -> IO ()
+
+type PFN_vkCmdClearColorImage = FunPtr HS_vkCmdClearColorImage
+
+foreign import ccall "dynamic" unwrapVkCmdClearColorImage ::
+               PFN_vkCmdClearColorImage -> HS_vkCmdClearColorImage
+
+instance VulkanProc "vkCmdClearColorImage" where
+        type VkProcType "vkCmdClearColorImage" = HS_vkCmdClearColorImage
+        vkProcSymbol = _VkCmdClearColorImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdClearColorImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdClearDepthStencilImage :: CString
+
+pattern VkCmdClearDepthStencilImage <-
+        (is_VkCmdClearDepthStencilImage -> True)
+  where VkCmdClearDepthStencilImage = _VkCmdClearDepthStencilImage
+
+{-# INLINE _VkCmdClearDepthStencilImage #-}
+
+_VkCmdClearDepthStencilImage :: CString
+_VkCmdClearDepthStencilImage
+  = Ptr "vkCmdClearDepthStencilImage\NUL"##
+
+{-# INLINE is_VkCmdClearDepthStencilImage #-}
+
+is_VkCmdClearDepthStencilImage :: CString -> Bool
+is_VkCmdClearDepthStencilImage
+  = (EQ ==) . cmpCStrings _VkCmdClearDepthStencilImage
+
+type VkCmdClearDepthStencilImage = "vkCmdClearDepthStencilImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearDepthStencilImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearDepthStencilValue* pDepthStencil
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdClearDepthStencilImage"
+               vkCmdClearDepthStencilImage ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ image
+                         ->
+                   VkImageLayout -- ^ imageLayout
+                                 ->
+                     Ptr VkClearDepthStencilValue -- ^ pDepthStencil
+                                                  ->
+                       Word32 -- ^ rangeCount
+                              -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearDepthStencilImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearDepthStencilValue* pDepthStencil
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearDepthStencilImageSafe@ and @vkCmdClearDepthStencilImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearDepthStencilImage <- vkGetInstanceProc @VkCmdClearDepthStencilImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearDepthStencilImage <- vkGetProc @VkCmdClearDepthStencilImage
+--
+vkCmdClearDepthStencilImage ::
+                            VkCommandBuffer -- ^ commandBuffer
+                                            ->
+                              VkImage -- ^ image
+                                      ->
+                                VkImageLayout -- ^ imageLayout
+                                              ->
+                                  Ptr VkClearDepthStencilValue -- ^ pDepthStencil
+                                                               ->
+                                    Word32 -- ^ rangeCount
+                                           -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                                          -> IO ()
+vkCmdClearDepthStencilImage
+  = unsafeDupablePerformIO (vkGetProc @VkCmdClearDepthStencilImage)
+
+{-# NOINLINE vkCmdClearDepthStencilImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearDepthStencilImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearDepthStencilValue* pDepthStencil
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdClearDepthStencilImage"
+               vkCmdClearDepthStencilImageSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ image
+                         ->
+                   VkImageLayout -- ^ imageLayout
+                                 ->
+                     Ptr VkClearDepthStencilValue -- ^ pDepthStencil
+                                                  ->
+                       Word32 -- ^ rangeCount
+                              -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                             -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdClearDepthStencilImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage image
+-- >     , VkImageLayout imageLayout
+-- >     , const VkClearDepthStencilValue* pDepthStencil
+-- >     , uint32_t rangeCount
+-- >     , const VkImageSubresourceRange* pRanges
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearDepthStencilImageSafe@ and @vkCmdClearDepthStencilImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearDepthStencilImage <- vkGetInstanceProc @VkCmdClearDepthStencilImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearDepthStencilImage <- vkGetProc @VkCmdClearDepthStencilImage
+--
+vkCmdClearDepthStencilImageSafe ::
+                                VkCommandBuffer -- ^ commandBuffer
+                                                ->
+                                  VkImage -- ^ image
+                                          ->
+                                    VkImageLayout -- ^ imageLayout
+                                                  ->
+                                      Ptr VkClearDepthStencilValue -- ^ pDepthStencil
+                                                                   ->
+                                        Word32 -- ^ rangeCount
+                                               -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                                              -> IO ()
+vkCmdClearDepthStencilImageSafe = vkCmdClearDepthStencilImage
+
+{-# INLINE vkCmdClearDepthStencilImageSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdClearDepthStencilImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage image
+--   >     , VkImageLayout imageLayout
+--   >     , const VkClearDepthStencilValue* pDepthStencil
+--   >     , uint32_t rangeCount
+--   >     , const VkImageSubresourceRange* pRanges
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage registry at www.khronos.org>
+type HS_vkCmdClearDepthStencilImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ image
+               ->
+         VkImageLayout -- ^ imageLayout
+                       ->
+           Ptr VkClearDepthStencilValue -- ^ pDepthStencil
+                                        ->
+             Word32 -- ^ rangeCount
+                    -> Ptr VkImageSubresourceRange -- ^ pRanges
+                                                   -> IO ()
+
+type PFN_vkCmdClearDepthStencilImage =
+     FunPtr HS_vkCmdClearDepthStencilImage
+
+foreign import ccall "dynamic" unwrapVkCmdClearDepthStencilImage ::
+               PFN_vkCmdClearDepthStencilImage -> HS_vkCmdClearDepthStencilImage
+
+instance VulkanProc "vkCmdClearDepthStencilImage" where
+        type VkProcType "vkCmdClearDepthStencilImage" =
+             HS_vkCmdClearDepthStencilImage
+        vkProcSymbol = _VkCmdClearDepthStencilImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdClearDepthStencilImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdClearAttachments :: CString
+
+pattern VkCmdClearAttachments <- (is_VkCmdClearAttachments -> True)
+  where VkCmdClearAttachments = _VkCmdClearAttachments
+
+{-# INLINE _VkCmdClearAttachments #-}
+
+_VkCmdClearAttachments :: CString
+_VkCmdClearAttachments = Ptr "vkCmdClearAttachments\NUL"##
+
+{-# INLINE is_VkCmdClearAttachments #-}
+
+is_VkCmdClearAttachments :: CString -> Bool
+is_VkCmdClearAttachments
+  = (EQ ==) . cmpCStrings _VkCmdClearAttachments
+
+type VkCmdClearAttachments = "vkCmdClearAttachments"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdClearAttachments
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t attachmentCount
+-- >     , const VkClearAttachment* pAttachments
+-- >     , uint32_t rectCount
+-- >     , const VkClearRect* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearAttachments vkCmdClearAttachments registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdClearAttachments"
+               vkCmdClearAttachments ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ attachmentCount
+                        ->
+                   Ptr VkClearAttachment -- ^ pAttachments
+                                         -> Word32 -- ^ rectCount
+                                                   -> Ptr VkClearRect -- ^ pRects
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdClearAttachments
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t attachmentCount
+-- >     , const VkClearAttachment* pAttachments
+-- >     , uint32_t rectCount
+-- >     , const VkClearRect* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearAttachments vkCmdClearAttachments registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearAttachmentsSafe@ and @vkCmdClearAttachments@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearAttachments <- vkGetInstanceProc @VkCmdClearAttachments vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearAttachments <- vkGetProc @VkCmdClearAttachments
+--
+vkCmdClearAttachments ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        Word32 -- ^ attachmentCount
+                               ->
+                          Ptr VkClearAttachment -- ^ pAttachments
+                                                -> Word32 -- ^ rectCount
+                                                          -> Ptr VkClearRect -- ^ pRects
+                                                                             -> IO ()
+vkCmdClearAttachments
+  = unsafeDupablePerformIO (vkGetProc @VkCmdClearAttachments)
+
+{-# NOINLINE vkCmdClearAttachments #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdClearAttachments
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t attachmentCount
+-- >     , const VkClearAttachment* pAttachments
+-- >     , uint32_t rectCount
+-- >     , const VkClearRect* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearAttachments vkCmdClearAttachments registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdClearAttachments"
+               vkCmdClearAttachmentsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ attachmentCount
+                        ->
+                   Ptr VkClearAttachment -- ^ pAttachments
+                                         -> Word32 -- ^ rectCount
+                                                   -> Ptr VkClearRect -- ^ pRects
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdClearAttachments
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t attachmentCount
+-- >     , const VkClearAttachment* pAttachments
+-- >     , uint32_t rectCount
+-- >     , const VkClearRect* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearAttachments vkCmdClearAttachments registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdClearAttachmentsSafe@ and @vkCmdClearAttachments@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdClearAttachments <- vkGetInstanceProc @VkCmdClearAttachments vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdClearAttachments <- vkGetProc @VkCmdClearAttachments
+--
+vkCmdClearAttachmentsSafe ::
+                          VkCommandBuffer -- ^ commandBuffer
+                                          ->
+                            Word32 -- ^ attachmentCount
+                                   ->
+                              Ptr VkClearAttachment -- ^ pAttachments
+                                                    -> Word32 -- ^ rectCount
+                                                              -> Ptr VkClearRect -- ^ pRects
+                                                                                 -> IO ()
+vkCmdClearAttachmentsSafe = vkCmdClearAttachments
+
+{-# INLINE vkCmdClearAttachmentsSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdClearAttachments
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t attachmentCount
+--   >     , const VkClearAttachment* pAttachments
+--   >     , uint32_t rectCount
+--   >     , const VkClearRect* pRects
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdClearAttachments vkCmdClearAttachments registry at www.khronos.org>
+type HS_vkCmdClearAttachments =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ attachmentCount
+              ->
+         Ptr VkClearAttachment -- ^ pAttachments
+                               -> Word32 -- ^ rectCount
+                                         -> Ptr VkClearRect -- ^ pRects
+                                                            -> IO ()
+
+type PFN_vkCmdClearAttachments = FunPtr HS_vkCmdClearAttachments
+
+foreign import ccall "dynamic" unwrapVkCmdClearAttachments ::
+               PFN_vkCmdClearAttachments -> HS_vkCmdClearAttachments
+
+instance VulkanProc "vkCmdClearAttachments" where
+        type VkProcType "vkCmdClearAttachments" = HS_vkCmdClearAttachments
+        vkProcSymbol = _VkCmdClearAttachments
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdClearAttachments
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdResolveImage :: CString
+
+pattern VkCmdResolveImage <- (is_VkCmdResolveImage -> True)
+  where VkCmdResolveImage = _VkCmdResolveImage
+
+{-# INLINE _VkCmdResolveImage #-}
+
+_VkCmdResolveImage :: CString
+_VkCmdResolveImage = Ptr "vkCmdResolveImage\NUL"##
+
+{-# INLINE is_VkCmdResolveImage #-}
+
+is_VkCmdResolveImage :: CString -> Bool
+is_VkCmdResolveImage = (EQ ==) . cmpCStrings _VkCmdResolveImage
+
+type VkCmdResolveImage = "vkCmdResolveImage"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdResolveImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageResolve* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResolveImage vkCmdResolveImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdResolveImage" vkCmdResolveImage
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             -> VkImageLayout -- ^ dstImageLayout
+                                              -> Word32 -- ^ regionCount
+                                                        -> Ptr VkImageResolve -- ^ pRegions
+                                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdResolveImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageResolve* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResolveImage vkCmdResolveImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResolveImageSafe@ and @vkCmdResolveImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResolveImage <- vkGetInstanceProc @VkCmdResolveImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResolveImage <- vkGetProc @VkCmdResolveImage
+--
+vkCmdResolveImage ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  ->
+                    VkImage -- ^ srcImage
+                            ->
+                      VkImageLayout -- ^ srcImageLayout
+                                    ->
+                        VkImage -- ^ dstImage
+                                -> VkImageLayout -- ^ dstImageLayout
+                                                 -> Word32 -- ^ regionCount
+                                                           -> Ptr VkImageResolve -- ^ pRegions
+                                                                                 -> IO ()
+vkCmdResolveImage
+  = unsafeDupablePerformIO (vkGetProc @VkCmdResolveImage)
+
+{-# NOINLINE vkCmdResolveImage #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdResolveImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageResolve* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResolveImage vkCmdResolveImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdResolveImage" vkCmdResolveImageSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkImage -- ^ srcImage
+                         ->
+                   VkImageLayout -- ^ srcImageLayout
+                                 ->
+                     VkImage -- ^ dstImage
+                             -> VkImageLayout -- ^ dstImageLayout
+                                              -> Word32 -- ^ regionCount
+                                                        -> Ptr VkImageResolve -- ^ pRegions
+                                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdResolveImage
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkImage srcImage
+-- >     , VkImageLayout srcImageLayout
+-- >     , VkImage dstImage
+-- >     , VkImageLayout dstImageLayout
+-- >     , uint32_t regionCount
+-- >     , const VkImageResolve* pRegions
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResolveImage vkCmdResolveImage registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResolveImageSafe@ and @vkCmdResolveImage@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResolveImage <- vkGetInstanceProc @VkCmdResolveImage vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResolveImage <- vkGetProc @VkCmdResolveImage
+--
+vkCmdResolveImageSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        VkImage -- ^ srcImage
+                                ->
+                          VkImageLayout -- ^ srcImageLayout
+                                        ->
+                            VkImage -- ^ dstImage
+                                    -> VkImageLayout -- ^ dstImageLayout
+                                                     -> Word32 -- ^ regionCount
+                                                               -> Ptr VkImageResolve -- ^ pRegions
+                                                                                     -> IO ()
+vkCmdResolveImageSafe = vkCmdResolveImage
+
+{-# INLINE vkCmdResolveImageSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdResolveImage
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkImage srcImage
+--   >     , VkImageLayout srcImageLayout
+--   >     , VkImage dstImage
+--   >     , VkImageLayout dstImageLayout
+--   >     , uint32_t regionCount
+--   >     , const VkImageResolve* pRegions
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResolveImage vkCmdResolveImage registry at www.khronos.org>
+type HS_vkCmdResolveImage =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkImage -- ^ srcImage
+               ->
+         VkImageLayout -- ^ srcImageLayout
+                       ->
+           VkImage -- ^ dstImage
+                   -> VkImageLayout -- ^ dstImageLayout
+                                    -> Word32 -- ^ regionCount
+                                              -> Ptr VkImageResolve -- ^ pRegions
+                                                                    -> IO ()
+
+type PFN_vkCmdResolveImage = FunPtr HS_vkCmdResolveImage
+
+foreign import ccall "dynamic" unwrapVkCmdResolveImage ::
+               PFN_vkCmdResolveImage -> HS_vkCmdResolveImage
+
+instance VulkanProc "vkCmdResolveImage" where
+        type VkProcType "vkCmdResolveImage" = HS_vkCmdResolveImage
+        vkProcSymbol = _VkCmdResolveImage
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdResolveImage
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetEvent :: CString
+
+pattern VkCmdSetEvent <- (is_VkCmdSetEvent -> True)
+  where VkCmdSetEvent = _VkCmdSetEvent
+
+{-# INLINE _VkCmdSetEvent #-}
+
+_VkCmdSetEvent :: CString
+_VkCmdSetEvent = Ptr "vkCmdSetEvent\NUL"##
+
+{-# INLINE is_VkCmdSetEvent #-}
+
+is_VkCmdSetEvent :: CString -> Bool
+is_VkCmdSetEvent = (EQ ==) . cmpCStrings _VkCmdSetEvent
+
+type VkCmdSetEvent = "vkCmdSetEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdSetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetEvent vkCmdSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetEvent" vkCmdSetEvent ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkEvent -- ^ event
+                                          -> VkPipelineStageFlags -- ^ stageMask
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdSetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetEvent vkCmdSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetEventSafe@ and @vkCmdSetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetEvent <- vkGetInstanceProc @VkCmdSetEvent vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetEvent <- vkGetProc @VkCmdSetEvent
+--
+vkCmdSetEvent ::
+              VkCommandBuffer -- ^ commandBuffer
+                              -> VkEvent -- ^ event
+                                         -> VkPipelineStageFlags -- ^ stageMask
+                                                                 -> IO ()
+vkCmdSetEvent = unsafeDupablePerformIO (vkGetProc @VkCmdSetEvent)
+
+{-# NOINLINE vkCmdSetEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdSetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetEvent vkCmdSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetEvent" vkCmdSetEventSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkEvent -- ^ event
+                                          -> VkPipelineStageFlags -- ^ stageMask
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdSetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetEvent vkCmdSetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetEventSafe@ and @vkCmdSetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetEvent <- vkGetInstanceProc @VkCmdSetEvent vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetEvent <- vkGetProc @VkCmdSetEvent
+--
+vkCmdSetEventSafe ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  -> VkEvent -- ^ event
+                                             -> VkPipelineStageFlags -- ^ stageMask
+                                                                     -> IO ()
+vkCmdSetEventSafe = vkCmdSetEvent
+
+{-# INLINE vkCmdSetEventSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   > void vkCmdSetEvent
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkEvent event
+--   >     , VkPipelineStageFlags stageMask
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetEvent vkCmdSetEvent registry at www.khronos.org>
+type HS_vkCmdSetEvent =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkEvent -- ^ event
+                                -> VkPipelineStageFlags -- ^ stageMask
+                                                        -> IO ()
+
+type PFN_vkCmdSetEvent = FunPtr HS_vkCmdSetEvent
+
+foreign import ccall "dynamic" unwrapVkCmdSetEvent ::
+               PFN_vkCmdSetEvent -> HS_vkCmdSetEvent
+
+instance VulkanProc "vkCmdSetEvent" where
+        type VkProcType "vkCmdSetEvent" = HS_vkCmdSetEvent
+        vkProcSymbol = _VkCmdSetEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdResetEvent :: CString
+
+pattern VkCmdResetEvent <- (is_VkCmdResetEvent -> True)
+  where VkCmdResetEvent = _VkCmdResetEvent
+
+{-# INLINE _VkCmdResetEvent #-}
+
+_VkCmdResetEvent :: CString
+_VkCmdResetEvent = Ptr "vkCmdResetEvent\NUL"##
+
+{-# INLINE is_VkCmdResetEvent #-}
+
+is_VkCmdResetEvent :: CString -> Bool
+is_VkCmdResetEvent = (EQ ==) . cmpCStrings _VkCmdResetEvent
+
+type VkCmdResetEvent = "vkCmdResetEvent"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetEvent vkCmdResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdResetEvent" vkCmdResetEvent ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkEvent -- ^ event
+                                          -> VkPipelineStageFlags -- ^ stageMask
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetEvent vkCmdResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResetEventSafe@ and @vkCmdResetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResetEvent <- vkGetInstanceProc @VkCmdResetEvent vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResetEvent <- vkGetProc @VkCmdResetEvent
+--
+vkCmdResetEvent ::
+                VkCommandBuffer -- ^ commandBuffer
+                                -> VkEvent -- ^ event
+                                           -> VkPipelineStageFlags -- ^ stageMask
+                                                                   -> IO ()
+vkCmdResetEvent
+  = unsafeDupablePerformIO (vkGetProc @VkCmdResetEvent)
+
+{-# NOINLINE vkCmdResetEvent #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetEvent vkCmdResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdResetEvent" vkCmdResetEventSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkEvent -- ^ event
+                                          -> VkPipelineStageFlags -- ^ stageMask
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetEvent
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkEvent event
+-- >     , VkPipelineStageFlags stageMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetEvent vkCmdResetEvent registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResetEventSafe@ and @vkCmdResetEvent@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResetEvent <- vkGetInstanceProc @VkCmdResetEvent vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResetEvent <- vkGetProc @VkCmdResetEvent
+--
+vkCmdResetEventSafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    -> VkEvent -- ^ event
+                                               -> VkPipelineStageFlags -- ^ stageMask
+                                                                       -> IO ()
+vkCmdResetEventSafe = vkCmdResetEvent
+
+{-# INLINE vkCmdResetEventSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   > void vkCmdResetEvent
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkEvent event
+--   >     , VkPipelineStageFlags stageMask
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetEvent vkCmdResetEvent registry at www.khronos.org>
+type HS_vkCmdResetEvent =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkEvent -- ^ event
+                                -> VkPipelineStageFlags -- ^ stageMask
+                                                        -> IO ()
+
+type PFN_vkCmdResetEvent = FunPtr HS_vkCmdResetEvent
+
+foreign import ccall "dynamic" unwrapVkCmdResetEvent ::
+               PFN_vkCmdResetEvent -> HS_vkCmdResetEvent
+
+instance VulkanProc "vkCmdResetEvent" where
+        type VkProcType "vkCmdResetEvent" = HS_vkCmdResetEvent
+        vkProcSymbol = _VkCmdResetEvent
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdResetEvent
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdWaitEvents :: CString
+
+pattern VkCmdWaitEvents <- (is_VkCmdWaitEvents -> True)
+  where VkCmdWaitEvents = _VkCmdWaitEvents
+
+{-# INLINE _VkCmdWaitEvents #-}
+
+_VkCmdWaitEvents :: CString
+_VkCmdWaitEvents = Ptr "vkCmdWaitEvents\NUL"##
+
+{-# INLINE is_VkCmdWaitEvents #-}
+
+is_VkCmdWaitEvents :: CString -> Bool
+is_VkCmdWaitEvents = (EQ ==) . cmpCStrings _VkCmdWaitEvents
+
+type VkCmdWaitEvents = "vkCmdWaitEvents"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdWaitEvents
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t eventCount
+-- >     , const VkEvent* pEvents
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWaitEvents vkCmdWaitEvents registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdWaitEvents" vkCmdWaitEvents ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ eventCount
+                        ->
+                   Ptr VkEvent -- ^ pEvents
+                               ->
+                     VkPipelineStageFlags -- ^ srcStageMask
+                                          ->
+                       VkPipelineStageFlags -- ^ dstStageMask
+                                            ->
+                         Word32 -- ^ memoryBarrierCount
+                                ->
+                           Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                               ->
+                             Word32 -- ^ bufferMemoryBarrierCount
+                                    ->
+                               Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                         ->
+                                 Word32 -- ^ imageMemoryBarrierCount
+                                        -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                    -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdWaitEvents
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t eventCount
+-- >     , const VkEvent* pEvents
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWaitEvents vkCmdWaitEvents registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdWaitEventsSafe@ and @vkCmdWaitEvents@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdWaitEvents <- vkGetInstanceProc @VkCmdWaitEvents vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdWaitEvents <- vkGetProc @VkCmdWaitEvents
+--
+vkCmdWaitEvents ::
+                VkCommandBuffer -- ^ commandBuffer
+                                ->
+                  Word32 -- ^ eventCount
+                         ->
+                    Ptr VkEvent -- ^ pEvents
+                                ->
+                      VkPipelineStageFlags -- ^ srcStageMask
+                                           ->
+                        VkPipelineStageFlags -- ^ dstStageMask
+                                             ->
+                          Word32 -- ^ memoryBarrierCount
+                                 ->
+                            Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                                ->
+                              Word32 -- ^ bufferMemoryBarrierCount
+                                     ->
+                                Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                          ->
+                                  Word32 -- ^ imageMemoryBarrierCount
+                                         -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                     -> IO ()
+vkCmdWaitEvents
+  = unsafeDupablePerformIO (vkGetProc @VkCmdWaitEvents)
+
+{-# NOINLINE vkCmdWaitEvents #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdWaitEvents
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t eventCount
+-- >     , const VkEvent* pEvents
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWaitEvents vkCmdWaitEvents registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdWaitEvents" vkCmdWaitEventsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ eventCount
+                        ->
+                   Ptr VkEvent -- ^ pEvents
+                               ->
+                     VkPipelineStageFlags -- ^ srcStageMask
+                                          ->
+                       VkPipelineStageFlags -- ^ dstStageMask
+                                            ->
+                         Word32 -- ^ memoryBarrierCount
+                                ->
+                           Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                               ->
+                             Word32 -- ^ bufferMemoryBarrierCount
+                                    ->
+                               Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                         ->
+                                 Word32 -- ^ imageMemoryBarrierCount
+                                        -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                    -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdWaitEvents
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t eventCount
+-- >     , const VkEvent* pEvents
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWaitEvents vkCmdWaitEvents registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdWaitEventsSafe@ and @vkCmdWaitEvents@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdWaitEvents <- vkGetInstanceProc @VkCmdWaitEvents vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdWaitEvents <- vkGetProc @VkCmdWaitEvents
+--
+vkCmdWaitEventsSafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      Word32 -- ^ eventCount
+                             ->
+                        Ptr VkEvent -- ^ pEvents
+                                    ->
+                          VkPipelineStageFlags -- ^ srcStageMask
+                                               ->
+                            VkPipelineStageFlags -- ^ dstStageMask
+                                                 ->
+                              Word32 -- ^ memoryBarrierCount
+                                     ->
+                                Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                                    ->
+                                  Word32 -- ^ bufferMemoryBarrierCount
+                                         ->
+                                    Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                              ->
+                                      Word32 -- ^ imageMemoryBarrierCount
+                                             -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                         -> IO ()
+vkCmdWaitEventsSafe = vkCmdWaitEvents
+
+{-# INLINE vkCmdWaitEventsSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdWaitEvents
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t eventCount
+--   >     , const VkEvent* pEvents
+--   >     , VkPipelineStageFlags srcStageMask
+--   >     , VkPipelineStageFlags dstStageMask
+--   >     , uint32_t memoryBarrierCount
+--   >     , const VkMemoryBarrier* pMemoryBarriers
+--   >     , uint32_t bufferMemoryBarrierCount
+--   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+--   >     , uint32_t imageMemoryBarrierCount
+--   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWaitEvents vkCmdWaitEvents registry at www.khronos.org>
+type HS_vkCmdWaitEvents =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ eventCount
+              ->
+         Ptr VkEvent -- ^ pEvents
+                     ->
+           VkPipelineStageFlags -- ^ srcStageMask
+                                ->
+             VkPipelineStageFlags -- ^ dstStageMask
+                                  ->
+               Word32 -- ^ memoryBarrierCount
+                      ->
+                 Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                     ->
+                   Word32 -- ^ bufferMemoryBarrierCount
+                          ->
+                     Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                               ->
+                       Word32 -- ^ imageMemoryBarrierCount
+                              -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                          -> IO ()
+
+type PFN_vkCmdWaitEvents = FunPtr HS_vkCmdWaitEvents
+
+foreign import ccall "dynamic" unwrapVkCmdWaitEvents ::
+               PFN_vkCmdWaitEvents -> HS_vkCmdWaitEvents
+
+instance VulkanProc "vkCmdWaitEvents" where
+        type VkProcType "vkCmdWaitEvents" = HS_vkCmdWaitEvents
+        vkProcSymbol = _VkCmdWaitEvents
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdWaitEvents
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdPipelineBarrier :: CString
+
+pattern VkCmdPipelineBarrier <- (is_VkCmdPipelineBarrier -> True)
+  where VkCmdPipelineBarrier = _VkCmdPipelineBarrier
+
+{-# INLINE _VkCmdPipelineBarrier #-}
+
+_VkCmdPipelineBarrier :: CString
+_VkCmdPipelineBarrier = Ptr "vkCmdPipelineBarrier\NUL"##
+
+{-# INLINE is_VkCmdPipelineBarrier #-}
+
+is_VkCmdPipelineBarrier :: CString -> Bool
+is_VkCmdPipelineBarrier
+  = (EQ ==) . cmpCStrings _VkCmdPipelineBarrier
+
+type VkCmdPipelineBarrier = "vkCmdPipelineBarrier"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPipelineBarrier
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , VkDependencyFlags dependencyFlags
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPipelineBarrier vkCmdPipelineBarrier registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdPipelineBarrier"
+               vkCmdPipelineBarrier ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineStageFlags -- ^ srcStageMask
+                                      ->
+                   VkPipelineStageFlags -- ^ dstStageMask
+                                        ->
+                     VkDependencyFlags -- ^ dependencyFlags
+                                       ->
+                       Word32 -- ^ memoryBarrierCount
+                              ->
+                         Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                             ->
+                           Word32 -- ^ bufferMemoryBarrierCount
+                                  ->
+                             Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                       ->
+                               Word32 -- ^ imageMemoryBarrierCount
+                                      -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPipelineBarrier
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , VkDependencyFlags dependencyFlags
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPipelineBarrier vkCmdPipelineBarrier registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdPipelineBarrierSafe@ and @vkCmdPipelineBarrier@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdPipelineBarrier <- vkGetInstanceProc @VkCmdPipelineBarrier vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdPipelineBarrier <- vkGetProc @VkCmdPipelineBarrier
+--
+vkCmdPipelineBarrier ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     ->
+                       VkPipelineStageFlags -- ^ srcStageMask
+                                            ->
+                         VkPipelineStageFlags -- ^ dstStageMask
+                                              ->
+                           VkDependencyFlags -- ^ dependencyFlags
+                                             ->
+                             Word32 -- ^ memoryBarrierCount
+                                    ->
+                               Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                                   ->
+                                 Word32 -- ^ bufferMemoryBarrierCount
+                                        ->
+                                   Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                             ->
+                                     Word32 -- ^ imageMemoryBarrierCount
+                                            -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                        -> IO ()
+vkCmdPipelineBarrier
+  = unsafeDupablePerformIO (vkGetProc @VkCmdPipelineBarrier)
+
+{-# NOINLINE vkCmdPipelineBarrier #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPipelineBarrier
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , VkDependencyFlags dependencyFlags
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPipelineBarrier vkCmdPipelineBarrier registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdPipelineBarrier"
+               vkCmdPipelineBarrierSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineStageFlags -- ^ srcStageMask
+                                      ->
+                   VkPipelineStageFlags -- ^ dstStageMask
+                                        ->
+                     VkDependencyFlags -- ^ dependencyFlags
+                                       ->
+                       Word32 -- ^ memoryBarrierCount
+                              ->
+                         Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                             ->
+                           Word32 -- ^ bufferMemoryBarrierCount
+                                  ->
+                             Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                       ->
+                               Word32 -- ^ imageMemoryBarrierCount
+                                      -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPipelineBarrier
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlags srcStageMask
+-- >     , VkPipelineStageFlags dstStageMask
+-- >     , VkDependencyFlags dependencyFlags
+-- >     , uint32_t memoryBarrierCount
+-- >     , const VkMemoryBarrier* pMemoryBarriers
+-- >     , uint32_t bufferMemoryBarrierCount
+-- >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+-- >     , uint32_t imageMemoryBarrierCount
+-- >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPipelineBarrier vkCmdPipelineBarrier registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdPipelineBarrierSafe@ and @vkCmdPipelineBarrier@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdPipelineBarrier <- vkGetInstanceProc @VkCmdPipelineBarrier vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdPipelineBarrier <- vkGetProc @VkCmdPipelineBarrier
+--
+vkCmdPipelineBarrierSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         ->
+                           VkPipelineStageFlags -- ^ srcStageMask
+                                                ->
+                             VkPipelineStageFlags -- ^ dstStageMask
+                                                  ->
+                               VkDependencyFlags -- ^ dependencyFlags
+                                                 ->
+                                 Word32 -- ^ memoryBarrierCount
+                                        ->
+                                   Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                                       ->
+                                     Word32 -- ^ bufferMemoryBarrierCount
+                                            ->
+                                       Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                                                 ->
+                                         Word32 -- ^ imageMemoryBarrierCount
+                                                -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                                            -> IO ()
+vkCmdPipelineBarrierSafe = vkCmdPipelineBarrier
+
+{-# INLINE vkCmdPipelineBarrierSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdPipelineBarrier
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkPipelineStageFlags srcStageMask
+--   >     , VkPipelineStageFlags dstStageMask
+--   >     , VkDependencyFlags dependencyFlags
+--   >     , uint32_t memoryBarrierCount
+--   >     , const VkMemoryBarrier* pMemoryBarriers
+--   >     , uint32_t bufferMemoryBarrierCount
+--   >     , const VkBufferMemoryBarrier* pBufferMemoryBarriers
+--   >     , uint32_t imageMemoryBarrierCount
+--   >     , const VkImageMemoryBarrier* pImageMemoryBarriers
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPipelineBarrier vkCmdPipelineBarrier registry at www.khronos.org>
+type HS_vkCmdPipelineBarrier =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineStageFlags -- ^ srcStageMask
+                            ->
+         VkPipelineStageFlags -- ^ dstStageMask
+                              ->
+           VkDependencyFlags -- ^ dependencyFlags
+                             ->
+             Word32 -- ^ memoryBarrierCount
+                    ->
+               Ptr VkMemoryBarrier -- ^ pMemoryBarriers
+                                   ->
+                 Word32 -- ^ bufferMemoryBarrierCount
+                        ->
+                   Ptr VkBufferMemoryBarrier -- ^ pBufferMemoryBarriers
+                                             ->
+                     Word32 -- ^ imageMemoryBarrierCount
+                            -> Ptr VkImageMemoryBarrier -- ^ pImageMemoryBarriers
+                                                        -> IO ()
+
+type PFN_vkCmdPipelineBarrier = FunPtr HS_vkCmdPipelineBarrier
+
+foreign import ccall "dynamic" unwrapVkCmdPipelineBarrier ::
+               PFN_vkCmdPipelineBarrier -> HS_vkCmdPipelineBarrier
+
+instance VulkanProc "vkCmdPipelineBarrier" where
+        type VkProcType "vkCmdPipelineBarrier" = HS_vkCmdPipelineBarrier
+        vkProcSymbol = _VkCmdPipelineBarrier
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdPipelineBarrier
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBeginQuery :: CString
+
+pattern VkCmdBeginQuery <- (is_VkCmdBeginQuery -> True)
+  where VkCmdBeginQuery = _VkCmdBeginQuery
+
+{-# INLINE _VkCmdBeginQuery #-}
+
+_VkCmdBeginQuery :: CString
+_VkCmdBeginQuery = Ptr "vkCmdBeginQuery\NUL"##
+
+{-# INLINE is_VkCmdBeginQuery #-}
+
+is_VkCmdBeginQuery :: CString -> Bool
+is_VkCmdBeginQuery = (EQ ==) . cmpCStrings _VkCmdBeginQuery
+
+type VkCmdBeginQuery = "vkCmdBeginQuery"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBeginQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     , VkQueryControlFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginQuery vkCmdBeginQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBeginQuery" vkCmdBeginQuery ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkQueryPool -- ^ queryPool
+                             -> Word32 -- ^ query
+                                       -> VkQueryControlFlags -- ^ flags
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBeginQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     , VkQueryControlFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginQuery vkCmdBeginQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBeginQuerySafe@ and @vkCmdBeginQuery@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBeginQuery <- vkGetInstanceProc @VkCmdBeginQuery vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBeginQuery <- vkGetProc @VkCmdBeginQuery
+--
+vkCmdBeginQuery ::
+                VkCommandBuffer -- ^ commandBuffer
+                                ->
+                  VkQueryPool -- ^ queryPool
+                              -> Word32 -- ^ query
+                                        -> VkQueryControlFlags -- ^ flags
+                                                               -> IO ()
+vkCmdBeginQuery
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBeginQuery)
+
+{-# NOINLINE vkCmdBeginQuery #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBeginQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     , VkQueryControlFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginQuery vkCmdBeginQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBeginQuery" vkCmdBeginQuerySafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkQueryPool -- ^ queryPool
+                             -> Word32 -- ^ query
+                                       -> VkQueryControlFlags -- ^ flags
+                                                              -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdBeginQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     , VkQueryControlFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginQuery vkCmdBeginQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBeginQuerySafe@ and @vkCmdBeginQuery@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBeginQuery <- vkGetInstanceProc @VkCmdBeginQuery vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBeginQuery <- vkGetProc @VkCmdBeginQuery
+--
+vkCmdBeginQuerySafe ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      VkQueryPool -- ^ queryPool
+                                  -> Word32 -- ^ query
+                                            -> VkQueryControlFlags -- ^ flags
+                                                                   -> IO ()
+vkCmdBeginQuerySafe = vkCmdBeginQuery
+
+{-# INLINE vkCmdBeginQuerySafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdBeginQuery
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t query
+--   >     , VkQueryControlFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginQuery vkCmdBeginQuery registry at www.khronos.org>
+type HS_vkCmdBeginQuery =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkQueryPool -- ^ queryPool
+                   -> Word32 -- ^ query
+                             -> VkQueryControlFlags -- ^ flags
+                                                    -> IO ()
+
+type PFN_vkCmdBeginQuery = FunPtr HS_vkCmdBeginQuery
+
+foreign import ccall "dynamic" unwrapVkCmdBeginQuery ::
+               PFN_vkCmdBeginQuery -> HS_vkCmdBeginQuery
+
+instance VulkanProc "vkCmdBeginQuery" where
+        type VkProcType "vkCmdBeginQuery" = HS_vkCmdBeginQuery
+        vkProcSymbol = _VkCmdBeginQuery
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBeginQuery
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdEndQuery :: CString
+
+pattern VkCmdEndQuery <- (is_VkCmdEndQuery -> True)
+  where VkCmdEndQuery = _VkCmdEndQuery
+
+{-# INLINE _VkCmdEndQuery #-}
+
+_VkCmdEndQuery :: CString
+_VkCmdEndQuery = Ptr "vkCmdEndQuery\NUL"##
+
+{-# INLINE is_VkCmdEndQuery #-}
+
+is_VkCmdEndQuery :: CString -> Bool
+is_VkCmdEndQuery = (EQ ==) . cmpCStrings _VkCmdEndQuery
+
+type VkCmdEndQuery = "vkCmdEndQuery"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdEndQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndQuery vkCmdEndQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdEndQuery" vkCmdEndQuery ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkQueryPool -- ^ queryPool
+                                              -> Word32 -- ^ query
+                                                        -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdEndQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndQuery vkCmdEndQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdEndQuerySafe@ and @vkCmdEndQuery@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdEndQuery <- vkGetInstanceProc @VkCmdEndQuery vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdEndQuery <- vkGetProc @VkCmdEndQuery
+--
+vkCmdEndQuery :: VkCommandBuffer -- ^ commandBuffer
+                                 -> VkQueryPool -- ^ queryPool
+                                                -> Word32 -- ^ query
+                                                          -> IO ()
+vkCmdEndQuery = unsafeDupablePerformIO (vkGetProc @VkCmdEndQuery)
+
+{-# NOINLINE vkCmdEndQuery #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdEndQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndQuery vkCmdEndQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdEndQuery" vkCmdEndQuerySafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkQueryPool -- ^ queryPool
+                                              -> Word32 -- ^ query
+                                                        -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdEndQuery
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndQuery vkCmdEndQuery registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdEndQuerySafe@ and @vkCmdEndQuery@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdEndQuery <- vkGetInstanceProc @VkCmdEndQuery vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdEndQuery <- vkGetProc @VkCmdEndQuery
+--
+vkCmdEndQuerySafe ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  -> VkQueryPool -- ^ queryPool
+                                                 -> Word32 -- ^ query
+                                                           -> IO ()
+vkCmdEndQuerySafe = vkCmdEndQuery
+
+{-# INLINE vkCmdEndQuerySafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdEndQuery
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t query
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndQuery vkCmdEndQuery registry at www.khronos.org>
+type HS_vkCmdEndQuery =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkQueryPool -- ^ queryPool
+                                    -> Word32 -- ^ query
+                                              -> IO ()
+
+type PFN_vkCmdEndQuery = FunPtr HS_vkCmdEndQuery
+
+foreign import ccall "dynamic" unwrapVkCmdEndQuery ::
+               PFN_vkCmdEndQuery -> HS_vkCmdEndQuery
+
+instance VulkanProc "vkCmdEndQuery" where
+        type VkProcType "vkCmdEndQuery" = HS_vkCmdEndQuery
+        vkProcSymbol = _VkCmdEndQuery
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdEndQuery
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdResetQueryPool :: CString
+
+pattern VkCmdResetQueryPool <- (is_VkCmdResetQueryPool -> True)
+  where VkCmdResetQueryPool = _VkCmdResetQueryPool
+
+{-# INLINE _VkCmdResetQueryPool #-}
+
+_VkCmdResetQueryPool :: CString
+_VkCmdResetQueryPool = Ptr "vkCmdResetQueryPool\NUL"##
+
+{-# INLINE is_VkCmdResetQueryPool #-}
+
+is_VkCmdResetQueryPool :: CString -> Bool
+is_VkCmdResetQueryPool = (EQ ==) . cmpCStrings _VkCmdResetQueryPool
+
+type VkCmdResetQueryPool = "vkCmdResetQueryPool"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetQueryPool
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetQueryPool vkCmdResetQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdResetQueryPool"
+               vkCmdResetQueryPool ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkQueryPool -- ^ queryPool
+                                              -> Word32 -- ^ firstQuery
+                                                        -> Word32 -- ^ queryCount
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetQueryPool
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetQueryPool vkCmdResetQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResetQueryPoolSafe@ and @vkCmdResetQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResetQueryPool <- vkGetInstanceProc @VkCmdResetQueryPool vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResetQueryPool <- vkGetProc @VkCmdResetQueryPool
+--
+vkCmdResetQueryPool ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    -> VkQueryPool -- ^ queryPool
+                                                   -> Word32 -- ^ firstQuery
+                                                             -> Word32 -- ^ queryCount
+                                                                       -> IO ()
+vkCmdResetQueryPool
+  = unsafeDupablePerformIO (vkGetProc @VkCmdResetQueryPool)
+
+{-# NOINLINE vkCmdResetQueryPool #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetQueryPool
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetQueryPool vkCmdResetQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdResetQueryPool"
+               vkCmdResetQueryPoolSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkQueryPool -- ^ queryPool
+                                              -> Word32 -- ^ firstQuery
+                                                        -> Word32 -- ^ queryCount
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdResetQueryPool
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetQueryPool vkCmdResetQueryPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdResetQueryPoolSafe@ and @vkCmdResetQueryPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdResetQueryPool <- vkGetInstanceProc @VkCmdResetQueryPool vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdResetQueryPool <- vkGetProc @VkCmdResetQueryPool
+--
+vkCmdResetQueryPoolSafe ::
+                        VkCommandBuffer -- ^ commandBuffer
+                                        -> VkQueryPool -- ^ queryPool
+                                                       -> Word32 -- ^ firstQuery
+                                                                 -> Word32 -- ^ queryCount
+                                                                           -> IO ()
+vkCmdResetQueryPoolSafe = vkCmdResetQueryPool
+
+{-# INLINE vkCmdResetQueryPoolSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   > void vkCmdResetQueryPool
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t firstQuery
+--   >     , uint32_t queryCount
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdResetQueryPool vkCmdResetQueryPool registry at www.khronos.org>
+type HS_vkCmdResetQueryPool =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkQueryPool -- ^ queryPool
+                                    -> Word32 -- ^ firstQuery
+                                              -> Word32 -- ^ queryCount
+                                                        -> IO ()
+
+type PFN_vkCmdResetQueryPool = FunPtr HS_vkCmdResetQueryPool
+
+foreign import ccall "dynamic" unwrapVkCmdResetQueryPool ::
+               PFN_vkCmdResetQueryPool -> HS_vkCmdResetQueryPool
+
+instance VulkanProc "vkCmdResetQueryPool" where
+        type VkProcType "vkCmdResetQueryPool" = HS_vkCmdResetQueryPool
+        vkProcSymbol = _VkCmdResetQueryPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdResetQueryPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdWriteTimestamp :: CString
+
+pattern VkCmdWriteTimestamp <- (is_VkCmdWriteTimestamp -> True)
+  where VkCmdWriteTimestamp = _VkCmdWriteTimestamp
+
+{-# INLINE _VkCmdWriteTimestamp #-}
+
+_VkCmdWriteTimestamp :: CString
+_VkCmdWriteTimestamp = Ptr "vkCmdWriteTimestamp\NUL"##
+
+{-# INLINE is_VkCmdWriteTimestamp #-}
+
+is_VkCmdWriteTimestamp :: CString -> Bool
+is_VkCmdWriteTimestamp = (EQ ==) . cmpCStrings _VkCmdWriteTimestamp
+
+type VkCmdWriteTimestamp = "vkCmdWriteTimestamp"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdWriteTimestamp
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlagBits pipelineStage
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteTimestamp vkCmdWriteTimestamp registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdWriteTimestamp"
+               vkCmdWriteTimestamp ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineStageFlagBits -- ^ pipelineStage
+                                         -> VkQueryPool -- ^ queryPool
+                                                        -> Word32 -- ^ query
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdWriteTimestamp
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlagBits pipelineStage
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteTimestamp vkCmdWriteTimestamp registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdWriteTimestampSafe@ and @vkCmdWriteTimestamp@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdWriteTimestamp <- vkGetInstanceProc @VkCmdWriteTimestamp vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdWriteTimestamp <- vkGetProc @VkCmdWriteTimestamp
+--
+vkCmdWriteTimestamp ::
+                    VkCommandBuffer -- ^ commandBuffer
+                                    ->
+                      VkPipelineStageFlagBits -- ^ pipelineStage
+                                              -> VkQueryPool -- ^ queryPool
+                                                             -> Word32 -- ^ query
+                                                                       -> IO ()
+vkCmdWriteTimestamp
+  = unsafeDupablePerformIO (vkGetProc @VkCmdWriteTimestamp)
+
+{-# NOINLINE vkCmdWriteTimestamp #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdWriteTimestamp
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlagBits pipelineStage
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteTimestamp vkCmdWriteTimestamp registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdWriteTimestamp"
+               vkCmdWriteTimestampSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineStageFlagBits -- ^ pipelineStage
+                                         -> VkQueryPool -- ^ queryPool
+                                                        -> Word32 -- ^ query
+                                                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdWriteTimestamp
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineStageFlagBits pipelineStage
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t query
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteTimestamp vkCmdWriteTimestamp registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdWriteTimestampSafe@ and @vkCmdWriteTimestamp@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdWriteTimestamp <- vkGetInstanceProc @VkCmdWriteTimestamp vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdWriteTimestamp <- vkGetProc @VkCmdWriteTimestamp
+--
+vkCmdWriteTimestampSafe ::
+                        VkCommandBuffer -- ^ commandBuffer
+                                        ->
+                          VkPipelineStageFlagBits -- ^ pipelineStage
+                                                  -> VkQueryPool -- ^ queryPool
+                                                                 -> Word32 -- ^ query
+                                                                           -> IO ()
+vkCmdWriteTimestampSafe = vkCmdWriteTimestamp
+
+{-# INLINE vkCmdWriteTimestampSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdWriteTimestamp
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkPipelineStageFlagBits pipelineStage
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t query
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteTimestamp vkCmdWriteTimestamp registry at www.khronos.org>
+type HS_vkCmdWriteTimestamp =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineStageFlagBits -- ^ pipelineStage
+                               -> VkQueryPool -- ^ queryPool
+                                              -> Word32 -- ^ query
+                                                        -> IO ()
+
+type PFN_vkCmdWriteTimestamp = FunPtr HS_vkCmdWriteTimestamp
+
+foreign import ccall "dynamic" unwrapVkCmdWriteTimestamp ::
+               PFN_vkCmdWriteTimestamp -> HS_vkCmdWriteTimestamp
+
+instance VulkanProc "vkCmdWriteTimestamp" where
+        type VkProcType "vkCmdWriteTimestamp" = HS_vkCmdWriteTimestamp
+        vkProcSymbol = _VkCmdWriteTimestamp
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdWriteTimestamp
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdCopyQueryPoolResults :: CString
+
+pattern VkCmdCopyQueryPoolResults <-
+        (is_VkCmdCopyQueryPoolResults -> True)
+  where VkCmdCopyQueryPoolResults = _VkCmdCopyQueryPoolResults
+
+{-# INLINE _VkCmdCopyQueryPoolResults #-}
+
+_VkCmdCopyQueryPoolResults :: CString
+_VkCmdCopyQueryPoolResults = Ptr "vkCmdCopyQueryPoolResults\NUL"##
+
+{-# INLINE is_VkCmdCopyQueryPoolResults #-}
+
+is_VkCmdCopyQueryPoolResults :: CString -> Bool
+is_VkCmdCopyQueryPoolResults
+  = (EQ ==) . cmpCStrings _VkCmdCopyQueryPoolResults
+
+type VkCmdCopyQueryPoolResults = "vkCmdCopyQueryPoolResults"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyQueryPoolResults
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdCopyQueryPoolResults"
+               vkCmdCopyQueryPoolResults ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkQueryPool -- ^ queryPool
+                             ->
+                   Word32 -- ^ firstQuery
+                          ->
+                     Word32 -- ^ queryCount
+                            ->
+                       VkBuffer -- ^ dstBuffer
+                                ->
+                         VkDeviceSize -- ^ dstOffset
+                                      -> VkDeviceSize -- ^ stride
+                                                      -> VkQueryResultFlags -- ^ flags
+                                                                            -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyQueryPoolResults
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyQueryPoolResultsSafe@ and @vkCmdCopyQueryPoolResults@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyQueryPoolResults <- vkGetInstanceProc @VkCmdCopyQueryPoolResults vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyQueryPoolResults <- vkGetProc @VkCmdCopyQueryPoolResults
+--
+vkCmdCopyQueryPoolResults ::
+                          VkCommandBuffer -- ^ commandBuffer
+                                          ->
+                            VkQueryPool -- ^ queryPool
+                                        ->
+                              Word32 -- ^ firstQuery
+                                     ->
+                                Word32 -- ^ queryCount
+                                       ->
+                                  VkBuffer -- ^ dstBuffer
+                                           ->
+                                    VkDeviceSize -- ^ dstOffset
+                                                 -> VkDeviceSize -- ^ stride
+                                                                 -> VkQueryResultFlags -- ^ flags
+                                                                                       -> IO ()
+vkCmdCopyQueryPoolResults
+  = unsafeDupablePerformIO (vkGetProc @VkCmdCopyQueryPoolResults)
+
+{-# NOINLINE vkCmdCopyQueryPoolResults #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyQueryPoolResults
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdCopyQueryPoolResults"
+               vkCmdCopyQueryPoolResultsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkQueryPool -- ^ queryPool
+                             ->
+                   Word32 -- ^ firstQuery
+                          ->
+                     Word32 -- ^ queryCount
+                            ->
+                       VkBuffer -- ^ dstBuffer
+                                ->
+                         VkDeviceSize -- ^ dstOffset
+                                      -> VkDeviceSize -- ^ stride
+                                                      -> VkQueryResultFlags -- ^ flags
+                                                                            -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @transfer@
+--
+-- > void vkCmdCopyQueryPoolResults
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkQueryPool queryPool
+-- >     , uint32_t firstQuery
+-- >     , uint32_t queryCount
+-- >     , VkBuffer dstBuffer
+-- >     , VkDeviceSize dstOffset
+-- >     , VkDeviceSize stride
+-- >     , VkQueryResultFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdCopyQueryPoolResultsSafe@ and @vkCmdCopyQueryPoolResults@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdCopyQueryPoolResults <- vkGetInstanceProc @VkCmdCopyQueryPoolResults vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdCopyQueryPoolResults <- vkGetProc @VkCmdCopyQueryPoolResults
+--
+vkCmdCopyQueryPoolResultsSafe ::
+                              VkCommandBuffer -- ^ commandBuffer
+                                              ->
+                                VkQueryPool -- ^ queryPool
+                                            ->
+                                  Word32 -- ^ firstQuery
+                                         ->
+                                    Word32 -- ^ queryCount
+                                           ->
+                                      VkBuffer -- ^ dstBuffer
+                                               ->
+                                        VkDeviceSize -- ^ dstOffset
+                                                     -> VkDeviceSize -- ^ stride
+                                                                     -> VkQueryResultFlags -- ^ flags
+                                                                                           -> IO ()
+vkCmdCopyQueryPoolResultsSafe = vkCmdCopyQueryPoolResults
+
+{-# INLINE vkCmdCopyQueryPoolResultsSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @transfer@
+--
+--   > void vkCmdCopyQueryPoolResults
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkQueryPool queryPool
+--   >     , uint32_t firstQuery
+--   >     , uint32_t queryCount
+--   >     , VkBuffer dstBuffer
+--   >     , VkDeviceSize dstOffset
+--   >     , VkDeviceSize stride
+--   >     , VkQueryResultFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults registry at www.khronos.org>
+type HS_vkCmdCopyQueryPoolResults =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkQueryPool -- ^ queryPool
+                   ->
+         Word32 -- ^ firstQuery
+                ->
+           Word32 -- ^ queryCount
+                  ->
+             VkBuffer -- ^ dstBuffer
+                      ->
+               VkDeviceSize -- ^ dstOffset
+                            -> VkDeviceSize -- ^ stride
+                                            -> VkQueryResultFlags -- ^ flags
+                                                                  -> IO ()
+
+type PFN_vkCmdCopyQueryPoolResults =
+     FunPtr HS_vkCmdCopyQueryPoolResults
+
+foreign import ccall "dynamic" unwrapVkCmdCopyQueryPoolResults ::
+               PFN_vkCmdCopyQueryPoolResults -> HS_vkCmdCopyQueryPoolResults
+
+instance VulkanProc "vkCmdCopyQueryPoolResults" where
+        type VkProcType "vkCmdCopyQueryPoolResults" =
+             HS_vkCmdCopyQueryPoolResults
+        vkProcSymbol = _VkCmdCopyQueryPoolResults
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdCopyQueryPoolResults
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdPushConstants :: CString
+
+pattern VkCmdPushConstants <- (is_VkCmdPushConstants -> True)
+  where VkCmdPushConstants = _VkCmdPushConstants
+
+{-# INLINE _VkCmdPushConstants #-}
+
+_VkCmdPushConstants :: CString
+_VkCmdPushConstants = Ptr "vkCmdPushConstants\NUL"##
+
+{-# INLINE is_VkCmdPushConstants #-}
+
+is_VkCmdPushConstants :: CString -> Bool
+is_VkCmdPushConstants = (EQ ==) . cmpCStrings _VkCmdPushConstants
+
+type VkCmdPushConstants = "vkCmdPushConstants"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPushConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineLayout layout
+-- >     , VkShaderStageFlags stageFlags
+-- >     , uint32_t offset
+-- >     , uint32_t size
+-- >     , const void* pValues
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushConstants vkCmdPushConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdPushConstants" vkCmdPushConstants
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineLayout -- ^ layout
+                                  ->
+                   VkShaderStageFlags -- ^ stageFlags
+                                      -> Word32 -- ^ offset
+                                                -> Word32 -- ^ size
+                                                          -> Ptr Void -- ^ pValues
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPushConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineLayout layout
+-- >     , VkShaderStageFlags stageFlags
+-- >     , uint32_t offset
+-- >     , uint32_t size
+-- >     , const void* pValues
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushConstants vkCmdPushConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdPushConstantsSafe@ and @vkCmdPushConstants@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdPushConstants <- vkGetInstanceProc @VkCmdPushConstants vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdPushConstants <- vkGetProc @VkCmdPushConstants
+--
+vkCmdPushConstants ::
+                   VkCommandBuffer -- ^ commandBuffer
+                                   ->
+                     VkPipelineLayout -- ^ layout
+                                      ->
+                       VkShaderStageFlags -- ^ stageFlags
+                                          -> Word32 -- ^ offset
+                                                    -> Word32 -- ^ size
+                                                              -> Ptr Void -- ^ pValues
+                                                                          -> IO ()
+vkCmdPushConstants
+  = unsafeDupablePerformIO (vkGetProc @VkCmdPushConstants)
+
+{-# NOINLINE vkCmdPushConstants #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPushConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineLayout layout
+-- >     , VkShaderStageFlags stageFlags
+-- >     , uint32_t offset
+-- >     , uint32_t size
+-- >     , const void* pValues
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushConstants vkCmdPushConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdPushConstants"
+               vkCmdPushConstantsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 VkPipelineLayout -- ^ layout
+                                  ->
+                   VkShaderStageFlags -- ^ stageFlags
+                                      -> Word32 -- ^ offset
+                                                -> Word32 -- ^ size
+                                                          -> Ptr Void -- ^ pValues
+                                                                      -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdPushConstants
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkPipelineLayout layout
+-- >     , VkShaderStageFlags stageFlags
+-- >     , uint32_t offset
+-- >     , uint32_t size
+-- >     , const void* pValues
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushConstants vkCmdPushConstants registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdPushConstantsSafe@ and @vkCmdPushConstants@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdPushConstants <- vkGetInstanceProc @VkCmdPushConstants vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdPushConstants <- vkGetProc @VkCmdPushConstants
+--
+vkCmdPushConstantsSafe ::
+                       VkCommandBuffer -- ^ commandBuffer
+                                       ->
+                         VkPipelineLayout -- ^ layout
+                                          ->
+                           VkShaderStageFlags -- ^ stageFlags
+                                              -> Word32 -- ^ offset
+                                                        -> Word32 -- ^ size
+                                                                  -> Ptr Void -- ^ pValues
+                                                                              -> IO ()
+vkCmdPushConstantsSafe = vkCmdPushConstants
+
+{-# INLINE vkCmdPushConstantsSafe #-}
+##endif
+
+-- | Queues: 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdPushConstants
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkPipelineLayout layout
+--   >     , VkShaderStageFlags stageFlags
+--   >     , uint32_t offset
+--   >     , uint32_t size
+--   >     , const void* pValues
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushConstants vkCmdPushConstants registry at www.khronos.org>
+type HS_vkCmdPushConstants =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineLayout -- ^ layout
+                        ->
+         VkShaderStageFlags -- ^ stageFlags
+                            -> Word32 -- ^ offset
+                                      -> Word32 -- ^ size
+                                                -> Ptr Void -- ^ pValues
+                                                            -> IO ()
+
+type PFN_vkCmdPushConstants = FunPtr HS_vkCmdPushConstants
+
+foreign import ccall "dynamic" unwrapVkCmdPushConstants ::
+               PFN_vkCmdPushConstants -> HS_vkCmdPushConstants
+
+instance VulkanProc "vkCmdPushConstants" where
+        type VkProcType "vkCmdPushConstants" = HS_vkCmdPushConstants
+        vkProcSymbol = _VkCmdPushConstants
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdPushConstants
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBeginRenderPass :: CString
+
+pattern VkCmdBeginRenderPass <- (is_VkCmdBeginRenderPass -> True)
+  where VkCmdBeginRenderPass = _VkCmdBeginRenderPass
+
+{-# INLINE _VkCmdBeginRenderPass #-}
+
+_VkCmdBeginRenderPass :: CString
+_VkCmdBeginRenderPass = Ptr "vkCmdBeginRenderPass\NUL"##
+
+{-# INLINE is_VkCmdBeginRenderPass #-}
+
+is_VkCmdBeginRenderPass :: CString -> Bool
+is_VkCmdBeginRenderPass
+  = (EQ ==) . cmpCStrings _VkCmdBeginRenderPass
+
+type VkCmdBeginRenderPass = "vkCmdBeginRenderPass"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdBeginRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkRenderPassBeginInfo* pRenderPassBegin
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginRenderPass vkCmdBeginRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdBeginRenderPass"
+               vkCmdBeginRenderPass ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
+                                           -> VkSubpassContents -- ^ contents
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdBeginRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkRenderPassBeginInfo* pRenderPassBegin
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginRenderPass vkCmdBeginRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBeginRenderPassSafe@ and @vkCmdBeginRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBeginRenderPass <- vkGetInstanceProc @VkCmdBeginRenderPass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBeginRenderPass <- vkGetProc @VkCmdBeginRenderPass
+--
+vkCmdBeginRenderPass ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     ->
+                       Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
+                                                 -> VkSubpassContents -- ^ contents
+                                                                      -> IO ()
+vkCmdBeginRenderPass
+  = unsafeDupablePerformIO (vkGetProc @VkCmdBeginRenderPass)
+
+{-# NOINLINE vkCmdBeginRenderPass #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdBeginRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkRenderPassBeginInfo* pRenderPassBegin
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginRenderPass vkCmdBeginRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdBeginRenderPass"
+               vkCmdBeginRenderPassSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
+                                           -> VkSubpassContents -- ^ contents
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @outside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdBeginRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , const VkRenderPassBeginInfo* pRenderPassBegin
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginRenderPass vkCmdBeginRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdBeginRenderPassSafe@ and @vkCmdBeginRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdBeginRenderPass <- vkGetInstanceProc @VkCmdBeginRenderPass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdBeginRenderPass <- vkGetProc @VkCmdBeginRenderPass
+--
+vkCmdBeginRenderPassSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         ->
+                           Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
+                                                     -> VkSubpassContents -- ^ contents
+                                                                          -> IO ()
+vkCmdBeginRenderPassSafe = vkCmdBeginRenderPass
+
+{-# INLINE vkCmdBeginRenderPassSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @outside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdBeginRenderPass
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , const VkRenderPassBeginInfo* pRenderPassBegin
+--   >     , VkSubpassContents contents
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginRenderPass vkCmdBeginRenderPass registry at www.khronos.org>
+type HS_vkCmdBeginRenderPass =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Ptr VkRenderPassBeginInfo -- ^ pRenderPassBegin
+                                 -> VkSubpassContents -- ^ contents
+                                                      -> IO ()
+
+type PFN_vkCmdBeginRenderPass = FunPtr HS_vkCmdBeginRenderPass
+
+foreign import ccall "dynamic" unwrapVkCmdBeginRenderPass ::
+               PFN_vkCmdBeginRenderPass -> HS_vkCmdBeginRenderPass
+
+instance VulkanProc "vkCmdBeginRenderPass" where
+        type VkProcType "vkCmdBeginRenderPass" = HS_vkCmdBeginRenderPass
+        vkProcSymbol = _VkCmdBeginRenderPass
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBeginRenderPass
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdNextSubpass :: CString
+
+pattern VkCmdNextSubpass <- (is_VkCmdNextSubpass -> True)
+  where VkCmdNextSubpass = _VkCmdNextSubpass
+
+{-# INLINE _VkCmdNextSubpass #-}
+
+_VkCmdNextSubpass :: CString
+_VkCmdNextSubpass = Ptr "vkCmdNextSubpass\NUL"##
+
+{-# INLINE is_VkCmdNextSubpass #-}
+
+is_VkCmdNextSubpass :: CString -> Bool
+is_VkCmdNextSubpass = (EQ ==) . cmpCStrings _VkCmdNextSubpass
+
+type VkCmdNextSubpass = "vkCmdNextSubpass"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdNextSubpass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdNextSubpass vkCmdNextSubpass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdNextSubpass" vkCmdNextSubpass ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> VkSubpassContents -- ^ contents
+                                                    -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdNextSubpass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdNextSubpass vkCmdNextSubpass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdNextSubpassSafe@ and @vkCmdNextSubpass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdNextSubpass <- vkGetInstanceProc @VkCmdNextSubpass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdNextSubpass <- vkGetProc @VkCmdNextSubpass
+--
+vkCmdNextSubpass :: VkCommandBuffer -- ^ commandBuffer
+                                    -> VkSubpassContents -- ^ contents
+                                                         -> IO ()
+vkCmdNextSubpass
+  = unsafeDupablePerformIO (vkGetProc @VkCmdNextSubpass)
+
+{-# NOINLINE vkCmdNextSubpass #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdNextSubpass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdNextSubpass vkCmdNextSubpass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdNextSubpass" vkCmdNextSubpassSafe
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> VkSubpassContents -- ^ contents
+                                                       -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdNextSubpass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , VkSubpassContents contents
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdNextSubpass vkCmdNextSubpass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdNextSubpassSafe@ and @vkCmdNextSubpass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdNextSubpass <- vkGetInstanceProc @VkCmdNextSubpass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdNextSubpass <- vkGetProc @VkCmdNextSubpass
+--
+vkCmdNextSubpassSafe ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> VkSubpassContents -- ^ contents
+                                                          -> IO ()
+vkCmdNextSubpassSafe = vkCmdNextSubpass
+
+{-# INLINE vkCmdNextSubpassSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdNextSubpass
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , VkSubpassContents contents
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdNextSubpass vkCmdNextSubpass registry at www.khronos.org>
+type HS_vkCmdNextSubpass =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> VkSubpassContents -- ^ contents
+                                          -> IO ()
+
+type PFN_vkCmdNextSubpass = FunPtr HS_vkCmdNextSubpass
+
+foreign import ccall "dynamic" unwrapVkCmdNextSubpass ::
+               PFN_vkCmdNextSubpass -> HS_vkCmdNextSubpass
+
+instance VulkanProc "vkCmdNextSubpass" where
+        type VkProcType "vkCmdNextSubpass" = HS_vkCmdNextSubpass
+        vkProcSymbol = _VkCmdNextSubpass
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdNextSubpass
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdEndRenderPass :: CString
+
+pattern VkCmdEndRenderPass <- (is_VkCmdEndRenderPass -> True)
+  where VkCmdEndRenderPass = _VkCmdEndRenderPass
+
+{-# INLINE _VkCmdEndRenderPass #-}
+
+_VkCmdEndRenderPass :: CString
+_VkCmdEndRenderPass = Ptr "vkCmdEndRenderPass\NUL"##
+
+{-# INLINE is_VkCmdEndRenderPass #-}
+
+is_VkCmdEndRenderPass :: CString -> Bool
+is_VkCmdEndRenderPass = (EQ ==) . cmpCStrings _VkCmdEndRenderPass
+
+type VkCmdEndRenderPass = "vkCmdEndRenderPass"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdEndRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndRenderPass vkCmdEndRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdEndRenderPass" vkCmdEndRenderPass
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdEndRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndRenderPass vkCmdEndRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdEndRenderPassSafe@ and @vkCmdEndRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdEndRenderPass <- vkGetInstanceProc @VkCmdEndRenderPass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdEndRenderPass <- vkGetProc @VkCmdEndRenderPass
+--
+vkCmdEndRenderPass :: VkCommandBuffer -- ^ commandBuffer
+                                      -> IO ()
+vkCmdEndRenderPass
+  = unsafeDupablePerformIO (vkGetProc @VkCmdEndRenderPass)
+
+{-# NOINLINE vkCmdEndRenderPass #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdEndRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndRenderPass vkCmdEndRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdEndRenderPass"
+               vkCmdEndRenderPassSafe :: VkCommandBuffer -- ^ commandBuffer
+                                                         -> IO ()
+
+##else
+-- |
+-- Queues: 'graphics'.
+--
+-- Renderpass: @inside@
+--
+-- Pipeline: @graphics@
+--
+-- > void vkCmdEndRenderPass
+-- >     ( VkCommandBuffer commandBuffer
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndRenderPass vkCmdEndRenderPass registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdEndRenderPassSafe@ and @vkCmdEndRenderPass@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdEndRenderPass <- vkGetInstanceProc @VkCmdEndRenderPass vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdEndRenderPass <- vkGetProc @VkCmdEndRenderPass
+--
+vkCmdEndRenderPassSafe :: VkCommandBuffer -- ^ commandBuffer
+                                          -> IO ()
+vkCmdEndRenderPassSafe = vkCmdEndRenderPass
+
+{-# INLINE vkCmdEndRenderPassSafe #-}
+##endif
+
+-- | Queues: 'graphics'.
+--
+--   Renderpass: @inside@
+--
+--   Pipeline: @graphics@
+--
+--   > void vkCmdEndRenderPass
+--   >     ( VkCommandBuffer commandBuffer
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndRenderPass vkCmdEndRenderPass registry at www.khronos.org>
+type HS_vkCmdEndRenderPass = VkCommandBuffer -- ^ commandBuffer
+                                             -> IO ()
+
+type PFN_vkCmdEndRenderPass = FunPtr HS_vkCmdEndRenderPass
+
+foreign import ccall "dynamic" unwrapVkCmdEndRenderPass ::
+               PFN_vkCmdEndRenderPass -> HS_vkCmdEndRenderPass
+
+instance VulkanProc "vkCmdEndRenderPass" where
+        type VkProcType "vkCmdEndRenderPass" = HS_vkCmdEndRenderPass
+        vkProcSymbol = _VkCmdEndRenderPass
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdEndRenderPass
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdExecuteCommands :: CString
+
+pattern VkCmdExecuteCommands <- (is_VkCmdExecuteCommands -> True)
+  where VkCmdExecuteCommands = _VkCmdExecuteCommands
+
+{-# INLINE _VkCmdExecuteCommands #-}
+
+_VkCmdExecuteCommands :: CString
+_VkCmdExecuteCommands = Ptr "vkCmdExecuteCommands\NUL"##
+
+{-# INLINE is_VkCmdExecuteCommands #-}
+
+is_VkCmdExecuteCommands :: CString -> Bool
+is_VkCmdExecuteCommands
+  = (EQ ==) . cmpCStrings _VkCmdExecuteCommands
+
+type VkCmdExecuteCommands = "vkCmdExecuteCommands"
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdExecuteCommands
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdExecuteCommands vkCmdExecuteCommands registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdExecuteCommands"
+               vkCmdExecuteCommands ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ commandBufferCount
+                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdExecuteCommands
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdExecuteCommands vkCmdExecuteCommands registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdExecuteCommandsSafe@ and @vkCmdExecuteCommands@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdExecuteCommands <- vkGetInstanceProc @VkCmdExecuteCommands vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdExecuteCommands <- vkGetProc @VkCmdExecuteCommands
+--
+vkCmdExecuteCommands ::
+                     VkCommandBuffer -- ^ commandBuffer
+                                     -> Word32 -- ^ commandBufferCount
+                                               -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                      -> IO ()
+vkCmdExecuteCommands
+  = unsafeDupablePerformIO (vkGetProc @VkCmdExecuteCommands)
+
+{-# NOINLINE vkCmdExecuteCommands #-}
+##endif
+
+##ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdExecuteCommands
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdExecuteCommands vkCmdExecuteCommands registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdExecuteCommands"
+               vkCmdExecuteCommandsSafe ::
+               VkCommandBuffer -- ^ commandBuffer
+                               -> Word32 -- ^ commandBufferCount
+                                         -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                -> IO ()
+
+##else
+-- |
+-- Queues: 'transfer', 'graphics', 'compute'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdExecuteCommands
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t commandBufferCount
+-- >     , const VkCommandBuffer* pCommandBuffers
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdExecuteCommands vkCmdExecuteCommands registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdExecuteCommandsSafe@ and @vkCmdExecuteCommands@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdExecuteCommands <- vkGetInstanceProc @VkCmdExecuteCommands vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdExecuteCommands <- vkGetProc @VkCmdExecuteCommands
+--
+vkCmdExecuteCommandsSafe ::
+                         VkCommandBuffer -- ^ commandBuffer
+                                         -> Word32 -- ^ commandBufferCount
+                                                   -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                                          -> IO ()
+vkCmdExecuteCommandsSafe = vkCmdExecuteCommands
+
+{-# INLINE vkCmdExecuteCommandsSafe #-}
+##endif
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdExecuteCommands
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t commandBufferCount
+--   >     , const VkCommandBuffer* pCommandBuffers
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdExecuteCommands vkCmdExecuteCommands registry at www.khronos.org>
+type HS_vkCmdExecuteCommands =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ commandBufferCount
+                               -> Ptr VkCommandBuffer -- ^ pCommandBuffers
+                                                      -> IO ()
+
+type PFN_vkCmdExecuteCommands = FunPtr HS_vkCmdExecuteCommands
+
+foreign import ccall "dynamic" unwrapVkCmdExecuteCommands ::
+               PFN_vkCmdExecuteCommands -> HS_vkCmdExecuteCommands
+
+instance VulkanProc "vkCmdExecuteCommands" where
+        type VkProcType "vkCmdExecuteCommands" = HS_vkCmdExecuteCommands
+        vkProcSymbol = _VkCmdExecuteCommands
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdExecuteCommands
+
+        {-# INLINE unwrapVkProcPtr #-}
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
@@ -1,2359 +1,6097 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports#-}
-{-# OPTIONS_HADDOCK not-home#-}
-{-# LANGUAGE DataKinds                #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE PatternSynonyms          #-}
-{-# LANGUAGE Strict                   #-}
-module Graphics.Vulkan.Core_1_1
-       (-- * Vulkan 1.1 core API interface definitions.
-        -- |
-        --
-        -- @api = vulkan@
-        --
-        -- @name = VK_VERSION_1_1@
-        --
-        -- @number = 1.1@
-        --
-
-        -- ** Device Initialization
-        vkEnumerateInstanceVersion, vkEnumerateInstanceVersionSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        -- ** Promoted from VK_KHR_relaxed_block_layout, which has no API
-        --
-
-        -- ** Promoted from VK_KHR_storage_buffer_storage_class, which has no API
-        --
-
-        -- ** Originally based on VK_KHR_subgroup (extension 94), but the actual enum block used was, incorrectly, that of extension 95
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSubgroupProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSubgroupFeatureFlags,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
-        -- ** Promoted from VK_KHR_bind_memory2
-        module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo,
-        -- > #include "vk_platform.h"
-        vkBindBufferMemory2, vkBindBufferMemory2Safe, vkBindImageMemory2,
-        vkBindImageMemory2Safe, module Graphics.Vulkan.Types.Handles,
-        pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
-        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
-        pattern VK_IMAGE_CREATE_ALIAS_BIT,
-        -- ** Promoted from VK_KHR_16bit_storage
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
-        -- ** Promoted from VK_KHR_dedicated_allocation
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirements,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements2,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
-        pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
-        -- ** Promoted from VK_KHR_device_group
-        module Graphics.Vulkan.Types.Struct.VkBindSparseInfo,
-        module Graphics.Vulkan.Types.Struct.VkClearColorValue,
-        module Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue,
-        module Graphics.Vulkan.Types.Struct.VkClearValue,
-        module Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo,
-        module Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfo,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Enum.VkImageAspectFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresource,
-        module Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfo,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkOffset3D,
-        module Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkQueryControlFlags,
-        module Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo,
-        module Graphics.Vulkan.Types.Struct.VkSparseMemoryBind,
-        module Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags,
-        module Graphics.Vulkan.Types.Struct.VkSubmitInfo,
-        -- > #include "vk_platform.h"
-        vkGetDeviceGroupPeerMemoryFeatures,
-        vkGetDeviceGroupPeerMemoryFeaturesSafe, vkCmdSetDeviceMask,
-        vkCmdSetDeviceMaskSafe, vkCmdDispatchBase, vkCmdDispatchBaseSafe,
-        pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
-        pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
-        pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
-        pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
-        -- ** Promoted from VK_KHR_device_group + VK_KHR_bind_memory2
-        module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfo,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfo,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
-        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
-        pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
-        -- ** Promoted from VK_KHR_device_group_creation
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties,
-        -- > #include "vk_platform.h"
-        vkEnumeratePhysicalDeviceGroups,
-        vkEnumeratePhysicalDeviceGroupsSafe,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
-        pattern VK_MAX_DEVICE_GROUP_SIZE,
-        pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-        -- ** Promoted from VK_KHR_get_memory_requirements2
-        module Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2,
-        -- > #include "vk_platform.h"
-        vkGetImageMemoryRequirements2, vkGetImageMemoryRequirements2Safe,
-        vkGetBufferMemoryRequirements2, vkGetBufferMemoryRequirements2Safe,
-        vkGetImageSparseMemoryRequirements2,
-        vkGetImageSparseMemoryRequirements2Safe,
-        pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
-        pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
-        pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
-        pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
-        pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
-        -- ** Promoted from VK_KHR_get_physical_device_properties2
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags,
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties2,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkMemoryHeap,
-        module Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags,
-        module Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags,
-        module Graphics.Vulkan.Types.Struct.VkMemoryType,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2,
-        module Graphics.Vulkan.Types.Enum.VkQueueFlags,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2,
-        -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceFeatures2, vkGetPhysicalDeviceFeatures2Safe,
-        vkGetPhysicalDeviceProperties2, vkGetPhysicalDeviceProperties2Safe,
-        vkGetPhysicalDeviceFormatProperties2,
-        vkGetPhysicalDeviceFormatProperties2Safe,
-        vkGetPhysicalDeviceImageFormatProperties2,
-        vkGetPhysicalDeviceImageFormatProperties2Safe,
-        vkGetPhysicalDeviceQueueFamilyProperties2,
-        vkGetPhysicalDeviceQueueFamilyProperties2Safe,
-        vkGetPhysicalDeviceMemoryProperties2,
-        vkGetPhysicalDeviceMemoryProperties2Safe,
-        vkGetPhysicalDeviceSparseImageFormatProperties2,
-        vkGetPhysicalDeviceSparseImageFormatProperties2Safe,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
-        pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
-        -- ** Promoted from VK_KHR_maintenance1
-        --
-        -- |
-        -- > #include "vk_platform.h"
-        vkTrimCommandPool, vkTrimCommandPoolSafe,
-        pattern VK_ERROR_OUT_OF_POOL_MEMORY,
-        pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
-        pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
-        pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
-        -- ** Promoted from VK_KHR_maintenance2
-        module Graphics.Vulkan.Types.Enum.VkAccessFlags,
-        module Graphics.Vulkan.Types.Struct.VkAttachmentDescription,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp,
-        module Graphics.Vulkan.Types.Struct.VkAttachmentReference,
-        module Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp,
-        module Graphics.Vulkan.Types.Struct.VkComponentMapping,
-        module Graphics.Vulkan.Types.Enum.VkComponentSwizzle,
-        module Graphics.Vulkan.Types.Enum.VkDependencyFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresourceRange,
-        module Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkImageViewType,
-        module Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingProperties,
-        module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint,
-        module Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkPointClippingBehavior,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkSubpassDependency,
-        module Graphics.Vulkan.Types.Struct.VkSubpassDescription,
-        module Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags,
-        module Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin,
-        -- > #include "vk_platform.h"
-        pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
-        pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-        pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-        pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-        -- ** Promoted from VK_KHR_multiview
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewProperties,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfo,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
-        pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
-        -- ** Promoted from VK_KHR_variable_pointers
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeatures,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
-        -- ** Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they weren't actually promoted from an extension.
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueInfo2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkProtectedSubmitInfo,
-        -- > #include "vk_platform.h"
-        vkGetDeviceQueue2, vkGetDeviceQueue2Safe,
-        pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
-        pattern VK_QUEUE_PROTECTED_BIT,
-        pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,
-        pattern VK_MEMORY_PROPERTY_PROTECTED_BIT,
-        pattern VK_BUFFER_CREATE_PROTECTED_BIT,
-        pattern VK_IMAGE_CREATE_PROTECTED_BIT,
-        pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT,
-        -- ** Promoted from VK_KHR_sampler_ycbcr_conversion
-        module Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfo,
-        module Graphics.Vulkan.Types.Enum.VkBorderColor,
-        module Graphics.Vulkan.Types.Enum.VkChromaLocation,
-        module Graphics.Vulkan.Types.Enum.VkCompareOp,
-        module Graphics.Vulkan.Types.Enum.VkFilter,
-        module Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfo,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeatures,
-        module Graphics.Vulkan.Types.Enum.VkSamplerAddressMode,
-        module Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfo,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange,
-        -- > #include "vk_platform.h"
-        vkCreateSamplerYcbcrConversion, vkCreateSamplerYcbcrConversionSafe,
-        vkDestroySamplerYcbcrConversion,
-        vkDestroySamplerYcbcrConversionSafe,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
-        module Graphics.Vulkan.Types.Funcpointers,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
-        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
-        pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
-        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
-        pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-        pattern VK_FORMAT_G8B8G8R8_422_UNORM,
-        pattern VK_FORMAT_B8G8R8G8_422_UNORM,
-        pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
-        pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
-        pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
-        pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
-        pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
-        pattern VK_FORMAT_R10X6_UNORM_PACK16,
-        pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
-        pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
-        pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
-        pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
-        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
-        pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
-        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
-        pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
-        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
-        pattern VK_FORMAT_R12X4_UNORM_PACK16,
-        pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
-        pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
-        pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
-        pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
-        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
-        pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
-        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
-        pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
-        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
-        pattern VK_FORMAT_G16B16G16R16_422_UNORM,
-        pattern VK_FORMAT_B16G16R16G16_422_UNORM,
-        pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
-        pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
-        pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
-        pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
-        pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-        pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
-        pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
-        pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
-        pattern VK_IMAGE_CREATE_DISJOINT_BIT,
-        pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
-        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
-        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
-        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
-        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-        pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
-        pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-        -- ** Promoted from VK_KHR_descriptor_update_template
-        module Graphics.Vulkan.Types.Enum.VkDescriptorType,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType,
-        -- > #include "vk_platform.h"
-        vkCreateDescriptorUpdateTemplate,
-        vkCreateDescriptorUpdateTemplateSafe,
-        vkDestroyDescriptorUpdateTemplate,
-        vkDestroyDescriptorUpdateTemplateSafe,
-        vkUpdateDescriptorSetWithTemplate,
-        vkUpdateDescriptorSetWithTemplateSafe,
-        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
-        pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-        -- ** Promoted from VK_KHR_external_memory_capabilities
-        module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkExternalBufferProperties,
-        module Graphics.Vulkan.Types.Struct.VkExternalImageFormatProperties,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfo,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDProperties,
-        -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceExternalBufferProperties,
-        vkGetPhysicalDeviceExternalBufferPropertiesSafe,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
-        pattern VK_LUID_SIZE,
-        -- ** Promoted from VK_KHR_external_memory
-        module Graphics.Vulkan.Types.Struct.VkBufferCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
-        pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
-        pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
-        pattern VK_QUEUE_FAMILY_EXTERNAL,
-        -- ** Promoted from VK_KHR_external_fence_capabilities
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkExternalFenceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo,
-        -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceExternalFenceProperties,
-        vkGetPhysicalDeviceExternalFencePropertiesSafe,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
-        -- ** Promoted from VK_KHR_external_fence
-        module Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkFenceCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkFenceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkFenceImportFlags,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
-        -- ** Promoted from VK_KHR_external_semaphore
-        module Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
-        -- ** Promoted from VK_KHR_external_semaphore_capabilities
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags,
-        module Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo,
-        -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceExternalSemaphoreProperties,
-        vkGetPhysicalDeviceExternalSemaphorePropertiesSafe,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
-        pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
-        -- ** Promoted from VK_KHR_maintenance3
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3Properties,
-        -- > #include "vk_platform.h"
-        vkGetDescriptorSetLayoutSupport,
-        vkGetDescriptorSetLayoutSupportSafe,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo,
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
-        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
-        -- ** Promoted from VK_KHR_shader_draw_parameters, with a feature support query added
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceShaderDrawParameterFeatures,
-        -- > #include "vk_platform.h"
-        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES)
-       where
-import           Graphics.Vulkan.Constants
-                                                                                                 (pattern VK_LUID_SIZE,
-                                                                                                 pattern VK_MAX_DEVICE_GROUP_SIZE,
-                                                                                                 pattern VK_QUEUE_FAMILY_EXTERNAL)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags
-import           Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags
-import           Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp
-import           Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp
-import           Graphics.Vulkan.Types.Enum.VkBorderColor
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkChromaLocation
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags
-                                                                                                 (VkCommandPoolCreateBitmask (..),
-                                                                                                 VkCommandPoolCreateFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkCompareOp
-import           Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.VkDependencyFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType
-import           Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkFenceCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags
-import           Graphics.Vulkan.Types.Enum.VkFilter
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkImageViewType
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-                                                                                                 (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-import           Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-                                                                                                 (VkPipelineCreateBitmask (..),
-                                                                                                 VkPipelineCreateFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-import           Graphics.Vulkan.Types.Enum.VkPointClippingBehavior
-import           Graphics.Vulkan.Types.Enum.VkQueryControlFlags
-import           Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags
-import           Graphics.Vulkan.Types.Enum.VkQueueFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSamplerAddressMode
-import           Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-import           Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSubgroupFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkAttachmentDescription
-import           Graphics.Vulkan.Types.Struct.VkAttachmentReference
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfo
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindSparseInfo
-import           Graphics.Vulkan.Types.Struct.VkBufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkClearColorValue
-import           Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue
-import           Graphics.Vulkan.Types.Struct.VkClearValue
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueInfo2
-import           Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkExternalBufferProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalFenceProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties
-import           Graphics.Vulkan.Types.Struct.VkFenceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfo
-import           Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkImageSubresource
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceRange
-import           Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirements
-import           Graphics.Vulkan.Types.Struct.VkMemoryHeap
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements2
-import           Graphics.Vulkan.Types.Struct.VkMemoryType
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkOffset3D
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3Properties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceShaderDrawParameterFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSubgroupProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeatures
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkProtectedSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfo
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2
-import           Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo
-import           Graphics.Vulkan.Types.Struct.VkSparseMemoryBind
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkSubpassDependency
-import           Graphics.Vulkan.Types.Struct.VkSubpassDescription
-
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkEnumerateInstanceVersion
---   >     ( uint32_t* pApiVersion
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceVersion.html vkEnumerateInstanceVersion registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumerateInstanceVersion"
-               vkEnumerateInstanceVersion :: Ptr Word32 -- ^ pApiVersion
-                                                        -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkEnumerateInstanceVersion
---   >     ( uint32_t* pApiVersion
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumerateInstanceVersion.html vkEnumerateInstanceVersion registry at www.khronos.org>
-foreign import ccall safe "vkEnumerateInstanceVersion"
-               vkEnumerateInstanceVersionSafe :: Ptr Word32 -- ^ pApiVersion
-                                                            -> IO VkResult
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES =
-        VkStructureType 1000094000
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindBufferMemory2
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindBufferMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory2.html vkBindBufferMemory2 registry at www.khronos.org>
-foreign import ccall unsafe "vkBindBufferMemory2"
-               vkBindBufferMemory2 ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindBufferMemory2
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindBufferMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory2.html vkBindBufferMemory2 registry at www.khronos.org>
-foreign import ccall safe "vkBindBufferMemory2"
-               vkBindBufferMemory2Safe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindImageMemory2
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindImageMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory2.html vkBindImageMemory2 registry at www.khronos.org>
-foreign import ccall unsafe "vkBindImageMemory2" vkBindImageMemory2
-               :: VkDevice -- ^ device
-                           -> Word32 -- ^ bindInfoCount
-                                     -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindImageMemory2
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindImageMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory2.html vkBindImageMemory2 registry at www.khronos.org>
-foreign import ccall safe "vkBindImageMemory2"
-               vkBindImageMemory2Safe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
-                                                               -> IO VkResult
-
-pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO =
-        VkStructureType 1000157000
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO =
-        VkStructureType 1000157001
-
--- | bitpos = @10@
-pattern VK_IMAGE_CREATE_ALIAS_BIT :: VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_ALIAS_BIT = VkImageCreateFlagBits 1024
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES =
-        VkStructureType 1000083000
-
-pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS =
-        VkStructureType 1000127000
-
-pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO =
-        VkStructureType 1000127001
-
--- | > () vkGetDeviceGroupPeerMemoryFeatures
---   >     ( VkDevice device
---   >     , uint32_t heapIndex
---   >     , uint32_t localDeviceIndex
---   >     , uint32_t remoteDeviceIndex
---   >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPeerMemoryFeatures.html vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceGroupPeerMemoryFeatures"
-               vkGetDeviceGroupPeerMemoryFeatures ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ heapIndex
-                        -> Word32 -- ^ localDeviceIndex
-                                  -> Word32 -- ^ remoteDeviceIndex
-                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
-                                                                            -> IO ()
-
--- | > () vkGetDeviceGroupPeerMemoryFeatures
---   >     ( VkDevice device
---   >     , uint32_t heapIndex
---   >     , uint32_t localDeviceIndex
---   >     , uint32_t remoteDeviceIndex
---   >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPeerMemoryFeatures.html vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceGroupPeerMemoryFeatures"
-               vkGetDeviceGroupPeerMemoryFeaturesSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ heapIndex
-                        -> Word32 -- ^ localDeviceIndex
-                                  -> Word32 -- ^ remoteDeviceIndex
-                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
-                                                                            -> IO ()
-
--- | queues: 'graphics', 'compute', 'transfer'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDeviceMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t deviceMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDeviceMask.html vkCmdSetDeviceMask registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetDeviceMask" vkCmdSetDeviceMask
-               :: VkCommandBuffer -- ^ commandBuffer
-                                  -> Word32 -- ^ deviceMask
-                                            -> IO ()
-
--- | queues: 'graphics', 'compute', 'transfer'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDeviceMask
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t deviceMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDeviceMask.html vkCmdSetDeviceMask registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetDeviceMask"
-               vkCmdSetDeviceMaskSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                         -> Word32 -- ^ deviceMask
-                                                                   -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdDispatchBase
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t baseGroupX
---   >     , uint32_t baseGroupY
---   >     , uint32_t baseGroupZ
---   >     , uint32_t groupCountX
---   >     , uint32_t groupCountY
---   >     , uint32_t groupCountZ
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchBase.html vkCmdDispatchBase registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDispatchBase" vkCmdDispatchBase
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ baseGroupX
-                        -> Word32 -- ^ baseGroupY
-                                  -> Word32 -- ^ baseGroupZ
-                                            -> Word32 -- ^ groupCountX
-                                                      -> Word32 -- ^ groupCountY
-                                                                -> Word32 -- ^ groupCountZ
-                                                                          -> IO ()
-
--- | queues: 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdDispatchBase
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t baseGroupX
---   >     , uint32_t baseGroupY
---   >     , uint32_t baseGroupZ
---   >     , uint32_t groupCountX
---   >     , uint32_t groupCountY
---   >     , uint32_t groupCountZ
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchBase.html vkCmdDispatchBase registry at www.khronos.org>
-foreign import ccall safe "vkCmdDispatchBase" vkCmdDispatchBaseSafe
-               ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ baseGroupX
-                        -> Word32 -- ^ baseGroupY
-                                  -> Word32 -- ^ baseGroupZ
-                                            -> Word32 -- ^ groupCountX
-                                                      -> Word32 -- ^ groupCountY
-                                                                -> Word32 -- ^ groupCountZ
-                                                                          -> IO ()
-
-pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO =
-        VkStructureType 1000060000
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO =
-        VkStructureType 1000060003
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO =
-        VkStructureType 1000060004
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO =
-        VkStructureType 1000060005
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO =
-        VkStructureType 1000060006
-
--- | bitpos = @3@
-pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT ::
-        VkPipelineCreateFlagBits
-
-pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT =
-        VkPipelineCreateFlagBits 8
-
--- | bitpos = @4@
-pattern VK_PIPELINE_CREATE_DISPATCH_BASE ::
-        VkPipelineCreateFlagBits
-
-pattern VK_PIPELINE_CREATE_DISPATCH_BASE =
-        VkPipelineCreateFlagBits 16
-
--- | Dependency is across devices
---
---   bitpos = @2@
-pattern VK_DEPENDENCY_DEVICE_GROUP_BIT :: VkDependencyFlagBits
-
-pattern VK_DEPENDENCY_DEVICE_GROUP_BIT = VkDependencyFlagBits 4
-
-pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO =
-        VkStructureType 1000060013
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO =
-        VkStructureType 1000060014
-
--- | Allows using VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions when binding memory to the image
---
---   bitpos = @6@
-pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT ::
-        VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT =
-        VkImageCreateFlagBits 64
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkEnumeratePhysicalDeviceGroups
---   >     ( VkInstance instance
---   >     , uint32_t* pPhysicalDeviceGroupCount
---   >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDeviceGroups.html vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumeratePhysicalDeviceGroups"
-               vkEnumeratePhysicalDeviceGroups ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
-                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkEnumeratePhysicalDeviceGroups
---   >     ( VkInstance instance
---   >     , uint32_t* pPhysicalDeviceGroupCount
---   >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDeviceGroups.html vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
-foreign import ccall safe "vkEnumeratePhysicalDeviceGroups"
-               vkEnumeratePhysicalDeviceGroupsSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
-                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
-                                                                   -> IO VkResult
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES =
-        VkStructureType 1000070000
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO =
-        VkStructureType 1000070001
-
--- | 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 = VkMemoryHeapFlagBits 2
-
--- | > () vkGetImageMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkImageMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements2.html vkGetImageMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageMemoryRequirements2"
-               vkGetImageMemoryRequirements2 ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
-                                                    ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
-
--- | > () vkGetImageMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkImageMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements2.html vkGetImageMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall safe "vkGetImageMemoryRequirements2"
-               vkGetImageMemoryRequirements2Safe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
-                                                    ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
-
--- | > () vkGetBufferMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkBufferMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements2.html vkGetBufferMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetBufferMemoryRequirements2"
-               vkGetBufferMemoryRequirements2 ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
-                                                     ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
-
--- | > () vkGetBufferMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkBufferMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements2.html vkGetBufferMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall safe "vkGetBufferMemoryRequirements2"
-               vkGetBufferMemoryRequirements2Safe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
-                                                     ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
-
--- | > () vkGetImageSparseMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
---   >     , uint32_t* pSparseMemoryRequirementCount
---   >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements2.html vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageSparseMemoryRequirements2"
-               vkGetImageSparseMemoryRequirements2 ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
-                                                          ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
-                                                                      -> IO ()
-
--- | > () vkGetImageSparseMemoryRequirements2
---   >     ( VkDevice device
---   >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
---   >     , uint32_t* pSparseMemoryRequirementCount
---   >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements2.html vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
-foreign import ccall safe "vkGetImageSparseMemoryRequirements2"
-               vkGetImageSparseMemoryRequirements2Safe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
-                                                          ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
-                                                                      -> IO ()
-
-pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 =
-        VkStructureType 1000146000
-
-pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 =
-        VkStructureType 1000146001
-
-pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 =
-        VkStructureType 1000146002
-
-pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 =
-        VkStructureType 1000146003
-
-pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 =
-        VkStructureType 1000146004
-
--- | > () vkGetPhysicalDeviceFeatures2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceFeatures2* pFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures2.html vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFeatures2"
-               vkGetPhysicalDeviceFeatures2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
-                                                                 -> IO ()
-
--- | > () vkGetPhysicalDeviceFeatures2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceFeatures2* pFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures2.html vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFeatures2"
-               vkGetPhysicalDeviceFeatures2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
-                                                                 -> IO ()
-
--- | > () vkGetPhysicalDeviceProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties2.html vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceProperties2"
-               vkGetPhysicalDeviceProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
-                                                                   -> IO ()
-
--- | > () vkGetPhysicalDeviceProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties2.html vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceProperties2"
-               vkGetPhysicalDeviceProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
-                                                                   -> IO ()
-
--- | > () vkGetPhysicalDeviceFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkFormatProperties2* pFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties2.html vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties2"
-               vkGetPhysicalDeviceFormatProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
-                                                                       -> IO ()
-
--- | > () vkGetPhysicalDeviceFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkFormatProperties2* pFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties2.html vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFormatProperties2"
-               vkGetPhysicalDeviceFormatProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
-                                                                       -> IO ()
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceImageFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
---   >     , VkImageFormatProperties2* pImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2.html vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceImageFormatProperties2"
-               vkGetPhysicalDeviceImageFormatProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
-                                                      ->
-                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
-                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceImageFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
---   >     , VkImageFormatProperties2* pImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2.html vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceImageFormatProperties2"
-               vkGetPhysicalDeviceImageFormatProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
-                                                      ->
-                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
-                                                -> IO VkResult
-
--- | > () vkGetPhysicalDeviceQueueFamilyProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pQueueFamilyPropertyCount
---   >     , VkQueueFamilyProperties2* pQueueFamilyProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceQueueFamilyProperties2"
-               vkGetPhysicalDeviceQueueFamilyProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
-                                                            -> IO ()
-
--- | > () vkGetPhysicalDeviceQueueFamilyProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pQueueFamilyPropertyCount
---   >     , VkQueueFamilyProperties2* pQueueFamilyProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceQueueFamilyProperties2"
-               vkGetPhysicalDeviceQueueFamilyProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
-                                                            -> IO ()
-
--- | > () vkGetPhysicalDeviceMemoryProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2.html vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties2"
-               vkGetPhysicalDeviceMemoryProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
-                                                                         -> IO ()
-
--- | > () vkGetPhysicalDeviceMemoryProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2.html vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceMemoryProperties2"
-               vkGetPhysicalDeviceMemoryProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
-                                                                         -> IO ()
-
--- | > () vkGetPhysicalDeviceSparseImageFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
---   >     , uint32_t* pPropertyCount
---   >     , VkSparseImageFormatProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceSparseImageFormatProperties2"
-               vkGetPhysicalDeviceSparseImageFormatProperties2 ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
-                                                            ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
-                                                                    -> IO ()
-
--- | > () vkGetPhysicalDeviceSparseImageFormatProperties2
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
---   >     , uint32_t* pPropertyCount
---   >     , VkSparseImageFormatProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceSparseImageFormatProperties2"
-               vkGetPhysicalDeviceSparseImageFormatProperties2Safe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
-                                                            ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
-                                                                    -> IO ()
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 =
-        VkStructureType 1000059000
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 =
-        VkStructureType 1000059001
-
-pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 =
-        VkStructureType 1000059002
-
-pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 =
-        VkStructureType 1000059003
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 =
-        VkStructureType 1000059004
-
-pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 =
-        VkStructureType 1000059005
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 =
-        VkStructureType 1000059006
-
-pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 =
-        VkStructureType 1000059007
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
-        = VkStructureType 1000059008
-
--- | > () vkTrimCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , VkCommandPoolTrimFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkTrimCommandPool.html vkTrimCommandPool registry at www.khronos.org>
-foreign import ccall unsafe "vkTrimCommandPool" vkTrimCommandPool
-               :: VkDevice -- ^ device
-                           -> VkCommandPool -- ^ commandPool
-                                            -> VkCommandPoolTrimFlags -- ^ flags
-                                                                      -> IO ()
-
--- | > () vkTrimCommandPool
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , VkCommandPoolTrimFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkTrimCommandPool.html vkTrimCommandPool registry at www.khronos.org>
-foreign import ccall safe "vkTrimCommandPool" vkTrimCommandPoolSafe
-               :: VkDevice -- ^ device
-                           -> VkCommandPool -- ^ commandPool
-                                            -> VkCommandPoolTrimFlags -- ^ flags
-                                                                      -> IO ()
-
-pattern VK_ERROR_OUT_OF_POOL_MEMORY :: VkResult
-
-pattern VK_ERROR_OUT_OF_POOL_MEMORY = VkResult (-1000069000)
-
--- | Format can be used as the source image of image transfer commands
---
---   bitpos = @14@
-pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT ::
-        VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT =
-        VkFormatFeatureFlagBits 16384
-
--- | Format can be used as the destination image of image transfer commands
---
---   bitpos = @15@
-pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT ::
-        VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT =
-        VkFormatFeatureFlagBits 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
-
-pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT =
-        VkImageCreateFlagBits 32
-
--- | bitpos = @7@
-pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT ::
-        VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT =
-        VkImageCreateFlagBits 128
-
--- | bitpos = @8@
-pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT :: VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT =
-        VkImageCreateFlagBits 256
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
-        = VkStructureType 1000117000
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
-        = VkStructureType 1000117001
-
-pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO =
-        VkStructureType 1000117002
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
-        = VkStructureType 1000117003
-
-pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
-        :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
-        = VkImageLayout 1000117000
-
-pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
-        :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
-        = VkImageLayout 1000117001
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO =
-        VkStructureType 1000053000
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES =
-        VkStructureType 1000053001
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES =
-        VkStructureType 1000053002
-
--- | bitpos = @1@
-pattern VK_DEPENDENCY_VIEW_LOCAL_BIT :: VkDependencyFlagBits
-
-pattern VK_DEPENDENCY_VIEW_LOCAL_BIT = VkDependencyFlagBits 2
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
-        = VkStructureType 1000120000
-
--- | > () vkGetDeviceQueue2
---   >     ( VkDevice device
---   >     , const VkDeviceQueueInfo2* pQueueInfo
---   >     , VkQueue* pQueue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceQueue2.html vkGetDeviceQueue2 registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceQueue2" vkGetDeviceQueue2
-               :: VkDevice -- ^ device
-                           -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
-                                                     -> Ptr VkQueue -- ^ pQueue
-                                                                    -> IO ()
-
--- | > () vkGetDeviceQueue2
---   >     ( VkDevice device
---   >     , const VkDeviceQueueInfo2* pQueueInfo
---   >     , VkQueue* pQueue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceQueue2.html vkGetDeviceQueue2 registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceQueue2" vkGetDeviceQueue2Safe
-               :: VkDevice -- ^ device
-                           -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
-                                                     -> Ptr VkQueue -- ^ pQueue
-                                                                    -> IO ()
-
-pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO =
-        VkStructureType 1000145000
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
-        = VkStructureType 1000145001
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
-        = VkStructureType 1000145002
-
-pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 =
-        VkStructureType 1000145003
-
--- | Queues may support protected operations
---
---   bitpos = @4@
-pattern VK_QUEUE_PROTECTED_BIT :: VkQueueFlagBits
-
-pattern VK_QUEUE_PROTECTED_BIT = VkQueueFlagBits 16
-
--- | Queue is a protected-capable device queue
---
---   bitpos = @0@
-pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT ::
-        VkDeviceQueueCreateFlagBits
-
-pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT =
-        VkDeviceQueueCreateFlagBits 1
-
--- | Memory is protected
---
---   bitpos = @5@
-pattern VK_MEMORY_PROPERTY_PROTECTED_BIT ::
-        VkMemoryPropertyFlagBits
-
-pattern VK_MEMORY_PROPERTY_PROTECTED_BIT =
-        VkMemoryPropertyFlagBits 32
-
--- | Buffer requires protected memory
---
---   bitpos = @3@
-pattern VK_BUFFER_CREATE_PROTECTED_BIT :: VkBufferCreateFlagBits
-
-pattern VK_BUFFER_CREATE_PROTECTED_BIT = VkBufferCreateFlagBits 8
-
--- | Image requires protected memory
---
---   bitpos = @11@
-pattern VK_IMAGE_CREATE_PROTECTED_BIT :: VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_PROTECTED_BIT = VkImageCreateFlagBits 2048
-
--- | Command buffers allocated from pool are protected command buffers
---
---   bitpos = @2@
-pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT ::
-        VkCommandPoolCreateFlagBits
-
-pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT =
-        VkCommandPoolCreateFlagBits 4
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateSamplerYcbcrConversion
---   >     ( VkDevice device
---   >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSamplerYcbcrConversion* pYcbcrConversion
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSamplerYcbcrConversion.html vkCreateSamplerYcbcrConversion registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateSamplerYcbcrConversion"
-               vkCreateSamplerYcbcrConversion ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
-                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateSamplerYcbcrConversion
---   >     ( VkDevice device
---   >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSamplerYcbcrConversion* pYcbcrConversion
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSamplerYcbcrConversion.html vkCreateSamplerYcbcrConversion registry at www.khronos.org>
-foreign import ccall safe "vkCreateSamplerYcbcrConversion"
-               vkCreateSamplerYcbcrConversionSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
-                                                  -> IO VkResult
-
--- | > () vkDestroySamplerYcbcrConversion
---   >     ( VkDevice device
---   >     , VkSamplerYcbcrConversion ycbcrConversion
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySamplerYcbcrConversion.html vkDestroySamplerYcbcrConversion registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroySamplerYcbcrConversion"
-               vkDestroySamplerYcbcrConversion ::
-               VkDevice -- ^ device
-                        ->
-                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroySamplerYcbcrConversion
---   >     ( VkDevice device
---   >     , VkSamplerYcbcrConversion ycbcrConversion
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySamplerYcbcrConversion.html vkDestroySamplerYcbcrConversion registry at www.khronos.org>
-foreign import ccall safe "vkDestroySamplerYcbcrConversion"
-               vkDestroySamplerYcbcrConversionSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO =
-        VkStructureType 1000156000
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO =
-        VkStructureType 1000156001
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO =
-        VkStructureType 1000156002
-
-pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO =
-        VkStructureType 1000156003
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
-        = VkStructureType 1000156004
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
-        = VkStructureType 1000156005
-
-pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: VkObjectType
-
-pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION =
-        VkObjectType 1000156000
-
-pattern VK_FORMAT_G8B8G8R8_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8B8G8R8_422_UNORM = VkFormat 1000156000
-
-pattern VK_FORMAT_B8G8R8G8_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_B8G8R8G8_422_UNORM = VkFormat 1000156001
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = VkFormat 1000156002
-
-pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = VkFormat 1000156003
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = VkFormat 1000156004
-
-pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = VkFormat 1000156005
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM :: VkFormat
-
-pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = VkFormat 1000156006
-
-pattern VK_FORMAT_R10X6_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_R10X6_UNORM_PACK16 = VkFormat 1000156007
-
-pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 :: VkFormat
-
-pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = VkFormat 1000156008
-
-pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 :: VkFormat
-
-pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 =
-        VkFormat 1000156009
-
-pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 =
-        VkFormat 1000156010
-
-pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 =
-        VkFormat 1000156011
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 =
-        VkFormat 1000156012
-
-pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 =
-        VkFormat 1000156013
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 =
-        VkFormat 1000156014
-
-pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 =
-        VkFormat 1000156015
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 =
-        VkFormat 1000156016
-
-pattern VK_FORMAT_R12X4_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_R12X4_UNORM_PACK16 = VkFormat 1000156017
-
-pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 :: VkFormat
-
-pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = VkFormat 1000156018
-
-pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 :: VkFormat
-
-pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 =
-        VkFormat 1000156019
-
-pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 =
-        VkFormat 1000156020
-
-pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 =
-        VkFormat 1000156021
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 =
-        VkFormat 1000156022
-
-pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 =
-        VkFormat 1000156023
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 =
-        VkFormat 1000156024
-
-pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 =
-        VkFormat 1000156025
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 ::
-        VkFormat
-
-pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 =
-        VkFormat 1000156026
-
-pattern VK_FORMAT_G16B16G16R16_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16B16G16R16_422_UNORM = VkFormat 1000156027
-
-pattern VK_FORMAT_B16G16R16G16_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_B16G16R16G16_422_UNORM = VkFormat 1000156028
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM =
-        VkFormat 1000156029
-
-pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = VkFormat 1000156030
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM =
-        VkFormat 1000156031
-
-pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = VkFormat 1000156032
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM :: VkFormat
-
-pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM =
-        VkFormat 1000156033
-
--- | bitpos = @4@
-pattern VK_IMAGE_ASPECT_PLANE_0_BIT :: VkImageAspectFlagBits
-
-pattern VK_IMAGE_ASPECT_PLANE_0_BIT = VkImageAspectFlagBits 16
-
--- | bitpos = @5@
-pattern VK_IMAGE_ASPECT_PLANE_1_BIT :: VkImageAspectFlagBits
-
-pattern VK_IMAGE_ASPECT_PLANE_1_BIT = VkImageAspectFlagBits 32
-
--- | bitpos = @6@
-pattern VK_IMAGE_ASPECT_PLANE_2_BIT :: VkImageAspectFlagBits
-
-pattern VK_IMAGE_ASPECT_PLANE_2_BIT = VkImageAspectFlagBits 64
-
--- | bitpos = @9@
-pattern VK_IMAGE_CREATE_DISJOINT_BIT :: VkImageCreateFlagBits
-
-pattern VK_IMAGE_CREATE_DISJOINT_BIT = VkImageCreateFlagBits 512
-
--- | Format can have midpoint rather than cosited chroma samples
---
---   bitpos = @17@
-pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT ::
-        VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT =
-        VkFormatFeatureFlagBits 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
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
-        = VkFormatFeatureFlagBits 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
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
-        = VkFormatFeatureFlagBits 524288
-
--- | bitpos = @20@
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
-        :: VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
-        = VkFormatFeatureFlagBits 1048576
-
--- | bitpos = @21@
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
-        :: VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
-        = VkFormatFeatureFlagBits 2097152
-
--- | Format supports disjoint planes
---
---   bitpos = @22@
-pattern VK_FORMAT_FEATURE_DISJOINT_BIT :: VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_DISJOINT_BIT =
-        VkFormatFeatureFlagBits 4194304
-
--- | Format can have cosited rather than midpoint chroma samples
---
---   bitpos = @23@
-pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT ::
-        VkFormatFeatureFlagBits
-
-pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT =
-        VkFormatFeatureFlagBits 8388608
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorUpdateTemplate
---   >     ( VkDevice device
---   >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorUpdateTemplate.html vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDescriptorUpdateTemplate"
-               vkCreateDescriptorUpdateTemplate ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
-                                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
-                                                    -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorUpdateTemplate
---   >     ( VkDevice device
---   >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorUpdateTemplate.html vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
-foreign import ccall safe "vkCreateDescriptorUpdateTemplate"
-               vkCreateDescriptorUpdateTemplateSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
-                                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
-                                                    -> IO VkResult
-
--- | > () vkDestroyDescriptorUpdateTemplate
---   >     ( VkDevice device
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorUpdateTemplate.html vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDescriptorUpdateTemplate"
-               vkDestroyDescriptorUpdateTemplate ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | > () vkDestroyDescriptorUpdateTemplate
---   >     ( VkDevice device
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorUpdateTemplate.html vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDescriptorUpdateTemplate"
-               vkDestroyDescriptorUpdateTemplateSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
-
--- | > () vkUpdateDescriptorSetWithTemplate
---   >     ( VkDevice device
---   >     , VkDescriptorSet descriptorSet
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSetWithTemplate.html vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
-foreign import ccall unsafe "vkUpdateDescriptorSetWithTemplate"
-               vkUpdateDescriptorSetWithTemplate ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSet -- ^ descriptorSet
-                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                                               -> Ptr Void -- ^ pData
-                                                                           -> IO ()
-
--- | > () vkUpdateDescriptorSetWithTemplate
---   >     ( VkDevice device
---   >     , VkDescriptorSet descriptorSet
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSetWithTemplate.html vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
-foreign import ccall safe "vkUpdateDescriptorSetWithTemplate"
-               vkUpdateDescriptorSetWithTemplateSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSet -- ^ descriptorSet
-                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                                               -> Ptr Void -- ^ pData
-                                                                           -> IO ()
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO =
-        VkStructureType 1000085000
-
-pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE =
-        VkObjectType 1000085000
-
--- | > () vkGetPhysicalDeviceExternalBufferProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
---   >     , VkExternalBufferProperties* pExternalBufferProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalBufferProperties.html vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalBufferProperties"
-               vkGetPhysicalDeviceExternalBufferProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
-                                                        ->
-                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
-                                                  -> IO ()
-
--- | > () vkGetPhysicalDeviceExternalBufferProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
---   >     , VkExternalBufferProperties* pExternalBufferProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalBufferProperties.html vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalBufferProperties"
-               vkGetPhysicalDeviceExternalBufferPropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
-                                                        ->
-                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
-                                                  -> IO ()
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
-        = VkStructureType 1000071000
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES =
-        VkStructureType 1000071001
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO =
-        VkStructureType 1000071002
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES =
-        VkStructureType 1000071003
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES =
-        VkStructureType 1000071004
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO =
-        VkStructureType 1000072000
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO =
-        VkStructureType 1000072001
-
-pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO =
-        VkStructureType 1000072002
-
-pattern VK_ERROR_INVALID_EXTERNAL_HANDLE :: VkResult
-
-pattern VK_ERROR_INVALID_EXTERNAL_HANDLE = VkResult (-1000072003)
-
--- | > () vkGetPhysicalDeviceExternalFenceProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
---   >     , VkExternalFenceProperties* pExternalFenceProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalFenceProperties.html vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalFenceProperties"
-               vkGetPhysicalDeviceExternalFenceProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
-                                                       ->
-                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
-                                                 -> IO ()
-
--- | > () vkGetPhysicalDeviceExternalFenceProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
---   >     , VkExternalFenceProperties* pExternalFenceProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalFenceProperties.html vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalFenceProperties"
-               vkGetPhysicalDeviceExternalFencePropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
-                                                       ->
-                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
-                                                 -> IO ()
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO =
-        VkStructureType 1000112000
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES =
-        VkStructureType 1000112001
-
-pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO =
-        VkStructureType 1000113000
-
-pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO =
-        VkStructureType 1000077000
-
--- | > () vkGetPhysicalDeviceExternalSemaphoreProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
---   >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalSemaphoreProperties"
-               vkGetPhysicalDeviceExternalSemaphoreProperties ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
-                                                           ->
-                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
-                                                     -> IO ()
-
--- | > () vkGetPhysicalDeviceExternalSemaphoreProperties
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
---   >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalSemaphoreProperties"
-               vkGetPhysicalDeviceExternalSemaphorePropertiesSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
-                                                           ->
-                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
-                                                     -> IO ()
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO =
-        VkStructureType 1000076000
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES =
-        VkStructureType 1000076001
-
--- | > () vkGetDescriptorSetLayoutSupport
---   >     ( VkDevice device
---   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
---   >     , VkDescriptorSetLayoutSupport* pSupport
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDescriptorSetLayoutSupport.html vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDescriptorSetLayoutSupport"
-               vkGetDescriptorSetLayoutSupport ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
-                                                    -> IO ()
-
--- | > () vkGetDescriptorSetLayoutSupport
---   >     ( VkDevice device
---   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
---   >     , VkDescriptorSetLayoutSupport* pSupport
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDescriptorSetLayoutSupport.html vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
-foreign import ccall safe "vkGetDescriptorSetLayoutSupport"
-               vkGetDescriptorSetLayoutSupportSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
-                                                    -> IO ()
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE MagicHash                #-}
+{-# LANGUAGE PatternSynonyms          #-}
+{-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
+{-# LANGUAGE ViewPatterns             #-}
+module Graphics.Vulkan.Core_1_1
+       (-- * Vulkan 1.1 core API interface definitions.
+        -- |
+        --
+        -- @api = vulkan@
+        --
+        -- @name = VK_VERSION_1_1@
+        --
+        -- @number = 1.1@
+        --
+
+        -- ** Device Initialization
+        VkEnumerateInstanceVersion, pattern VkEnumerateInstanceVersion,
+        HS_vkEnumerateInstanceVersion, PFN_vkEnumerateInstanceVersion,
+        vkEnumerateInstanceVersion, vkEnumerateInstanceVersionSafe,
+        module Graphics.Vulkan.Types.Enum.Result,
+        -- ** Promoted from VK_KHR_relaxed_block_layout, which has no API
+        --
+
+        -- ** Promoted from VK_KHR_storage_buffer_storage_class, which has no API
+        --
+
+        -- ** Originally based on VK_KHR_subgroup (extension 94), but the actual enum block used was, incorrectly, that of extension 95
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
+        -- ** Promoted from VK_KHR_bind_memory2
+        module Graphics.Vulkan.Types.Struct.Bind, -- > #include "vk_platform.h"
+                                                  VkBindBufferMemory2,
+        pattern VkBindBufferMemory2, HS_vkBindBufferMemory2,
+        PFN_vkBindBufferMemory2, vkBindBufferMemory2,
+        vkBindBufferMemory2Safe, VkBindImageMemory2,
+        pattern VkBindImageMemory2, HS_vkBindImageMemory2,
+        PFN_vkBindImageMemory2, vkBindImageMemory2, vkBindImageMemory2Safe,
+        module Graphics.Vulkan.Types.Handles,
+        pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
+        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
+        pattern VK_IMAGE_CREATE_ALIAS_BIT,
+        -- ** Promoted from VK_KHR_16bit_storage
+        module Graphics.Vulkan.Types.Bitmasks,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
+        -- ** Promoted from VK_KHR_dedicated_allocation
+        module Graphics.Vulkan.Types.Struct.Memory,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
+        pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
+        -- ** Promoted from VK_KHR_device_group
+        module Graphics.Vulkan.Types.Struct.Clear,
+        module Graphics.Vulkan.Types.Struct.Command,
+        module Graphics.Vulkan.Types.Enum.Command,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.Memory,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.Query,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Struct.RenderPass,
+        module Graphics.Vulkan.Types.Struct.Sparse,
+        module Graphics.Vulkan.Types.Enum.Sparse,
+        module Graphics.Vulkan.Types.Struct.SubmitInfo,
+        -- > #include "vk_platform.h"
+        VkGetDeviceGroupPeerMemoryFeatures,
+        pattern VkGetDeviceGroupPeerMemoryFeatures,
+        HS_vkGetDeviceGroupPeerMemoryFeatures,
+        PFN_vkGetDeviceGroupPeerMemoryFeatures,
+        vkGetDeviceGroupPeerMemoryFeatures,
+        vkGetDeviceGroupPeerMemoryFeaturesSafe, VkCmdSetDeviceMask,
+        pattern VkCmdSetDeviceMask, HS_vkCmdSetDeviceMask,
+        PFN_vkCmdSetDeviceMask, vkCmdSetDeviceMask, vkCmdSetDeviceMaskSafe,
+        VkCmdDispatchBase, pattern VkCmdDispatchBase, HS_vkCmdDispatchBase,
+        PFN_vkCmdDispatchBase, vkCmdDispatchBase, vkCmdDispatchBaseSafe,
+        pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
+        pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
+        pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
+        pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
+        -- ** Promoted from VK_KHR_device_group + VK_KHR_bind_memory2
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
+        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
+        pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
+        -- ** Promoted from VK_KHR_device_group_creation
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        VkEnumeratePhysicalDeviceGroups,
+        pattern VkEnumeratePhysicalDeviceGroups,
+        HS_vkEnumeratePhysicalDeviceGroups,
+        PFN_vkEnumeratePhysicalDeviceGroups,
+        vkEnumeratePhysicalDeviceGroups,
+        vkEnumeratePhysicalDeviceGroupsSafe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
+        pattern VK_MAX_DEVICE_GROUP_SIZE,
+        pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+        -- ** Promoted from VK_KHR_get_memory_requirements2
+        module Graphics.Vulkan.Types.Struct.Buffer,
+        -- > #include "vk_platform.h"
+        VkGetImageMemoryRequirements2,
+        pattern VkGetImageMemoryRequirements2,
+        HS_vkGetImageMemoryRequirements2,
+        PFN_vkGetImageMemoryRequirements2, vkGetImageMemoryRequirements2,
+        vkGetImageMemoryRequirements2Safe, VkGetBufferMemoryRequirements2,
+        pattern VkGetBufferMemoryRequirements2,
+        HS_vkGetBufferMemoryRequirements2,
+        PFN_vkGetBufferMemoryRequirements2, vkGetBufferMemoryRequirements2,
+        vkGetBufferMemoryRequirements2Safe,
+        VkGetImageSparseMemoryRequirements2,
+        pattern VkGetImageSparseMemoryRequirements2,
+        HS_vkGetImageSparseMemoryRequirements2,
+        PFN_vkGetImageSparseMemoryRequirements2,
+        vkGetImageSparseMemoryRequirements2,
+        vkGetImageSparseMemoryRequirements2Safe,
+        pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
+        pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+        pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
+        pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+        pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
+        -- ** Promoted from VK_KHR_get_physical_device_properties2
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Struct.FormatProperties,
+        module Graphics.Vulkan.Types.Struct.QueueFamilyProperties,
+        module Graphics.Vulkan.Types.Enum.Queue,
+        -- > #include "vk_platform.h"
+        VkGetPhysicalDeviceFeatures2, pattern VkGetPhysicalDeviceFeatures2,
+        HS_vkGetPhysicalDeviceFeatures2, PFN_vkGetPhysicalDeviceFeatures2,
+        vkGetPhysicalDeviceFeatures2, vkGetPhysicalDeviceFeatures2Safe,
+        VkGetPhysicalDeviceProperties2,
+        pattern VkGetPhysicalDeviceProperties2,
+        HS_vkGetPhysicalDeviceProperties2,
+        PFN_vkGetPhysicalDeviceProperties2, vkGetPhysicalDeviceProperties2,
+        vkGetPhysicalDeviceProperties2Safe,
+        VkGetPhysicalDeviceFormatProperties2,
+        pattern VkGetPhysicalDeviceFormatProperties2,
+        HS_vkGetPhysicalDeviceFormatProperties2,
+        PFN_vkGetPhysicalDeviceFormatProperties2,
+        vkGetPhysicalDeviceFormatProperties2,
+        vkGetPhysicalDeviceFormatProperties2Safe,
+        VkGetPhysicalDeviceImageFormatProperties2,
+        pattern VkGetPhysicalDeviceImageFormatProperties2,
+        HS_vkGetPhysicalDeviceImageFormatProperties2,
+        PFN_vkGetPhysicalDeviceImageFormatProperties2,
+        vkGetPhysicalDeviceImageFormatProperties2,
+        vkGetPhysicalDeviceImageFormatProperties2Safe,
+        VkGetPhysicalDeviceQueueFamilyProperties2,
+        pattern VkGetPhysicalDeviceQueueFamilyProperties2,
+        HS_vkGetPhysicalDeviceQueueFamilyProperties2,
+        PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
+        vkGetPhysicalDeviceQueueFamilyProperties2,
+        vkGetPhysicalDeviceQueueFamilyProperties2Safe,
+        VkGetPhysicalDeviceMemoryProperties2,
+        pattern VkGetPhysicalDeviceMemoryProperties2,
+        HS_vkGetPhysicalDeviceMemoryProperties2,
+        PFN_vkGetPhysicalDeviceMemoryProperties2,
+        vkGetPhysicalDeviceMemoryProperties2,
+        vkGetPhysicalDeviceMemoryProperties2Safe,
+        VkGetPhysicalDeviceSparseImageFormatProperties2,
+        pattern VkGetPhysicalDeviceSparseImageFormatProperties2,
+        HS_vkGetPhysicalDeviceSparseImageFormatProperties2,
+        PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
+        vkGetPhysicalDeviceSparseImageFormatProperties2,
+        vkGetPhysicalDeviceSparseImageFormatProperties2Safe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
+        pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
+        -- ** Promoted from VK_KHR_maintenance1
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        VkTrimCommandPool, pattern VkTrimCommandPool, HS_vkTrimCommandPool,
+        PFN_vkTrimCommandPool, vkTrimCommandPool, vkTrimCommandPoolSafe,
+        pattern VK_ERROR_OUT_OF_POOL_MEMORY,
+        pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
+        pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
+        pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
+        -- ** Promoted from VK_KHR_maintenance2
+        module Graphics.Vulkan.Types.Enum.AccessFlags,
+        module Graphics.Vulkan.Types.Struct.Attachment,
+        module Graphics.Vulkan.Types.Enum.Attachment,
+        module Graphics.Vulkan.Types.Struct.ComponentMapping,
+        module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
+        module Graphics.Vulkan.Types.Enum.DependencyFlags,
+        module Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.PointClippingBehavior,
+        module Graphics.Vulkan.Types.Struct.Subpass,
+        module Graphics.Vulkan.Types.Enum.Subpass,
+        module Graphics.Vulkan.Types.Enum.TessellationDomainOrigin,
+        -- > #include "vk_platform.h"
+        pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
+        pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
+        pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+        pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+        -- ** Promoted from VK_KHR_multiview
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
+        pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
+        -- ** Promoted from VK_KHR_variable_pointers
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
+        -- ** Originally based on VK_KHR_protected_memory (extension 146), which was never published; thus the mystifying large value= numbers below. These are not aliased since they weren't actually promoted from an extension.
+        module Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo,
+        -- > #include "vk_platform.h"
+        VkGetDeviceQueue2, pattern VkGetDeviceQueue2, HS_vkGetDeviceQueue2,
+        PFN_vkGetDeviceQueue2, vkGetDeviceQueue2, vkGetDeviceQueue2Safe,
+        pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
+        pattern VK_QUEUE_PROTECTED_BIT,
+        pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT,
+        pattern VK_MEMORY_PROPERTY_PROTECTED_BIT,
+        pattern VK_BUFFER_CREATE_PROTECTED_BIT,
+        pattern VK_IMAGE_CREATE_PROTECTED_BIT,
+        pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT,
+        -- ** Promoted from VK_KHR_sampler_ycbcr_conversion
+        module Graphics.Vulkan.Types.Enum.BorderColor,
+        module Graphics.Vulkan.Types.Enum.ChromaLocation,
+        module Graphics.Vulkan.Types.Enum.CompareOp,
+        module Graphics.Vulkan.Types.Enum.Filter,
+        module Graphics.Vulkan.Types.Enum.Sampler,
+        module Graphics.Vulkan.Types.Struct.Sampler,
+        -- > #include "vk_platform.h"
+        VkCreateSamplerYcbcrConversion,
+        pattern VkCreateSamplerYcbcrConversion,
+        HS_vkCreateSamplerYcbcrConversion,
+        PFN_vkCreateSamplerYcbcrConversion, vkCreateSamplerYcbcrConversion,
+        vkCreateSamplerYcbcrConversionSafe,
+        VkDestroySamplerYcbcrConversion,
+        pattern VkDestroySamplerYcbcrConversion,
+        HS_vkDestroySamplerYcbcrConversion,
+        PFN_vkDestroySamplerYcbcrConversion,
+        vkDestroySamplerYcbcrConversion,
+        vkDestroySamplerYcbcrConversionSafe,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
+        module Graphics.Vulkan.Types.Funcpointers,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
+        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
+        pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
+        pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
+        pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+        pattern VK_FORMAT_G8B8G8R8_422_UNORM,
+        pattern VK_FORMAT_B8G8R8G8_422_UNORM,
+        pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
+        pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
+        pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
+        pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
+        pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
+        pattern VK_FORMAT_R10X6_UNORM_PACK16,
+        pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
+        pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
+        pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
+        pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
+        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
+        pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
+        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
+        pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
+        pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
+        pattern VK_FORMAT_R12X4_UNORM_PACK16,
+        pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
+        pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
+        pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
+        pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
+        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
+        pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
+        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
+        pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
+        pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
+        pattern VK_FORMAT_G16B16G16R16_422_UNORM,
+        pattern VK_FORMAT_B16G16R16G16_422_UNORM,
+        pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
+        pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
+        pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
+        pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
+        pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
+        pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
+        pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
+        pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
+        pattern VK_IMAGE_CREATE_DISJOINT_BIT,
+        pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
+        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
+        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
+        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
+        pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
+        pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
+        pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+        -- ** Promoted from VK_KHR_descriptor_update_template
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        -- > #include "vk_platform.h"
+        VkCreateDescriptorUpdateTemplate,
+        pattern VkCreateDescriptorUpdateTemplate,
+        HS_vkCreateDescriptorUpdateTemplate,
+        PFN_vkCreateDescriptorUpdateTemplate,
+        vkCreateDescriptorUpdateTemplate,
+        vkCreateDescriptorUpdateTemplateSafe,
+        VkDestroyDescriptorUpdateTemplate,
+        pattern VkDestroyDescriptorUpdateTemplate,
+        HS_vkDestroyDescriptorUpdateTemplate,
+        PFN_vkDestroyDescriptorUpdateTemplate,
+        vkDestroyDescriptorUpdateTemplate,
+        vkDestroyDescriptorUpdateTemplateSafe,
+        VkUpdateDescriptorSetWithTemplate,
+        pattern VkUpdateDescriptorSetWithTemplate,
+        HS_vkUpdateDescriptorSetWithTemplate,
+        PFN_vkUpdateDescriptorSetWithTemplate,
+        vkUpdateDescriptorSetWithTemplate,
+        vkUpdateDescriptorSetWithTemplateSafe,
+        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
+        pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+        -- ** Promoted from VK_KHR_external_memory_capabilities
+        module Graphics.Vulkan.Types.Enum.Buffer,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Enum.External,
+        -- > #include "vk_platform.h"
+        VkGetPhysicalDeviceExternalBufferProperties,
+        pattern VkGetPhysicalDeviceExternalBufferProperties,
+        HS_vkGetPhysicalDeviceExternalBufferProperties,
+        PFN_vkGetPhysicalDeviceExternalBufferProperties,
+        vkGetPhysicalDeviceExternalBufferProperties,
+        vkGetPhysicalDeviceExternalBufferPropertiesSafe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
+        pattern VK_LUID_SIZE, -- ** Promoted from VK_KHR_external_memory
+                              module Graphics.Vulkan.Types.Struct.Export,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+        pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
+        pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
+        pattern VK_QUEUE_FAMILY_EXTERNAL,
+        -- ** Promoted from VK_KHR_external_fence_capabilities
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        VkGetPhysicalDeviceExternalFenceProperties,
+        pattern VkGetPhysicalDeviceExternalFenceProperties,
+        HS_vkGetPhysicalDeviceExternalFenceProperties,
+        PFN_vkGetPhysicalDeviceExternalFenceProperties,
+        vkGetPhysicalDeviceExternalFenceProperties,
+        vkGetPhysicalDeviceExternalFencePropertiesSafe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
+        -- ** Promoted from VK_KHR_external_fence
+        module Graphics.Vulkan.Types.Enum.Fence,
+        module Graphics.Vulkan.Types.Struct.Fence,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
+        -- ** Promoted from VK_KHR_external_semaphore
+        module Graphics.Vulkan.Types.Struct.Semaphore,
+        module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
+        -- ** Promoted from VK_KHR_external_semaphore_capabilities
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        VkGetPhysicalDeviceExternalSemaphoreProperties,
+        pattern VkGetPhysicalDeviceExternalSemaphoreProperties,
+        HS_vkGetPhysicalDeviceExternalSemaphoreProperties,
+        PFN_vkGetPhysicalDeviceExternalSemaphoreProperties,
+        vkGetPhysicalDeviceExternalSemaphoreProperties,
+        vkGetPhysicalDeviceExternalSemaphorePropertiesSafe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
+        pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
+        -- ** Promoted from VK_KHR_maintenance3
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        VkGetDescriptorSetLayoutSupport,
+        pattern VkGetDescriptorSetLayoutSupport,
+        HS_vkGetDescriptorSetLayoutSupport,
+        PFN_vkGetDescriptorSetLayoutSupport,
+        vkGetDescriptorSetLayoutSupport,
+        vkGetDescriptorSetLayoutSupportSafe,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
+        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
+        -- ** Promoted from VK_KHR_shader_draw_parameters, with a feature support query added
+        --
+        -- |
+        -- > #include "vk_platform.h"
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES)
+       where
+import           GHC.Ptr                                                     (Ptr (..))
+import           Graphics.Vulkan.Constants                                   (pattern VK_LUID_SIZE,
+                                                                              pattern VK_MAX_DEVICE_GROUP_SIZE,
+                                                                              pattern VK_QUEUE_FAMILY_EXTERNAL)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Bitmasks
+import           Graphics.Vulkan.Types.Enum.AccessFlags
+import           Graphics.Vulkan.Types.Enum.Attachment
+import           Graphics.Vulkan.Types.Enum.BorderColor
+import           Graphics.Vulkan.Types.Enum.Buffer
+import           Graphics.Vulkan.Types.Enum.ChromaLocation
+import           Graphics.Vulkan.Types.Enum.Command
+import           Graphics.Vulkan.Types.Enum.CompareOp
+import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import           Graphics.Vulkan.Types.Enum.DependencyFlags
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Fence
+import           Graphics.Vulkan.Types.Enum.Filter
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Memory
+import           Graphics.Vulkan.Types.Enum.Object                           (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.PointClippingBehavior
+import           Graphics.Vulkan.Types.Enum.Query
+import           Graphics.Vulkan.Types.Enum.Queue
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Sampler
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.Sparse
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
+import           Graphics.Vulkan.Types.Enum.Subpass
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+import           Graphics.Vulkan.Types.Funcpointers
+import           Graphics.Vulkan.Types.Handles
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Attachment
+import           Graphics.Vulkan.Types.Struct.Bind
+import           Graphics.Vulkan.Types.Struct.Buffer
+import           Graphics.Vulkan.Types.Struct.Clear
+import           Graphics.Vulkan.Types.Struct.Command
+import           Graphics.Vulkan.Types.Struct.ComponentMapping
+import           Graphics.Vulkan.Types.Struct.Descriptor
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.Export
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.Fence
+import           Graphics.Vulkan.Types.Struct.FormatProperties
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
+import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.RenderPass
+import           Graphics.Vulkan.Types.Struct.Sampler
+import           Graphics.Vulkan.Types.Struct.Semaphore
+import           Graphics.Vulkan.Types.Struct.Sparse
+import           Graphics.Vulkan.Types.Struct.SubmitInfo
+import           Graphics.Vulkan.Types.Struct.Subpass
+import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+
+pattern VkEnumerateInstanceVersion :: CString
+
+pattern VkEnumerateInstanceVersion <-
+        (is_VkEnumerateInstanceVersion -> True)
+  where VkEnumerateInstanceVersion = _VkEnumerateInstanceVersion
+
+{-# INLINE _VkEnumerateInstanceVersion #-}
+
+_VkEnumerateInstanceVersion :: CString
+_VkEnumerateInstanceVersion = Ptr "vkEnumerateInstanceVersion\NUL"#
+
+{-# INLINE is_VkEnumerateInstanceVersion #-}
+
+is_VkEnumerateInstanceVersion :: CString -> Bool
+is_VkEnumerateInstanceVersion
+  = (EQ ==) . cmpCStrings _VkEnumerateInstanceVersion
+
+type VkEnumerateInstanceVersion = "vkEnumerateInstanceVersion"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- > VkResult vkEnumerateInstanceVersion
+-- >     ( uint32_t* pApiVersion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceVersion vkEnumerateInstanceVersion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumerateInstanceVersion"
+               vkEnumerateInstanceVersion :: Ptr Word32 -- ^ pApiVersion
+                                                        -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- > VkResult vkEnumerateInstanceVersion
+-- >     ( uint32_t* pApiVersion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceVersion vkEnumerateInstanceVersion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceVersionSafe@ and @vkEnumerateInstanceVersion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceVersion <- vkGetInstanceProc @VkEnumerateInstanceVersion vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceVersion <- vkGetProc @VkEnumerateInstanceVersion
+--
+vkEnumerateInstanceVersion :: Ptr Word32 -- ^ pApiVersion
+                                         -> IO VkResult
+vkEnumerateInstanceVersion
+  = unsafeDupablePerformIO (vkGetProc @VkEnumerateInstanceVersion)
+
+{-# NOINLINE vkEnumerateInstanceVersion #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- > VkResult vkEnumerateInstanceVersion
+-- >     ( uint32_t* pApiVersion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceVersion vkEnumerateInstanceVersion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumerateInstanceVersion"
+               vkEnumerateInstanceVersionSafe :: Ptr Word32 -- ^ pApiVersion
+                                                            -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- > VkResult vkEnumerateInstanceVersion
+-- >     ( uint32_t* pApiVersion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceVersion vkEnumerateInstanceVersion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumerateInstanceVersionSafe@ and @vkEnumerateInstanceVersion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumerateInstanceVersion <- vkGetInstanceProc @VkEnumerateInstanceVersion vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumerateInstanceVersion <- vkGetProc @VkEnumerateInstanceVersion
+--
+vkEnumerateInstanceVersionSafe :: Ptr Word32 -- ^ pApiVersion
+                                             -> IO VkResult
+vkEnumerateInstanceVersionSafe = vkEnumerateInstanceVersion
+
+{-# INLINE vkEnumerateInstanceVersionSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   > VkResult vkEnumerateInstanceVersion
+--   >     ( uint32_t* pApiVersion
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumerateInstanceVersion vkEnumerateInstanceVersion registry at www.khronos.org>
+type HS_vkEnumerateInstanceVersion = Ptr Word32 -- ^ pApiVersion
+                                                -> IO VkResult
+
+type PFN_vkEnumerateInstanceVersion =
+     FunPtr HS_vkEnumerateInstanceVersion
+
+foreign import ccall "dynamic" unwrapVkEnumerateInstanceVersion ::
+               PFN_vkEnumerateInstanceVersion -> HS_vkEnumerateInstanceVersion
+
+instance VulkanProc "vkEnumerateInstanceVersion" where
+        type VkProcType "vkEnumerateInstanceVersion" =
+             HS_vkEnumerateInstanceVersion
+        vkProcSymbol = _VkEnumerateInstanceVersion
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumerateInstanceVersion
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES =
+        VkStructureType 1000094000
+
+pattern VkBindBufferMemory2 :: CString
+
+pattern VkBindBufferMemory2 <- (is_VkBindBufferMemory2 -> True)
+  where VkBindBufferMemory2 = _VkBindBufferMemory2
+
+{-# INLINE _VkBindBufferMemory2 #-}
+
+_VkBindBufferMemory2 :: CString
+_VkBindBufferMemory2 = Ptr "vkBindBufferMemory2\NUL"#
+
+{-# INLINE is_VkBindBufferMemory2 #-}
+
+is_VkBindBufferMemory2 :: CString -> Bool
+is_VkBindBufferMemory2 = (EQ ==) . cmpCStrings _VkBindBufferMemory2
+
+type VkBindBufferMemory2 = "vkBindBufferMemory2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindBufferMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2 vkBindBufferMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkBindBufferMemory2"
+               vkBindBufferMemory2 ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ bindInfoCount
+                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindBufferMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2 vkBindBufferMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindBufferMemory2Safe@ and @vkBindBufferMemory2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindBufferMemory2 <- vkGetDeviceProc @VkBindBufferMemory2 vkDevice
+--
+-- or less efficient:
+--
+-- > myBindBufferMemory2 <- vkGetProc @VkBindBufferMemory2
+--
+vkBindBufferMemory2 ::
+                    VkDevice -- ^ device
+                             -> Word32 -- ^ bindInfoCount
+                                       -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                                     -> IO VkResult
+vkBindBufferMemory2
+  = unsafeDupablePerformIO (vkGetProc @VkBindBufferMemory2)
+
+{-# NOINLINE vkBindBufferMemory2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindBufferMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2 vkBindBufferMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkBindBufferMemory2"
+               vkBindBufferMemory2Safe ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ bindInfoCount
+                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindBufferMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindBufferMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2 vkBindBufferMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindBufferMemory2Safe@ and @vkBindBufferMemory2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindBufferMemory2 <- vkGetDeviceProc @VkBindBufferMemory2 vkDevice
+--
+-- or less efficient:
+--
+-- > myBindBufferMemory2 <- vkGetProc @VkBindBufferMemory2
+--
+vkBindBufferMemory2Safe ::
+                        VkDevice -- ^ device
+                                 -> Word32 -- ^ bindInfoCount
+                                           -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                                         -> IO VkResult
+vkBindBufferMemory2Safe = vkBindBufferMemory2
+
+{-# INLINE vkBindBufferMemory2Safe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkBindBufferMemory2
+--   >     ( VkDevice device
+--   >     , uint32_t bindInfoCount
+--   >     , const VkBindBufferMemoryInfo* pBindInfos
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2 vkBindBufferMemory2 registry at www.khronos.org>
+type HS_vkBindBufferMemory2 =
+     VkDevice -- ^ device
+              -> Word32 -- ^ bindInfoCount
+                        -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                      -> IO VkResult
+
+type PFN_vkBindBufferMemory2 = FunPtr HS_vkBindBufferMemory2
+
+foreign import ccall "dynamic" unwrapVkBindBufferMemory2 ::
+               PFN_vkBindBufferMemory2 -> HS_vkBindBufferMemory2
+
+instance VulkanProc "vkBindBufferMemory2" where
+        type VkProcType "vkBindBufferMemory2" = HS_vkBindBufferMemory2
+        vkProcSymbol = _VkBindBufferMemory2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindBufferMemory2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkBindImageMemory2 :: CString
+
+pattern VkBindImageMemory2 <- (is_VkBindImageMemory2 -> True)
+  where VkBindImageMemory2 = _VkBindImageMemory2
+
+{-# INLINE _VkBindImageMemory2 #-}
+
+_VkBindImageMemory2 :: CString
+_VkBindImageMemory2 = Ptr "vkBindImageMemory2\NUL"#
+
+{-# INLINE is_VkBindImageMemory2 #-}
+
+is_VkBindImageMemory2 :: CString -> Bool
+is_VkBindImageMemory2 = (EQ ==) . cmpCStrings _VkBindImageMemory2
+
+type VkBindImageMemory2 = "vkBindImageMemory2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindImageMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2 vkBindImageMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkBindImageMemory2" vkBindImageMemory2
+               :: VkDevice -- ^ device
+                           -> Word32 -- ^ bindInfoCount
+                                     -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindImageMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2 vkBindImageMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindImageMemory2Safe@ and @vkBindImageMemory2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindImageMemory2 <- vkGetDeviceProc @VkBindImageMemory2 vkDevice
+--
+-- or less efficient:
+--
+-- > myBindImageMemory2 <- vkGetProc @VkBindImageMemory2
+--
+vkBindImageMemory2 ::
+                   VkDevice -- ^ device
+                            -> Word32 -- ^ bindInfoCount
+                                      -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                                   -> IO VkResult
+vkBindImageMemory2
+  = unsafeDupablePerformIO (vkGetProc @VkBindImageMemory2)
+
+{-# NOINLINE vkBindImageMemory2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindImageMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2 vkBindImageMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkBindImageMemory2"
+               vkBindImageMemory2Safe ::
+               VkDevice -- ^ device
+                        -> Word32 -- ^ bindInfoCount
+                                  -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                               -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkBindImageMemory2
+-- >     ( VkDevice device
+-- >     , uint32_t bindInfoCount
+-- >     , const VkBindImageMemoryInfo* pBindInfos
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2 vkBindImageMemory2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkBindImageMemory2Safe@ and @vkBindImageMemory2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myBindImageMemory2 <- vkGetDeviceProc @VkBindImageMemory2 vkDevice
+--
+-- or less efficient:
+--
+-- > myBindImageMemory2 <- vkGetProc @VkBindImageMemory2
+--
+vkBindImageMemory2Safe ::
+                       VkDevice -- ^ device
+                                -> Word32 -- ^ bindInfoCount
+                                          -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                                       -> IO VkResult
+vkBindImageMemory2Safe = vkBindImageMemory2
+
+{-# INLINE vkBindImageMemory2Safe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkBindImageMemory2
+--   >     ( VkDevice device
+--   >     , uint32_t bindInfoCount
+--   >     , const VkBindImageMemoryInfo* pBindInfos
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2 vkBindImageMemory2 registry at www.khronos.org>
+type HS_vkBindImageMemory2 =
+     VkDevice -- ^ device
+              -> Word32 -- ^ bindInfoCount
+                        -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                     -> IO VkResult
+
+type PFN_vkBindImageMemory2 = FunPtr HS_vkBindImageMemory2
+
+foreign import ccall "dynamic" unwrapVkBindImageMemory2 ::
+               PFN_vkBindImageMemory2 -> HS_vkBindImageMemory2
+
+instance VulkanProc "vkBindImageMemory2" where
+        type VkProcType "vkBindImageMemory2" = HS_vkBindImageMemory2
+        vkProcSymbol = _VkBindImageMemory2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindImageMemory2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO =
+        VkStructureType 1000157000
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO =
+        VkStructureType 1000157001
+
+-- | bitpos = @10@
+pattern VK_IMAGE_CREATE_ALIAS_BIT :: VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_ALIAS_BIT = VkImageCreateFlagBits 1024
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES =
+        VkStructureType 1000083000
+
+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS =
+        VkStructureType 1000127000
+
+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO =
+        VkStructureType 1000127001
+
+pattern VkGetDeviceGroupPeerMemoryFeatures :: CString
+
+pattern VkGetDeviceGroupPeerMemoryFeatures <-
+        (is_VkGetDeviceGroupPeerMemoryFeatures -> True)
+  where VkGetDeviceGroupPeerMemoryFeatures
+          = _VkGetDeviceGroupPeerMemoryFeatures
+
+{-# INLINE _VkGetDeviceGroupPeerMemoryFeatures #-}
+
+_VkGetDeviceGroupPeerMemoryFeatures :: CString
+_VkGetDeviceGroupPeerMemoryFeatures
+  = Ptr "vkGetDeviceGroupPeerMemoryFeatures\NUL"#
+
+{-# INLINE is_VkGetDeviceGroupPeerMemoryFeatures #-}
+
+is_VkGetDeviceGroupPeerMemoryFeatures :: CString -> Bool
+is_VkGetDeviceGroupPeerMemoryFeatures
+  = (EQ ==) . cmpCStrings _VkGetDeviceGroupPeerMemoryFeatures
+
+type VkGetDeviceGroupPeerMemoryFeatures =
+     "vkGetDeviceGroupPeerMemoryFeatures"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDeviceGroupPeerMemoryFeatures
+-- >     ( VkDevice device
+-- >     , uint32_t heapIndex
+-- >     , uint32_t localDeviceIndex
+-- >     , uint32_t remoteDeviceIndex
+-- >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDeviceGroupPeerMemoryFeatures"
+               vkGetDeviceGroupPeerMemoryFeatures ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ heapIndex
+                        -> Word32 -- ^ localDeviceIndex
+                                  -> Word32 -- ^ remoteDeviceIndex
+                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
+                                                                            -> IO ()
+
+#else
+-- |
+-- > void vkGetDeviceGroupPeerMemoryFeatures
+-- >     ( VkDevice device
+-- >     , uint32_t heapIndex
+-- >     , uint32_t localDeviceIndex
+-- >     , uint32_t remoteDeviceIndex
+-- >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupPeerMemoryFeaturesSafe@ and @vkGetDeviceGroupPeerMemoryFeatures@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupPeerMemoryFeatures <- vkGetDeviceProc @VkGetDeviceGroupPeerMemoryFeatures vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupPeerMemoryFeatures <- vkGetProc @VkGetDeviceGroupPeerMemoryFeatures
+--
+vkGetDeviceGroupPeerMemoryFeatures ::
+                                   VkDevice -- ^ device
+                                            ->
+                                     Word32 -- ^ heapIndex
+                                            ->
+                                       Word32 -- ^ localDeviceIndex
+                                              -> Word32 -- ^ remoteDeviceIndex
+                                                        -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
+                                                                                        -> IO ()
+vkGetDeviceGroupPeerMemoryFeatures
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDeviceGroupPeerMemoryFeatures)
+
+{-# NOINLINE vkGetDeviceGroupPeerMemoryFeatures #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDeviceGroupPeerMemoryFeatures
+-- >     ( VkDevice device
+-- >     , uint32_t heapIndex
+-- >     , uint32_t localDeviceIndex
+-- >     , uint32_t remoteDeviceIndex
+-- >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceGroupPeerMemoryFeatures"
+               vkGetDeviceGroupPeerMemoryFeaturesSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Word32 -- ^ heapIndex
+                        -> Word32 -- ^ localDeviceIndex
+                                  -> Word32 -- ^ remoteDeviceIndex
+                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
+                                                                            -> IO ()
+
+#else
+-- |
+-- > void vkGetDeviceGroupPeerMemoryFeatures
+-- >     ( VkDevice device
+-- >     , uint32_t heapIndex
+-- >     , uint32_t localDeviceIndex
+-- >     , uint32_t remoteDeviceIndex
+-- >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupPeerMemoryFeaturesSafe@ and @vkGetDeviceGroupPeerMemoryFeatures@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupPeerMemoryFeatures <- vkGetDeviceProc @VkGetDeviceGroupPeerMemoryFeatures vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupPeerMemoryFeatures <- vkGetProc @VkGetDeviceGroupPeerMemoryFeatures
+--
+vkGetDeviceGroupPeerMemoryFeaturesSafe ::
+                                       VkDevice -- ^ device
+                                                ->
+                                         Word32 -- ^ heapIndex
+                                                ->
+                                           Word32 -- ^ localDeviceIndex
+                                                  -> Word32 -- ^ remoteDeviceIndex
+                                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
+                                                                                            -> IO ()
+vkGetDeviceGroupPeerMemoryFeaturesSafe
+  = vkGetDeviceGroupPeerMemoryFeatures
+
+{-# INLINE vkGetDeviceGroupPeerMemoryFeaturesSafe #-}
+#endif
+
+-- | > void vkGetDeviceGroupPeerMemoryFeatures
+--   >     ( VkDevice device
+--   >     , uint32_t heapIndex
+--   >     , uint32_t localDeviceIndex
+--   >     , uint32_t remoteDeviceIndex
+--   >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures registry at www.khronos.org>
+type HS_vkGetDeviceGroupPeerMemoryFeatures =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ heapIndex
+              -> Word32 -- ^ localDeviceIndex
+                        -> Word32 -- ^ remoteDeviceIndex
+                                  -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
+                                                                  -> IO ()
+
+type PFN_vkGetDeviceGroupPeerMemoryFeatures =
+     FunPtr HS_vkGetDeviceGroupPeerMemoryFeatures
+
+foreign import ccall "dynamic"
+               unwrapVkGetDeviceGroupPeerMemoryFeatures ::
+               PFN_vkGetDeviceGroupPeerMemoryFeatures ->
+                 HS_vkGetDeviceGroupPeerMemoryFeatures
+
+instance VulkanProc "vkGetDeviceGroupPeerMemoryFeatures" where
+        type VkProcType "vkGetDeviceGroupPeerMemoryFeatures" =
+             HS_vkGetDeviceGroupPeerMemoryFeatures
+        vkProcSymbol = _VkGetDeviceGroupPeerMemoryFeatures
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceGroupPeerMemoryFeatures
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetDeviceMask :: CString
+
+pattern VkCmdSetDeviceMask <- (is_VkCmdSetDeviceMask -> True)
+  where VkCmdSetDeviceMask = _VkCmdSetDeviceMask
+
+{-# INLINE _VkCmdSetDeviceMask #-}
+
+_VkCmdSetDeviceMask :: CString
+_VkCmdSetDeviceMask = Ptr "vkCmdSetDeviceMask\NUL"#
+
+{-# INLINE is_VkCmdSetDeviceMask #-}
+
+is_VkCmdSetDeviceMask :: CString -> Bool
+is_VkCmdSetDeviceMask = (EQ ==) . cmpCStrings _VkCmdSetDeviceMask
+
+type VkCmdSetDeviceMask = "vkCmdSetDeviceMask"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Queues: 'graphics', 'compute', 'transfer'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDeviceMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t deviceMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMask vkCmdSetDeviceMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdSetDeviceMask" vkCmdSetDeviceMask
+               :: VkCommandBuffer -- ^ commandBuffer
+                                  -> Word32 -- ^ deviceMask
+                                            -> IO ()
+
+#else
+-- |
+-- Queues: 'graphics', 'compute', 'transfer'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDeviceMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t deviceMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMask vkCmdSetDeviceMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDeviceMaskSafe@ and @vkCmdSetDeviceMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDeviceMask <- vkGetInstanceProc @VkCmdSetDeviceMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDeviceMask <- vkGetProc @VkCmdSetDeviceMask
+--
+vkCmdSetDeviceMask :: VkCommandBuffer -- ^ commandBuffer
+                                      -> Word32 -- ^ deviceMask
+                                                -> IO ()
+vkCmdSetDeviceMask
+  = unsafeDupablePerformIO (vkGetProc @VkCmdSetDeviceMask)
+
+{-# NOINLINE vkCmdSetDeviceMask #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Queues: 'graphics', 'compute', 'transfer'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDeviceMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t deviceMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMask vkCmdSetDeviceMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdSetDeviceMask"
+               vkCmdSetDeviceMaskSafe :: VkCommandBuffer -- ^ commandBuffer
+                                                         -> Word32 -- ^ deviceMask
+                                                                   -> IO ()
+
+#else
+-- |
+-- Queues: 'graphics', 'compute', 'transfer'.
+--
+-- Renderpass: @both@
+--
+-- > void vkCmdSetDeviceMask
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t deviceMask
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMask vkCmdSetDeviceMask registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdSetDeviceMaskSafe@ and @vkCmdSetDeviceMask@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdSetDeviceMask <- vkGetInstanceProc @VkCmdSetDeviceMask vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdSetDeviceMask <- vkGetProc @VkCmdSetDeviceMask
+--
+vkCmdSetDeviceMaskSafe :: VkCommandBuffer -- ^ commandBuffer
+                                          -> Word32 -- ^ deviceMask
+                                                    -> IO ()
+vkCmdSetDeviceMaskSafe = vkCmdSetDeviceMask
+
+{-# INLINE vkCmdSetDeviceMaskSafe #-}
+#endif
+
+-- | Queues: 'graphics', 'compute', 'transfer'.
+--
+--   Renderpass: @both@
+--
+--   > void vkCmdSetDeviceMask
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t deviceMask
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMask vkCmdSetDeviceMask registry at www.khronos.org>
+type HS_vkCmdSetDeviceMask = VkCommandBuffer -- ^ commandBuffer
+                                             -> Word32 -- ^ deviceMask
+                                                       -> IO ()
+
+type PFN_vkCmdSetDeviceMask = FunPtr HS_vkCmdSetDeviceMask
+
+foreign import ccall "dynamic" unwrapVkCmdSetDeviceMask ::
+               PFN_vkCmdSetDeviceMask -> HS_vkCmdSetDeviceMask
+
+instance VulkanProc "vkCmdSetDeviceMask" where
+        type VkProcType "vkCmdSetDeviceMask" = HS_vkCmdSetDeviceMask
+        vkProcSymbol = _VkCmdSetDeviceMask
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetDeviceMask
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDispatchBase :: CString
+
+pattern VkCmdDispatchBase <- (is_VkCmdDispatchBase -> True)
+  where VkCmdDispatchBase = _VkCmdDispatchBase
+
+{-# INLINE _VkCmdDispatchBase #-}
+
+_VkCmdDispatchBase :: CString
+_VkCmdDispatchBase = Ptr "vkCmdDispatchBase\NUL"#
+
+{-# INLINE is_VkCmdDispatchBase #-}
+
+is_VkCmdDispatchBase :: CString -> Bool
+is_VkCmdDispatchBase = (EQ ==) . cmpCStrings _VkCmdDispatchBase
+
+type VkCmdDispatchBase = "vkCmdDispatchBase"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdDispatchBase
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t baseGroupX
+-- >     , uint32_t baseGroupY
+-- >     , uint32_t baseGroupZ
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBase vkCmdDispatchBase registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCmdDispatchBase" vkCmdDispatchBase
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ baseGroupX
+                        -> Word32 -- ^ baseGroupY
+                                  -> Word32 -- ^ baseGroupZ
+                                            -> Word32 -- ^ groupCountX
+                                                      -> Word32 -- ^ groupCountY
+                                                                -> Word32 -- ^ groupCountZ
+                                                                          -> IO ()
+
+#else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdDispatchBase
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t baseGroupX
+-- >     , uint32_t baseGroupY
+-- >     , uint32_t baseGroupZ
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBase vkCmdDispatchBase registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchBaseSafe@ and @vkCmdDispatchBase@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatchBase <- vkGetInstanceProc @VkCmdDispatchBase vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatchBase <- vkGetProc @VkCmdDispatchBase
+--
+vkCmdDispatchBase ::
+                  VkCommandBuffer -- ^ commandBuffer
+                                  ->
+                    Word32 -- ^ baseGroupX
+                           -> Word32 -- ^ baseGroupY
+                                     -> Word32 -- ^ baseGroupZ
+                                               -> Word32 -- ^ groupCountX
+                                                         -> Word32 -- ^ groupCountY
+                                                                   -> Word32 -- ^ groupCountZ
+                                                                             -> IO ()
+vkCmdDispatchBase
+  = unsafeDupablePerformIO (vkGetProc @VkCmdDispatchBase)
+
+{-# NOINLINE vkCmdDispatchBase #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdDispatchBase
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t baseGroupX
+-- >     , uint32_t baseGroupY
+-- >     , uint32_t baseGroupZ
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBase vkCmdDispatchBase registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCmdDispatchBase" vkCmdDispatchBaseSafe
+               ::
+               VkCommandBuffer -- ^ commandBuffer
+                               ->
+                 Word32 -- ^ baseGroupX
+                        -> Word32 -- ^ baseGroupY
+                                  -> Word32 -- ^ baseGroupZ
+                                            -> Word32 -- ^ groupCountX
+                                                      -> Word32 -- ^ groupCountY
+                                                                -> Word32 -- ^ groupCountZ
+                                                                          -> IO ()
+
+#else
+-- |
+-- Queues: 'compute'.
+--
+-- Renderpass: @outside@
+--
+-- > void vkCmdDispatchBase
+-- >     ( VkCommandBuffer commandBuffer
+-- >     , uint32_t baseGroupX
+-- >     , uint32_t baseGroupY
+-- >     , uint32_t baseGroupZ
+-- >     , uint32_t groupCountX
+-- >     , uint32_t groupCountY
+-- >     , uint32_t groupCountZ
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBase vkCmdDispatchBase registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCmdDispatchBaseSafe@ and @vkCmdDispatchBase@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCmdDispatchBase <- vkGetInstanceProc @VkCmdDispatchBase vkInstance
+--
+-- or less efficient:
+--
+-- > myCmdDispatchBase <- vkGetProc @VkCmdDispatchBase
+--
+vkCmdDispatchBaseSafe ::
+                      VkCommandBuffer -- ^ commandBuffer
+                                      ->
+                        Word32 -- ^ baseGroupX
+                               -> Word32 -- ^ baseGroupY
+                                         -> Word32 -- ^ baseGroupZ
+                                                   -> Word32 -- ^ groupCountX
+                                                             -> Word32 -- ^ groupCountY
+                                                                       -> Word32 -- ^ groupCountZ
+                                                                                 -> IO ()
+vkCmdDispatchBaseSafe = vkCmdDispatchBase
+
+{-# INLINE vkCmdDispatchBaseSafe #-}
+#endif
+
+-- | Queues: 'compute'.
+--
+--   Renderpass: @outside@
+--
+--   > void vkCmdDispatchBase
+--   >     ( VkCommandBuffer commandBuffer
+--   >     , uint32_t baseGroupX
+--   >     , uint32_t baseGroupY
+--   >     , uint32_t baseGroupZ
+--   >     , uint32_t groupCountX
+--   >     , uint32_t groupCountY
+--   >     , uint32_t groupCountZ
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBase vkCmdDispatchBase registry at www.khronos.org>
+type HS_vkCmdDispatchBase =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ baseGroupX
+              -> Word32 -- ^ baseGroupY
+                        -> Word32 -- ^ baseGroupZ
+                                  -> Word32 -- ^ groupCountX
+                                            -> Word32 -- ^ groupCountY
+                                                      -> Word32 -- ^ groupCountZ
+                                                                -> IO ()
+
+type PFN_vkCmdDispatchBase = FunPtr HS_vkCmdDispatchBase
+
+foreign import ccall "dynamic" unwrapVkCmdDispatchBase ::
+               PFN_vkCmdDispatchBase -> HS_vkCmdDispatchBase
+
+instance VulkanProc "vkCmdDispatchBase" where
+        type VkProcType "vkCmdDispatchBase" = HS_vkCmdDispatchBase
+        vkProcSymbol = _VkCmdDispatchBase
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDispatchBase
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO =
+        VkStructureType 1000060000
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO =
+        VkStructureType 1000060003
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO =
+        VkStructureType 1000060004
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO =
+        VkStructureType 1000060005
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO =
+        VkStructureType 1000060006
+
+-- | bitpos = @3@
+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT ::
+        VkPipelineCreateFlagBits
+
+pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT =
+        VkPipelineCreateFlagBits 8
+
+-- | bitpos = @4@
+pattern VK_PIPELINE_CREATE_DISPATCH_BASE ::
+        VkPipelineCreateFlagBits
+
+pattern VK_PIPELINE_CREATE_DISPATCH_BASE =
+        VkPipelineCreateFlagBits 16
+
+-- | Dependency is across devices
+--
+--   bitpos = @2@
+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT :: VkDependencyFlagBits
+
+pattern VK_DEPENDENCY_DEVICE_GROUP_BIT = VkDependencyFlagBits 4
+
+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO =
+        VkStructureType 1000060013
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO =
+        VkStructureType 1000060014
+
+-- | Allows using VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions when binding memory to the image
+--
+--   bitpos = @6@
+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT ::
+        VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT =
+        VkImageCreateFlagBits 64
+
+pattern VkEnumeratePhysicalDeviceGroups :: CString
+
+pattern VkEnumeratePhysicalDeviceGroups <-
+        (is_VkEnumeratePhysicalDeviceGroups -> True)
+  where VkEnumeratePhysicalDeviceGroups
+          = _VkEnumeratePhysicalDeviceGroups
+
+{-# INLINE _VkEnumeratePhysicalDeviceGroups #-}
+
+_VkEnumeratePhysicalDeviceGroups :: CString
+_VkEnumeratePhysicalDeviceGroups
+  = Ptr "vkEnumeratePhysicalDeviceGroups\NUL"#
+
+{-# INLINE is_VkEnumeratePhysicalDeviceGroups #-}
+
+is_VkEnumeratePhysicalDeviceGroups :: CString -> Bool
+is_VkEnumeratePhysicalDeviceGroups
+  = (EQ ==) . cmpCStrings _VkEnumeratePhysicalDeviceGroups
+
+type VkEnumeratePhysicalDeviceGroups =
+     "vkEnumeratePhysicalDeviceGroups"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDeviceGroups
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceGroupCount
+-- >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkEnumeratePhysicalDeviceGroups"
+               vkEnumeratePhysicalDeviceGroups ::
+               VkInstance -- ^ instance
+                          ->
+                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDeviceGroups
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceGroupCount
+-- >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumeratePhysicalDeviceGroupsSafe@ and @vkEnumeratePhysicalDeviceGroups@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumeratePhysicalDeviceGroups <- vkGetInstanceProc @VkEnumeratePhysicalDeviceGroups vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumeratePhysicalDeviceGroups <- vkGetProc @VkEnumeratePhysicalDeviceGroups
+--
+vkEnumeratePhysicalDeviceGroups ::
+                                VkInstance -- ^ instance
+                                           ->
+                                  Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                                             -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                                                    -> IO VkResult
+vkEnumeratePhysicalDeviceGroups
+  = unsafeDupablePerformIO
+      (vkGetProc @VkEnumeratePhysicalDeviceGroups)
+
+{-# NOINLINE vkEnumeratePhysicalDeviceGroups #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDeviceGroups
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceGroupCount
+-- >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkEnumeratePhysicalDeviceGroups"
+               vkEnumeratePhysicalDeviceGroupsSafe ::
+               VkInstance -- ^ instance
+                          ->
+                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkEnumeratePhysicalDeviceGroups
+-- >     ( VkInstance instance
+-- >     , uint32_t* pPhysicalDeviceGroupCount
+-- >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkEnumeratePhysicalDeviceGroupsSafe@ and @vkEnumeratePhysicalDeviceGroups@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myEnumeratePhysicalDeviceGroups <- vkGetInstanceProc @VkEnumeratePhysicalDeviceGroups vkInstance
+--
+-- or less efficient:
+--
+-- > myEnumeratePhysicalDeviceGroups <- vkGetProc @VkEnumeratePhysicalDeviceGroups
+--
+vkEnumeratePhysicalDeviceGroupsSafe ::
+                                    VkInstance -- ^ instance
+                                               ->
+                                      Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                                                 ->
+                                        Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                                            -> IO VkResult
+vkEnumeratePhysicalDeviceGroupsSafe
+  = vkEnumeratePhysicalDeviceGroups
+
+{-# INLINE vkEnumeratePhysicalDeviceGroupsSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+--   > VkResult vkEnumeratePhysicalDeviceGroups
+--   >     ( VkInstance instance
+--   >     , uint32_t* pPhysicalDeviceGroupCount
+--   >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups registry at www.khronos.org>
+type HS_vkEnumeratePhysicalDeviceGroups =
+     VkInstance -- ^ instance
+                ->
+       Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                  -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                         -> IO VkResult
+
+type PFN_vkEnumeratePhysicalDeviceGroups =
+     FunPtr HS_vkEnumeratePhysicalDeviceGroups
+
+foreign import ccall "dynamic"
+               unwrapVkEnumeratePhysicalDeviceGroups ::
+               PFN_vkEnumeratePhysicalDeviceGroups ->
+                 HS_vkEnumeratePhysicalDeviceGroups
+
+instance VulkanProc "vkEnumeratePhysicalDeviceGroups" where
+        type VkProcType "vkEnumeratePhysicalDeviceGroups" =
+             HS_vkEnumeratePhysicalDeviceGroups
+        vkProcSymbol = _VkEnumeratePhysicalDeviceGroups
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumeratePhysicalDeviceGroups
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES =
+        VkStructureType 1000070000
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO =
+        VkStructureType 1000070001
+
+-- | 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 = VkMemoryHeapFlagBits 2
+
+pattern VkGetImageMemoryRequirements2 :: CString
+
+pattern VkGetImageMemoryRequirements2 <-
+        (is_VkGetImageMemoryRequirements2 -> True)
+  where VkGetImageMemoryRequirements2
+          = _VkGetImageMemoryRequirements2
+
+{-# INLINE _VkGetImageMemoryRequirements2 #-}
+
+_VkGetImageMemoryRequirements2 :: CString
+_VkGetImageMemoryRequirements2
+  = Ptr "vkGetImageMemoryRequirements2\NUL"#
+
+{-# INLINE is_VkGetImageMemoryRequirements2 #-}
+
+is_VkGetImageMemoryRequirements2 :: CString -> Bool
+is_VkGetImageMemoryRequirements2
+  = (EQ ==) . cmpCStrings _VkGetImageMemoryRequirements2
+
+type VkGetImageMemoryRequirements2 =
+     "vkGetImageMemoryRequirements2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetImageMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetImageMemoryRequirements2"
+               vkGetImageMemoryRequirements2 ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                                    ->
+                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                             -> IO ()
+
+#else
+-- |
+-- > void vkGetImageMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageMemoryRequirements2Safe@ and @vkGetImageMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageMemoryRequirements2 <- vkGetDeviceProc @VkGetImageMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageMemoryRequirements2 <- vkGetProc @VkGetImageMemoryRequirements2
+--
+vkGetImageMemoryRequirements2 ::
+                              VkDevice -- ^ device
+                                       ->
+                                Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                                                   ->
+                                  Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                                            -> IO ()
+vkGetImageMemoryRequirements2
+  = unsafeDupablePerformIO (vkGetProc @VkGetImageMemoryRequirements2)
+
+{-# NOINLINE vkGetImageMemoryRequirements2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetImageMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetImageMemoryRequirements2"
+               vkGetImageMemoryRequirements2Safe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                                    ->
+                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                             -> IO ()
+
+#else
+-- |
+-- > void vkGetImageMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageMemoryRequirements2Safe@ and @vkGetImageMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageMemoryRequirements2 <- vkGetDeviceProc @VkGetImageMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageMemoryRequirements2 <- vkGetProc @VkGetImageMemoryRequirements2
+--
+vkGetImageMemoryRequirements2Safe ::
+                                  VkDevice -- ^ device
+                                           ->
+                                    Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                                                       ->
+                                      Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                                                -> IO ()
+vkGetImageMemoryRequirements2Safe = vkGetImageMemoryRequirements2
+
+{-# INLINE vkGetImageMemoryRequirements2Safe #-}
+#endif
+
+-- | > void vkGetImageMemoryRequirements2
+--   >     ( VkDevice device
+--   >     , const VkImageMemoryRequirementsInfo2* pInfo
+--   >     , VkMemoryRequirements2* pMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 registry at www.khronos.org>
+type HS_vkGetImageMemoryRequirements2 =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                          ->
+         Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                   -> IO ()
+
+type PFN_vkGetImageMemoryRequirements2 =
+     FunPtr HS_vkGetImageMemoryRequirements2
+
+foreign import ccall "dynamic" unwrapVkGetImageMemoryRequirements2
+               ::
+               PFN_vkGetImageMemoryRequirements2 ->
+                 HS_vkGetImageMemoryRequirements2
+
+instance VulkanProc "vkGetImageMemoryRequirements2" where
+        type VkProcType "vkGetImageMemoryRequirements2" =
+             HS_vkGetImageMemoryRequirements2
+        vkProcSymbol = _VkGetImageMemoryRequirements2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageMemoryRequirements2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetBufferMemoryRequirements2 :: CString
+
+pattern VkGetBufferMemoryRequirements2 <-
+        (is_VkGetBufferMemoryRequirements2 -> True)
+  where VkGetBufferMemoryRequirements2
+          = _VkGetBufferMemoryRequirements2
+
+{-# INLINE _VkGetBufferMemoryRequirements2 #-}
+
+_VkGetBufferMemoryRequirements2 :: CString
+_VkGetBufferMemoryRequirements2
+  = Ptr "vkGetBufferMemoryRequirements2\NUL"#
+
+{-# INLINE is_VkGetBufferMemoryRequirements2 #-}
+
+is_VkGetBufferMemoryRequirements2 :: CString -> Bool
+is_VkGetBufferMemoryRequirements2
+  = (EQ ==) . cmpCStrings _VkGetBufferMemoryRequirements2
+
+type VkGetBufferMemoryRequirements2 =
+     "vkGetBufferMemoryRequirements2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetBufferMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkBufferMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetBufferMemoryRequirements2"
+               vkGetBufferMemoryRequirements2 ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                                     ->
+                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                             -> IO ()
+
+#else
+-- |
+-- > void vkGetBufferMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkBufferMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetBufferMemoryRequirements2Safe@ and @vkGetBufferMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetBufferMemoryRequirements2 <- vkGetDeviceProc @VkGetBufferMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetBufferMemoryRequirements2 <- vkGetProc @VkGetBufferMemoryRequirements2
+--
+vkGetBufferMemoryRequirements2 ::
+                               VkDevice -- ^ device
+                                        ->
+                                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                                                     ->
+                                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                                             -> IO ()
+vkGetBufferMemoryRequirements2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetBufferMemoryRequirements2)
+
+{-# NOINLINE vkGetBufferMemoryRequirements2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetBufferMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkBufferMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetBufferMemoryRequirements2"
+               vkGetBufferMemoryRequirements2Safe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                                     ->
+                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                             -> IO ()
+
+#else
+-- |
+-- > void vkGetBufferMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkBufferMemoryRequirementsInfo2* pInfo
+-- >     , VkMemoryRequirements2* pMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetBufferMemoryRequirements2Safe@ and @vkGetBufferMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetBufferMemoryRequirements2 <- vkGetDeviceProc @VkGetBufferMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetBufferMemoryRequirements2 <- vkGetProc @VkGetBufferMemoryRequirements2
+--
+vkGetBufferMemoryRequirements2Safe ::
+                                   VkDevice -- ^ device
+                                            ->
+                                     Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                                                         ->
+                                       Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                                                 -> IO ()
+vkGetBufferMemoryRequirements2Safe = vkGetBufferMemoryRequirements2
+
+{-# INLINE vkGetBufferMemoryRequirements2Safe #-}
+#endif
+
+-- | > void vkGetBufferMemoryRequirements2
+--   >     ( VkDevice device
+--   >     , const VkBufferMemoryRequirementsInfo2* pInfo
+--   >     , VkMemoryRequirements2* pMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 registry at www.khronos.org>
+type HS_vkGetBufferMemoryRequirements2 =
+     VkDevice -- ^ device
+              ->
+       Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                           ->
+         Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                   -> IO ()
+
+type PFN_vkGetBufferMemoryRequirements2 =
+     FunPtr HS_vkGetBufferMemoryRequirements2
+
+foreign import ccall "dynamic" unwrapVkGetBufferMemoryRequirements2
+               ::
+               PFN_vkGetBufferMemoryRequirements2 ->
+                 HS_vkGetBufferMemoryRequirements2
+
+instance VulkanProc "vkGetBufferMemoryRequirements2" where
+        type VkProcType "vkGetBufferMemoryRequirements2" =
+             HS_vkGetBufferMemoryRequirements2
+        vkProcSymbol = _VkGetBufferMemoryRequirements2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetBufferMemoryRequirements2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetImageSparseMemoryRequirements2 :: CString
+
+pattern VkGetImageSparseMemoryRequirements2 <-
+        (is_VkGetImageSparseMemoryRequirements2 -> True)
+  where VkGetImageSparseMemoryRequirements2
+          = _VkGetImageSparseMemoryRequirements2
+
+{-# INLINE _VkGetImageSparseMemoryRequirements2 #-}
+
+_VkGetImageSparseMemoryRequirements2 :: CString
+_VkGetImageSparseMemoryRequirements2
+  = Ptr "vkGetImageSparseMemoryRequirements2\NUL"#
+
+{-# INLINE is_VkGetImageSparseMemoryRequirements2 #-}
+
+is_VkGetImageSparseMemoryRequirements2 :: CString -> Bool
+is_VkGetImageSparseMemoryRequirements2
+  = (EQ ==) . cmpCStrings _VkGetImageSparseMemoryRequirements2
+
+type VkGetImageSparseMemoryRequirements2 =
+     "vkGetImageSparseMemoryRequirements2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetImageSparseMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetImageSparseMemoryRequirements2"
+               vkGetImageSparseMemoryRequirements2 ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                          ->
+                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                                      -> IO ()
+
+#else
+-- |
+-- > void vkGetImageSparseMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSparseMemoryRequirements2Safe@ and @vkGetImageSparseMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSparseMemoryRequirements2 <- vkGetDeviceProc @VkGetImageSparseMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSparseMemoryRequirements2 <- vkGetProc @VkGetImageSparseMemoryRequirements2
+--
+vkGetImageSparseMemoryRequirements2 ::
+                                    VkDevice -- ^ device
+                                             ->
+                                      Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                                               ->
+                                        Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                                                   -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                                                           -> IO ()
+vkGetImageSparseMemoryRequirements2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetImageSparseMemoryRequirements2)
+
+{-# NOINLINE vkGetImageSparseMemoryRequirements2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetImageSparseMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetImageSparseMemoryRequirements2"
+               vkGetImageSparseMemoryRequirements2Safe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                          ->
+                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                                      -> IO ()
+
+#else
+-- |
+-- > void vkGetImageSparseMemoryRequirements2
+-- >     ( VkDevice device
+-- >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
+-- >     , uint32_t* pSparseMemoryRequirementCount
+-- >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetImageSparseMemoryRequirements2Safe@ and @vkGetImageSparseMemoryRequirements2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetImageSparseMemoryRequirements2 <- vkGetDeviceProc @VkGetImageSparseMemoryRequirements2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetImageSparseMemoryRequirements2 <- vkGetProc @VkGetImageSparseMemoryRequirements2
+--
+vkGetImageSparseMemoryRequirements2Safe ::
+                                        VkDevice -- ^ device
+                                                 ->
+                                          Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                                                   ->
+                                            Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                                                       ->
+                                              Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                                                   -> IO ()
+vkGetImageSparseMemoryRequirements2Safe
+  = vkGetImageSparseMemoryRequirements2
+
+{-# INLINE vkGetImageSparseMemoryRequirements2Safe #-}
+#endif
+
+-- | > void vkGetImageSparseMemoryRequirements2
+--   >     ( VkDevice device
+--   >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
+--   >     , uint32_t* pSparseMemoryRequirementCount
+--   >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 registry at www.khronos.org>
+type HS_vkGetImageSparseMemoryRequirements2 =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                ->
+         Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                    -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                            -> IO ()
+
+type PFN_vkGetImageSparseMemoryRequirements2 =
+     FunPtr HS_vkGetImageSparseMemoryRequirements2
+
+foreign import ccall "dynamic"
+               unwrapVkGetImageSparseMemoryRequirements2 ::
+               PFN_vkGetImageSparseMemoryRequirements2 ->
+                 HS_vkGetImageSparseMemoryRequirements2
+
+instance VulkanProc "vkGetImageSparseMemoryRequirements2" where
+        type VkProcType "vkGetImageSparseMemoryRequirements2" =
+             HS_vkGetImageSparseMemoryRequirements2
+        vkProcSymbol = _VkGetImageSparseMemoryRequirements2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageSparseMemoryRequirements2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 =
+        VkStructureType 1000146000
+
+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 =
+        VkStructureType 1000146001
+
+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 =
+        VkStructureType 1000146002
+
+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 =
+        VkStructureType 1000146003
+
+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 =
+        VkStructureType 1000146004
+
+pattern VkGetPhysicalDeviceFeatures2 :: CString
+
+pattern VkGetPhysicalDeviceFeatures2 <-
+        (is_VkGetPhysicalDeviceFeatures2 -> True)
+  where VkGetPhysicalDeviceFeatures2 = _VkGetPhysicalDeviceFeatures2
+
+{-# INLINE _VkGetPhysicalDeviceFeatures2 #-}
+
+_VkGetPhysicalDeviceFeatures2 :: CString
+_VkGetPhysicalDeviceFeatures2
+  = Ptr "vkGetPhysicalDeviceFeatures2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceFeatures2 #-}
+
+is_VkGetPhysicalDeviceFeatures2 :: CString -> Bool
+is_VkGetPhysicalDeviceFeatures2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFeatures2
+
+type VkGetPhysicalDeviceFeatures2 = "vkGetPhysicalDeviceFeatures2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceFeatures2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures2* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceFeatures2"
+               vkGetPhysicalDeviceFeatures2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                                 -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceFeatures2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures2* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFeatures2Safe@ and @vkGetPhysicalDeviceFeatures2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFeatures2 <- vkGetInstanceProc @VkGetPhysicalDeviceFeatures2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFeatures2 <- vkGetProc @VkGetPhysicalDeviceFeatures2
+--
+vkGetPhysicalDeviceFeatures2 ::
+                             VkPhysicalDevice -- ^ physicalDevice
+                                              -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                                               -> IO ()
+vkGetPhysicalDeviceFeatures2
+  = unsafeDupablePerformIO (vkGetProc @VkGetPhysicalDeviceFeatures2)
+
+{-# NOINLINE vkGetPhysicalDeviceFeatures2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceFeatures2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures2* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceFeatures2"
+               vkGetPhysicalDeviceFeatures2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                                 -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceFeatures2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceFeatures2* pFeatures
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFeatures2Safe@ and @vkGetPhysicalDeviceFeatures2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFeatures2 <- vkGetInstanceProc @VkGetPhysicalDeviceFeatures2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFeatures2 <- vkGetProc @VkGetPhysicalDeviceFeatures2
+--
+vkGetPhysicalDeviceFeatures2Safe ::
+                                 VkPhysicalDevice -- ^ physicalDevice
+                                                  -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                                                   -> IO ()
+vkGetPhysicalDeviceFeatures2Safe = vkGetPhysicalDeviceFeatures2
+
+{-# INLINE vkGetPhysicalDeviceFeatures2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceFeatures2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceFeatures2* pFeatures
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFeatures2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                       -> IO ()
+
+type PFN_vkGetPhysicalDeviceFeatures2 =
+     FunPtr HS_vkGetPhysicalDeviceFeatures2
+
+foreign import ccall "dynamic" unwrapVkGetPhysicalDeviceFeatures2
+               ::
+               PFN_vkGetPhysicalDeviceFeatures2 -> HS_vkGetPhysicalDeviceFeatures2
+
+instance VulkanProc "vkGetPhysicalDeviceFeatures2" where
+        type VkProcType "vkGetPhysicalDeviceFeatures2" =
+             HS_vkGetPhysicalDeviceFeatures2
+        vkProcSymbol = _VkGetPhysicalDeviceFeatures2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFeatures2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceProperties2 :: CString
+
+pattern VkGetPhysicalDeviceProperties2 <-
+        (is_VkGetPhysicalDeviceProperties2 -> True)
+  where VkGetPhysicalDeviceProperties2
+          = _VkGetPhysicalDeviceProperties2
+
+{-# INLINE _VkGetPhysicalDeviceProperties2 #-}
+
+_VkGetPhysicalDeviceProperties2 :: CString
+_VkGetPhysicalDeviceProperties2
+  = Ptr "vkGetPhysicalDeviceProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceProperties2 #-}
+
+is_VkGetPhysicalDeviceProperties2 :: CString -> Bool
+is_VkGetPhysicalDeviceProperties2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceProperties2
+
+type VkGetPhysicalDeviceProperties2 =
+     "vkGetPhysicalDeviceProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceProperties2"
+               vkGetPhysicalDeviceProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                                   -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceProperties2Safe@ and @vkGetPhysicalDeviceProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceProperties2 <- vkGetProc @VkGetPhysicalDeviceProperties2
+--
+vkGetPhysicalDeviceProperties2 ::
+                               VkPhysicalDevice -- ^ physicalDevice
+                                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                                                   -> IO ()
+vkGetPhysicalDeviceProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceProperties2"
+               vkGetPhysicalDeviceProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                                   -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceProperties2Safe@ and @vkGetPhysicalDeviceProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceProperties2 <- vkGetProc @VkGetPhysicalDeviceProperties2
+--
+vkGetPhysicalDeviceProperties2Safe ::
+                                   VkPhysicalDevice -- ^ physicalDevice
+                                                    -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                                                       -> IO ()
+vkGetPhysicalDeviceProperties2Safe = vkGetPhysicalDeviceProperties2
+
+{-# INLINE vkGetPhysicalDeviceProperties2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceProperties2* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                         -> IO ()
+
+type PFN_vkGetPhysicalDeviceProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceProperties2
+
+foreign import ccall "dynamic" unwrapVkGetPhysicalDeviceProperties2
+               ::
+               PFN_vkGetPhysicalDeviceProperties2 ->
+                 HS_vkGetPhysicalDeviceProperties2
+
+instance VulkanProc "vkGetPhysicalDeviceProperties2" where
+        type VkProcType "vkGetPhysicalDeviceProperties2" =
+             HS_vkGetPhysicalDeviceProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceFormatProperties2 :: CString
+
+pattern VkGetPhysicalDeviceFormatProperties2 <-
+        (is_VkGetPhysicalDeviceFormatProperties2 -> True)
+  where VkGetPhysicalDeviceFormatProperties2
+          = _VkGetPhysicalDeviceFormatProperties2
+
+{-# INLINE _VkGetPhysicalDeviceFormatProperties2 #-}
+
+_VkGetPhysicalDeviceFormatProperties2 :: CString
+_VkGetPhysicalDeviceFormatProperties2
+  = Ptr "vkGetPhysicalDeviceFormatProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceFormatProperties2 #-}
+
+is_VkGetPhysicalDeviceFormatProperties2 :: CString -> Bool
+is_VkGetPhysicalDeviceFormatProperties2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFormatProperties2
+
+type VkGetPhysicalDeviceFormatProperties2 =
+     "vkGetPhysicalDeviceFormatProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties2* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties2"
+               vkGetPhysicalDeviceFormatProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> VkFormat -- ^ format
+                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties2* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFormatProperties2Safe@ and @vkGetPhysicalDeviceFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceFormatProperties2
+--
+vkGetPhysicalDeviceFormatProperties2 ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       VkFormat -- ^ format
+                                                -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                                           -> IO ()
+vkGetPhysicalDeviceFormatProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceFormatProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceFormatProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties2* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceFormatProperties2"
+               vkGetPhysicalDeviceFormatProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> VkFormat -- ^ format
+                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkFormat format
+-- >     , VkFormatProperties2* pFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceFormatProperties2Safe@ and @vkGetPhysicalDeviceFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceFormatProperties2
+--
+vkGetPhysicalDeviceFormatProperties2Safe ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           VkFormat -- ^ format
+                                                    -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                                               -> IO ()
+vkGetPhysicalDeviceFormatProperties2Safe
+  = vkGetPhysicalDeviceFormatProperties2
+
+{-# INLINE vkGetPhysicalDeviceFormatProperties2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceFormatProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkFormat format
+--   >     , VkFormatProperties2* pFormatProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFormatProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> VkFormat -- ^ format
+                                  -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                             -> IO ()
+
+type PFN_vkGetPhysicalDeviceFormatProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceFormatProperties2
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceFormatProperties2 ::
+               PFN_vkGetPhysicalDeviceFormatProperties2 ->
+                 HS_vkGetPhysicalDeviceFormatProperties2
+
+instance VulkanProc "vkGetPhysicalDeviceFormatProperties2" where
+        type VkProcType "vkGetPhysicalDeviceFormatProperties2" =
+             HS_vkGetPhysicalDeviceFormatProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceFormatProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFormatProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceImageFormatProperties2 :: CString
+
+pattern VkGetPhysicalDeviceImageFormatProperties2 <-
+        (is_VkGetPhysicalDeviceImageFormatProperties2 -> True)
+  where VkGetPhysicalDeviceImageFormatProperties2
+          = _VkGetPhysicalDeviceImageFormatProperties2
+
+{-# INLINE _VkGetPhysicalDeviceImageFormatProperties2 #-}
+
+_VkGetPhysicalDeviceImageFormatProperties2 :: CString
+_VkGetPhysicalDeviceImageFormatProperties2
+  = Ptr "vkGetPhysicalDeviceImageFormatProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceImageFormatProperties2 #-}
+
+is_VkGetPhysicalDeviceImageFormatProperties2 :: CString -> Bool
+is_VkGetPhysicalDeviceImageFormatProperties2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceImageFormatProperties2
+
+type VkGetPhysicalDeviceImageFormatProperties2 =
+     "vkGetPhysicalDeviceImageFormatProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
+-- >     , VkImageFormatProperties2* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceImageFormatProperties2"
+               vkGetPhysicalDeviceImageFormatProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                                      ->
+                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
+-- >     , VkImageFormatProperties2* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceImageFormatProperties2Safe@ and @vkGetPhysicalDeviceImageFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceImageFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceImageFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceImageFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceImageFormatProperties2
+--
+vkGetPhysicalDeviceImageFormatProperties2 ::
+                                          VkPhysicalDevice -- ^ physicalDevice
+                                                           ->
+                                            Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                                                                 ->
+                                              Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                                                           -> IO VkResult
+vkGetPhysicalDeviceImageFormatProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceImageFormatProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceImageFormatProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
+-- >     , VkImageFormatProperties2* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceImageFormatProperties2"
+               vkGetPhysicalDeviceImageFormatProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                                      ->
+                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+-- > VkResult vkGetPhysicalDeviceImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
+-- >     , VkImageFormatProperties2* pImageFormatProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceImageFormatProperties2Safe@ and @vkGetPhysicalDeviceImageFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceImageFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceImageFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceImageFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceImageFormatProperties2
+--
+vkGetPhysicalDeviceImageFormatProperties2Safe ::
+                                              VkPhysicalDevice -- ^ physicalDevice
+                                                               ->
+                                                Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                                                                     ->
+                                                  Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                                                               -> IO VkResult
+vkGetPhysicalDeviceImageFormatProperties2Safe
+  = vkGetPhysicalDeviceImageFormatProperties2
+
+{-# INLINE vkGetPhysicalDeviceImageFormatProperties2Safe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
+--
+--   > VkResult vkGetPhysicalDeviceImageFormatProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
+--   >     , VkImageFormatProperties2* pImageFormatProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceImageFormatProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                            ->
+         Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                      -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceImageFormatProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceImageFormatProperties2
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceImageFormatProperties2 ::
+               PFN_vkGetPhysicalDeviceImageFormatProperties2 ->
+                 HS_vkGetPhysicalDeviceImageFormatProperties2
+
+instance VulkanProc "vkGetPhysicalDeviceImageFormatProperties2"
+         where
+        type VkProcType "vkGetPhysicalDeviceImageFormatProperties2" =
+             HS_vkGetPhysicalDeviceImageFormatProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceImageFormatProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceImageFormatProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties2 :: CString
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties2 <-
+        (is_VkGetPhysicalDeviceQueueFamilyProperties2 -> True)
+  where VkGetPhysicalDeviceQueueFamilyProperties2
+          = _VkGetPhysicalDeviceQueueFamilyProperties2
+
+{-# INLINE _VkGetPhysicalDeviceQueueFamilyProperties2 #-}
+
+_VkGetPhysicalDeviceQueueFamilyProperties2 :: CString
+_VkGetPhysicalDeviceQueueFamilyProperties2
+  = Ptr "vkGetPhysicalDeviceQueueFamilyProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceQueueFamilyProperties2 #-}
+
+is_VkGetPhysicalDeviceQueueFamilyProperties2 :: CString -> Bool
+is_VkGetPhysicalDeviceQueueFamilyProperties2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceQueueFamilyProperties2
+
+type VkGetPhysicalDeviceQueueFamilyProperties2 =
+     "vkGetPhysicalDeviceQueueFamilyProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties2* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceQueueFamilyProperties2"
+               vkGetPhysicalDeviceQueueFamilyProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                            -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties2* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceQueueFamilyProperties2Safe@ and @vkGetPhysicalDeviceQueueFamilyProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceQueueFamilyProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties2 <- vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties2
+--
+vkGetPhysicalDeviceQueueFamilyProperties2 ::
+                                          VkPhysicalDevice -- ^ physicalDevice
+                                                           ->
+                                            Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                                                       -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                                                       -> IO ()
+vkGetPhysicalDeviceQueueFamilyProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceQueueFamilyProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties2* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceQueueFamilyProperties2"
+               vkGetPhysicalDeviceQueueFamilyProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                            -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceQueueFamilyProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pQueueFamilyPropertyCount
+-- >     , VkQueueFamilyProperties2* pQueueFamilyProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceQueueFamilyProperties2Safe@ and @vkGetPhysicalDeviceQueueFamilyProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceQueueFamilyProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceQueueFamilyProperties2 <- vkGetProc @VkGetPhysicalDeviceQueueFamilyProperties2
+--
+vkGetPhysicalDeviceQueueFamilyProperties2Safe ::
+                                              VkPhysicalDevice -- ^ physicalDevice
+                                                               ->
+                                                Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                                                           -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                                                           -> IO ()
+vkGetPhysicalDeviceQueueFamilyProperties2Safe
+  = vkGetPhysicalDeviceQueueFamilyProperties2
+
+{-# INLINE vkGetPhysicalDeviceQueueFamilyProperties2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceQueueFamilyProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t* pQueueFamilyPropertyCount
+--   >     , VkQueueFamilyProperties2* pQueueFamilyProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceQueueFamilyProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                  -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                  -> IO ()
+
+type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceQueueFamilyProperties2
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceQueueFamilyProperties2 ::
+               PFN_vkGetPhysicalDeviceQueueFamilyProperties2 ->
+                 HS_vkGetPhysicalDeviceQueueFamilyProperties2
+
+instance VulkanProc "vkGetPhysicalDeviceQueueFamilyProperties2"
+         where
+        type VkProcType "vkGetPhysicalDeviceQueueFamilyProperties2" =
+             HS_vkGetPhysicalDeviceQueueFamilyProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceQueueFamilyProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceQueueFamilyProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceMemoryProperties2 :: CString
+
+pattern VkGetPhysicalDeviceMemoryProperties2 <-
+        (is_VkGetPhysicalDeviceMemoryProperties2 -> True)
+  where VkGetPhysicalDeviceMemoryProperties2
+          = _VkGetPhysicalDeviceMemoryProperties2
+
+{-# INLINE _VkGetPhysicalDeviceMemoryProperties2 #-}
+
+_VkGetPhysicalDeviceMemoryProperties2 :: CString
+_VkGetPhysicalDeviceMemoryProperties2
+  = Ptr "vkGetPhysicalDeviceMemoryProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceMemoryProperties2 #-}
+
+is_VkGetPhysicalDeviceMemoryProperties2 :: CString -> Bool
+is_VkGetPhysicalDeviceMemoryProperties2
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceMemoryProperties2
+
+type VkGetPhysicalDeviceMemoryProperties2 =
+     "vkGetPhysicalDeviceMemoryProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties2"
+               vkGetPhysicalDeviceMemoryProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                                         -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMemoryProperties2Safe@ and @vkGetPhysicalDeviceMemoryProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMemoryProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceMemoryProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMemoryProperties2 <- vkGetProc @VkGetPhysicalDeviceMemoryProperties2
+--
+vkGetPhysicalDeviceMemoryProperties2 ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                                             -> IO ()
+vkGetPhysicalDeviceMemoryProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceMemoryProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceMemoryProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceMemoryProperties2"
+               vkGetPhysicalDeviceMemoryProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                                         -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceMemoryProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMemoryProperties2Safe@ and @vkGetPhysicalDeviceMemoryProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMemoryProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceMemoryProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMemoryProperties2 <- vkGetProc @VkGetPhysicalDeviceMemoryProperties2
+--
+vkGetPhysicalDeviceMemoryProperties2Safe ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                                                 -> IO ()
+vkGetPhysicalDeviceMemoryProperties2Safe
+  = vkGetPhysicalDeviceMemoryProperties2
+
+{-# INLINE vkGetPhysicalDeviceMemoryProperties2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceMemoryProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceMemoryProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                               -> IO ()
+
+type PFN_vkGetPhysicalDeviceMemoryProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceMemoryProperties2
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceMemoryProperties2 ::
+               PFN_vkGetPhysicalDeviceMemoryProperties2 ->
+                 HS_vkGetPhysicalDeviceMemoryProperties2
+
+instance VulkanProc "vkGetPhysicalDeviceMemoryProperties2" where
+        type VkProcType "vkGetPhysicalDeviceMemoryProperties2" =
+             HS_vkGetPhysicalDeviceMemoryProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceMemoryProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceMemoryProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties2 :: CString
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties2 <-
+        (is_VkGetPhysicalDeviceSparseImageFormatProperties2 -> True)
+  where VkGetPhysicalDeviceSparseImageFormatProperties2
+          = _VkGetPhysicalDeviceSparseImageFormatProperties2
+
+{-# INLINE _VkGetPhysicalDeviceSparseImageFormatProperties2 #-}
+
+_VkGetPhysicalDeviceSparseImageFormatProperties2 :: CString
+_VkGetPhysicalDeviceSparseImageFormatProperties2
+  = Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSparseImageFormatProperties2 #-}
+
+is_VkGetPhysicalDeviceSparseImageFormatProperties2 ::
+                                                   CString -> Bool
+is_VkGetPhysicalDeviceSparseImageFormatProperties2
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceSparseImageFormatProperties2
+
+type VkGetPhysicalDeviceSparseImageFormatProperties2 =
+     "vkGetPhysicalDeviceSparseImageFormatProperties2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceSparseImageFormatProperties2"
+               vkGetPhysicalDeviceSparseImageFormatProperties2 ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                            ->
+                   Ptr Word32 -- ^ pPropertyCount
+                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSparseImageFormatProperties2Safe@ and @vkGetPhysicalDeviceSparseImageFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceSparseImageFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties2
+--
+vkGetPhysicalDeviceSparseImageFormatProperties2 ::
+                                                VkPhysicalDevice -- ^ physicalDevice
+                                                                 ->
+                                                  Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                                                             ->
+                                                    Ptr Word32 -- ^ pPropertyCount
+                                                               ->
+                                                      Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                                                         -> IO ()
+vkGetPhysicalDeviceSparseImageFormatProperties2
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties2)
+
+{-# NOINLINE vkGetPhysicalDeviceSparseImageFormatProperties2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceSparseImageFormatProperties2"
+               vkGetPhysicalDeviceSparseImageFormatProperties2Safe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                            ->
+                   Ptr Word32 -- ^ pPropertyCount
+                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceSparseImageFormatProperties2
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
+-- >     , uint32_t* pPropertyCount
+-- >     , VkSparseImageFormatProperties2* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSparseImageFormatProperties2Safe@ and @vkGetPhysicalDeviceSparseImageFormatProperties2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties2 <- vkGetInstanceProc @VkGetPhysicalDeviceSparseImageFormatProperties2 vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSparseImageFormatProperties2 <- vkGetProc @VkGetPhysicalDeviceSparseImageFormatProperties2
+--
+vkGetPhysicalDeviceSparseImageFormatProperties2Safe ::
+                                                    VkPhysicalDevice -- ^ physicalDevice
+                                                                     ->
+                                                      Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                                                                 ->
+                                                        Ptr Word32 -- ^ pPropertyCount
+                                                                   ->
+                                                          Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                                                             ->
+                                                            IO ()
+vkGetPhysicalDeviceSparseImageFormatProperties2Safe
+  = vkGetPhysicalDeviceSparseImageFormatProperties2
+
+{-# INLINE vkGetPhysicalDeviceSparseImageFormatProperties2Safe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceSparseImageFormatProperties2
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
+--   >     , uint32_t* pPropertyCount
+--   >     , VkSparseImageFormatProperties2* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSparseImageFormatProperties2 =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                  ->
+         Ptr Word32 -- ^ pPropertyCount
+                    -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                          -> IO ()
+
+type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 =
+     FunPtr HS_vkGetPhysicalDeviceSparseImageFormatProperties2
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSparseImageFormatProperties2 ::
+               PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 ->
+                 HS_vkGetPhysicalDeviceSparseImageFormatProperties2
+
+instance VulkanProc
+           "vkGetPhysicalDeviceSparseImageFormatProperties2"
+         where
+        type VkProcType "vkGetPhysicalDeviceSparseImageFormatProperties2" =
+             HS_vkGetPhysicalDeviceSparseImageFormatProperties2
+        vkProcSymbol = _VkGetPhysicalDeviceSparseImageFormatProperties2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceSparseImageFormatProperties2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 =
+        VkStructureType 1000059000
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 =
+        VkStructureType 1000059001
+
+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 =
+        VkStructureType 1000059002
+
+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 =
+        VkStructureType 1000059003
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 =
+        VkStructureType 1000059004
+
+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 =
+        VkStructureType 1000059005
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 =
+        VkStructureType 1000059006
+
+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 =
+        VkStructureType 1000059007
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2
+        = VkStructureType 1000059008
+
+pattern VkTrimCommandPool :: CString
+
+pattern VkTrimCommandPool <- (is_VkTrimCommandPool -> True)
+  where VkTrimCommandPool = _VkTrimCommandPool
+
+{-# INLINE _VkTrimCommandPool #-}
+
+_VkTrimCommandPool :: CString
+_VkTrimCommandPool = Ptr "vkTrimCommandPool\NUL"#
+
+{-# INLINE is_VkTrimCommandPool #-}
+
+is_VkTrimCommandPool :: CString -> Bool
+is_VkTrimCommandPool = (EQ ==) . cmpCStrings _VkTrimCommandPool
+
+type VkTrimCommandPool = "vkTrimCommandPool"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkTrimCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolTrimFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPool vkTrimCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkTrimCommandPool" vkTrimCommandPool
+               :: VkDevice -- ^ device
+                           -> VkCommandPool -- ^ commandPool
+                                            -> VkCommandPoolTrimFlags -- ^ flags
+                                                                      -> IO ()
+
+#else
+-- |
+-- > void vkTrimCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolTrimFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPool vkTrimCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkTrimCommandPoolSafe@ and @vkTrimCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myTrimCommandPool <- vkGetDeviceProc @VkTrimCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myTrimCommandPool <- vkGetProc @VkTrimCommandPool
+--
+vkTrimCommandPool ::
+                  VkDevice -- ^ device
+                           -> VkCommandPool -- ^ commandPool
+                                            -> VkCommandPoolTrimFlags -- ^ flags
+                                                                      -> IO ()
+vkTrimCommandPool
+  = unsafeDupablePerformIO (vkGetProc @VkTrimCommandPool)
+
+{-# NOINLINE vkTrimCommandPool #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkTrimCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolTrimFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPool vkTrimCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkTrimCommandPool" vkTrimCommandPoolSafe
+               :: VkDevice -- ^ device
+                           -> VkCommandPool -- ^ commandPool
+                                            -> VkCommandPoolTrimFlags -- ^ flags
+                                                                      -> IO ()
+
+#else
+-- |
+-- > void vkTrimCommandPool
+-- >     ( VkDevice device
+-- >     , VkCommandPool commandPool
+-- >     , VkCommandPoolTrimFlags flags
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPool vkTrimCommandPool registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkTrimCommandPoolSafe@ and @vkTrimCommandPool@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myTrimCommandPool <- vkGetDeviceProc @VkTrimCommandPool vkDevice
+--
+-- or less efficient:
+--
+-- > myTrimCommandPool <- vkGetProc @VkTrimCommandPool
+--
+vkTrimCommandPoolSafe ::
+                      VkDevice -- ^ device
+                               -> VkCommandPool -- ^ commandPool
+                                                -> VkCommandPoolTrimFlags -- ^ flags
+                                                                          -> IO ()
+vkTrimCommandPoolSafe = vkTrimCommandPool
+
+{-# INLINE vkTrimCommandPoolSafe #-}
+#endif
+
+-- | > void vkTrimCommandPool
+--   >     ( VkDevice device
+--   >     , VkCommandPool commandPool
+--   >     , VkCommandPoolTrimFlags flags
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPool vkTrimCommandPool registry at www.khronos.org>
+type HS_vkTrimCommandPool =
+     VkDevice -- ^ device
+              -> VkCommandPool -- ^ commandPool
+                               -> VkCommandPoolTrimFlags -- ^ flags
+                                                         -> IO ()
+
+type PFN_vkTrimCommandPool = FunPtr HS_vkTrimCommandPool
+
+foreign import ccall "dynamic" unwrapVkTrimCommandPool ::
+               PFN_vkTrimCommandPool -> HS_vkTrimCommandPool
+
+instance VulkanProc "vkTrimCommandPool" where
+        type VkProcType "vkTrimCommandPool" = HS_vkTrimCommandPool
+        vkProcSymbol = _VkTrimCommandPool
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkTrimCommandPool
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_ERROR_OUT_OF_POOL_MEMORY :: VkResult
+
+pattern VK_ERROR_OUT_OF_POOL_MEMORY = VkResult (-1000069000)
+
+-- | Format can be used as the source image of image transfer commands
+--
+--   bitpos = @14@
+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT ::
+        VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT =
+        VkFormatFeatureFlagBits 16384
+
+-- | Format can be used as the destination image of image transfer commands
+--
+--   bitpos = @15@
+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT ::
+        VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_TRANSFER_DST_BIT =
+        VkFormatFeatureFlagBits 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
+
+pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT =
+        VkImageCreateFlagBits 32
+
+-- | bitpos = @7@
+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT ::
+        VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT =
+        VkImageCreateFlagBits 128
+
+-- | bitpos = @8@
+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT :: VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT =
+        VkImageCreateFlagBits 256
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
+        = VkStructureType 1000117000
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO
+        = VkStructureType 1000117001
+
+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO =
+        VkStructureType 1000117002
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO
+        = VkStructureType 1000117003
+
+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
+        :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
+        = VkImageLayout 1000117000
+
+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
+        :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
+        = VkImageLayout 1000117001
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO =
+        VkStructureType 1000053000
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES =
+        VkStructureType 1000053001
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES =
+        VkStructureType 1000053002
+
+-- | bitpos = @1@
+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT :: VkDependencyFlagBits
+
+pattern VK_DEPENDENCY_VIEW_LOCAL_BIT = VkDependencyFlagBits 2
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
+        = VkStructureType 1000120000
+
+pattern VkGetDeviceQueue2 :: CString
+
+pattern VkGetDeviceQueue2 <- (is_VkGetDeviceQueue2 -> True)
+  where VkGetDeviceQueue2 = _VkGetDeviceQueue2
+
+{-# INLINE _VkGetDeviceQueue2 #-}
+
+_VkGetDeviceQueue2 :: CString
+_VkGetDeviceQueue2 = Ptr "vkGetDeviceQueue2\NUL"#
+
+{-# INLINE is_VkGetDeviceQueue2 #-}
+
+is_VkGetDeviceQueue2 :: CString -> Bool
+is_VkGetDeviceQueue2 = (EQ ==) . cmpCStrings _VkGetDeviceQueue2
+
+type VkGetDeviceQueue2 = "vkGetDeviceQueue2"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDeviceQueue2
+-- >     ( VkDevice device
+-- >     , const VkDeviceQueueInfo2* pQueueInfo
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue2 vkGetDeviceQueue2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDeviceQueue2" vkGetDeviceQueue2
+               :: VkDevice -- ^ device
+                           -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
+                                                     -> Ptr VkQueue -- ^ pQueue
+                                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetDeviceQueue2
+-- >     ( VkDevice device
+-- >     , const VkDeviceQueueInfo2* pQueueInfo
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue2 vkGetDeviceQueue2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceQueue2Safe@ and @vkGetDeviceQueue2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceQueue2 <- vkGetDeviceProc @VkGetDeviceQueue2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceQueue2 <- vkGetProc @VkGetDeviceQueue2
+--
+vkGetDeviceQueue2 ::
+                  VkDevice -- ^ device
+                           -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
+                                                     -> Ptr VkQueue -- ^ pQueue
+                                                                    -> IO ()
+vkGetDeviceQueue2
+  = unsafeDupablePerformIO (vkGetProc @VkGetDeviceQueue2)
+
+{-# NOINLINE vkGetDeviceQueue2 #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDeviceQueue2
+-- >     ( VkDevice device
+-- >     , const VkDeviceQueueInfo2* pQueueInfo
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue2 vkGetDeviceQueue2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceQueue2" vkGetDeviceQueue2Safe
+               :: VkDevice -- ^ device
+                           -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
+                                                     -> Ptr VkQueue -- ^ pQueue
+                                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetDeviceQueue2
+-- >     ( VkDevice device
+-- >     , const VkDeviceQueueInfo2* pQueueInfo
+-- >     , VkQueue* pQueue
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue2 vkGetDeviceQueue2 registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceQueue2Safe@ and @vkGetDeviceQueue2@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceQueue2 <- vkGetDeviceProc @VkGetDeviceQueue2 vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceQueue2 <- vkGetProc @VkGetDeviceQueue2
+--
+vkGetDeviceQueue2Safe ::
+                      VkDevice -- ^ device
+                               -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
+                                                         -> Ptr VkQueue -- ^ pQueue
+                                                                        -> IO ()
+vkGetDeviceQueue2Safe = vkGetDeviceQueue2
+
+{-# INLINE vkGetDeviceQueue2Safe #-}
+#endif
+
+-- | > void vkGetDeviceQueue2
+--   >     ( VkDevice device
+--   >     , const VkDeviceQueueInfo2* pQueueInfo
+--   >     , VkQueue* pQueue
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceQueue2 vkGetDeviceQueue2 registry at www.khronos.org>
+type HS_vkGetDeviceQueue2 =
+     VkDevice -- ^ device
+              -> Ptr VkDeviceQueueInfo2 -- ^ pQueueInfo
+                                        -> Ptr VkQueue -- ^ pQueue
+                                                       -> IO ()
+
+type PFN_vkGetDeviceQueue2 = FunPtr HS_vkGetDeviceQueue2
+
+foreign import ccall "dynamic" unwrapVkGetDeviceQueue2 ::
+               PFN_vkGetDeviceQueue2 -> HS_vkGetDeviceQueue2
+
+instance VulkanProc "vkGetDeviceQueue2" where
+        type VkProcType "vkGetDeviceQueue2" = HS_vkGetDeviceQueue2
+        vkProcSymbol = _VkGetDeviceQueue2
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceQueue2
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO =
+        VkStructureType 1000145000
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
+        = VkStructureType 1000145001
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
+        = VkStructureType 1000145002
+
+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 =
+        VkStructureType 1000145003
+
+-- | Queues may support protected operations
+--
+--   bitpos = @4@
+pattern VK_QUEUE_PROTECTED_BIT :: VkQueueFlagBits
+
+pattern VK_QUEUE_PROTECTED_BIT = VkQueueFlagBits 16
+
+-- | Queue is a protected-capable device queue
+--
+--   bitpos = @0@
+pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT ::
+        VkDeviceQueueCreateFlagBits
+
+pattern VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT =
+        VkDeviceQueueCreateFlagBits 1
+
+-- | Memory is protected
+--
+--   bitpos = @5@
+pattern VK_MEMORY_PROPERTY_PROTECTED_BIT ::
+        VkMemoryPropertyFlagBits
+
+pattern VK_MEMORY_PROPERTY_PROTECTED_BIT =
+        VkMemoryPropertyFlagBits 32
+
+-- | Buffer requires protected memory
+--
+--   bitpos = @3@
+pattern VK_BUFFER_CREATE_PROTECTED_BIT :: VkBufferCreateFlagBits
+
+pattern VK_BUFFER_CREATE_PROTECTED_BIT = VkBufferCreateFlagBits 8
+
+-- | Image requires protected memory
+--
+--   bitpos = @11@
+pattern VK_IMAGE_CREATE_PROTECTED_BIT :: VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_PROTECTED_BIT = VkImageCreateFlagBits 2048
+
+-- | Command buffers allocated from pool are protected command buffers
+--
+--   bitpos = @2@
+pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT ::
+        VkCommandPoolCreateFlagBits
+
+pattern VK_COMMAND_POOL_CREATE_PROTECTED_BIT =
+        VkCommandPoolCreateFlagBits 4
+
+pattern VkCreateSamplerYcbcrConversion :: CString
+
+pattern VkCreateSamplerYcbcrConversion <-
+        (is_VkCreateSamplerYcbcrConversion -> True)
+  where VkCreateSamplerYcbcrConversion
+          = _VkCreateSamplerYcbcrConversion
+
+{-# INLINE _VkCreateSamplerYcbcrConversion #-}
+
+_VkCreateSamplerYcbcrConversion :: CString
+_VkCreateSamplerYcbcrConversion
+  = Ptr "vkCreateSamplerYcbcrConversion\NUL"#
+
+{-# INLINE is_VkCreateSamplerYcbcrConversion #-}
+
+is_VkCreateSamplerYcbcrConversion :: CString -> Bool
+is_VkCreateSamplerYcbcrConversion
+  = (EQ ==) . cmpCStrings _VkCreateSamplerYcbcrConversion
+
+type VkCreateSamplerYcbcrConversion =
+     "vkCreateSamplerYcbcrConversion"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSamplerYcbcrConversion* pYcbcrConversion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateSamplerYcbcrConversion"
+               vkCreateSamplerYcbcrConversion ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSamplerYcbcrConversion* pYcbcrConversion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSamplerYcbcrConversionSafe@ and @vkCreateSamplerYcbcrConversion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSamplerYcbcrConversion <- vkGetDeviceProc @VkCreateSamplerYcbcrConversion vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSamplerYcbcrConversion <- vkGetProc @VkCreateSamplerYcbcrConversion
+--
+vkCreateSamplerYcbcrConversion ::
+                               VkDevice -- ^ device
+                                        ->
+                                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                                                        ->
+                                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             ->
+                                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                                                  -> IO VkResult
+vkCreateSamplerYcbcrConversion
+  = unsafeDupablePerformIO
+      (vkGetProc @VkCreateSamplerYcbcrConversion)
+
+{-# NOINLINE vkCreateSamplerYcbcrConversion #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSamplerYcbcrConversion* pYcbcrConversion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateSamplerYcbcrConversion"
+               vkCreateSamplerYcbcrConversionSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                                        ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateSamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSamplerYcbcrConversion* pYcbcrConversion
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSamplerYcbcrConversionSafe@ and @vkCreateSamplerYcbcrConversion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSamplerYcbcrConversion <- vkGetDeviceProc @VkCreateSamplerYcbcrConversion vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSamplerYcbcrConversion <- vkGetProc @VkCreateSamplerYcbcrConversion
+--
+vkCreateSamplerYcbcrConversionSafe ::
+                                   VkDevice -- ^ device
+                                            ->
+                                     Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                                                            ->
+                                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                 ->
+                                         Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                                                      -> IO VkResult
+vkCreateSamplerYcbcrConversionSafe = vkCreateSamplerYcbcrConversion
+
+{-# INLINE vkCreateSamplerYcbcrConversionSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateSamplerYcbcrConversion
+--   >     ( VkDevice device
+--   >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSamplerYcbcrConversion* pYcbcrConversion
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion registry at www.khronos.org>
+type HS_vkCreateSamplerYcbcrConversion =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                        -> IO VkResult
+
+type PFN_vkCreateSamplerYcbcrConversion =
+     FunPtr HS_vkCreateSamplerYcbcrConversion
+
+foreign import ccall "dynamic" unwrapVkCreateSamplerYcbcrConversion
+               ::
+               PFN_vkCreateSamplerYcbcrConversion ->
+                 HS_vkCreateSamplerYcbcrConversion
+
+instance VulkanProc "vkCreateSamplerYcbcrConversion" where
+        type VkProcType "vkCreateSamplerYcbcrConversion" =
+             HS_vkCreateSamplerYcbcrConversion
+        vkProcSymbol = _VkCreateSamplerYcbcrConversion
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSamplerYcbcrConversion
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroySamplerYcbcrConversion :: CString
+
+pattern VkDestroySamplerYcbcrConversion <-
+        (is_VkDestroySamplerYcbcrConversion -> True)
+  where VkDestroySamplerYcbcrConversion
+          = _VkDestroySamplerYcbcrConversion
+
+{-# INLINE _VkDestroySamplerYcbcrConversion #-}
+
+_VkDestroySamplerYcbcrConversion :: CString
+_VkDestroySamplerYcbcrConversion
+  = Ptr "vkDestroySamplerYcbcrConversion\NUL"#
+
+{-# INLINE is_VkDestroySamplerYcbcrConversion #-}
+
+is_VkDestroySamplerYcbcrConversion :: CString -> Bool
+is_VkDestroySamplerYcbcrConversion
+  = (EQ ==) . cmpCStrings _VkDestroySamplerYcbcrConversion
+
+type VkDestroySamplerYcbcrConversion =
+     "vkDestroySamplerYcbcrConversion"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkDestroySamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , VkSamplerYcbcrConversion ycbcrConversion
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroySamplerYcbcrConversion"
+               vkDestroySamplerYcbcrConversion ::
+               VkDevice -- ^ device
+                        ->
+                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkDestroySamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , VkSamplerYcbcrConversion ycbcrConversion
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySamplerYcbcrConversionSafe@ and @vkDestroySamplerYcbcrConversion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySamplerYcbcrConversion <- vkGetDeviceProc @VkDestroySamplerYcbcrConversion vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySamplerYcbcrConversion <- vkGetProc @VkDestroySamplerYcbcrConversion
+--
+vkDestroySamplerYcbcrConversion ::
+                                VkDevice -- ^ device
+                                         ->
+                                  VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                        -> IO ()
+vkDestroySamplerYcbcrConversion
+  = unsafeDupablePerformIO
+      (vkGetProc @VkDestroySamplerYcbcrConversion)
+
+{-# NOINLINE vkDestroySamplerYcbcrConversion #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkDestroySamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , VkSamplerYcbcrConversion ycbcrConversion
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroySamplerYcbcrConversion"
+               vkDestroySamplerYcbcrConversionSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkDestroySamplerYcbcrConversion
+-- >     ( VkDevice device
+-- >     , VkSamplerYcbcrConversion ycbcrConversion
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySamplerYcbcrConversionSafe@ and @vkDestroySamplerYcbcrConversion@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySamplerYcbcrConversion <- vkGetDeviceProc @VkDestroySamplerYcbcrConversion vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySamplerYcbcrConversion <- vkGetProc @VkDestroySamplerYcbcrConversion
+--
+vkDestroySamplerYcbcrConversionSafe ::
+                                    VkDevice -- ^ device
+                                             ->
+                                      VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                            -> IO ()
+vkDestroySamplerYcbcrConversionSafe
+  = vkDestroySamplerYcbcrConversion
+
+{-# INLINE vkDestroySamplerYcbcrConversionSafe #-}
+#endif
+
+-- | > void vkDestroySamplerYcbcrConversion
+--   >     ( VkDevice device
+--   >     , VkSamplerYcbcrConversion ycbcrConversion
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion registry at www.khronos.org>
+type HS_vkDestroySamplerYcbcrConversion =
+     VkDevice -- ^ device
+              ->
+       VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkDestroySamplerYcbcrConversion =
+     FunPtr HS_vkDestroySamplerYcbcrConversion
+
+foreign import ccall "dynamic"
+               unwrapVkDestroySamplerYcbcrConversion ::
+               PFN_vkDestroySamplerYcbcrConversion ->
+                 HS_vkDestroySamplerYcbcrConversion
+
+instance VulkanProc "vkDestroySamplerYcbcrConversion" where
+        type VkProcType "vkDestroySamplerYcbcrConversion" =
+             HS_vkDestroySamplerYcbcrConversion
+        vkProcSymbol = _VkDestroySamplerYcbcrConversion
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySamplerYcbcrConversion
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO =
+        VkStructureType 1000156000
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO =
+        VkStructureType 1000156001
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO =
+        VkStructureType 1000156002
+
+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO =
+        VkStructureType 1000156003
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
+        = VkStructureType 1000156004
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES
+        = VkStructureType 1000156005
+
+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION :: VkObjectType
+
+pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION =
+        VkObjectType 1000156000
+
+pattern VK_FORMAT_G8B8G8R8_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8B8G8R8_422_UNORM = VkFormat 1000156000
+
+pattern VK_FORMAT_B8G8R8G8_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_B8G8R8G8_422_UNORM = VkFormat 1000156001
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = VkFormat 1000156002
+
+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = VkFormat 1000156003
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = VkFormat 1000156004
+
+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = VkFormat 1000156005
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM :: VkFormat
+
+pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = VkFormat 1000156006
+
+pattern VK_FORMAT_R10X6_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_R10X6_UNORM_PACK16 = VkFormat 1000156007
+
+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 :: VkFormat
+
+pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = VkFormat 1000156008
+
+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 :: VkFormat
+
+pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 =
+        VkFormat 1000156009
+
+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 =
+        VkFormat 1000156010
+
+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 =
+        VkFormat 1000156011
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 =
+        VkFormat 1000156012
+
+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 =
+        VkFormat 1000156013
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 =
+        VkFormat 1000156014
+
+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 =
+        VkFormat 1000156015
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 =
+        VkFormat 1000156016
+
+pattern VK_FORMAT_R12X4_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_R12X4_UNORM_PACK16 = VkFormat 1000156017
+
+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 :: VkFormat
+
+pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = VkFormat 1000156018
+
+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 :: VkFormat
+
+pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 =
+        VkFormat 1000156019
+
+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 =
+        VkFormat 1000156020
+
+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 =
+        VkFormat 1000156021
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 =
+        VkFormat 1000156022
+
+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 =
+        VkFormat 1000156023
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 =
+        VkFormat 1000156024
+
+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 =
+        VkFormat 1000156025
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 ::
+        VkFormat
+
+pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 =
+        VkFormat 1000156026
+
+pattern VK_FORMAT_G16B16G16R16_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16B16G16R16_422_UNORM = VkFormat 1000156027
+
+pattern VK_FORMAT_B16G16R16G16_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_B16G16R16G16_422_UNORM = VkFormat 1000156028
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM =
+        VkFormat 1000156029
+
+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = VkFormat 1000156030
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM =
+        VkFormat 1000156031
+
+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = VkFormat 1000156032
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM :: VkFormat
+
+pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM =
+        VkFormat 1000156033
+
+-- | bitpos = @4@
+pattern VK_IMAGE_ASPECT_PLANE_0_BIT :: VkImageAspectFlagBits
+
+pattern VK_IMAGE_ASPECT_PLANE_0_BIT = VkImageAspectFlagBits 16
+
+-- | bitpos = @5@
+pattern VK_IMAGE_ASPECT_PLANE_1_BIT :: VkImageAspectFlagBits
+
+pattern VK_IMAGE_ASPECT_PLANE_1_BIT = VkImageAspectFlagBits 32
+
+-- | bitpos = @6@
+pattern VK_IMAGE_ASPECT_PLANE_2_BIT :: VkImageAspectFlagBits
+
+pattern VK_IMAGE_ASPECT_PLANE_2_BIT = VkImageAspectFlagBits 64
+
+-- | bitpos = @9@
+pattern VK_IMAGE_CREATE_DISJOINT_BIT :: VkImageCreateFlagBits
+
+pattern VK_IMAGE_CREATE_DISJOINT_BIT = VkImageCreateFlagBits 512
+
+-- | Format can have midpoint rather than cosited chroma samples
+--
+--   bitpos = @17@
+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT ::
+        VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT =
+        VkFormatFeatureFlagBits 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
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
+        = VkFormatFeatureFlagBits 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
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
+        = VkFormatFeatureFlagBits 524288
+
+-- | bitpos = @20@
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
+        :: VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
+        = VkFormatFeatureFlagBits 1048576
+
+-- | bitpos = @21@
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
+        :: VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
+        = VkFormatFeatureFlagBits 2097152
+
+-- | Format supports disjoint planes
+--
+--   bitpos = @22@
+pattern VK_FORMAT_FEATURE_DISJOINT_BIT :: VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_DISJOINT_BIT =
+        VkFormatFeatureFlagBits 4194304
+
+-- | Format can have cosited rather than midpoint chroma samples
+--
+--   bitpos = @23@
+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT ::
+        VkFormatFeatureFlagBits
+
+pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT =
+        VkFormatFeatureFlagBits 8388608
+
+pattern VkCreateDescriptorUpdateTemplate :: CString
+
+pattern VkCreateDescriptorUpdateTemplate <-
+        (is_VkCreateDescriptorUpdateTemplate -> True)
+  where VkCreateDescriptorUpdateTemplate
+          = _VkCreateDescriptorUpdateTemplate
+
+{-# INLINE _VkCreateDescriptorUpdateTemplate #-}
+
+_VkCreateDescriptorUpdateTemplate :: CString
+_VkCreateDescriptorUpdateTemplate
+  = Ptr "vkCreateDescriptorUpdateTemplate\NUL"#
+
+{-# INLINE is_VkCreateDescriptorUpdateTemplate #-}
+
+is_VkCreateDescriptorUpdateTemplate :: CString -> Bool
+is_VkCreateDescriptorUpdateTemplate
+  = (EQ ==) . cmpCStrings _VkCreateDescriptorUpdateTemplate
+
+type VkCreateDescriptorUpdateTemplate =
+     "vkCreateDescriptorUpdateTemplate"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDescriptorUpdateTemplate"
+               vkCreateDescriptorUpdateTemplate ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                          ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                                    -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorUpdateTemplateSafe@ and @vkCreateDescriptorUpdateTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorUpdateTemplate <- vkGetDeviceProc @VkCreateDescriptorUpdateTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorUpdateTemplate <- vkGetProc @VkCreateDescriptorUpdateTemplate
+--
+vkCreateDescriptorUpdateTemplate ::
+                                 VkDevice -- ^ device
+                                          ->
+                                   Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                                            ->
+                                     Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               ->
+                                       Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                                                      -> IO VkResult
+vkCreateDescriptorUpdateTemplate
+  = unsafeDupablePerformIO
+      (vkGetProc @VkCreateDescriptorUpdateTemplate)
+
+{-# NOINLINE vkCreateDescriptorUpdateTemplate #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDescriptorUpdateTemplate"
+               vkCreateDescriptorUpdateTemplateSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                          ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             ->
+                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                                    -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDescriptorUpdateTemplateSafe@ and @vkCreateDescriptorUpdateTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDescriptorUpdateTemplate <- vkGetDeviceProc @VkCreateDescriptorUpdateTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateDescriptorUpdateTemplate <- vkGetProc @VkCreateDescriptorUpdateTemplate
+--
+vkCreateDescriptorUpdateTemplateSafe ::
+                                     VkDevice -- ^ device
+                                              ->
+                                       Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                                                ->
+                                         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                   ->
+                                           Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                                                          -> IO VkResult
+vkCreateDescriptorUpdateTemplateSafe
+  = vkCreateDescriptorUpdateTemplate
+
+{-# INLINE vkCreateDescriptorUpdateTemplateSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateDescriptorUpdateTemplate
+--   >     ( VkDevice device
+--   >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate registry at www.khronos.org>
+type HS_vkCreateDescriptorUpdateTemplate =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                          -> IO VkResult
+
+type PFN_vkCreateDescriptorUpdateTemplate =
+     FunPtr HS_vkCreateDescriptorUpdateTemplate
+
+foreign import ccall "dynamic"
+               unwrapVkCreateDescriptorUpdateTemplate ::
+               PFN_vkCreateDescriptorUpdateTemplate ->
+                 HS_vkCreateDescriptorUpdateTemplate
+
+instance VulkanProc "vkCreateDescriptorUpdateTemplate" where
+        type VkProcType "vkCreateDescriptorUpdateTemplate" =
+             HS_vkCreateDescriptorUpdateTemplate
+        vkProcSymbol = _VkCreateDescriptorUpdateTemplate
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDescriptorUpdateTemplate
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDescriptorUpdateTemplate :: CString
+
+pattern VkDestroyDescriptorUpdateTemplate <-
+        (is_VkDestroyDescriptorUpdateTemplate -> True)
+  where VkDestroyDescriptorUpdateTemplate
+          = _VkDestroyDescriptorUpdateTemplate
+
+{-# INLINE _VkDestroyDescriptorUpdateTemplate #-}
+
+_VkDestroyDescriptorUpdateTemplate :: CString
+_VkDestroyDescriptorUpdateTemplate
+  = Ptr "vkDestroyDescriptorUpdateTemplate\NUL"#
+
+{-# INLINE is_VkDestroyDescriptorUpdateTemplate #-}
+
+is_VkDestroyDescriptorUpdateTemplate :: CString -> Bool
+is_VkDestroyDescriptorUpdateTemplate
+  = (EQ ==) . cmpCStrings _VkDestroyDescriptorUpdateTemplate
+
+type VkDestroyDescriptorUpdateTemplate =
+     "vkDestroyDescriptorUpdateTemplate"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkDestroyDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroyDescriptorUpdateTemplate"
+               vkDestroyDescriptorUpdateTemplate ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+#else
+-- |
+-- > void vkDestroyDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorUpdateTemplateSafe@ and @vkDestroyDescriptorUpdateTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorUpdateTemplate <- vkGetDeviceProc @VkDestroyDescriptorUpdateTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorUpdateTemplate <- vkGetProc @VkDestroyDescriptorUpdateTemplate
+--
+vkDestroyDescriptorUpdateTemplate ::
+                                  VkDevice -- ^ device
+                                           ->
+                                    VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                            -> IO ()
+vkDestroyDescriptorUpdateTemplate
+  = unsafeDupablePerformIO
+      (vkGetProc @VkDestroyDescriptorUpdateTemplate)
+
+{-# NOINLINE vkDestroyDescriptorUpdateTemplate #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkDestroyDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroyDescriptorUpdateTemplate"
+               vkDestroyDescriptorUpdateTemplateSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                         -> IO ()
+
+#else
+-- |
+-- > void vkDestroyDescriptorUpdateTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroyDescriptorUpdateTemplateSafe@ and @vkDestroyDescriptorUpdateTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroyDescriptorUpdateTemplate <- vkGetDeviceProc @VkDestroyDescriptorUpdateTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroyDescriptorUpdateTemplate <- vkGetProc @VkDestroyDescriptorUpdateTemplate
+--
+vkDestroyDescriptorUpdateTemplateSafe ::
+                                      VkDevice -- ^ device
+                                               ->
+                                        VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                                   ->
+                                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                    -> IO ()
+vkDestroyDescriptorUpdateTemplateSafe
+  = vkDestroyDescriptorUpdateTemplate
+
+{-# INLINE vkDestroyDescriptorUpdateTemplateSafe #-}
+#endif
+
+-- | > void vkDestroyDescriptorUpdateTemplate
+--   >     ( VkDevice device
+--   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate registry at www.khronos.org>
+type HS_vkDestroyDescriptorUpdateTemplate =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                  -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> IO ()
+
+type PFN_vkDestroyDescriptorUpdateTemplate =
+     FunPtr HS_vkDestroyDescriptorUpdateTemplate
+
+foreign import ccall "dynamic"
+               unwrapVkDestroyDescriptorUpdateTemplate ::
+               PFN_vkDestroyDescriptorUpdateTemplate ->
+                 HS_vkDestroyDescriptorUpdateTemplate
+
+instance VulkanProc "vkDestroyDescriptorUpdateTemplate" where
+        type VkProcType "vkDestroyDescriptorUpdateTemplate" =
+             HS_vkDestroyDescriptorUpdateTemplate
+        vkProcSymbol = _VkDestroyDescriptorUpdateTemplate
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDescriptorUpdateTemplate
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkUpdateDescriptorSetWithTemplate :: CString
+
+pattern VkUpdateDescriptorSetWithTemplate <-
+        (is_VkUpdateDescriptorSetWithTemplate -> True)
+  where VkUpdateDescriptorSetWithTemplate
+          = _VkUpdateDescriptorSetWithTemplate
+
+{-# INLINE _VkUpdateDescriptorSetWithTemplate #-}
+
+_VkUpdateDescriptorSetWithTemplate :: CString
+_VkUpdateDescriptorSetWithTemplate
+  = Ptr "vkUpdateDescriptorSetWithTemplate\NUL"#
+
+{-# INLINE is_VkUpdateDescriptorSetWithTemplate #-}
+
+is_VkUpdateDescriptorSetWithTemplate :: CString -> Bool
+is_VkUpdateDescriptorSetWithTemplate
+  = (EQ ==) . cmpCStrings _VkUpdateDescriptorSetWithTemplate
+
+type VkUpdateDescriptorSetWithTemplate =
+     "vkUpdateDescriptorSetWithTemplate"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkUpdateDescriptorSetWithTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorSet descriptorSet
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkUpdateDescriptorSetWithTemplate"
+               vkUpdateDescriptorSetWithTemplate ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorSet -- ^ descriptorSet
+                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                               -> Ptr Void -- ^ pData
+                                                                           -> IO ()
+
+#else
+-- |
+-- > void vkUpdateDescriptorSetWithTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorSet descriptorSet
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUpdateDescriptorSetWithTemplateSafe@ and @vkUpdateDescriptorSetWithTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUpdateDescriptorSetWithTemplate <- vkGetDeviceProc @VkUpdateDescriptorSetWithTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myUpdateDescriptorSetWithTemplate <- vkGetProc @VkUpdateDescriptorSetWithTemplate
+--
+vkUpdateDescriptorSetWithTemplate ::
+                                  VkDevice -- ^ device
+                                           ->
+                                    VkDescriptorSet -- ^ descriptorSet
+                                                    ->
+                                      VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                                 -> Ptr Void -- ^ pData
+                                                                             -> IO ()
+vkUpdateDescriptorSetWithTemplate
+  = unsafeDupablePerformIO
+      (vkGetProc @VkUpdateDescriptorSetWithTemplate)
+
+{-# NOINLINE vkUpdateDescriptorSetWithTemplate #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkUpdateDescriptorSetWithTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorSet descriptorSet
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkUpdateDescriptorSetWithTemplate"
+               vkUpdateDescriptorSetWithTemplateSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkDescriptorSet -- ^ descriptorSet
+                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                               -> Ptr Void -- ^ pData
+                                                                           -> IO ()
+
+#else
+-- |
+-- > void vkUpdateDescriptorSetWithTemplate
+-- >     ( VkDevice device
+-- >     , VkDescriptorSet descriptorSet
+-- >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+-- >     , const void* pData
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkUpdateDescriptorSetWithTemplateSafe@ and @vkUpdateDescriptorSetWithTemplate@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myUpdateDescriptorSetWithTemplate <- vkGetDeviceProc @VkUpdateDescriptorSetWithTemplate vkDevice
+--
+-- or less efficient:
+--
+-- > myUpdateDescriptorSetWithTemplate <- vkGetProc @VkUpdateDescriptorSetWithTemplate
+--
+vkUpdateDescriptorSetWithTemplateSafe ::
+                                      VkDevice -- ^ device
+                                               ->
+                                        VkDescriptorSet -- ^ descriptorSet
+                                                        ->
+                                          VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                                     -> Ptr Void -- ^ pData
+                                                                                 -> IO ()
+vkUpdateDescriptorSetWithTemplateSafe
+  = vkUpdateDescriptorSetWithTemplate
+
+{-# INLINE vkUpdateDescriptorSetWithTemplateSafe #-}
+#endif
+
+-- | > void vkUpdateDescriptorSetWithTemplate
+--   >     ( VkDevice device
+--   >     , VkDescriptorSet descriptorSet
+--   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
+--   >     , const void* pData
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate registry at www.khronos.org>
+type HS_vkUpdateDescriptorSetWithTemplate =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorSet -- ^ descriptorSet
+                       -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                     -> Ptr Void -- ^ pData
+                                                                 -> IO ()
+
+type PFN_vkUpdateDescriptorSetWithTemplate =
+     FunPtr HS_vkUpdateDescriptorSetWithTemplate
+
+foreign import ccall "dynamic"
+               unwrapVkUpdateDescriptorSetWithTemplate ::
+               PFN_vkUpdateDescriptorSetWithTemplate ->
+                 HS_vkUpdateDescriptorSetWithTemplate
+
+instance VulkanProc "vkUpdateDescriptorSetWithTemplate" where
+        type VkProcType "vkUpdateDescriptorSetWithTemplate" =
+             HS_vkUpdateDescriptorSetWithTemplate
+        vkProcSymbol = _VkUpdateDescriptorSetWithTemplate
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkUpdateDescriptorSetWithTemplate
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO =
+        VkStructureType 1000085000
+
+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE =
+        VkObjectType 1000085000
+
+pattern VkGetPhysicalDeviceExternalBufferProperties :: CString
+
+pattern VkGetPhysicalDeviceExternalBufferProperties <-
+        (is_VkGetPhysicalDeviceExternalBufferProperties -> True)
+  where VkGetPhysicalDeviceExternalBufferProperties
+          = _VkGetPhysicalDeviceExternalBufferProperties
+
+{-# INLINE _VkGetPhysicalDeviceExternalBufferProperties #-}
+
+_VkGetPhysicalDeviceExternalBufferProperties :: CString
+_VkGetPhysicalDeviceExternalBufferProperties
+  = Ptr "vkGetPhysicalDeviceExternalBufferProperties\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalBufferProperties #-}
+
+is_VkGetPhysicalDeviceExternalBufferProperties :: CString -> Bool
+is_VkGetPhysicalDeviceExternalBufferProperties
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalBufferProperties
+
+type VkGetPhysicalDeviceExternalBufferProperties =
+     "vkGetPhysicalDeviceExternalBufferProperties"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalBufferProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
+-- >     , VkExternalBufferProperties* pExternalBufferProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceExternalBufferProperties"
+               vkGetPhysicalDeviceExternalBufferProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                                        ->
+                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                                  -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalBufferProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
+-- >     , VkExternalBufferProperties* pExternalBufferProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalBufferPropertiesSafe@ and @vkGetPhysicalDeviceExternalBufferProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalBufferProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalBufferProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalBufferProperties <- vkGetProc @VkGetPhysicalDeviceExternalBufferProperties
+--
+vkGetPhysicalDeviceExternalBufferProperties ::
+                                            VkPhysicalDevice -- ^ physicalDevice
+                                                             ->
+                                              Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                                                                     ->
+                                                Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                                                               -> IO ()
+vkGetPhysicalDeviceExternalBufferProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceExternalBufferProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceExternalBufferProperties #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalBufferProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
+-- >     , VkExternalBufferProperties* pExternalBufferProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceExternalBufferProperties"
+               vkGetPhysicalDeviceExternalBufferPropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                                        ->
+                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                                  -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalBufferProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
+-- >     , VkExternalBufferProperties* pExternalBufferProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalBufferPropertiesSafe@ and @vkGetPhysicalDeviceExternalBufferProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalBufferProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalBufferProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalBufferProperties <- vkGetProc @VkGetPhysicalDeviceExternalBufferProperties
+--
+vkGetPhysicalDeviceExternalBufferPropertiesSafe ::
+                                                VkPhysicalDevice -- ^ physicalDevice
+                                                                 ->
+                                                  Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                                                                         ->
+                                                    Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                                                                   -> IO ()
+vkGetPhysicalDeviceExternalBufferPropertiesSafe
+  = vkGetPhysicalDeviceExternalBufferProperties
+
+{-# INLINE vkGetPhysicalDeviceExternalBufferPropertiesSafe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceExternalBufferProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
+--   >     , VkExternalBufferProperties* pExternalBufferProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalBufferProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                              ->
+         Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                        -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalBufferProperties =
+     FunPtr HS_vkGetPhysicalDeviceExternalBufferProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalBufferProperties ::
+               PFN_vkGetPhysicalDeviceExternalBufferProperties ->
+                 HS_vkGetPhysicalDeviceExternalBufferProperties
+
+instance VulkanProc "vkGetPhysicalDeviceExternalBufferProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalBufferProperties" =
+             HS_vkGetPhysicalDeviceExternalBufferProperties
+        vkProcSymbol = _VkGetPhysicalDeviceExternalBufferProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceExternalBufferProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO
+        = VkStructureType 1000071000
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES =
+        VkStructureType 1000071001
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO =
+        VkStructureType 1000071002
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES =
+        VkStructureType 1000071003
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES =
+        VkStructureType 1000071004
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO =
+        VkStructureType 1000072000
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO =
+        VkStructureType 1000072001
+
+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO =
+        VkStructureType 1000072002
+
+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE :: VkResult
+
+pattern VK_ERROR_INVALID_EXTERNAL_HANDLE = VkResult (-1000072003)
+
+pattern VkGetPhysicalDeviceExternalFenceProperties :: CString
+
+pattern VkGetPhysicalDeviceExternalFenceProperties <-
+        (is_VkGetPhysicalDeviceExternalFenceProperties -> True)
+  where VkGetPhysicalDeviceExternalFenceProperties
+          = _VkGetPhysicalDeviceExternalFenceProperties
+
+{-# INLINE _VkGetPhysicalDeviceExternalFenceProperties #-}
+
+_VkGetPhysicalDeviceExternalFenceProperties :: CString
+_VkGetPhysicalDeviceExternalFenceProperties
+  = Ptr "vkGetPhysicalDeviceExternalFenceProperties\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalFenceProperties #-}
+
+is_VkGetPhysicalDeviceExternalFenceProperties :: CString -> Bool
+is_VkGetPhysicalDeviceExternalFenceProperties
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceExternalFenceProperties
+
+type VkGetPhysicalDeviceExternalFenceProperties =
+     "vkGetPhysicalDeviceExternalFenceProperties"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalFenceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
+-- >     , VkExternalFenceProperties* pExternalFenceProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceExternalFenceProperties"
+               vkGetPhysicalDeviceExternalFenceProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                                       ->
+                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                                 -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalFenceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
+-- >     , VkExternalFenceProperties* pExternalFenceProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalFencePropertiesSafe@ and @vkGetPhysicalDeviceExternalFenceProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalFenceProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalFenceProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalFenceProperties <- vkGetProc @VkGetPhysicalDeviceExternalFenceProperties
+--
+vkGetPhysicalDeviceExternalFenceProperties ::
+                                           VkPhysicalDevice -- ^ physicalDevice
+                                                            ->
+                                             Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                                                                   ->
+                                               Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                                                             -> IO ()
+vkGetPhysicalDeviceExternalFenceProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceExternalFenceProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceExternalFenceProperties #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalFenceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
+-- >     , VkExternalFenceProperties* pExternalFenceProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceExternalFenceProperties"
+               vkGetPhysicalDeviceExternalFencePropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                                       ->
+                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                                 -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalFenceProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
+-- >     , VkExternalFenceProperties* pExternalFenceProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalFencePropertiesSafe@ and @vkGetPhysicalDeviceExternalFenceProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalFenceProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalFenceProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalFenceProperties <- vkGetProc @VkGetPhysicalDeviceExternalFenceProperties
+--
+vkGetPhysicalDeviceExternalFencePropertiesSafe ::
+                                               VkPhysicalDevice -- ^ physicalDevice
+                                                                ->
+                                                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                                                                       ->
+                                                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                                                                 -> IO ()
+vkGetPhysicalDeviceExternalFencePropertiesSafe
+  = vkGetPhysicalDeviceExternalFenceProperties
+
+{-# INLINE vkGetPhysicalDeviceExternalFencePropertiesSafe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceExternalFenceProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
+--   >     , VkExternalFenceProperties* pExternalFenceProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalFenceProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                             ->
+         Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                       -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalFenceProperties =
+     FunPtr HS_vkGetPhysicalDeviceExternalFenceProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalFenceProperties ::
+               PFN_vkGetPhysicalDeviceExternalFenceProperties ->
+                 HS_vkGetPhysicalDeviceExternalFenceProperties
+
+instance VulkanProc "vkGetPhysicalDeviceExternalFenceProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalFenceProperties" =
+             HS_vkGetPhysicalDeviceExternalFenceProperties
+        vkProcSymbol = _VkGetPhysicalDeviceExternalFenceProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceExternalFenceProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO =
+        VkStructureType 1000112000
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES =
+        VkStructureType 1000112001
+
+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO =
+        VkStructureType 1000113000
+
+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO =
+        VkStructureType 1000077000
+
+pattern VkGetPhysicalDeviceExternalSemaphoreProperties :: CString
+
+pattern VkGetPhysicalDeviceExternalSemaphoreProperties <-
+        (is_VkGetPhysicalDeviceExternalSemaphoreProperties -> True)
+  where VkGetPhysicalDeviceExternalSemaphoreProperties
+          = _VkGetPhysicalDeviceExternalSemaphoreProperties
+
+{-# INLINE _VkGetPhysicalDeviceExternalSemaphoreProperties #-}
+
+_VkGetPhysicalDeviceExternalSemaphoreProperties :: CString
+_VkGetPhysicalDeviceExternalSemaphoreProperties
+  = Ptr "vkGetPhysicalDeviceExternalSemaphoreProperties\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalSemaphoreProperties #-}
+
+is_VkGetPhysicalDeviceExternalSemaphoreProperties ::
+                                                  CString -> Bool
+is_VkGetPhysicalDeviceExternalSemaphoreProperties
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalSemaphoreProperties
+
+type VkGetPhysicalDeviceExternalSemaphoreProperties =
+     "vkGetPhysicalDeviceExternalSemaphoreProperties"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalSemaphoreProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
+-- >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceExternalSemaphoreProperties"
+               vkGetPhysicalDeviceExternalSemaphoreProperties ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                           ->
+                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                                     -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalSemaphoreProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
+-- >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalSemaphorePropertiesSafe@ and @vkGetPhysicalDeviceExternalSemaphoreProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalSemaphoreProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalSemaphoreProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalSemaphoreProperties <- vkGetProc @VkGetPhysicalDeviceExternalSemaphoreProperties
+--
+vkGetPhysicalDeviceExternalSemaphoreProperties ::
+                                               VkPhysicalDevice -- ^ physicalDevice
+                                                                ->
+                                                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                                                           ->
+                                                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                                                                     -> IO ()
+vkGetPhysicalDeviceExternalSemaphoreProperties
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceExternalSemaphoreProperties)
+
+{-# NOINLINE vkGetPhysicalDeviceExternalSemaphoreProperties #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetPhysicalDeviceExternalSemaphoreProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
+-- >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceExternalSemaphoreProperties"
+               vkGetPhysicalDeviceExternalSemaphorePropertiesSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                           ->
+                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                                     -> IO ()
+
+#else
+-- |
+-- > void vkGetPhysicalDeviceExternalSemaphoreProperties
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
+-- >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceExternalSemaphorePropertiesSafe@ and @vkGetPhysicalDeviceExternalSemaphoreProperties@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceExternalSemaphoreProperties <- vkGetInstanceProc @VkGetPhysicalDeviceExternalSemaphoreProperties vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceExternalSemaphoreProperties <- vkGetProc @VkGetPhysicalDeviceExternalSemaphoreProperties
+--
+vkGetPhysicalDeviceExternalSemaphorePropertiesSafe ::
+                                                   VkPhysicalDevice -- ^ physicalDevice
+                                                                    ->
+                                                     Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                                                               ->
+                                                       Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                                                                         -> IO ()
+vkGetPhysicalDeviceExternalSemaphorePropertiesSafe
+  = vkGetPhysicalDeviceExternalSemaphoreProperties
+
+{-# INLINE vkGetPhysicalDeviceExternalSemaphorePropertiesSafe #-}
+#endif
+
+-- | > void vkGetPhysicalDeviceExternalSemaphoreProperties
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
+--   >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalSemaphoreProperties =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                 ->
+         Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                           -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties =
+     FunPtr HS_vkGetPhysicalDeviceExternalSemaphoreProperties
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalSemaphoreProperties ::
+               PFN_vkGetPhysicalDeviceExternalSemaphoreProperties ->
+                 HS_vkGetPhysicalDeviceExternalSemaphoreProperties
+
+instance VulkanProc
+           "vkGetPhysicalDeviceExternalSemaphoreProperties"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalSemaphoreProperties" =
+             HS_vkGetPhysicalDeviceExternalSemaphoreProperties
+        vkProcSymbol = _VkGetPhysicalDeviceExternalSemaphoreProperties
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceExternalSemaphoreProperties
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO =
+        VkStructureType 1000076000
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES =
+        VkStructureType 1000076001
+
+pattern VkGetDescriptorSetLayoutSupport :: CString
+
+pattern VkGetDescriptorSetLayoutSupport <-
+        (is_VkGetDescriptorSetLayoutSupport -> True)
+  where VkGetDescriptorSetLayoutSupport
+          = _VkGetDescriptorSetLayoutSupport
+
+{-# INLINE _VkGetDescriptorSetLayoutSupport #-}
+
+_VkGetDescriptorSetLayoutSupport :: CString
+_VkGetDescriptorSetLayoutSupport
+  = Ptr "vkGetDescriptorSetLayoutSupport\NUL"#
+
+{-# INLINE is_VkGetDescriptorSetLayoutSupport #-}
+
+is_VkGetDescriptorSetLayoutSupport :: CString -> Bool
+is_VkGetDescriptorSetLayoutSupport
+  = (EQ ==) . cmpCStrings _VkGetDescriptorSetLayoutSupport
+
+type VkGetDescriptorSetLayoutSupport =
+     "vkGetDescriptorSetLayoutSupport"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDescriptorSetLayoutSupport
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , VkDescriptorSetLayoutSupport* pSupport
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDescriptorSetLayoutSupport"
+               vkGetDescriptorSetLayoutSupport ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                     ->
+                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetDescriptorSetLayoutSupport
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , VkDescriptorSetLayoutSupport* pSupport
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDescriptorSetLayoutSupportSafe@ and @vkGetDescriptorSetLayoutSupport@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDescriptorSetLayoutSupport <- vkGetDeviceProc @VkGetDescriptorSetLayoutSupport vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDescriptorSetLayoutSupport <- vkGetProc @VkGetDescriptorSetLayoutSupport
+--
+vkGetDescriptorSetLayoutSupport ::
+                                VkDevice -- ^ device
+                                         ->
+                                  Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                                      ->
+                                    Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                                                     -> IO ()
+vkGetDescriptorSetLayoutSupport
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDescriptorSetLayoutSupport)
+
+{-# NOINLINE vkGetDescriptorSetLayoutSupport #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- > void vkGetDescriptorSetLayoutSupport
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , VkDescriptorSetLayoutSupport* pSupport
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDescriptorSetLayoutSupport"
+               vkGetDescriptorSetLayoutSupportSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                     ->
+                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                                    -> IO ()
+
+#else
+-- |
+-- > void vkGetDescriptorSetLayoutSupport
+-- >     ( VkDevice device
+-- >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+-- >     , VkDescriptorSetLayoutSupport* pSupport
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDescriptorSetLayoutSupportSafe@ and @vkGetDescriptorSetLayoutSupport@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDescriptorSetLayoutSupport <- vkGetDeviceProc @VkGetDescriptorSetLayoutSupport vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDescriptorSetLayoutSupport <- vkGetProc @VkGetDescriptorSetLayoutSupport
+--
+vkGetDescriptorSetLayoutSupportSafe ::
+                                    VkDevice -- ^ device
+                                             ->
+                                      Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                                                          ->
+                                        Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                                                         -> IO ()
+vkGetDescriptorSetLayoutSupportSafe
+  = vkGetDescriptorSetLayoutSupport
+
+{-# INLINE vkGetDescriptorSetLayoutSupportSafe #-}
+#endif
+
+-- | > void vkGetDescriptorSetLayoutSupport
+--   >     ( VkDevice device
+--   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
+--   >     , VkDescriptorSetLayoutSupport* pSupport
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport registry at www.khronos.org>
+type HS_vkGetDescriptorSetLayoutSupport =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                           ->
+         Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                          -> IO ()
+
+type PFN_vkGetDescriptorSetLayoutSupport =
+     FunPtr HS_vkGetDescriptorSetLayoutSupport
+
+foreign import ccall "dynamic"
+               unwrapVkGetDescriptorSetLayoutSupport ::
+               PFN_vkGetDescriptorSetLayoutSupport ->
+                 HS_vkGetDescriptorSetLayoutSupport
+
+instance VulkanProc "vkGetDescriptorSetLayoutSupport" where
+        type VkProcType "vkGetDescriptorSetLayoutSupport" =
+             HS_vkGetDescriptorSetLayoutSupport
+        vkProcSymbol = _VkGetDescriptorSetLayoutSupport
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDescriptorSetLayoutSupport
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
         :: VkStructureType
diff --git a/src-gen/Graphics/Vulkan/Ext.hs b/src-gen/Graphics/Vulkan/Ext.hs
--- a/src-gen/Graphics/Vulkan/Ext.hs
+++ b/src-gen/Graphics/Vulkan/Ext.hs
@@ -157,12 +157,15 @@
     , module Graphics.Vulkan.Ext.VK_KHR_sampler_ycbcr_conversion
     , module Graphics.Vulkan.Ext.VK_KHR_bind_memory2
     , module Graphics.Vulkan.Ext.VK_EXT_validation_cache
+    , module Graphics.Vulkan.Ext.VK_EXT_descriptor_indexing
     , module Graphics.Vulkan.Ext.VK_EXT_shader_viewport_index_layer
     , module Graphics.Vulkan.Ext.VK_KHR_maintenance3
     , module Graphics.Vulkan.Ext.VK_EXT_global_priority
     , module Graphics.Vulkan.Ext.VK_EXT_external_memory_host
     , module Graphics.Vulkan.Ext.VK_AMD_buffer_marker
+    , module Graphics.Vulkan.Ext.VK_AMD_shader_core_properties
     , module Graphics.Vulkan.Ext.VK_EXT_vertex_attribute_divisor
+    , module Graphics.Vulkan.Ext.VK_NV_shader_subgroup_partitioned
     ) where
 
 import Graphics.Vulkan.Ext.VK_KHR_surface
@@ -321,9 +324,12 @@
 import Graphics.Vulkan.Ext.VK_KHR_sampler_ycbcr_conversion
 import Graphics.Vulkan.Ext.VK_KHR_bind_memory2
 import Graphics.Vulkan.Ext.VK_EXT_validation_cache
+import Graphics.Vulkan.Ext.VK_EXT_descriptor_indexing
 import Graphics.Vulkan.Ext.VK_EXT_shader_viewport_index_layer
 import Graphics.Vulkan.Ext.VK_KHR_maintenance3
 import Graphics.Vulkan.Ext.VK_EXT_global_priority
 import Graphics.Vulkan.Ext.VK_EXT_external_memory_host
 import Graphics.Vulkan.Ext.VK_AMD_buffer_marker
+import Graphics.Vulkan.Ext.VK_AMD_shader_core_properties
 import Graphics.Vulkan.Ext.VK_EXT_vertex_attribute_divisor
+import Graphics.Vulkan.Ext.VK_NV_shader_subgroup_partitioned
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_buffer_marker.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_AMD_buffer_marker
        (-- * Vulkan extension: @VK_AMD_buffer_marker@
@@ -19,55 +22,50 @@
         -- type: @device@
         --
         -- Extension number: @180@
-        vkCmdWriteBufferMarkerAMD, vkCmdWriteBufferMarkerAMDSafe,
+        VkCmdWriteBufferMarkerAMD, pattern VkCmdWriteBufferMarkerAMD,
+        HS_vkCmdWriteBufferMarkerAMD, PFN_vkCmdWriteBufferMarkerAMD,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
         module Graphics.Vulkan.Types.Handles,
         VK_AMD_BUFFER_MARKER_SPEC_VERSION,
         pattern VK_AMD_BUFFER_MARKER_SPEC_VERSION,
         VK_AMD_BUFFER_MARKER_EXTENSION_NAME,
         pattern VK_AMD_BUFFER_MARKER_EXTENSION_NAME)
        where
-import           GHC.Ptr                                         (Ptr (..))
+import           GHC.Ptr                             (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
+import           Graphics.Vulkan.Types.Enum.Pipeline
 import           Graphics.Vulkan.Types.Handles
 
--- | queues: 'transfer', 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   pipeline: @transfer@
---
---   > () vkCmdWriteBufferMarkerAMD
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineStageFlagBits pipelineStage
---   >     , VkBuffer dstBuffer
---   >     , VkDeviceSize dstOffset
---   >     , uint32_t marker
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWriteBufferMarkerAMD.html vkCmdWriteBufferMarkerAMD registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdWriteBufferMarkerAMD"
-               vkCmdWriteBufferMarkerAMD ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineStageFlagBits -- ^ pipelineStage
-                                         ->
-                   VkBuffer -- ^ dstBuffer
-                            -> VkDeviceSize -- ^ dstOffset
-                                            -> Word32 -- ^ marker
-                                                      -> IO ()
+pattern VkCmdWriteBufferMarkerAMD :: CString
 
--- | queues: 'transfer', 'graphics', 'compute'.
+pattern VkCmdWriteBufferMarkerAMD <-
+        (is_VkCmdWriteBufferMarkerAMD -> True)
+  where VkCmdWriteBufferMarkerAMD = _VkCmdWriteBufferMarkerAMD
+
+{-# INLINE _VkCmdWriteBufferMarkerAMD #-}
+
+_VkCmdWriteBufferMarkerAMD :: CString
+_VkCmdWriteBufferMarkerAMD = Ptr "vkCmdWriteBufferMarkerAMD\NUL"#
+
+{-# INLINE is_VkCmdWriteBufferMarkerAMD #-}
+
+is_VkCmdWriteBufferMarkerAMD :: CString -> Bool
+is_VkCmdWriteBufferMarkerAMD
+  = (EQ ==) . cmpCStrings _VkCmdWriteBufferMarkerAMD
+
+type VkCmdWriteBufferMarkerAMD = "vkCmdWriteBufferMarkerAMD"
+
+-- | Queues: 'transfer', 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   pipeline: @transfer@
+--   Pipeline: @transfer@
 --
---   > () vkCmdWriteBufferMarkerAMD
+--   > void vkCmdWriteBufferMarkerAMD
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , VkPipelineStageFlagBits pipelineStage
 --   >     , VkBuffer dstBuffer
@@ -75,17 +73,32 @@
 --   >     , uint32_t marker
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdWriteBufferMarkerAMD.html vkCmdWriteBufferMarkerAMD registry at www.khronos.org>
-foreign import ccall safe "vkCmdWriteBufferMarkerAMD"
-               vkCmdWriteBufferMarkerAMDSafe ::
-               VkCommandBuffer -- ^ commandBuffer
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD registry at www.khronos.org>
+type HS_vkCmdWriteBufferMarkerAMD =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineStageFlagBits -- ^ pipelineStage
                                ->
-                 VkPipelineStageFlagBits -- ^ pipelineStage
-                                         ->
-                   VkBuffer -- ^ dstBuffer
-                            -> VkDeviceSize -- ^ dstOffset
-                                            -> Word32 -- ^ marker
-                                                      -> IO ()
+         VkBuffer -- ^ dstBuffer
+                  -> VkDeviceSize -- ^ dstOffset
+                                  -> Word32 -- ^ marker
+                                            -> IO ()
+
+type PFN_vkCmdWriteBufferMarkerAMD =
+     FunPtr HS_vkCmdWriteBufferMarkerAMD
+
+foreign import ccall "dynamic" unwrapVkCmdWriteBufferMarkerAMD ::
+               PFN_vkCmdWriteBufferMarkerAMD -> HS_vkCmdWriteBufferMarkerAMD
+
+instance VulkanProc "vkCmdWriteBufferMarkerAMD" where
+        type VkProcType "vkCmdWriteBufferMarkerAMD" =
+             HS_vkCmdWriteBufferMarkerAMD
+        vkProcSymbol = _VkCmdWriteBufferMarkerAMD
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdWriteBufferMarkerAMD
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_AMD_BUFFER_MARKER_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_draw_indirect_count.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_AMD_draw_indirect_count
        (-- * Vulkan extension: @VK_AMD_draw_indirect_count@
@@ -18,9 +21,12 @@
         -- type: @device@
         --
         -- Extension number: @34@
-        vkCmdDrawIndirectCountAMD, vkCmdDrawIndirectCountAMDSafe,
-        vkCmdDrawIndexedIndirectCountAMD,
-        vkCmdDrawIndexedIndirectCountAMDSafe,
+        VkCmdDrawIndirectCountAMD, pattern VkCmdDrawIndirectCountAMD,
+        HS_vkCmdDrawIndirectCountAMD, PFN_vkCmdDrawIndirectCountAMD,
+        VkCmdDrawIndexedIndirectCountAMD,
+        pattern VkCmdDrawIndexedIndirectCountAMD,
+        HS_vkCmdDrawIndexedIndirectCountAMD,
+        PFN_vkCmdDrawIndexedIndirectCountAMD,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Handles,
@@ -31,78 +37,36 @@
        where
 import           GHC.Ptr                         (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Handles
 
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndirectCountAMD
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , VkBuffer countBuffer
---   >     , VkDeviceSize countBufferOffset
---   >     , uint32_t maxDrawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndirectCountAMD.html vkCmdDrawIndirectCountAMD registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDrawIndirectCountAMD"
-               vkCmdDrawIndirectCountAMD ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkBuffer -- ^ countBuffer
-                              -> VkDeviceSize -- ^ countBufferOffset
-                                              -> Word32 -- ^ maxDrawCount
-                                                        -> Word32 -- ^ stride
-                                                                  -> IO ()
+pattern VkCmdDrawIndirectCountAMD :: CString
 
--- | queues: 'graphics'.
---
---   renderpass: @inside@
---
---   pipeline: @graphics@
---
---   > () vkCmdDrawIndirectCountAMD
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkBuffer buffer
---   >     , VkDeviceSize offset
---   >     , VkBuffer countBuffer
---   >     , VkDeviceSize countBufferOffset
---   >     , uint32_t maxDrawCount
---   >     , uint32_t stride
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndirectCountAMD.html vkCmdDrawIndirectCountAMD registry at www.khronos.org>
-foreign import ccall safe "vkCmdDrawIndirectCountAMD"
-               vkCmdDrawIndirectCountAMDSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkBuffer -- ^ countBuffer
-                              -> VkDeviceSize -- ^ countBufferOffset
-                                              -> Word32 -- ^ maxDrawCount
-                                                        -> Word32 -- ^ stride
-                                                                  -> IO ()
+pattern VkCmdDrawIndirectCountAMD <-
+        (is_VkCmdDrawIndirectCountAMD -> True)
+  where VkCmdDrawIndirectCountAMD = _VkCmdDrawIndirectCountAMD
 
--- | queues: 'graphics'.
+{-# INLINE _VkCmdDrawIndirectCountAMD #-}
+
+_VkCmdDrawIndirectCountAMD :: CString
+_VkCmdDrawIndirectCountAMD = Ptr "vkCmdDrawIndirectCountAMD\NUL"#
+
+{-# INLINE is_VkCmdDrawIndirectCountAMD #-}
+
+is_VkCmdDrawIndirectCountAMD :: CString -> Bool
+is_VkCmdDrawIndirectCountAMD
+  = (EQ ==) . cmpCStrings _VkCmdDrawIndirectCountAMD
+
+type VkCmdDrawIndirectCountAMD = "vkCmdDrawIndirectCountAMD"
+
+-- | Queues: 'graphics'.
 --
---   renderpass: @inside@
+--   Renderpass: @inside@
 --
---   pipeline: @graphics@
+--   Pipeline: @graphics@
 --
---   > () vkCmdDrawIndexedIndirectCountAMD
+--   > void vkCmdDrawIndirectCountAMD
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , VkBuffer buffer
 --   >     , VkDeviceSize offset
@@ -112,28 +76,65 @@
 --   >     , uint32_t stride
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexedIndirectCountAMD.html vkCmdDrawIndexedIndirectCountAMD registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDrawIndexedIndirectCountAMD"
-               vkCmdDrawIndexedIndirectCountAMD ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkBuffer -- ^ countBuffer
-                              -> VkDeviceSize -- ^ countBufferOffset
-                                              -> Word32 -- ^ maxDrawCount
-                                                        -> Word32 -- ^ stride
-                                                                  -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD registry at www.khronos.org>
+type HS_vkCmdDrawIndirectCountAMD =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ buffer
+                ->
+         VkDeviceSize -- ^ offset
+                      ->
+           VkBuffer -- ^ countBuffer
+                    -> VkDeviceSize -- ^ countBufferOffset
+                                    -> Word32 -- ^ maxDrawCount
+                                              -> Word32 -- ^ stride
+                                                        -> IO ()
 
--- | queues: 'graphics'.
+type PFN_vkCmdDrawIndirectCountAMD =
+     FunPtr HS_vkCmdDrawIndirectCountAMD
+
+foreign import ccall "dynamic" unwrapVkCmdDrawIndirectCountAMD ::
+               PFN_vkCmdDrawIndirectCountAMD -> HS_vkCmdDrawIndirectCountAMD
+
+instance VulkanProc "vkCmdDrawIndirectCountAMD" where
+        type VkProcType "vkCmdDrawIndirectCountAMD" =
+             HS_vkCmdDrawIndirectCountAMD
+        vkProcSymbol = _VkCmdDrawIndirectCountAMD
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDrawIndirectCountAMD
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDrawIndexedIndirectCountAMD :: CString
+
+pattern VkCmdDrawIndexedIndirectCountAMD <-
+        (is_VkCmdDrawIndexedIndirectCountAMD -> True)
+  where VkCmdDrawIndexedIndirectCountAMD
+          = _VkCmdDrawIndexedIndirectCountAMD
+
+{-# INLINE _VkCmdDrawIndexedIndirectCountAMD #-}
+
+_VkCmdDrawIndexedIndirectCountAMD :: CString
+_VkCmdDrawIndexedIndirectCountAMD
+  = Ptr "vkCmdDrawIndexedIndirectCountAMD\NUL"#
+
+{-# INLINE is_VkCmdDrawIndexedIndirectCountAMD #-}
+
+is_VkCmdDrawIndexedIndirectCountAMD :: CString -> Bool
+is_VkCmdDrawIndexedIndirectCountAMD
+  = (EQ ==) . cmpCStrings _VkCmdDrawIndexedIndirectCountAMD
+
+type VkCmdDrawIndexedIndirectCountAMD =
+     "vkCmdDrawIndexedIndirectCountAMD"
+
+-- | Queues: 'graphics'.
 --
---   renderpass: @inside@
+--   Renderpass: @inside@
 --
---   pipeline: @graphics@
+--   Pipeline: @graphics@
 --
---   > () vkCmdDrawIndexedIndirectCountAMD
+--   > void vkCmdDrawIndexedIndirectCountAMD
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , VkBuffer buffer
 --   >     , VkDeviceSize offset
@@ -143,20 +144,37 @@
 --   >     , uint32_t stride
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDrawIndexedIndirectCountAMD.html vkCmdDrawIndexedIndirectCountAMD registry at www.khronos.org>
-foreign import ccall safe "vkCmdDrawIndexedIndirectCountAMD"
-               vkCmdDrawIndexedIndirectCountAMDSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkBuffer -- ^ buffer
-                          ->
-                   VkDeviceSize -- ^ offset
-                                ->
-                     VkBuffer -- ^ countBuffer
-                              -> VkDeviceSize -- ^ countBufferOffset
-                                              -> Word32 -- ^ maxDrawCount
-                                                        -> Word32 -- ^ stride
-                                                                  -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD registry at www.khronos.org>
+type HS_vkCmdDrawIndexedIndirectCountAMD =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkBuffer -- ^ buffer
+                ->
+         VkDeviceSize -- ^ offset
+                      ->
+           VkBuffer -- ^ countBuffer
+                    -> VkDeviceSize -- ^ countBufferOffset
+                                    -> Word32 -- ^ maxDrawCount
+                                              -> Word32 -- ^ stride
+                                                        -> IO ()
+
+type PFN_vkCmdDrawIndexedIndirectCountAMD =
+     FunPtr HS_vkCmdDrawIndexedIndirectCountAMD
+
+foreign import ccall "dynamic"
+               unwrapVkCmdDrawIndexedIndirectCountAMD ::
+               PFN_vkCmdDrawIndexedIndirectCountAMD ->
+                 HS_vkCmdDrawIndexedIndirectCountAMD
+
+instance VulkanProc "vkCmdDrawIndexedIndirectCountAMD" where
+        type VkProcType "vkCmdDrawIndexedIndirectCountAMD" =
+             HS_vkCmdDrawIndexedIndirectCountAMD
+        vkProcSymbol = _VkCmdDrawIndexedIndirectCountAMD
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDrawIndexedIndirectCountAMD
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_rasterization_order.hs
@@ -18,14 +18,13 @@
         --
         -- Extension number: @19@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkCullModeFlags,
-        module Graphics.Vulkan.Types.Enum.VkFrontFace,
+        module Graphics.Vulkan.Types.Enum.CullModeFlags,
+        module Graphics.Vulkan.Types.Enum.FrontFace,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateRasterizationOrderAMD,
-        module Graphics.Vulkan.Types.Enum.VkPolygonMode,
-        module Graphics.Vulkan.Types.Enum.VkRasterizationOrderAMD,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.PolygonMode,
+        module Graphics.Vulkan.Types.Enum.RasterizationOrderAMD,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION,
         pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION,
@@ -33,18 +32,16 @@
         pattern VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD)
        where
-import           GHC.Ptr
-                                                                                                 (Ptr (..))
+import           GHC.Ptr                                          (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkCullModeFlags
-import           Graphics.Vulkan.Types.Enum.VkFrontFace
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode
-import           Graphics.Vulkan.Types.Enum.VkRasterizationOrderAMD
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateRasterizationOrderAMD
+import           Graphics.Vulkan.Types.Enum.CullModeFlags
+import           Graphics.Vulkan.Types.Enum.FrontFace
+import           Graphics.Vulkan.Types.Enum.PolygonMode
+import           Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Pipeline
 
 pattern VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_core_properties.hs
@@ -0,0 +1,80 @@
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE DataKinds       #-}
+{-# LANGUAGE MagicHash       #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE Strict          #-}
+{-# LANGUAGE ViewPatterns    #-}
+module Graphics.Vulkan.Ext.VK_AMD_shader_core_properties
+       (-- * Vulkan extension: @VK_AMD_shader_core_properties@
+        -- |
+        --
+        -- supported: @vulkan@
+        --
+        -- contact: @Martin Dinkov @mdinkov@
+        --
+        -- author: @AMD@
+        --
+        -- type: @device@
+        --
+        -- Extension number: @186@
+        --
+        -- Required extensions: 'VK_KHR_get_physical_device_properties2'.
+        --
+
+        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        -- > #include "vk_platform.h"
+        VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION,
+        pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION,
+        VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME,
+        pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD)
+       where
+import           GHC.Ptr                                       (Ptr (..))
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+
+pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION ::
+        (Num a, Eq a) => a
+
+pattern VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 1
+
+type VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION = 1
+
+pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: CString
+
+pattern VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME <-
+        (is_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME -> True)
+  where VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME
+          = _VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME
+
+{-# INLINE _VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME #-}
+
+_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: CString
+_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME
+  = Ptr "VK_AMD_shader_core_properties\NUL"#
+
+{-# INLINE is_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME #-}
+
+is_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME :: CString -> Bool
+is_VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME
+  = (EQ ==) .
+      cmpCStrings _VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME
+
+type VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME =
+     "VK_AMD_shader_core_properties"
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
+        = VkStructureType 1000185000
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_shader_info.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_AMD_shader_info
        (-- * Vulkan extension: @VK_AMD_shader_info@
@@ -21,56 +24,43 @@
         -- Extension number: @43@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkShaderInfoTypeAMD,
-        module Graphics.Vulkan.Types.Struct.VkShaderResourceUsageAMD,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Struct.VkShaderStatisticsInfoAMD,
-        -- > #include "vk_platform.h"
-        vkGetShaderInfoAMD, vkGetShaderInfoAMDSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Struct.Shader, -- > #include "vk_platform.h"
+                                                    VkGetShaderInfoAMD,
+        pattern VkGetShaderInfoAMD, HS_vkGetShaderInfoAMD,
+        PFN_vkGetShaderInfoAMD, module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_AMD_SHADER_INFO_SPEC_VERSION,
         pattern VK_AMD_SHADER_INFO_SPEC_VERSION,
         VK_AMD_SHADER_INFO_EXTENSION_NAME,
         pattern VK_AMD_SHADER_INFO_EXTENSION_NAME)
        where
-import           GHC.Ptr                                                (Ptr (..))
+import           GHC.Ptr                             (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc        (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkShaderInfoTypeAMD
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.Shader
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkShaderResourceUsageAMD
-import           Graphics.Vulkan.Types.Struct.VkShaderStatisticsInfoAMD
+import           Graphics.Vulkan.Types.Struct.Shader
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetShaderInfoAMD
---   >     ( VkDevice device
---   >     , VkPipeline pipeline
---   >     , VkShaderStageFlagBits shaderStage
---   >     , VkShaderInfoTypeAMD infoType
---   >     , size_t* pInfoSize
---   >     , void* pInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetShaderInfoAMD.html vkGetShaderInfoAMD registry at www.khronos.org>
-foreign import ccall unsafe "vkGetShaderInfoAMD" vkGetShaderInfoAMD
-               ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipeline -- ^ pipeline
-                            ->
-                   VkShaderStageFlagBits -- ^ shaderStage
-                                         ->
-                     VkShaderInfoTypeAMD -- ^ infoType
-                                         -> Ptr CSize -- ^ pInfoSize
-                                                      -> Ptr Void -- ^ pInfo
-                                                                  -> IO VkResult
+pattern VkGetShaderInfoAMD :: CString
 
+pattern VkGetShaderInfoAMD <- (is_VkGetShaderInfoAMD -> True)
+  where VkGetShaderInfoAMD = _VkGetShaderInfoAMD
+
+{-# INLINE _VkGetShaderInfoAMD #-}
+
+_VkGetShaderInfoAMD :: CString
+_VkGetShaderInfoAMD = Ptr "vkGetShaderInfoAMD\NUL"#
+
+{-# INLINE is_VkGetShaderInfoAMD #-}
+
+is_VkGetShaderInfoAMD :: CString -> Bool
+is_VkGetShaderInfoAMD = (EQ ==) . cmpCStrings _VkGetShaderInfoAMD
+
+type VkGetShaderInfoAMD = "vkGetShaderInfoAMD"
+
 -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
 --   Error codes: 'VK_ERROR_FEATURE_NOT_PRESENT', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -84,19 +74,32 @@
 --   >     , void* pInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetShaderInfoAMD.html vkGetShaderInfoAMD registry at www.khronos.org>
-foreign import ccall safe "vkGetShaderInfoAMD"
-               vkGetShaderInfoAMDSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkPipeline -- ^ pipeline
-                            ->
-                   VkShaderStageFlagBits -- ^ shaderStage
-                                         ->
-                     VkShaderInfoTypeAMD -- ^ infoType
-                                         -> Ptr CSize -- ^ pInfoSize
-                                                      -> Ptr Void -- ^ pInfo
-                                                                  -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetShaderInfoAMD vkGetShaderInfoAMD registry at www.khronos.org>
+type HS_vkGetShaderInfoAMD =
+     VkDevice -- ^ device
+              ->
+       VkPipeline -- ^ pipeline
+                  ->
+         VkShaderStageFlagBits -- ^ shaderStage
+                               ->
+           VkShaderInfoTypeAMD -- ^ infoType
+                               -> Ptr CSize -- ^ pInfoSize
+                                            -> Ptr Void -- ^ pInfo
+                                                        -> IO VkResult
+
+type PFN_vkGetShaderInfoAMD = FunPtr HS_vkGetShaderInfoAMD
+
+foreign import ccall "dynamic" unwrapVkGetShaderInfoAMD ::
+               PFN_vkGetShaderInfoAMD -> HS_vkGetShaderInfoAMD
+
+instance VulkanProc "vkGetShaderInfoAMD" where
+        type VkProcType "vkGetShaderInfoAMD" = HS_vkGetShaderInfoAMD
+        vkProcSymbol = _VkGetShaderInfoAMD
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetShaderInfoAMD
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_AMD_SHADER_INFO_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs b/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_AMD_texture_gather_bias_lod.hs
@@ -23,12 +23,11 @@
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkTextureLODGatherFormatPropertiesAMD,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD,
         -- > #include "vk_platform.h"
         VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION,
         pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION,
@@ -37,15 +36,14 @@
         pattern VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD)
        where
 import           GHC.Ptr
-                                                                                     (Ptr (..))
+                                                                                   (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkTextureLODGatherFormatPropertiesAMD
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
 
 pattern VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION ::
         (Num a, Eq a) => a
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
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_ANDROID_external_memory_android_hardware_buffer
        (-- * Vulkan extension: @VK_ANDROID_external_memory_android_hardware_buffer@
@@ -21,46 +24,37 @@
         --
         -- Extension number: @130@
         --
-        -- Required extensions: 'VK_KHR_sampler_ycbcr_conversion', 'VK_KHR_external_memory'.
+        -- Required extensions: 'VK_KHR_sampler_ycbcr_conversion', 'VK_KHR_external_memory', 'VK_EXT_queue_family_foreign'.
         --
 
-        -- ** Required extensions: 'VK_KHR_sampler_ycbcr_conversion', 'VK_KHR_external_memory'.
-        module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferFormatPropertiesANDROID,
-        module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferPropertiesANDROID,
-        module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferUsageANDROID,
+        -- ** Required extensions: 'VK_KHR_sampler_ycbcr_conversion', 'VK_KHR_external_memory', 'VK_EXT_queue_family_foreign'.
+        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkChromaLocation,
-        module Graphics.Vulkan.Types.Struct.VkComponentMapping,
-        module Graphics.Vulkan.Types.Enum.VkComponentSwizzle,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkExternalFormatANDROID,
-        module Graphics.Vulkan.Types.Enum.VkFilter,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkImportAndroidHardwareBufferInfoANDROID,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryGetAndroidHardwareBufferInfoANDROID,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.ChromaLocation,
+        module Graphics.Vulkan.Types.Struct.ComponentMapping,
+        module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Filter,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Struct.Sampler,
+        module Graphics.Vulkan.Types.Enum.Sampler,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetAndroidHardwareBufferPropertiesANDROID,
-        vkGetAndroidHardwareBufferPropertiesANDROIDSafe,
-        vkGetMemoryAndroidHardwareBufferANDROID,
-        vkGetMemoryAndroidHardwareBufferANDROIDSafe,
+        VkGetAndroidHardwareBufferPropertiesANDROID,
+        pattern VkGetAndroidHardwareBufferPropertiesANDROID,
+        HS_vkGetAndroidHardwareBufferPropertiesANDROID,
+        PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
+        VkGetMemoryAndroidHardwareBufferANDROID,
+        pattern VkGetMemoryAndroidHardwareBufferANDROID,
+        HS_vkGetMemoryAndroidHardwareBufferANDROID,
+        PFN_vkGetMemoryAndroidHardwareBufferANDROID,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION,
         pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION,
@@ -74,67 +68,54 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
         pattern VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID)
        where
-import           GHC.Ptr
-                                                                                              (Ptr (..))
+import           GHC.Ptr                                         (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Defines
-                                                                                              (AHardwareBuffer)
-import           Graphics.Vulkan.Types.Enum.VkChromaLocation
-import           Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-                                                                                              (VkExternalMemoryHandleTypeBitmask (..),
-                                                                                              VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkFilter
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Defines                   (AHardwareBuffer)
+import           Graphics.Vulkan.Types.Enum.ChromaLocation
+import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import           Graphics.Vulkan.Types.Enum.External             (VkExternalMemoryHandleTypeBitmask (..),
+                                                                  VkExternalMemoryHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Filter
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Sampler
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferFormatPropertiesANDROID
-import           Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferPropertiesANDROID
-import           Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferUsageANDROID
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkExternalFormatANDROID
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkImportAndroidHardwareBufferInfoANDROID
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryGetAndroidHardwareBufferInfoANDROID
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo
+import           Graphics.Vulkan.Types.Struct.ComponentMapping
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
+import           Graphics.Vulkan.Types.Struct.Sampler
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR'.
---
---   > VkResult vkGetAndroidHardwareBufferPropertiesANDROID
---   >     ( VkDevice device
---   >     , const struct AHardwareBuffer* buffer
---   >     , VkAndroidHardwareBufferPropertiesANDROID* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html vkGetAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetAndroidHardwareBufferPropertiesANDROID"
-               vkGetAndroidHardwareBufferPropertiesANDROID ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr AHardwareBuffer -- ^ buffer
-                                     ->
-                   Ptr VkAndroidHardwareBufferPropertiesANDROID -- ^ pProperties
-                                                                -> IO VkResult
+pattern VkGetAndroidHardwareBufferPropertiesANDROID :: CString
 
+pattern VkGetAndroidHardwareBufferPropertiesANDROID <-
+        (is_VkGetAndroidHardwareBufferPropertiesANDROID -> True)
+  where VkGetAndroidHardwareBufferPropertiesANDROID
+          = _VkGetAndroidHardwareBufferPropertiesANDROID
+
+{-# INLINE _VkGetAndroidHardwareBufferPropertiesANDROID #-}
+
+_VkGetAndroidHardwareBufferPropertiesANDROID :: CString
+_VkGetAndroidHardwareBufferPropertiesANDROID
+  = Ptr "vkGetAndroidHardwareBufferPropertiesANDROID\NUL"#
+
+{-# INLINE is_VkGetAndroidHardwareBufferPropertiesANDROID #-}
+
+is_VkGetAndroidHardwareBufferPropertiesANDROID :: CString -> Bool
+is_VkGetAndroidHardwareBufferPropertiesANDROID
+  = (EQ ==) .
+      cmpCStrings _VkGetAndroidHardwareBufferPropertiesANDROID
+
+type VkGetAndroidHardwareBufferPropertiesANDROID =
+     "vkGetAndroidHardwareBufferPropertiesANDROID"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR'.
@@ -145,38 +126,56 @@
 --   >     , VkAndroidHardwareBufferPropertiesANDROID* pProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html vkGetAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetAndroidHardwareBufferPropertiesANDROID"
-               vkGetAndroidHardwareBufferPropertiesANDROIDSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr AHardwareBuffer -- ^ buffer
-                                     ->
-                   Ptr VkAndroidHardwareBufferPropertiesANDROID -- ^ pProperties
-                                                                -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
+type HS_vkGetAndroidHardwareBufferPropertiesANDROID =
+     VkDevice -- ^ device
+              ->
+       Ptr AHardwareBuffer -- ^ buffer
+                           ->
+         Ptr VkAndroidHardwareBufferPropertiesANDROID -- ^ pProperties
+                                                      -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetMemoryAndroidHardwareBufferANDROID
---   >     ( VkDevice device
---   >     , const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo
---   >     , struct AHardwareBuffer** pBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html vkGetMemoryAndroidHardwareBufferANDROID registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetMemoryAndroidHardwareBufferANDROID"
-               vkGetMemoryAndroidHardwareBufferANDROID ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryGetAndroidHardwareBufferInfoANDROID -- ^ pInfo
-                                                                 ->
-                   Ptr (Ptr AHardwareBuffer) -- ^ pBuffer
-                                             -> IO VkResult
+type PFN_vkGetAndroidHardwareBufferPropertiesANDROID =
+     FunPtr HS_vkGetAndroidHardwareBufferPropertiesANDROID
 
+foreign import ccall "dynamic"
+               unwrapVkGetAndroidHardwareBufferPropertiesANDROID ::
+               PFN_vkGetAndroidHardwareBufferPropertiesANDROID ->
+                 HS_vkGetAndroidHardwareBufferPropertiesANDROID
+
+instance VulkanProc "vkGetAndroidHardwareBufferPropertiesANDROID"
+         where
+        type VkProcType "vkGetAndroidHardwareBufferPropertiesANDROID" =
+             HS_vkGetAndroidHardwareBufferPropertiesANDROID
+        vkProcSymbol = _VkGetAndroidHardwareBufferPropertiesANDROID
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetAndroidHardwareBufferPropertiesANDROID
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetMemoryAndroidHardwareBufferANDROID :: CString
+
+pattern VkGetMemoryAndroidHardwareBufferANDROID <-
+        (is_VkGetMemoryAndroidHardwareBufferANDROID -> True)
+  where VkGetMemoryAndroidHardwareBufferANDROID
+          = _VkGetMemoryAndroidHardwareBufferANDROID
+
+{-# INLINE _VkGetMemoryAndroidHardwareBufferANDROID #-}
+
+_VkGetMemoryAndroidHardwareBufferANDROID :: CString
+_VkGetMemoryAndroidHardwareBufferANDROID
+  = Ptr "vkGetMemoryAndroidHardwareBufferANDROID\NUL"#
+
+{-# INLINE is_VkGetMemoryAndroidHardwareBufferANDROID #-}
+
+is_VkGetMemoryAndroidHardwareBufferANDROID :: CString -> Bool
+is_VkGetMemoryAndroidHardwareBufferANDROID
+  = (EQ ==) . cmpCStrings _VkGetMemoryAndroidHardwareBufferANDROID
+
+type VkGetMemoryAndroidHardwareBufferANDROID =
+     "vkGetMemoryAndroidHardwareBufferANDROID"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -187,15 +186,32 @@
 --   >     , struct AHardwareBuffer** pBuffer
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html vkGetMemoryAndroidHardwareBufferANDROID registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryAndroidHardwareBufferANDROID"
-               vkGetMemoryAndroidHardwareBufferANDROIDSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryGetAndroidHardwareBufferInfoANDROID -- ^ pInfo
-                                                                 ->
-                   Ptr (Ptr AHardwareBuffer) -- ^ pBuffer
-                                             -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID registry at www.khronos.org>
+type HS_vkGetMemoryAndroidHardwareBufferANDROID =
+     VkDevice -- ^ device
+              ->
+       Ptr VkMemoryGetAndroidHardwareBufferInfoANDROID -- ^ pInfo
+                                                       ->
+         Ptr (Ptr AHardwareBuffer) -- ^ pBuffer
+                                   -> IO VkResult
+
+type PFN_vkGetMemoryAndroidHardwareBufferANDROID =
+     FunPtr HS_vkGetMemoryAndroidHardwareBufferANDROID
+
+foreign import ccall "dynamic"
+               unwrapVkGetMemoryAndroidHardwareBufferANDROID ::
+               PFN_vkGetMemoryAndroidHardwareBufferANDROID ->
+                 HS_vkGetMemoryAndroidHardwareBufferANDROID
+
+instance VulkanProc "vkGetMemoryAndroidHardwareBufferANDROID" where
+        type VkProcType "vkGetMemoryAndroidHardwareBufferANDROID" =
+             HS_vkGetMemoryAndroidHardwareBufferANDROID
+        vkProcSymbol = _VkGetMemoryAndroidHardwareBufferANDROID
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryAndroidHardwareBufferANDROID
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION
         :: (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_acquire_xlib_display.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_acquire_xlib_display
        (-- * Vulkan extension: @VK_EXT_acquire_xlib_display@
@@ -25,39 +28,43 @@
         --
 
         -- ** Required extensions: 'VK_EXT_direct_mode_display'.
-        vkAcquireXlibDisplayEXT, vkAcquireXlibDisplayEXTSafe,
-        vkGetRandROutputDisplayEXT, vkGetRandROutputDisplayEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkAcquireXlibDisplayEXT, pattern VkAcquireXlibDisplayEXT,
+        HS_vkAcquireXlibDisplayEXT, PFN_vkAcquireXlibDisplayEXT,
+        VkGetRandROutputDisplayEXT, pattern VkGetRandROutputDisplayEXT,
+        HS_vkGetRandROutputDisplayEXT, PFN_vkGetRandROutputDisplayEXT,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION,
         pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION,
         VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
         pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)
        where
-import           GHC.Ptr                             (Ptr (..))
+import           GHC.Ptr                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkResult
+import           Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
+import           Graphics.Vulkan.Types.Enum.Result
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include       (Display, RROutput)
+import           Graphics.Vulkan.Types.Include     (Display, RROutput)
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkAcquireXlibDisplayEXT
---   >     ( VkPhysicalDevice physicalDevice
---   >     , Display* dpy
---   >     , VkDisplayKHR display
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireXlibDisplayEXT.html vkAcquireXlibDisplayEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkAcquireXlibDisplayEXT"
-               vkAcquireXlibDisplayEXT ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr Display -- ^ dpy
-                                               -> VkDisplayKHR -- ^ display
-                                                               -> IO VkResult
+pattern VkAcquireXlibDisplayEXT :: CString
 
+pattern VkAcquireXlibDisplayEXT <-
+        (is_VkAcquireXlibDisplayEXT -> True)
+  where VkAcquireXlibDisplayEXT = _VkAcquireXlibDisplayEXT
+
+{-# INLINE _VkAcquireXlibDisplayEXT #-}
+
+_VkAcquireXlibDisplayEXT :: CString
+_VkAcquireXlibDisplayEXT = Ptr "vkAcquireXlibDisplayEXT\NUL"#
+
+{-# INLINE is_VkAcquireXlibDisplayEXT #-}
+
+is_VkAcquireXlibDisplayEXT :: CString -> Bool
+is_VkAcquireXlibDisplayEXT
+  = (EQ ==) . cmpCStrings _VkAcquireXlibDisplayEXT
+
+type VkAcquireXlibDisplayEXT = "vkAcquireXlibDisplayEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_INITIALIZATION_FAILED'.
@@ -68,33 +75,48 @@
 --   >     , VkDisplayKHR display
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireXlibDisplayEXT.html vkAcquireXlibDisplayEXT registry at www.khronos.org>
-foreign import ccall safe "vkAcquireXlibDisplayEXT"
-               vkAcquireXlibDisplayEXTSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr Display -- ^ dpy
-                                               -> VkDisplayKHR -- ^ display
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT registry at www.khronos.org>
+type HS_vkAcquireXlibDisplayEXT =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr Display -- ^ dpy
+                                     -> VkDisplayKHR -- ^ display
+                                                     -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkGetRandROutputDisplayEXT
---   >     ( VkPhysicalDevice physicalDevice
---   >     , Display* dpy
---   >     , RROutput rrOutput
---   >     , VkDisplayKHR* pDisplay
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRandROutputDisplayEXT.html vkGetRandROutputDisplayEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkGetRandROutputDisplayEXT"
-               vkGetRandROutputDisplayEXT ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Display -- ^ dpy
-                             -> RROutput -- ^ rrOutput
-                                         -> Ptr VkDisplayKHR -- ^ pDisplay
-                                                             -> IO VkResult
+type PFN_vkAcquireXlibDisplayEXT =
+     FunPtr HS_vkAcquireXlibDisplayEXT
 
+foreign import ccall "dynamic" unwrapVkAcquireXlibDisplayEXT ::
+               PFN_vkAcquireXlibDisplayEXT -> HS_vkAcquireXlibDisplayEXT
+
+instance VulkanProc "vkAcquireXlibDisplayEXT" where
+        type VkProcType "vkAcquireXlibDisplayEXT" =
+             HS_vkAcquireXlibDisplayEXT
+        vkProcSymbol = _VkAcquireXlibDisplayEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAcquireXlibDisplayEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetRandROutputDisplayEXT :: CString
+
+pattern VkGetRandROutputDisplayEXT <-
+        (is_VkGetRandROutputDisplayEXT -> True)
+  where VkGetRandROutputDisplayEXT = _VkGetRandROutputDisplayEXT
+
+{-# INLINE _VkGetRandROutputDisplayEXT #-}
+
+_VkGetRandROutputDisplayEXT :: CString
+_VkGetRandROutputDisplayEXT = Ptr "vkGetRandROutputDisplayEXT\NUL"#
+
+{-# INLINE is_VkGetRandROutputDisplayEXT #-}
+
+is_VkGetRandROutputDisplayEXT :: CString -> Bool
+is_VkGetRandROutputDisplayEXT
+  = (EQ ==) . cmpCStrings _VkGetRandROutputDisplayEXT
+
+type VkGetRandROutputDisplayEXT = "vkGetRandROutputDisplayEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   > VkResult vkGetRandROutputDisplayEXT
@@ -104,15 +126,30 @@
 --   >     , VkDisplayKHR* pDisplay
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRandROutputDisplayEXT.html vkGetRandROutputDisplayEXT registry at www.khronos.org>
-foreign import ccall safe "vkGetRandROutputDisplayEXT"
-               vkGetRandROutputDisplayEXTSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Display -- ^ dpy
-                             -> RROutput -- ^ rrOutput
-                                         -> Ptr VkDisplayKHR -- ^ pDisplay
-                                                             -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT registry at www.khronos.org>
+type HS_vkGetRandROutputDisplayEXT =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Display -- ^ dpy
+                   -> RROutput -- ^ rrOutput
+                               -> Ptr VkDisplayKHR -- ^ pDisplay
+                                                   -> IO VkResult
+
+type PFN_vkGetRandROutputDisplayEXT =
+     FunPtr HS_vkGetRandROutputDisplayEXT
+
+foreign import ccall "dynamic" unwrapVkGetRandROutputDisplayEXT ::
+               PFN_vkGetRandROutputDisplayEXT -> HS_vkGetRandROutputDisplayEXT
+
+instance VulkanProc "vkGetRandROutputDisplayEXT" where
+        type VkProcType "vkGetRandROutputDisplayEXT" =
+             HS_vkGetRandROutputDisplayEXT
+        vkProcSymbol = _VkGetRandROutputDisplayEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetRandROutputDisplayEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION ::
         (Num a, Eq a) => a
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
@@ -18,30 +18,19 @@
         --
         -- Extension number: @149@
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkBlendFactor,
-        module Graphics.Vulkan.Types.Enum.VkBlendOp,
-        module Graphics.Vulkan.Types.Enum.VkBlendOverlapEXT,
+        module Graphics.Vulkan.Types.Enum.Blend,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkColorComponentFlags,
+        module Graphics.Vulkan.Types.Enum.Color,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkLogicOp,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAdvancedStateCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Enum.LogicOp,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION,
         pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION,
@@ -84,36 +73,23 @@
         pattern VK_BLEND_OP_GREEN_EXT, pattern VK_BLEND_OP_BLUE_EXT,
         pattern VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT)
        where
-import           GHC.Ptr
-                                                                                                   (Ptr (..))
+import           GHC.Ptr                                             (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags
-                                                                                                   (VkAccessBitmask (..),
-                                                                                                   VkAccessFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkBlendFactor
-import           Graphics.Vulkan.Types.Enum.VkBlendOp
-import           Graphics.Vulkan.Types.Enum.VkBlendOverlapEXT
-import           Graphics.Vulkan.Types.Enum.VkColorComponentFlags
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkLogicOp
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAdvancedStateCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
+import           Graphics.Vulkan.Types.Enum.AccessFlags              (VkAccessBitmask (..),
+                                                                      VkAccessFlagBits)
+import           Graphics.Vulkan.Types.Enum.Blend
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.LogicOp
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import           Graphics.Vulkan.Types.Struct.Pipeline
 
 pattern VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_conservative_rasterization.hs
@@ -24,21 +24,16 @@
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkConservativeRasterizationModeEXT,
-        module Graphics.Vulkan.Types.Enum.VkCullModeFlags,
-        module Graphics.Vulkan.Types.Enum.VkFrontFace,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceConservativeRasterizationPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT,
+        module Graphics.Vulkan.Types.Enum.CullModeFlags,
+        module Graphics.Vulkan.Types.Enum.FrontFace,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationConservativeStateCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkPolygonMode,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.PolygonMode,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION,
         pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION,
@@ -47,25 +42,19 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
         pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT)
        where
-import           GHC.Ptr
-                                                                                                      (Ptr (..))
+import           GHC.Ptr                                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkConservativeRasterizationModeEXT
-import           Graphics.Vulkan.Types.Enum.VkCullModeFlags
-import           Graphics.Vulkan.Types.Enum.VkFrontFace
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationConservativeStateCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
+import           Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
+import           Graphics.Vulkan.Types.Enum.CullModeFlags
+import           Graphics.Vulkan.Types.Enum.FrontFace
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.PolygonMode
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Pipeline
 
 pattern VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_marker.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_debug_marker
        (-- * Vulkan extension: @VK_EXT_debug_marker@
@@ -24,18 +27,23 @@
 
         -- ** Required extensions: 'VK_EXT_debug_report'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.VkDebugMarkerMarkerInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectNameInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectTagInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Types.Enum.Debug,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkDebugMarkerSetObjectTagEXT, vkDebugMarkerSetObjectTagEXTSafe,
-        vkDebugMarkerSetObjectNameEXT, vkDebugMarkerSetObjectNameEXTSafe,
-        vkCmdDebugMarkerBeginEXT, vkCmdDebugMarkerBeginEXTSafe,
-        vkCmdDebugMarkerEndEXT, vkCmdDebugMarkerEndEXTSafe,
-        vkCmdDebugMarkerInsertEXT, vkCmdDebugMarkerInsertEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkDebugMarkerSetObjectTagEXT, pattern VkDebugMarkerSetObjectTagEXT,
+        HS_vkDebugMarkerSetObjectTagEXT, PFN_vkDebugMarkerSetObjectTagEXT,
+        VkDebugMarkerSetObjectNameEXT,
+        pattern VkDebugMarkerSetObjectNameEXT,
+        HS_vkDebugMarkerSetObjectNameEXT,
+        PFN_vkDebugMarkerSetObjectNameEXT, VkCmdDebugMarkerBeginEXT,
+        pattern VkCmdDebugMarkerBeginEXT, HS_vkCmdDebugMarkerBeginEXT,
+        PFN_vkCmdDebugMarkerBeginEXT, VkCmdDebugMarkerEndEXT,
+        pattern VkCmdDebugMarkerEndEXT, HS_vkCmdDebugMarkerEndEXT,
+        PFN_vkCmdDebugMarkerEndEXT, VkCmdDebugMarkerInsertEXT,
+        pattern VkCmdDebugMarkerInsertEXT, HS_vkCmdDebugMarkerInsertEXT,
+        PFN_vkCmdDebugMarkerInsertEXT,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_DEBUG_MARKER_SPEC_VERSION,
         pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION,
@@ -45,32 +53,35 @@
         pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
         pattern VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT)
        where
-import           GHC.Ptr                                                     (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
+import           Graphics.Vulkan.Types.Enum.Debug
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkDebugMarkerMarkerInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectNameInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectTagInfoEXT
+import           Graphics.Vulkan.Types.Struct.Debug
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkDebugMarkerSetObjectTagEXT
---   >     ( VkDevice device
---   >     , const VkDebugMarkerObjectTagInfoEXT* pTagInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugMarkerSetObjectTagEXT.html vkDebugMarkerSetObjectTagEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDebugMarkerSetObjectTagEXT"
-               vkDebugMarkerSetObjectTagEXT ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugMarkerObjectTagInfoEXT -- ^ pTagInfo
-                                                             -> IO VkResult
+pattern VkDebugMarkerSetObjectTagEXT :: CString
 
+pattern VkDebugMarkerSetObjectTagEXT <-
+        (is_VkDebugMarkerSetObjectTagEXT -> True)
+  where VkDebugMarkerSetObjectTagEXT = _VkDebugMarkerSetObjectTagEXT
+
+{-# INLINE _VkDebugMarkerSetObjectTagEXT #-}
+
+_VkDebugMarkerSetObjectTagEXT :: CString
+_VkDebugMarkerSetObjectTagEXT
+  = Ptr "vkDebugMarkerSetObjectTagEXT\NUL"#
+
+{-# INLINE is_VkDebugMarkerSetObjectTagEXT #-}
+
+is_VkDebugMarkerSetObjectTagEXT :: CString -> Bool
+is_VkDebugMarkerSetObjectTagEXT
+  = (EQ ==) . cmpCStrings _VkDebugMarkerSetObjectTagEXT
+
+type VkDebugMarkerSetObjectTagEXT = "vkDebugMarkerSetObjectTagEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -80,29 +91,51 @@
 --   >     , const VkDebugMarkerObjectTagInfoEXT* pTagInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugMarkerSetObjectTagEXT.html vkDebugMarkerSetObjectTagEXT registry at www.khronos.org>
-foreign import ccall safe "vkDebugMarkerSetObjectTagEXT"
-               vkDebugMarkerSetObjectTagEXTSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugMarkerObjectTagInfoEXT -- ^ pTagInfo
-                                                             -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT registry at www.khronos.org>
+type HS_vkDebugMarkerSetObjectTagEXT =
+     VkDevice -- ^ device
+              -> Ptr VkDebugMarkerObjectTagInfoEXT -- ^ pTagInfo
+                                                   -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkDebugMarkerSetObjectNameEXT
---   >     ( VkDevice device
---   >     , const VkDebugMarkerObjectNameInfoEXT* pNameInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugMarkerSetObjectNameEXT.html vkDebugMarkerSetObjectNameEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDebugMarkerSetObjectNameEXT"
-               vkDebugMarkerSetObjectNameEXT ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugMarkerObjectNameInfoEXT -- ^ pNameInfo
-                                                              -> IO VkResult
+type PFN_vkDebugMarkerSetObjectTagEXT =
+     FunPtr HS_vkDebugMarkerSetObjectTagEXT
 
+foreign import ccall "dynamic" unwrapVkDebugMarkerSetObjectTagEXT
+               ::
+               PFN_vkDebugMarkerSetObjectTagEXT -> HS_vkDebugMarkerSetObjectTagEXT
+
+instance VulkanProc "vkDebugMarkerSetObjectTagEXT" where
+        type VkProcType "vkDebugMarkerSetObjectTagEXT" =
+             HS_vkDebugMarkerSetObjectTagEXT
+        vkProcSymbol = _VkDebugMarkerSetObjectTagEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDebugMarkerSetObjectTagEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDebugMarkerSetObjectNameEXT :: CString
+
+pattern VkDebugMarkerSetObjectNameEXT <-
+        (is_VkDebugMarkerSetObjectNameEXT -> True)
+  where VkDebugMarkerSetObjectNameEXT
+          = _VkDebugMarkerSetObjectNameEXT
+
+{-# INLINE _VkDebugMarkerSetObjectNameEXT #-}
+
+_VkDebugMarkerSetObjectNameEXT :: CString
+_VkDebugMarkerSetObjectNameEXT
+  = Ptr "vkDebugMarkerSetObjectNameEXT\NUL"#
+
+{-# INLINE is_VkDebugMarkerSetObjectNameEXT #-}
+
+is_VkDebugMarkerSetObjectNameEXT :: CString -> Bool
+is_VkDebugMarkerSetObjectNameEXT
+  = (EQ ==) . cmpCStrings _VkDebugMarkerSetObjectNameEXT
+
+type VkDebugMarkerSetObjectNameEXT =
+     "vkDebugMarkerSetObjectNameEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -112,102 +145,175 @@
 --   >     , const VkDebugMarkerObjectNameInfoEXT* pNameInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugMarkerSetObjectNameEXT.html vkDebugMarkerSetObjectNameEXT registry at www.khronos.org>
-foreign import ccall safe "vkDebugMarkerSetObjectNameEXT"
-               vkDebugMarkerSetObjectNameEXTSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugMarkerObjectNameInfoEXT -- ^ pNameInfo
-                                                              -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT registry at www.khronos.org>
+type HS_vkDebugMarkerSetObjectNameEXT =
+     VkDevice -- ^ device
+              -> Ptr VkDebugMarkerObjectNameInfoEXT -- ^ pNameInfo
+                                                    -> IO VkResult
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdDebugMarkerBeginEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerBeginEXT.html vkCmdDebugMarkerBeginEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDebugMarkerBeginEXT"
-               vkCmdDebugMarkerBeginEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
-                                                                 -> IO ()
+type PFN_vkDebugMarkerSetObjectNameEXT =
+     FunPtr HS_vkDebugMarkerSetObjectNameEXT
 
--- | queues: 'graphics', 'compute'.
+foreign import ccall "dynamic" unwrapVkDebugMarkerSetObjectNameEXT
+               ::
+               PFN_vkDebugMarkerSetObjectNameEXT ->
+                 HS_vkDebugMarkerSetObjectNameEXT
+
+instance VulkanProc "vkDebugMarkerSetObjectNameEXT" where
+        type VkProcType "vkDebugMarkerSetObjectNameEXT" =
+             HS_vkDebugMarkerSetObjectNameEXT
+        vkProcSymbol = _VkDebugMarkerSetObjectNameEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDebugMarkerSetObjectNameEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDebugMarkerBeginEXT :: CString
+
+pattern VkCmdDebugMarkerBeginEXT <-
+        (is_VkCmdDebugMarkerBeginEXT -> True)
+  where VkCmdDebugMarkerBeginEXT = _VkCmdDebugMarkerBeginEXT
+
+{-# INLINE _VkCmdDebugMarkerBeginEXT #-}
+
+_VkCmdDebugMarkerBeginEXT :: CString
+_VkCmdDebugMarkerBeginEXT = Ptr "vkCmdDebugMarkerBeginEXT\NUL"#
+
+{-# INLINE is_VkCmdDebugMarkerBeginEXT #-}
+
+is_VkCmdDebugMarkerBeginEXT :: CString -> Bool
+is_VkCmdDebugMarkerBeginEXT
+  = (EQ ==) . cmpCStrings _VkCmdDebugMarkerBeginEXT
+
+type VkCmdDebugMarkerBeginEXT = "vkCmdDebugMarkerBeginEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdDebugMarkerBeginEXT
+--   > void vkCmdDebugMarkerBeginEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerBeginEXT.html vkCmdDebugMarkerBeginEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdDebugMarkerBeginEXT"
-               vkCmdDebugMarkerBeginEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
-                                                                 -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT registry at www.khronos.org>
+type HS_vkCmdDebugMarkerBeginEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
+                                                       -> IO ()
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdDebugMarkerEndEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerEndEXT.html vkCmdDebugMarkerEndEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDebugMarkerEndEXT"
-               vkCmdDebugMarkerEndEXT :: VkCommandBuffer -- ^ commandBuffer
-                                                         -> IO ()
+type PFN_vkCmdDebugMarkerBeginEXT =
+     FunPtr HS_vkCmdDebugMarkerBeginEXT
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdDebugMarkerEndEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerEndEXT.html vkCmdDebugMarkerEndEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdDebugMarkerEndEXT"
-               vkCmdDebugMarkerEndEXTSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                             -> IO ()
+foreign import ccall "dynamic" unwrapVkCmdDebugMarkerBeginEXT ::
+               PFN_vkCmdDebugMarkerBeginEXT -> HS_vkCmdDebugMarkerBeginEXT
 
--- | queues: 'graphics', 'compute'.
+instance VulkanProc "vkCmdDebugMarkerBeginEXT" where
+        type VkProcType "vkCmdDebugMarkerBeginEXT" =
+             HS_vkCmdDebugMarkerBeginEXT
+        vkProcSymbol = _VkCmdDebugMarkerBeginEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDebugMarkerBeginEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDebugMarkerEndEXT :: CString
+
+pattern VkCmdDebugMarkerEndEXT <-
+        (is_VkCmdDebugMarkerEndEXT -> True)
+  where VkCmdDebugMarkerEndEXT = _VkCmdDebugMarkerEndEXT
+
+{-# INLINE _VkCmdDebugMarkerEndEXT #-}
+
+_VkCmdDebugMarkerEndEXT :: CString
+_VkCmdDebugMarkerEndEXT = Ptr "vkCmdDebugMarkerEndEXT\NUL"#
+
+{-# INLINE is_VkCmdDebugMarkerEndEXT #-}
+
+is_VkCmdDebugMarkerEndEXT :: CString -> Bool
+is_VkCmdDebugMarkerEndEXT
+  = (EQ ==) . cmpCStrings _VkCmdDebugMarkerEndEXT
+
+type VkCmdDebugMarkerEndEXT = "vkCmdDebugMarkerEndEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdDebugMarkerInsertEXT
+--   > void vkCmdDebugMarkerEndEXT
 --   >     ( VkCommandBuffer commandBuffer
---   >     , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerInsertEXT.html vkCmdDebugMarkerInsertEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDebugMarkerInsertEXT"
-               vkCmdDebugMarkerInsertEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
-                                                                 -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT registry at www.khronos.org>
+type HS_vkCmdDebugMarkerEndEXT = VkCommandBuffer -- ^ commandBuffer
+                                                 -> IO ()
 
--- | queues: 'graphics', 'compute'.
+type PFN_vkCmdDebugMarkerEndEXT = FunPtr HS_vkCmdDebugMarkerEndEXT
+
+foreign import ccall "dynamic" unwrapVkCmdDebugMarkerEndEXT ::
+               PFN_vkCmdDebugMarkerEndEXT -> HS_vkCmdDebugMarkerEndEXT
+
+instance VulkanProc "vkCmdDebugMarkerEndEXT" where
+        type VkProcType "vkCmdDebugMarkerEndEXT" =
+             HS_vkCmdDebugMarkerEndEXT
+        vkProcSymbol = _VkCmdDebugMarkerEndEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDebugMarkerEndEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDebugMarkerInsertEXT :: CString
+
+pattern VkCmdDebugMarkerInsertEXT <-
+        (is_VkCmdDebugMarkerInsertEXT -> True)
+  where VkCmdDebugMarkerInsertEXT = _VkCmdDebugMarkerInsertEXT
+
+{-# INLINE _VkCmdDebugMarkerInsertEXT #-}
+
+_VkCmdDebugMarkerInsertEXT :: CString
+_VkCmdDebugMarkerInsertEXT = Ptr "vkCmdDebugMarkerInsertEXT\NUL"#
+
+{-# INLINE is_VkCmdDebugMarkerInsertEXT #-}
+
+is_VkCmdDebugMarkerInsertEXT :: CString -> Bool
+is_VkCmdDebugMarkerInsertEXT
+  = (EQ ==) . cmpCStrings _VkCmdDebugMarkerInsertEXT
+
+type VkCmdDebugMarkerInsertEXT = "vkCmdDebugMarkerInsertEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdDebugMarkerInsertEXT
+--   > void vkCmdDebugMarkerInsertEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkDebugMarkerMarkerInfoEXT* pMarkerInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDebugMarkerInsertEXT.html vkCmdDebugMarkerInsertEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdDebugMarkerInsertEXT"
-               vkCmdDebugMarkerInsertEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
-                                                                 -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT registry at www.khronos.org>
+type HS_vkCmdDebugMarkerInsertEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkDebugMarkerMarkerInfoEXT -- ^ pMarkerInfo
+                                                       -> IO ()
+
+type PFN_vkCmdDebugMarkerInsertEXT =
+     FunPtr HS_vkCmdDebugMarkerInsertEXT
+
+foreign import ccall "dynamic" unwrapVkCmdDebugMarkerInsertEXT ::
+               PFN_vkCmdDebugMarkerInsertEXT -> HS_vkCmdDebugMarkerInsertEXT
+
+instance VulkanProc "vkCmdDebugMarkerInsertEXT" where
+        type VkProcType "vkCmdDebugMarkerInsertEXT" =
+             HS_vkCmdDebugMarkerInsertEXT
+        vkProcSymbol = _VkCmdDebugMarkerInsertEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDebugMarkerInsertEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DEBUG_MARKER_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_report.hs
@@ -1,11 +1,14 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_debug_report
        (-- * Vulkan extension: @VK_EXT_debug_report@
@@ -21,25 +24,30 @@
         --
         -- Extension number: @12@
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.VkApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkDebugReportCallbackCreateInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT,
-        module Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT,
+        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Types.Enum.Debug,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkCreateDebugReportCallbackEXT, vkCreateDebugReportCallbackEXTSafe,
-        vkDestroyDebugReportCallbackEXT,
-        vkDestroyDebugReportCallbackEXTSafe, vkDebugReportMessageEXT,
-        vkDebugReportMessageEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        VkCreateDebugReportCallbackEXT,
+        pattern VkCreateDebugReportCallbackEXT,
+        HS_vkCreateDebugReportCallbackEXT,
+        PFN_vkCreateDebugReportCallbackEXT,
+        VkDestroyDebugReportCallbackEXT,
+        pattern VkDestroyDebugReportCallbackEXT,
+        HS_vkDestroyDebugReportCallbackEXT,
+        PFN_vkDestroyDebugReportCallbackEXT, VkDebugReportMessageEXT,
+        pattern VkDebugReportMessageEXT, HS_vkDebugReportMessageEXT,
+        PFN_vkDebugReportMessageEXT,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_EXT_DEBUG_REPORT_SPEC_VERSION,
         pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION,
         VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
@@ -52,47 +60,46 @@
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
        where
-import           GHC.Ptr                                                         (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType                         (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Debug
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkApplicationInfo
-import           Graphics.Vulkan.Types.Struct.VkDebugReportCallbackCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.ApplicationInfo
+import           Graphics.Vulkan.Types.Struct.Debug
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkCreateDebugReportCallbackEXT
---   >     ( VkInstance instance
---   >     , const VkDebugReportCallbackCreateInfoEXT* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDebugReportCallbackEXT* pCallback
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDebugReportCallbackEXT.html vkCreateDebugReportCallbackEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDebugReportCallbackEXT"
-               vkCreateDebugReportCallbackEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDebugReportCallbackCreateInfoEXT -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDebugReportCallbackEXT -- ^ pCallback
-                                                  -> IO VkResult
+pattern VkCreateDebugReportCallbackEXT :: CString
 
+pattern VkCreateDebugReportCallbackEXT <-
+        (is_VkCreateDebugReportCallbackEXT -> True)
+  where VkCreateDebugReportCallbackEXT
+          = _VkCreateDebugReportCallbackEXT
+
+{-# INLINE _VkCreateDebugReportCallbackEXT #-}
+
+_VkCreateDebugReportCallbackEXT :: CString
+_VkCreateDebugReportCallbackEXT
+  = Ptr "vkCreateDebugReportCallbackEXT\NUL"#
+
+{-# INLINE is_VkCreateDebugReportCallbackEXT #-}
+
+is_VkCreateDebugReportCallbackEXT :: CString -> Bool
+is_VkCreateDebugReportCallbackEXT
+  = (EQ ==) . cmpCStrings _VkCreateDebugReportCallbackEXT
+
+type VkCreateDebugReportCallbackEXT =
+     "vkCreateDebugReportCallbackEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -104,76 +111,109 @@
 --   >     , VkDebugReportCallbackEXT* pCallback
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDebugReportCallbackEXT.html vkCreateDebugReportCallbackEXT registry at www.khronos.org>
-foreign import ccall safe "vkCreateDebugReportCallbackEXT"
-               vkCreateDebugReportCallbackEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDebugReportCallbackCreateInfoEXT -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDebugReportCallbackEXT -- ^ pCallback
-                                                  -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT registry at www.khronos.org>
+type HS_vkCreateDebugReportCallbackEXT =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkDebugReportCallbackCreateInfoEXT -- ^ pCreateInfo
+                                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkDebugReportCallbackEXT -- ^ pCallback
+                                        -> IO VkResult
 
--- | > () vkDestroyDebugReportCallbackEXT
---   >     ( VkInstance instance
---   >     , VkDebugReportCallbackEXT callback
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDebugReportCallbackEXT.html vkDestroyDebugReportCallbackEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDebugReportCallbackEXT"
-               vkDestroyDebugReportCallbackEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugReportCallbackEXT -- ^ callback
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+type PFN_vkCreateDebugReportCallbackEXT =
+     FunPtr HS_vkCreateDebugReportCallbackEXT
 
--- | > () vkDestroyDebugReportCallbackEXT
+foreign import ccall "dynamic" unwrapVkCreateDebugReportCallbackEXT
+               ::
+               PFN_vkCreateDebugReportCallbackEXT ->
+                 HS_vkCreateDebugReportCallbackEXT
+
+instance VulkanProc "vkCreateDebugReportCallbackEXT" where
+        type VkProcType "vkCreateDebugReportCallbackEXT" =
+             HS_vkCreateDebugReportCallbackEXT
+        vkProcSymbol = _VkCreateDebugReportCallbackEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDebugReportCallbackEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDebugReportCallbackEXT :: CString
+
+pattern VkDestroyDebugReportCallbackEXT <-
+        (is_VkDestroyDebugReportCallbackEXT -> True)
+  where VkDestroyDebugReportCallbackEXT
+          = _VkDestroyDebugReportCallbackEXT
+
+{-# INLINE _VkDestroyDebugReportCallbackEXT #-}
+
+_VkDestroyDebugReportCallbackEXT :: CString
+_VkDestroyDebugReportCallbackEXT
+  = Ptr "vkDestroyDebugReportCallbackEXT\NUL"#
+
+{-# INLINE is_VkDestroyDebugReportCallbackEXT #-}
+
+is_VkDestroyDebugReportCallbackEXT :: CString -> Bool
+is_VkDestroyDebugReportCallbackEXT
+  = (EQ ==) . cmpCStrings _VkDestroyDebugReportCallbackEXT
+
+type VkDestroyDebugReportCallbackEXT =
+     "vkDestroyDebugReportCallbackEXT"
+
+-- | > void vkDestroyDebugReportCallbackEXT
 --   >     ( VkInstance instance
 --   >     , VkDebugReportCallbackEXT callback
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDebugReportCallbackEXT.html vkDestroyDebugReportCallbackEXT registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDebugReportCallbackEXT"
-               vkDestroyDebugReportCallbackEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugReportCallbackEXT -- ^ callback
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT registry at www.khronos.org>
+type HS_vkDestroyDebugReportCallbackEXT =
+     VkInstance -- ^ instance
+                ->
+       VkDebugReportCallbackEXT -- ^ callback
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
 
--- | > () vkDebugReportMessageEXT
---   >     ( VkInstance instance
---   >     , VkDebugReportFlagsEXT flags
---   >     , VkDebugReportObjectTypeEXT objectType
---   >     , uint64_t object
---   >     , size_t location
---   >     , int32_t messageCode
---   >     , const char* pLayerPrefix
---   >     , const char* pMessage
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugReportMessageEXT.html vkDebugReportMessageEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDebugReportMessageEXT"
-               vkDebugReportMessageEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugReportFlagsEXT -- ^ flags
-                                       ->
-                   VkDebugReportObjectTypeEXT -- ^ objectType
-                                              ->
-                     Word64 -- ^ object
-                            -> CSize -- ^ location
-                                     -> Int32 -- ^ messageCode
-                                              -> CString -- ^ pLayerPrefix
-                                                         -> CString -- ^ pMessage
-                                                                    -> IO ()
+type PFN_vkDestroyDebugReportCallbackEXT =
+     FunPtr HS_vkDestroyDebugReportCallbackEXT
 
--- | > () vkDebugReportMessageEXT
+foreign import ccall "dynamic"
+               unwrapVkDestroyDebugReportCallbackEXT ::
+               PFN_vkDestroyDebugReportCallbackEXT ->
+                 HS_vkDestroyDebugReportCallbackEXT
+
+instance VulkanProc "vkDestroyDebugReportCallbackEXT" where
+        type VkProcType "vkDestroyDebugReportCallbackEXT" =
+             HS_vkDestroyDebugReportCallbackEXT
+        vkProcSymbol = _VkDestroyDebugReportCallbackEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDebugReportCallbackEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDebugReportMessageEXT :: CString
+
+pattern VkDebugReportMessageEXT <-
+        (is_VkDebugReportMessageEXT -> True)
+  where VkDebugReportMessageEXT = _VkDebugReportMessageEXT
+
+{-# INLINE _VkDebugReportMessageEXT #-}
+
+_VkDebugReportMessageEXT :: CString
+_VkDebugReportMessageEXT = Ptr "vkDebugReportMessageEXT\NUL"#
+
+{-# INLINE is_VkDebugReportMessageEXT #-}
+
+is_VkDebugReportMessageEXT :: CString -> Bool
+is_VkDebugReportMessageEXT
+  = (EQ ==) . cmpCStrings _VkDebugReportMessageEXT
+
+type VkDebugReportMessageEXT = "vkDebugReportMessageEXT"
+
+-- | > void vkDebugReportMessageEXT
 --   >     ( VkInstance instance
 --   >     , VkDebugReportFlagsEXT flags
 --   >     , VkDebugReportObjectTypeEXT objectType
@@ -184,21 +224,36 @@
 --   >     , const char* pMessage
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDebugReportMessageEXT.html vkDebugReportMessageEXT registry at www.khronos.org>
-foreign import ccall safe "vkDebugReportMessageEXT"
-               vkDebugReportMessageEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugReportFlagsEXT -- ^ flags
-                                       ->
-                   VkDebugReportObjectTypeEXT -- ^ objectType
-                                              ->
-                     Word64 -- ^ object
-                            -> CSize -- ^ location
-                                     -> Int32 -- ^ messageCode
-                                              -> CString -- ^ pLayerPrefix
-                                                         -> CString -- ^ pMessage
-                                                                    -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDebugReportMessageEXT vkDebugReportMessageEXT registry at www.khronos.org>
+type HS_vkDebugReportMessageEXT =
+     VkInstance -- ^ instance
+                ->
+       VkDebugReportFlagsEXT -- ^ flags
+                             ->
+         VkDebugReportObjectTypeEXT -- ^ objectType
+                                    ->
+           Word64 -- ^ object
+                  -> CSize -- ^ location
+                           -> Int32 -- ^ messageCode
+                                    -> CString -- ^ pLayerPrefix
+                                               -> CString -- ^ pMessage
+                                                          -> IO ()
+
+type PFN_vkDebugReportMessageEXT =
+     FunPtr HS_vkDebugReportMessageEXT
+
+foreign import ccall "dynamic" unwrapVkDebugReportMessageEXT ::
+               PFN_vkDebugReportMessageEXT -> HS_vkDebugReportMessageEXT
+
+instance VulkanProc "vkDebugReportMessageEXT" where
+        type VkProcType "vkDebugReportMessageEXT" =
+             HS_vkDebugReportMessageEXT
+        vkProcSymbol = _VkDebugReportMessageEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDebugReportMessageEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DEBUG_REPORT_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_debug_utils.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_debug_utils
        (-- * Vulkan extension: @VK_EXT_debug_utils@
@@ -20,39 +23,56 @@
         --
         -- Extension number: @129@
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.VkApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkDebugUtilsLabelEXT,
-        module Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT,
-        module Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT,
-        module Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT,
+        module Graphics.Vulkan.Types.Enum.Debug,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectNameInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectTagInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkObjectType,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT,
+        module Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT,
+        module Graphics.Vulkan.Types.Struct.Debug,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Types.Enum.Object,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkSetDebugUtilsObjectNameEXT, vkSetDebugUtilsObjectNameEXTSafe,
-        vkSetDebugUtilsObjectTagEXT, vkSetDebugUtilsObjectTagEXTSafe,
-        vkQueueBeginDebugUtilsLabelEXT, vkQueueBeginDebugUtilsLabelEXTSafe,
-        vkQueueEndDebugUtilsLabelEXT, vkQueueEndDebugUtilsLabelEXTSafe,
-        vkQueueInsertDebugUtilsLabelEXT,
-        vkQueueInsertDebugUtilsLabelEXTSafe, vkCmdBeginDebugUtilsLabelEXT,
-        vkCmdBeginDebugUtilsLabelEXTSafe, vkCmdEndDebugUtilsLabelEXT,
-        vkCmdEndDebugUtilsLabelEXTSafe, vkCmdInsertDebugUtilsLabelEXT,
-        vkCmdInsertDebugUtilsLabelEXTSafe, vkCreateDebugUtilsMessengerEXT,
-        vkCreateDebugUtilsMessengerEXTSafe,
-        vkDestroyDebugUtilsMessengerEXT,
-        vkDestroyDebugUtilsMessengerEXTSafe, vkSubmitDebugUtilsMessageEXT,
-        vkSubmitDebugUtilsMessageEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        VkSetDebugUtilsObjectNameEXT, pattern VkSetDebugUtilsObjectNameEXT,
+        HS_vkSetDebugUtilsObjectNameEXT, PFN_vkSetDebugUtilsObjectNameEXT,
+        VkSetDebugUtilsObjectTagEXT, pattern VkSetDebugUtilsObjectTagEXT,
+        HS_vkSetDebugUtilsObjectTagEXT, PFN_vkSetDebugUtilsObjectTagEXT,
+        VkQueueBeginDebugUtilsLabelEXT,
+        pattern VkQueueBeginDebugUtilsLabelEXT,
+        HS_vkQueueBeginDebugUtilsLabelEXT,
+        PFN_vkQueueBeginDebugUtilsLabelEXT, VkQueueEndDebugUtilsLabelEXT,
+        pattern VkQueueEndDebugUtilsLabelEXT,
+        HS_vkQueueEndDebugUtilsLabelEXT, PFN_vkQueueEndDebugUtilsLabelEXT,
+        VkQueueInsertDebugUtilsLabelEXT,
+        pattern VkQueueInsertDebugUtilsLabelEXT,
+        HS_vkQueueInsertDebugUtilsLabelEXT,
+        PFN_vkQueueInsertDebugUtilsLabelEXT, VkCmdBeginDebugUtilsLabelEXT,
+        pattern VkCmdBeginDebugUtilsLabelEXT,
+        HS_vkCmdBeginDebugUtilsLabelEXT, PFN_vkCmdBeginDebugUtilsLabelEXT,
+        VkCmdEndDebugUtilsLabelEXT, pattern VkCmdEndDebugUtilsLabelEXT,
+        HS_vkCmdEndDebugUtilsLabelEXT, PFN_vkCmdEndDebugUtilsLabelEXT,
+        VkCmdInsertDebugUtilsLabelEXT,
+        pattern VkCmdInsertDebugUtilsLabelEXT,
+        HS_vkCmdInsertDebugUtilsLabelEXT,
+        PFN_vkCmdInsertDebugUtilsLabelEXT, VkCreateDebugUtilsMessengerEXT,
+        pattern VkCreateDebugUtilsMessengerEXT,
+        HS_vkCreateDebugUtilsMessengerEXT,
+        PFN_vkCreateDebugUtilsMessengerEXT,
+        VkDestroyDebugUtilsMessengerEXT,
+        pattern VkDestroyDebugUtilsMessengerEXT,
+        HS_vkDestroyDebugUtilsMessengerEXT,
+        PFN_vkDestroyDebugUtilsMessengerEXT, VkSubmitDebugUtilsMessageEXT,
+        pattern VkSubmitDebugUtilsMessageEXT,
+        HS_vkSubmitDebugUtilsMessageEXT, PFN_vkSubmitDebugUtilsMessageEXT,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_EXT_DEBUG_UTILS_SPEC_VERSION,
         pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION,
         VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
@@ -64,45 +84,48 @@
         pattern VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
         pattern VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT)
        where
-import           GHC.Ptr
-                                                                                    (Ptr (..))
+import           GHC.Ptr                                                         (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                                    (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Debug
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkApplicationInfo
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsLabelEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectNameInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectTagInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.ApplicationInfo
+import           Graphics.Vulkan.Types.Struct.Debug
+import           Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
+import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
+import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
+import           Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkSetDebugUtilsObjectNameEXT
---   >     ( VkDevice device
---   >     , const VkDebugUtilsObjectNameInfoEXT* pNameInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetDebugUtilsObjectNameEXT.html vkSetDebugUtilsObjectNameEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkSetDebugUtilsObjectNameEXT"
-               vkSetDebugUtilsObjectNameEXT ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugUtilsObjectNameInfoEXT -- ^ pNameInfo
-                                                             -> IO VkResult
+pattern VkSetDebugUtilsObjectNameEXT :: CString
 
+pattern VkSetDebugUtilsObjectNameEXT <-
+        (is_VkSetDebugUtilsObjectNameEXT -> True)
+  where VkSetDebugUtilsObjectNameEXT = _VkSetDebugUtilsObjectNameEXT
+
+{-# INLINE _VkSetDebugUtilsObjectNameEXT #-}
+
+_VkSetDebugUtilsObjectNameEXT :: CString
+_VkSetDebugUtilsObjectNameEXT
+  = Ptr "vkSetDebugUtilsObjectNameEXT\NUL"#
+
+{-# INLINE is_VkSetDebugUtilsObjectNameEXT #-}
+
+is_VkSetDebugUtilsObjectNameEXT :: CString -> Bool
+is_VkSetDebugUtilsObjectNameEXT
+  = (EQ ==) . cmpCStrings _VkSetDebugUtilsObjectNameEXT
+
+type VkSetDebugUtilsObjectNameEXT = "vkSetDebugUtilsObjectNameEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -112,29 +135,49 @@
 --   >     , const VkDebugUtilsObjectNameInfoEXT* pNameInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetDebugUtilsObjectNameEXT.html vkSetDebugUtilsObjectNameEXT registry at www.khronos.org>
-foreign import ccall safe "vkSetDebugUtilsObjectNameEXT"
-               vkSetDebugUtilsObjectNameEXTSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugUtilsObjectNameInfoEXT -- ^ pNameInfo
-                                                             -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT registry at www.khronos.org>
+type HS_vkSetDebugUtilsObjectNameEXT =
+     VkDevice -- ^ device
+              -> Ptr VkDebugUtilsObjectNameInfoEXT -- ^ pNameInfo
+                                                   -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkSetDebugUtilsObjectTagEXT
---   >     ( VkDevice device
---   >     , const VkDebugUtilsObjectTagInfoEXT* pTagInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetDebugUtilsObjectTagEXT.html vkSetDebugUtilsObjectTagEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkSetDebugUtilsObjectTagEXT"
-               vkSetDebugUtilsObjectTagEXT ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugUtilsObjectTagInfoEXT -- ^ pTagInfo
-                                                            -> IO VkResult
+type PFN_vkSetDebugUtilsObjectNameEXT =
+     FunPtr HS_vkSetDebugUtilsObjectNameEXT
 
+foreign import ccall "dynamic" unwrapVkSetDebugUtilsObjectNameEXT
+               ::
+               PFN_vkSetDebugUtilsObjectNameEXT -> HS_vkSetDebugUtilsObjectNameEXT
+
+instance VulkanProc "vkSetDebugUtilsObjectNameEXT" where
+        type VkProcType "vkSetDebugUtilsObjectNameEXT" =
+             HS_vkSetDebugUtilsObjectNameEXT
+        vkProcSymbol = _VkSetDebugUtilsObjectNameEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkSetDebugUtilsObjectNameEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkSetDebugUtilsObjectTagEXT :: CString
+
+pattern VkSetDebugUtilsObjectTagEXT <-
+        (is_VkSetDebugUtilsObjectTagEXT -> True)
+  where VkSetDebugUtilsObjectTagEXT = _VkSetDebugUtilsObjectTagEXT
+
+{-# INLINE _VkSetDebugUtilsObjectTagEXT #-}
+
+_VkSetDebugUtilsObjectTagEXT :: CString
+_VkSetDebugUtilsObjectTagEXT
+  = Ptr "vkSetDebugUtilsObjectTagEXT\NUL"#
+
+{-# INLINE is_VkSetDebugUtilsObjectTagEXT #-}
+
+is_VkSetDebugUtilsObjectTagEXT :: CString -> Bool
+is_VkSetDebugUtilsObjectTagEXT
+  = (EQ ==) . cmpCStrings _VkSetDebugUtilsObjectTagEXT
+
+type VkSetDebugUtilsObjectTagEXT = "vkSetDebugUtilsObjectTagEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -144,192 +187,351 @@
 --   >     , const VkDebugUtilsObjectTagInfoEXT* pTagInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetDebugUtilsObjectTagEXT.html vkSetDebugUtilsObjectTagEXT registry at www.khronos.org>
-foreign import ccall safe "vkSetDebugUtilsObjectTagEXT"
-               vkSetDebugUtilsObjectTagEXTSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkDebugUtilsObjectTagInfoEXT -- ^ pTagInfo
-                                                            -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT registry at www.khronos.org>
+type HS_vkSetDebugUtilsObjectTagEXT =
+     VkDevice -- ^ device
+              -> Ptr VkDebugUtilsObjectTagInfoEXT -- ^ pTagInfo
+                                                  -> IO VkResult
 
--- | > () vkQueueBeginDebugUtilsLabelEXT
---   >     ( VkQueue queue
---   >     , const VkDebugUtilsLabelEXT* pLabelInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueBeginDebugUtilsLabelEXT.html vkQueueBeginDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueBeginDebugUtilsLabelEXT"
-               vkQueueBeginDebugUtilsLabelEXT ::
-               VkQueue -- ^ queue
-                       -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                   -> IO ()
+type PFN_vkSetDebugUtilsObjectTagEXT =
+     FunPtr HS_vkSetDebugUtilsObjectTagEXT
 
--- | > () vkQueueBeginDebugUtilsLabelEXT
+foreign import ccall "dynamic" unwrapVkSetDebugUtilsObjectTagEXT ::
+               PFN_vkSetDebugUtilsObjectTagEXT -> HS_vkSetDebugUtilsObjectTagEXT
+
+instance VulkanProc "vkSetDebugUtilsObjectTagEXT" where
+        type VkProcType "vkSetDebugUtilsObjectTagEXT" =
+             HS_vkSetDebugUtilsObjectTagEXT
+        vkProcSymbol = _VkSetDebugUtilsObjectTagEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkSetDebugUtilsObjectTagEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueBeginDebugUtilsLabelEXT :: CString
+
+pattern VkQueueBeginDebugUtilsLabelEXT <-
+        (is_VkQueueBeginDebugUtilsLabelEXT -> True)
+  where VkQueueBeginDebugUtilsLabelEXT
+          = _VkQueueBeginDebugUtilsLabelEXT
+
+{-# INLINE _VkQueueBeginDebugUtilsLabelEXT #-}
+
+_VkQueueBeginDebugUtilsLabelEXT :: CString
+_VkQueueBeginDebugUtilsLabelEXT
+  = Ptr "vkQueueBeginDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkQueueBeginDebugUtilsLabelEXT #-}
+
+is_VkQueueBeginDebugUtilsLabelEXT :: CString -> Bool
+is_VkQueueBeginDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkQueueBeginDebugUtilsLabelEXT
+
+type VkQueueBeginDebugUtilsLabelEXT =
+     "vkQueueBeginDebugUtilsLabelEXT"
+
+-- | > void vkQueueBeginDebugUtilsLabelEXT
 --   >     ( VkQueue queue
 --   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueBeginDebugUtilsLabelEXT.html vkQueueBeginDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkQueueBeginDebugUtilsLabelEXT"
-               vkQueueBeginDebugUtilsLabelEXTSafe ::
-               VkQueue -- ^ queue
-                       -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkQueueBeginDebugUtilsLabelEXT =
+     VkQueue -- ^ queue
+             -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
+                                         -> IO ()
 
--- | > () vkQueueEndDebugUtilsLabelEXT
---   >     ( VkQueue queue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueEndDebugUtilsLabelEXT.html vkQueueEndDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueEndDebugUtilsLabelEXT"
-               vkQueueEndDebugUtilsLabelEXT :: VkQueue -- ^ queue
-                                                       -> IO ()
+type PFN_vkQueueBeginDebugUtilsLabelEXT =
+     FunPtr HS_vkQueueBeginDebugUtilsLabelEXT
 
--- | > () vkQueueEndDebugUtilsLabelEXT
---   >     ( VkQueue queue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueEndDebugUtilsLabelEXT.html vkQueueEndDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkQueueEndDebugUtilsLabelEXT"
-               vkQueueEndDebugUtilsLabelEXTSafe :: VkQueue -- ^ queue
-                                                           -> IO ()
+foreign import ccall "dynamic" unwrapVkQueueBeginDebugUtilsLabelEXT
+               ::
+               PFN_vkQueueBeginDebugUtilsLabelEXT ->
+                 HS_vkQueueBeginDebugUtilsLabelEXT
 
--- | > () vkQueueInsertDebugUtilsLabelEXT
+instance VulkanProc "vkQueueBeginDebugUtilsLabelEXT" where
+        type VkProcType "vkQueueBeginDebugUtilsLabelEXT" =
+             HS_vkQueueBeginDebugUtilsLabelEXT
+        vkProcSymbol = _VkQueueBeginDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueBeginDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueEndDebugUtilsLabelEXT :: CString
+
+pattern VkQueueEndDebugUtilsLabelEXT <-
+        (is_VkQueueEndDebugUtilsLabelEXT -> True)
+  where VkQueueEndDebugUtilsLabelEXT = _VkQueueEndDebugUtilsLabelEXT
+
+{-# INLINE _VkQueueEndDebugUtilsLabelEXT #-}
+
+_VkQueueEndDebugUtilsLabelEXT :: CString
+_VkQueueEndDebugUtilsLabelEXT
+  = Ptr "vkQueueEndDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkQueueEndDebugUtilsLabelEXT #-}
+
+is_VkQueueEndDebugUtilsLabelEXT :: CString -> Bool
+is_VkQueueEndDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkQueueEndDebugUtilsLabelEXT
+
+type VkQueueEndDebugUtilsLabelEXT = "vkQueueEndDebugUtilsLabelEXT"
+
+-- | > void vkQueueEndDebugUtilsLabelEXT
 --   >     ( VkQueue queue
---   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueInsertDebugUtilsLabelEXT.html vkQueueInsertDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkQueueInsertDebugUtilsLabelEXT"
-               vkQueueInsertDebugUtilsLabelEXT ::
-               VkQueue -- ^ queue
-                       -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkQueueEndDebugUtilsLabelEXT = VkQueue -- ^ queue
+                                               -> IO ()
 
--- | > () vkQueueInsertDebugUtilsLabelEXT
+type PFN_vkQueueEndDebugUtilsLabelEXT =
+     FunPtr HS_vkQueueEndDebugUtilsLabelEXT
+
+foreign import ccall "dynamic" unwrapVkQueueEndDebugUtilsLabelEXT
+               ::
+               PFN_vkQueueEndDebugUtilsLabelEXT -> HS_vkQueueEndDebugUtilsLabelEXT
+
+instance VulkanProc "vkQueueEndDebugUtilsLabelEXT" where
+        type VkProcType "vkQueueEndDebugUtilsLabelEXT" =
+             HS_vkQueueEndDebugUtilsLabelEXT
+        vkProcSymbol = _VkQueueEndDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueEndDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueueInsertDebugUtilsLabelEXT :: CString
+
+pattern VkQueueInsertDebugUtilsLabelEXT <-
+        (is_VkQueueInsertDebugUtilsLabelEXT -> True)
+  where VkQueueInsertDebugUtilsLabelEXT
+          = _VkQueueInsertDebugUtilsLabelEXT
+
+{-# INLINE _VkQueueInsertDebugUtilsLabelEXT #-}
+
+_VkQueueInsertDebugUtilsLabelEXT :: CString
+_VkQueueInsertDebugUtilsLabelEXT
+  = Ptr "vkQueueInsertDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkQueueInsertDebugUtilsLabelEXT #-}
+
+is_VkQueueInsertDebugUtilsLabelEXT :: CString -> Bool
+is_VkQueueInsertDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkQueueInsertDebugUtilsLabelEXT
+
+type VkQueueInsertDebugUtilsLabelEXT =
+     "vkQueueInsertDebugUtilsLabelEXT"
+
+-- | > void vkQueueInsertDebugUtilsLabelEXT
 --   >     ( VkQueue queue
 --   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueueInsertDebugUtilsLabelEXT.html vkQueueInsertDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkQueueInsertDebugUtilsLabelEXT"
-               vkQueueInsertDebugUtilsLabelEXTSafe ::
-               VkQueue -- ^ queue
-                       -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkQueueInsertDebugUtilsLabelEXT =
+     VkQueue -- ^ queue
+             -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
+                                         -> IO ()
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdBeginDebugUtilsLabelEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkDebugUtilsLabelEXT* pLabelInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginDebugUtilsLabelEXT.html vkCmdBeginDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdBeginDebugUtilsLabelEXT"
-               vkCmdBeginDebugUtilsLabelEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                           -> IO ()
+type PFN_vkQueueInsertDebugUtilsLabelEXT =
+     FunPtr HS_vkQueueInsertDebugUtilsLabelEXT
 
--- | queues: 'graphics', 'compute'.
+foreign import ccall "dynamic"
+               unwrapVkQueueInsertDebugUtilsLabelEXT ::
+               PFN_vkQueueInsertDebugUtilsLabelEXT ->
+                 HS_vkQueueInsertDebugUtilsLabelEXT
+
+instance VulkanProc "vkQueueInsertDebugUtilsLabelEXT" where
+        type VkProcType "vkQueueInsertDebugUtilsLabelEXT" =
+             HS_vkQueueInsertDebugUtilsLabelEXT
+        vkProcSymbol = _VkQueueInsertDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueueInsertDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdBeginDebugUtilsLabelEXT :: CString
+
+pattern VkCmdBeginDebugUtilsLabelEXT <-
+        (is_VkCmdBeginDebugUtilsLabelEXT -> True)
+  where VkCmdBeginDebugUtilsLabelEXT = _VkCmdBeginDebugUtilsLabelEXT
+
+{-# INLINE _VkCmdBeginDebugUtilsLabelEXT #-}
+
+_VkCmdBeginDebugUtilsLabelEXT :: CString
+_VkCmdBeginDebugUtilsLabelEXT
+  = Ptr "vkCmdBeginDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkCmdBeginDebugUtilsLabelEXT #-}
+
+is_VkCmdBeginDebugUtilsLabelEXT :: CString -> Bool
+is_VkCmdBeginDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkCmdBeginDebugUtilsLabelEXT
+
+type VkCmdBeginDebugUtilsLabelEXT = "vkCmdBeginDebugUtilsLabelEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdBeginDebugUtilsLabelEXT
+--   > void vkCmdBeginDebugUtilsLabelEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdBeginDebugUtilsLabelEXT.html vkCmdBeginDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdBeginDebugUtilsLabelEXT"
-               vkCmdBeginDebugUtilsLabelEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                           -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkCmdBeginDebugUtilsLabelEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
+                                                 -> IO ()
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdEndDebugUtilsLabelEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndDebugUtilsLabelEXT.html vkCmdEndDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdEndDebugUtilsLabelEXT"
-               vkCmdEndDebugUtilsLabelEXT :: VkCommandBuffer -- ^ commandBuffer
-                                                             -> IO ()
+type PFN_vkCmdBeginDebugUtilsLabelEXT =
+     FunPtr HS_vkCmdBeginDebugUtilsLabelEXT
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdEndDebugUtilsLabelEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdEndDebugUtilsLabelEXT.html vkCmdEndDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdEndDebugUtilsLabelEXT"
-               vkCmdEndDebugUtilsLabelEXTSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                                 -> IO ()
+foreign import ccall "dynamic" unwrapVkCmdBeginDebugUtilsLabelEXT
+               ::
+               PFN_vkCmdBeginDebugUtilsLabelEXT -> HS_vkCmdBeginDebugUtilsLabelEXT
 
--- | queues: 'graphics', 'compute'.
+instance VulkanProc "vkCmdBeginDebugUtilsLabelEXT" where
+        type VkProcType "vkCmdBeginDebugUtilsLabelEXT" =
+             HS_vkCmdBeginDebugUtilsLabelEXT
+        vkProcSymbol = _VkCmdBeginDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdBeginDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdEndDebugUtilsLabelEXT :: CString
+
+pattern VkCmdEndDebugUtilsLabelEXT <-
+        (is_VkCmdEndDebugUtilsLabelEXT -> True)
+  where VkCmdEndDebugUtilsLabelEXT = _VkCmdEndDebugUtilsLabelEXT
+
+{-# INLINE _VkCmdEndDebugUtilsLabelEXT #-}
+
+_VkCmdEndDebugUtilsLabelEXT :: CString
+_VkCmdEndDebugUtilsLabelEXT = Ptr "vkCmdEndDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkCmdEndDebugUtilsLabelEXT #-}
+
+is_VkCmdEndDebugUtilsLabelEXT :: CString -> Bool
+is_VkCmdEndDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkCmdEndDebugUtilsLabelEXT
+
+type VkCmdEndDebugUtilsLabelEXT = "vkCmdEndDebugUtilsLabelEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdInsertDebugUtilsLabelEXT
+--   > void vkCmdEndDebugUtilsLabelEXT
 --   >     ( VkCommandBuffer commandBuffer
---   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdInsertDebugUtilsLabelEXT.html vkCmdInsertDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdInsertDebugUtilsLabelEXT"
-               vkCmdInsertDebugUtilsLabelEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                           -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkCmdEndDebugUtilsLabelEXT = VkCommandBuffer -- ^ commandBuffer
+                                                     -> IO ()
 
--- | queues: 'graphics', 'compute'.
+type PFN_vkCmdEndDebugUtilsLabelEXT =
+     FunPtr HS_vkCmdEndDebugUtilsLabelEXT
+
+foreign import ccall "dynamic" unwrapVkCmdEndDebugUtilsLabelEXT ::
+               PFN_vkCmdEndDebugUtilsLabelEXT -> HS_vkCmdEndDebugUtilsLabelEXT
+
+instance VulkanProc "vkCmdEndDebugUtilsLabelEXT" where
+        type VkProcType "vkCmdEndDebugUtilsLabelEXT" =
+             HS_vkCmdEndDebugUtilsLabelEXT
+        vkProcSymbol = _VkCmdEndDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdEndDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdInsertDebugUtilsLabelEXT :: CString
+
+pattern VkCmdInsertDebugUtilsLabelEXT <-
+        (is_VkCmdInsertDebugUtilsLabelEXT -> True)
+  where VkCmdInsertDebugUtilsLabelEXT
+          = _VkCmdInsertDebugUtilsLabelEXT
+
+{-# INLINE _VkCmdInsertDebugUtilsLabelEXT #-}
+
+_VkCmdInsertDebugUtilsLabelEXT :: CString
+_VkCmdInsertDebugUtilsLabelEXT
+  = Ptr "vkCmdInsertDebugUtilsLabelEXT\NUL"#
+
+{-# INLINE is_VkCmdInsertDebugUtilsLabelEXT #-}
+
+is_VkCmdInsertDebugUtilsLabelEXT :: CString -> Bool
+is_VkCmdInsertDebugUtilsLabelEXT
+  = (EQ ==) . cmpCStrings _VkCmdInsertDebugUtilsLabelEXT
+
+type VkCmdInsertDebugUtilsLabelEXT =
+     "vkCmdInsertDebugUtilsLabelEXT"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdInsertDebugUtilsLabelEXT
+--   > void vkCmdInsertDebugUtilsLabelEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkDebugUtilsLabelEXT* pLabelInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdInsertDebugUtilsLabelEXT.html vkCmdInsertDebugUtilsLabelEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdInsertDebugUtilsLabelEXT"
-               vkCmdInsertDebugUtilsLabelEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
-                                                           -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT registry at www.khronos.org>
+type HS_vkCmdInsertDebugUtilsLabelEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkDebugUtilsLabelEXT -- ^ pLabelInfo
+                                                 -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkCreateDebugUtilsMessengerEXT
---   >     ( VkInstance instance
---   >     , const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDebugUtilsMessengerEXT* pMessenger
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDebugUtilsMessengerEXT.html vkCreateDebugUtilsMessengerEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDebugUtilsMessengerEXT"
-               vkCreateDebugUtilsMessengerEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDebugUtilsMessengerCreateInfoEXT -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDebugUtilsMessengerEXT -- ^ pMessenger
-                                                  -> IO VkResult
+type PFN_vkCmdInsertDebugUtilsLabelEXT =
+     FunPtr HS_vkCmdInsertDebugUtilsLabelEXT
 
+foreign import ccall "dynamic" unwrapVkCmdInsertDebugUtilsLabelEXT
+               ::
+               PFN_vkCmdInsertDebugUtilsLabelEXT ->
+                 HS_vkCmdInsertDebugUtilsLabelEXT
+
+instance VulkanProc "vkCmdInsertDebugUtilsLabelEXT" where
+        type VkProcType "vkCmdInsertDebugUtilsLabelEXT" =
+             HS_vkCmdInsertDebugUtilsLabelEXT
+        vkProcSymbol = _VkCmdInsertDebugUtilsLabelEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdInsertDebugUtilsLabelEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDebugUtilsMessengerEXT :: CString
+
+pattern VkCreateDebugUtilsMessengerEXT <-
+        (is_VkCreateDebugUtilsMessengerEXT -> True)
+  where VkCreateDebugUtilsMessengerEXT
+          = _VkCreateDebugUtilsMessengerEXT
+
+{-# INLINE _VkCreateDebugUtilsMessengerEXT #-}
+
+_VkCreateDebugUtilsMessengerEXT :: CString
+_VkCreateDebugUtilsMessengerEXT
+  = Ptr "vkCreateDebugUtilsMessengerEXT\NUL"#
+
+{-# INLINE is_VkCreateDebugUtilsMessengerEXT #-}
+
+is_VkCreateDebugUtilsMessengerEXT :: CString -> Bool
+is_VkCreateDebugUtilsMessengerEXT
+  = (EQ ==) . cmpCStrings _VkCreateDebugUtilsMessengerEXT
+
+type VkCreateDebugUtilsMessengerEXT =
+     "vkCreateDebugUtilsMessengerEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -341,85 +543,143 @@
 --   >     , VkDebugUtilsMessengerEXT* pMessenger
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDebugUtilsMessengerEXT.html vkCreateDebugUtilsMessengerEXT registry at www.khronos.org>
-foreign import ccall safe "vkCreateDebugUtilsMessengerEXT"
-               vkCreateDebugUtilsMessengerEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDebugUtilsMessengerCreateInfoEXT -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDebugUtilsMessengerEXT -- ^ pMessenger
-                                                  -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT registry at www.khronos.org>
+type HS_vkCreateDebugUtilsMessengerEXT =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkDebugUtilsMessengerCreateInfoEXT -- ^ pCreateInfo
+                                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkDebugUtilsMessengerEXT -- ^ pMessenger
+                                        -> IO VkResult
 
--- | > () vkDestroyDebugUtilsMessengerEXT
---   >     ( VkInstance instance
---   >     , VkDebugUtilsMessengerEXT messenger
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDebugUtilsMessengerEXT.html vkDestroyDebugUtilsMessengerEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDebugUtilsMessengerEXT"
-               vkDestroyDebugUtilsMessengerEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugUtilsMessengerEXT -- ^ messenger
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+type PFN_vkCreateDebugUtilsMessengerEXT =
+     FunPtr HS_vkCreateDebugUtilsMessengerEXT
 
--- | > () vkDestroyDebugUtilsMessengerEXT
+foreign import ccall "dynamic" unwrapVkCreateDebugUtilsMessengerEXT
+               ::
+               PFN_vkCreateDebugUtilsMessengerEXT ->
+                 HS_vkCreateDebugUtilsMessengerEXT
+
+instance VulkanProc "vkCreateDebugUtilsMessengerEXT" where
+        type VkProcType "vkCreateDebugUtilsMessengerEXT" =
+             HS_vkCreateDebugUtilsMessengerEXT
+        vkProcSymbol = _VkCreateDebugUtilsMessengerEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDebugUtilsMessengerEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDebugUtilsMessengerEXT :: CString
+
+pattern VkDestroyDebugUtilsMessengerEXT <-
+        (is_VkDestroyDebugUtilsMessengerEXT -> True)
+  where VkDestroyDebugUtilsMessengerEXT
+          = _VkDestroyDebugUtilsMessengerEXT
+
+{-# INLINE _VkDestroyDebugUtilsMessengerEXT #-}
+
+_VkDestroyDebugUtilsMessengerEXT :: CString
+_VkDestroyDebugUtilsMessengerEXT
+  = Ptr "vkDestroyDebugUtilsMessengerEXT\NUL"#
+
+{-# INLINE is_VkDestroyDebugUtilsMessengerEXT #-}
+
+is_VkDestroyDebugUtilsMessengerEXT :: CString -> Bool
+is_VkDestroyDebugUtilsMessengerEXT
+  = (EQ ==) . cmpCStrings _VkDestroyDebugUtilsMessengerEXT
+
+type VkDestroyDebugUtilsMessengerEXT =
+     "vkDestroyDebugUtilsMessengerEXT"
+
+-- | > void vkDestroyDebugUtilsMessengerEXT
 --   >     ( VkInstance instance
 --   >     , VkDebugUtilsMessengerEXT messenger
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDebugUtilsMessengerEXT.html vkDestroyDebugUtilsMessengerEXT registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDebugUtilsMessengerEXT"
-               vkDestroyDebugUtilsMessengerEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugUtilsMessengerEXT -- ^ messenger
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT registry at www.khronos.org>
+type HS_vkDestroyDebugUtilsMessengerEXT =
+     VkInstance -- ^ instance
+                ->
+       VkDebugUtilsMessengerEXT -- ^ messenger
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
 
--- | > () vkSubmitDebugUtilsMessageEXT
---   >     ( VkInstance instance
---   >     , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity
---   >     , VkDebugUtilsMessageTypeFlagsEXT messageTypes
---   >     , const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSubmitDebugUtilsMessageEXT.html vkSubmitDebugUtilsMessageEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkSubmitDebugUtilsMessageEXT"
-               vkSubmitDebugUtilsMessageEXT ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugUtilsMessageSeverityFlagBitsEXT -- ^ messageSeverity
-                                                        ->
-                   VkDebugUtilsMessageTypeFlagsEXT -- ^ messageTypes
-                                                   ->
-                     Ptr VkDebugUtilsMessengerCallbackDataEXT -- ^ pCallbackData
-                                                              -> IO ()
+type PFN_vkDestroyDebugUtilsMessengerEXT =
+     FunPtr HS_vkDestroyDebugUtilsMessengerEXT
 
--- | > () vkSubmitDebugUtilsMessageEXT
+foreign import ccall "dynamic"
+               unwrapVkDestroyDebugUtilsMessengerEXT ::
+               PFN_vkDestroyDebugUtilsMessengerEXT ->
+                 HS_vkDestroyDebugUtilsMessengerEXT
+
+instance VulkanProc "vkDestroyDebugUtilsMessengerEXT" where
+        type VkProcType "vkDestroyDebugUtilsMessengerEXT" =
+             HS_vkDestroyDebugUtilsMessengerEXT
+        vkProcSymbol = _VkDestroyDebugUtilsMessengerEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDebugUtilsMessengerEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkSubmitDebugUtilsMessageEXT :: CString
+
+pattern VkSubmitDebugUtilsMessageEXT <-
+        (is_VkSubmitDebugUtilsMessageEXT -> True)
+  where VkSubmitDebugUtilsMessageEXT = _VkSubmitDebugUtilsMessageEXT
+
+{-# INLINE _VkSubmitDebugUtilsMessageEXT #-}
+
+_VkSubmitDebugUtilsMessageEXT :: CString
+_VkSubmitDebugUtilsMessageEXT
+  = Ptr "vkSubmitDebugUtilsMessageEXT\NUL"#
+
+{-# INLINE is_VkSubmitDebugUtilsMessageEXT #-}
+
+is_VkSubmitDebugUtilsMessageEXT :: CString -> Bool
+is_VkSubmitDebugUtilsMessageEXT
+  = (EQ ==) . cmpCStrings _VkSubmitDebugUtilsMessageEXT
+
+type VkSubmitDebugUtilsMessageEXT = "vkSubmitDebugUtilsMessageEXT"
+
+-- | > void vkSubmitDebugUtilsMessageEXT
 --   >     ( VkInstance instance
 --   >     , VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity
 --   >     , VkDebugUtilsMessageTypeFlagsEXT messageTypes
 --   >     , const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSubmitDebugUtilsMessageEXT.html vkSubmitDebugUtilsMessageEXT registry at www.khronos.org>
-foreign import ccall safe "vkSubmitDebugUtilsMessageEXT"
-               vkSubmitDebugUtilsMessageEXTSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 VkDebugUtilsMessageSeverityFlagBitsEXT -- ^ messageSeverity
-                                                        ->
-                   VkDebugUtilsMessageTypeFlagsEXT -- ^ messageTypes
-                                                   ->
-                     Ptr VkDebugUtilsMessengerCallbackDataEXT -- ^ pCallbackData
-                                                              -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT registry at www.khronos.org>
+type HS_vkSubmitDebugUtilsMessageEXT =
+     VkInstance -- ^ instance
+                ->
+       VkDebugUtilsMessageSeverityFlagBitsEXT -- ^ messageSeverity
+                                              ->
+         VkDebugUtilsMessageTypeFlagsEXT -- ^ messageTypes
+                                         ->
+           Ptr VkDebugUtilsMessengerCallbackDataEXT -- ^ pCallbackData
+                                                    -> IO ()
+
+type PFN_vkSubmitDebugUtilsMessageEXT =
+     FunPtr HS_vkSubmitDebugUtilsMessageEXT
+
+foreign import ccall "dynamic" unwrapVkSubmitDebugUtilsMessageEXT
+               ::
+               PFN_vkSubmitDebugUtilsMessageEXT -> HS_vkSubmitDebugUtilsMessageEXT
+
+instance VulkanProc "vkSubmitDebugUtilsMessageEXT" where
+        type VkProcType "vkSubmitDebugUtilsMessageEXT" =
+             HS_vkSubmitDebugUtilsMessageEXT
+        vkProcSymbol = _VkSubmitDebugUtilsMessageEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkSubmitDebugUtilsMessageEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DEBUG_UTILS_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_descriptor_indexing.hs
@@ -0,0 +1,139 @@
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE DataKinds       #-}
+{-# LANGUAGE MagicHash       #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE Strict          #-}
+{-# LANGUAGE ViewPatterns    #-}
+module Graphics.Vulkan.Ext.VK_EXT_descriptor_indexing
+       (-- * Vulkan extension: @VK_EXT_descriptor_indexing@
+        -- |
+        --
+        -- supported: @vulkan@
+        --
+        -- contact: @Jeff Bolz @jbolz@
+        --
+        -- author: @NV@
+        --
+        -- type: @device@
+        --
+        -- Extension number: @162@
+        --
+        -- Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_maintenance3'.
+        --
+
+        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_maintenance3'.
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        module Graphics.Vulkan.Types.Bitmasks,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        -- > #include "vk_platform.h"
+        VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION,
+        pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION,
+        VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME,
+        pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME,
+        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
+        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
+        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
+        pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
+        pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,
+        pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT,
+        pattern VK_ERROR_FRAGMENTATION_EXT)
+       where
+import           GHC.Ptr                                             (Ptr (..))
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Bitmasks
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Result                   (VkResult (..))
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Descriptor
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+
+pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION :: (Num a, Eq a) =>
+        a
+
+pattern VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION = 2
+
+type VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION = 2
+
+pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME :: CString
+
+pattern VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME <-
+        (is_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME -> True)
+  where VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+          = _VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+
+{-# INLINE _VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME #-}
+
+_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME :: CString
+_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+  = Ptr "VK_EXT_descriptor_indexing\NUL"#
+
+{-# INLINE is_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME #-}
+
+is_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME :: CString -> Bool
+is_VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+  = (EQ ==) . cmpCStrings _VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+
+type VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME =
+     "VK_EXT_descriptor_indexing"
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT
+        = VkStructureType 1000161000
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT
+        = VkStructureType 1000161001
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT
+        = VkStructureType 1000161002
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT
+        = VkStructureType 1000161003
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT
+        = VkStructureType 1000161004
+
+-- | bitpos = @1@
+pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT ::
+        VkDescriptorPoolCreateFlagBits
+
+pattern VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT =
+        VkDescriptorPoolCreateFlagBits 2
+
+-- | bitpos = @1@
+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
+        :: VkDescriptorSetLayoutCreateFlagBits
+
+pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
+        = VkDescriptorSetLayoutCreateFlagBits 2
+
+pattern VK_ERROR_FRAGMENTATION_EXT :: VkResult
+
+pattern VK_ERROR_FRAGMENTATION_EXT = VkResult (-1000161000)
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_direct_mode_display.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_direct_mode_display
        (-- * Vulkan extension: @VK_EXT_direct_mode_display@
@@ -23,33 +26,38 @@
         --
 
         -- ** Required extensions: 'VK_KHR_display'.
-        vkReleaseDisplayEXT, vkReleaseDisplayEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkReleaseDisplayEXT, pattern VkReleaseDisplayEXT,
+        HS_vkReleaseDisplayEXT, PFN_vkReleaseDisplayEXT,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION,
         pattern VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION,
         VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
         pattern VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)
        where
-import           GHC.Ptr                             (Ptr (..))
+import           GHC.Ptr                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkResult
+import           Graphics.Vulkan.Marshal.Proc      (VulkanProc (..))
+import           Graphics.Vulkan.Types.Enum.Result
 import           Graphics.Vulkan.Types.Handles
 
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkReleaseDisplayEXT
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayKHR display
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkReleaseDisplayEXT.html vkReleaseDisplayEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkReleaseDisplayEXT"
-               vkReleaseDisplayEXT ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkDisplayKHR -- ^ display
-                                                -> IO VkResult
+pattern VkReleaseDisplayEXT :: CString
 
+pattern VkReleaseDisplayEXT <- (is_VkReleaseDisplayEXT -> True)
+  where VkReleaseDisplayEXT = _VkReleaseDisplayEXT
+
+{-# INLINE _VkReleaseDisplayEXT #-}
+
+_VkReleaseDisplayEXT :: CString
+_VkReleaseDisplayEXT = Ptr "vkReleaseDisplayEXT\NUL"#
+
+{-# INLINE is_VkReleaseDisplayEXT #-}
+
+is_VkReleaseDisplayEXT :: CString -> Bool
+is_VkReleaseDisplayEXT = (EQ ==) . cmpCStrings _VkReleaseDisplayEXT
+
+type VkReleaseDisplayEXT = "vkReleaseDisplayEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   > VkResult vkReleaseDisplayEXT
@@ -57,12 +65,25 @@
 --   >     , VkDisplayKHR display
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkReleaseDisplayEXT.html vkReleaseDisplayEXT registry at www.khronos.org>
-foreign import ccall safe "vkReleaseDisplayEXT"
-               vkReleaseDisplayEXTSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkDisplayKHR -- ^ display
-                                                -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkReleaseDisplayEXT vkReleaseDisplayEXT registry at www.khronos.org>
+type HS_vkReleaseDisplayEXT =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> VkDisplayKHR -- ^ display
+                                      -> IO VkResult
+
+type PFN_vkReleaseDisplayEXT = FunPtr HS_vkReleaseDisplayEXT
+
+foreign import ccall "dynamic" unwrapVkReleaseDisplayEXT ::
+               PFN_vkReleaseDisplayEXT -> HS_vkReleaseDisplayEXT
+
+instance VulkanProc "vkReleaseDisplayEXT" where
+        type VkProcType "vkReleaseDisplayEXT" = HS_vkReleaseDisplayEXT
+        vkProcSymbol = _VkReleaseDisplayEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkReleaseDisplayEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_discard_rectangles.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_discard_rectangles
        (-- * Vulkan extension: @VK_EXT_discard_rectangles@
@@ -24,56 +27,38 @@
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkBlendFactor,
-        module Graphics.Vulkan.Types.Enum.VkBlendOp,
+        module Graphics.Vulkan.Types.Enum.Blend,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkColorComponentFlags,
-        module Graphics.Vulkan.Types.Enum.VkCompareOp,
-        module Graphics.Vulkan.Types.Enum.VkCullModeFlags,
-        module Graphics.Vulkan.Types.Enum.VkDiscardRectangleModeEXT,
-        module Graphics.Vulkan.Types.Enum.VkDynamicState,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkFrontFace,
-        module Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkLogicOp,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceDiscardRectanglePropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompareOp,
+        module Graphics.Vulkan.Types.Enum.CullModeFlags,
+        module Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT,
+        module Graphics.Vulkan.Types.Enum.DynamicState,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.FrontFace,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.LogicOp,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineDiscardRectangleStateCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkPolygonMode,
-        module Graphics.Vulkan.Types.Enum.VkPrimitiveTopology,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Struct.VkSpecializationInfo,
-        module Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry,
-        module Graphics.Vulkan.Types.Enum.VkStencilOp,
-        module Graphics.Vulkan.Types.Struct.VkStencilOpState,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription,
-        module Graphics.Vulkan.Types.Enum.VkVertexInputRate,
-        module Graphics.Vulkan.Types.Struct.VkViewport,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.PolygonMode,
+        module Graphics.Vulkan.Types.Enum.PrimitiveTopology,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Struct.Specialization,
+        module Graphics.Vulkan.Types.Enum.Stencil,
+        module Graphics.Vulkan.Types.Struct.StencilOpState,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.VertexInput,
+        module Graphics.Vulkan.Types.Enum.VertexInputRate,
+        module Graphics.Vulkan.Types.Struct.Viewport,
         -- > #include "vk_platform.h"
-        vkCmdSetDiscardRectangleEXT, vkCmdSetDiscardRectangleEXTSafe,
+        VkCmdSetDiscardRectangleEXT, pattern VkCmdSetDiscardRectangleEXT,
+        HS_vkCmdSetDiscardRectangleEXT, PFN_vkCmdSetDiscardRectangleEXT,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION,
         pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION,
@@ -83,98 +68,94 @@
         pattern VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
         pattern VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT)
        where
-import           GHC.Ptr
-                                                                                             (Ptr (..))
+import           GHC.Ptr                                            (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkBlendFactor
-import           Graphics.Vulkan.Types.Enum.VkBlendOp
-import           Graphics.Vulkan.Types.Enum.VkColorComponentFlags
-import           Graphics.Vulkan.Types.Enum.VkCompareOp
-import           Graphics.Vulkan.Types.Enum.VkCullModeFlags
-import           Graphics.Vulkan.Types.Enum.VkDiscardRectangleModeEXT
-import           Graphics.Vulkan.Types.Enum.VkDynamicState
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkFrontFace
-import           Graphics.Vulkan.Types.Enum.VkLogicOp
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode
-import           Graphics.Vulkan.Types.Enum.VkPrimitiveTopology
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-import           Graphics.Vulkan.Types.Enum.VkStencilOp
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkVertexInputRate
+import           Graphics.Vulkan.Types.Enum.Blend
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompareOp
+import           Graphics.Vulkan.Types.Enum.CullModeFlags
+import           Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
+import           Graphics.Vulkan.Types.Enum.DynamicState
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.FrontFace
+import           Graphics.Vulkan.Types.Enum.LogicOp
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.PolygonMode
+import           Graphics.Vulkan.Types.Enum.PrimitiveTopology
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.Stencil
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.VertexInputRate
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceDiscardRectanglePropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineDiscardRectangleStateCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkSpecializationInfo
-import           Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry
-import           Graphics.Vulkan.Types.Struct.VkStencilOpState
-import           Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription
-import           Graphics.Vulkan.Types.Struct.VkViewport
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.Specialization
+import           Graphics.Vulkan.Types.Struct.StencilOpState
+import           Graphics.Vulkan.Types.Struct.VertexInput
+import           Graphics.Vulkan.Types.Struct.Viewport
 
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDiscardRectangleEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstDiscardRectangle
---   >     , uint32_t discardRectangleCount
---   >     , const VkRect2D* pDiscardRectangles
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDiscardRectangleEXT.html vkCmdSetDiscardRectangleEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetDiscardRectangleEXT"
-               vkCmdSetDiscardRectangleEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ firstDiscardRectangle
-                                         -> Word32 -- ^ discardRectangleCount
-                                                   -> Ptr VkRect2D -- ^ pDiscardRectangles
-                                                                   -> IO ()
+pattern VkCmdSetDiscardRectangleEXT :: CString
 
--- | queues: 'graphics'.
+pattern VkCmdSetDiscardRectangleEXT <-
+        (is_VkCmdSetDiscardRectangleEXT -> True)
+  where VkCmdSetDiscardRectangleEXT = _VkCmdSetDiscardRectangleEXT
+
+{-# INLINE _VkCmdSetDiscardRectangleEXT #-}
+
+_VkCmdSetDiscardRectangleEXT :: CString
+_VkCmdSetDiscardRectangleEXT
+  = Ptr "vkCmdSetDiscardRectangleEXT\NUL"#
+
+{-# INLINE is_VkCmdSetDiscardRectangleEXT #-}
+
+is_VkCmdSetDiscardRectangleEXT :: CString -> Bool
+is_VkCmdSetDiscardRectangleEXT
+  = (EQ ==) . cmpCStrings _VkCmdSetDiscardRectangleEXT
+
+type VkCmdSetDiscardRectangleEXT = "vkCmdSetDiscardRectangleEXT"
+
+-- | Queues: 'graphics'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdSetDiscardRectangleEXT
+--   > void vkCmdSetDiscardRectangleEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , uint32_t firstDiscardRectangle
 --   >     , uint32_t discardRectangleCount
 --   >     , const VkRect2D* pDiscardRectangles
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDiscardRectangleEXT.html vkCmdSetDiscardRectangleEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetDiscardRectangleEXT"
-               vkCmdSetDiscardRectangleEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Word32 -- ^ firstDiscardRectangle
-                                         -> Word32 -- ^ discardRectangleCount
-                                                   -> Ptr VkRect2D -- ^ pDiscardRectangles
-                                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT registry at www.khronos.org>
+type HS_vkCmdSetDiscardRectangleEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Word32 -- ^ firstDiscardRectangle
+                               -> Word32 -- ^ discardRectangleCount
+                                         -> Ptr VkRect2D -- ^ pDiscardRectangles
+                                                         -> IO ()
+
+type PFN_vkCmdSetDiscardRectangleEXT =
+     FunPtr HS_vkCmdSetDiscardRectangleEXT
+
+foreign import ccall "dynamic" unwrapVkCmdSetDiscardRectangleEXT ::
+               PFN_vkCmdSetDiscardRectangleEXT -> HS_vkCmdSetDiscardRectangleEXT
+
+instance VulkanProc "vkCmdSetDiscardRectangleEXT" where
+        type VkProcType "vkCmdSetDiscardRectangleEXT" =
+             HS_vkCmdSetDiscardRectangleEXT
+        vkProcSymbol = _VkCmdSetDiscardRectangleEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetDiscardRectangleEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_control.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_display_control
        (-- * Vulkan extension: @VK_EXT_display_control@
@@ -25,37 +28,37 @@
 
         -- ** Required extensions: 'VK_EXT_display_surface_counter', 'VK_KHR_swapchain'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceEventInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkDeviceEventTypeEXT,
-        module Graphics.Vulkan.Types.Struct.VkDisplayEventInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkDisplayEventTypeEXT,
-        module Graphics.Vulkan.Types.Struct.VkDisplayPowerInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkDisplayPowerStateEXT,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkPresentModeKHR,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkSwapchainCounterCreateInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Enum.Display,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.PresentModeKHR,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        module Graphics.Vulkan.Types.Struct.SwapchainC,
+        module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
         -- > #include "vk_platform.h"
-        vkDisplayPowerControlEXT, vkDisplayPowerControlEXTSafe,
-        vkRegisterDeviceEventEXT, vkRegisterDeviceEventEXTSafe,
-        vkRegisterDisplayEventEXT, vkRegisterDisplayEventEXTSafe,
-        vkGetSwapchainCounterEXT, vkGetSwapchainCounterEXTSafe,
+        VkDisplayPowerControlEXT, pattern VkDisplayPowerControlEXT,
+        HS_vkDisplayPowerControlEXT, PFN_vkDisplayPowerControlEXT,
+        VkRegisterDeviceEventEXT, pattern VkRegisterDeviceEventEXT,
+        HS_vkRegisterDeviceEventEXT, PFN_vkRegisterDeviceEventEXT,
+        VkRegisterDisplayEventEXT, pattern VkRegisterDisplayEventEXT,
+        HS_vkRegisterDisplayEventEXT, PFN_vkRegisterDisplayEventEXT,
+        VkGetSwapchainCounterEXT, pattern VkGetSwapchainCounterEXT,
+        HS_vkGetSwapchainCounterEXT, PFN_vkGetSwapchainCounterEXT,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_EXT_DISPLAY_CONTROL_SPEC_VERSION,
         pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION,
         VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME,
@@ -65,52 +68,51 @@
         pattern VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
         pattern VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT)
        where
-import           GHC.Ptr                                                      (Ptr (..))
+import           GHC.Ptr                                            (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                       (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkDeviceEventTypeEXT
-import           Graphics.Vulkan.Types.Enum.VkDisplayEventTypeEXT
-import           Graphics.Vulkan.Types.Enum.VkDisplayPowerStateEXT
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Display
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkDeviceEventInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDisplayEventInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkDisplayPowerInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCounterCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.Display
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.SwapchainC
 
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkDisplayPowerControlEXT
---   >     ( VkDevice device
---   >     , VkDisplayKHR display
---   >     , const VkDisplayPowerInfoEXT* pDisplayPowerInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDisplayPowerControlEXT.html vkDisplayPowerControlEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDisplayPowerControlEXT"
-               vkDisplayPowerControlEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkDisplayKHR -- ^ display
-                              -> Ptr VkDisplayPowerInfoEXT -- ^ pDisplayPowerInfo
-                                                           -> IO VkResult
+pattern VkDisplayPowerControlEXT :: CString
 
+pattern VkDisplayPowerControlEXT <-
+        (is_VkDisplayPowerControlEXT -> True)
+  where VkDisplayPowerControlEXT = _VkDisplayPowerControlEXT
+
+{-# INLINE _VkDisplayPowerControlEXT #-}
+
+_VkDisplayPowerControlEXT :: CString
+_VkDisplayPowerControlEXT = Ptr "vkDisplayPowerControlEXT\NUL"#
+
+{-# INLINE is_VkDisplayPowerControlEXT #-}
+
+is_VkDisplayPowerControlEXT :: CString -> Bool
+is_VkDisplayPowerControlEXT
+  = (EQ ==) . cmpCStrings _VkDisplayPowerControlEXT
+
+type VkDisplayPowerControlEXT = "vkDisplayPowerControlEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   > VkResult vkDisplayPowerControlEXT
@@ -119,35 +121,49 @@
 --   >     , const VkDisplayPowerInfoEXT* pDisplayPowerInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDisplayPowerControlEXT.html vkDisplayPowerControlEXT registry at www.khronos.org>
-foreign import ccall safe "vkDisplayPowerControlEXT"
-               vkDisplayPowerControlEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDisplayKHR -- ^ display
-                              -> Ptr VkDisplayPowerInfoEXT -- ^ pDisplayPowerInfo
-                                                           -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDisplayPowerControlEXT vkDisplayPowerControlEXT registry at www.khronos.org>
+type HS_vkDisplayPowerControlEXT =
+     VkDevice -- ^ device
+              ->
+       VkDisplayKHR -- ^ display
+                    -> Ptr VkDisplayPowerInfoEXT -- ^ pDisplayPowerInfo
+                                                 -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkRegisterDeviceEventEXT
---   >     ( VkDevice device
---   >     , const VkDeviceEventInfoEXT* pDeviceEventInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFence* pFence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterDeviceEventEXT.html vkRegisterDeviceEventEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkRegisterDeviceEventEXT"
-               vkRegisterDeviceEventEXT ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDeviceEventInfoEXT -- ^ pDeviceEventInfo
-                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFence -- ^ pFence
-                                                            -> IO VkResult
+type PFN_vkDisplayPowerControlEXT =
+     FunPtr HS_vkDisplayPowerControlEXT
 
+foreign import ccall "dynamic" unwrapVkDisplayPowerControlEXT ::
+               PFN_vkDisplayPowerControlEXT -> HS_vkDisplayPowerControlEXT
+
+instance VulkanProc "vkDisplayPowerControlEXT" where
+        type VkProcType "vkDisplayPowerControlEXT" =
+             HS_vkDisplayPowerControlEXT
+        vkProcSymbol = _VkDisplayPowerControlEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDisplayPowerControlEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkRegisterDeviceEventEXT :: CString
+
+pattern VkRegisterDeviceEventEXT <-
+        (is_VkRegisterDeviceEventEXT -> True)
+  where VkRegisterDeviceEventEXT = _VkRegisterDeviceEventEXT
+
+{-# INLINE _VkRegisterDeviceEventEXT #-}
+
+_VkRegisterDeviceEventEXT :: CString
+_VkRegisterDeviceEventEXT = Ptr "vkRegisterDeviceEventEXT\NUL"#
+
+{-# INLINE is_VkRegisterDeviceEventEXT #-}
+
+is_VkRegisterDeviceEventEXT :: CString -> Bool
+is_VkRegisterDeviceEventEXT
+  = (EQ ==) . cmpCStrings _VkRegisterDeviceEventEXT
+
+type VkRegisterDeviceEventEXT = "vkRegisterDeviceEventEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   > VkResult vkRegisterDeviceEventEXT
@@ -157,40 +173,51 @@
 --   >     , VkFence* pFence
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterDeviceEventEXT.html vkRegisterDeviceEventEXT registry at www.khronos.org>
-foreign import ccall safe "vkRegisterDeviceEventEXT"
-               vkRegisterDeviceEventEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDeviceEventInfoEXT -- ^ pDeviceEventInfo
-                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkFence -- ^ pFence
-                                                            -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT registry at www.khronos.org>
+type HS_vkRegisterDeviceEventEXT =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDeviceEventInfoEXT -- ^ pDeviceEventInfo
+                                ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkFence -- ^ pFence
+                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   > VkResult vkRegisterDisplayEventEXT
---   >     ( VkDevice device
---   >     , VkDisplayKHR display
---   >     , const VkDisplayEventInfoEXT* pDisplayEventInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkFence* pFence
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterDisplayEventEXT.html vkRegisterDisplayEventEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkRegisterDisplayEventEXT"
-               vkRegisterDisplayEventEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr VkDisplayEventInfoEXT -- ^ pDisplayEventInfo
-                                             ->
-                     Ptr VkAllocationCallbacks -- ^ pAllocator
-                                               -> Ptr VkFence -- ^ pFence
-                                                              -> IO VkResult
+type PFN_vkRegisterDeviceEventEXT =
+     FunPtr HS_vkRegisterDeviceEventEXT
 
+foreign import ccall "dynamic" unwrapVkRegisterDeviceEventEXT ::
+               PFN_vkRegisterDeviceEventEXT -> HS_vkRegisterDeviceEventEXT
+
+instance VulkanProc "vkRegisterDeviceEventEXT" where
+        type VkProcType "vkRegisterDeviceEventEXT" =
+             HS_vkRegisterDeviceEventEXT
+        vkProcSymbol = _VkRegisterDeviceEventEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkRegisterDeviceEventEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkRegisterDisplayEventEXT :: CString
+
+pattern VkRegisterDisplayEventEXT <-
+        (is_VkRegisterDisplayEventEXT -> True)
+  where VkRegisterDisplayEventEXT = _VkRegisterDisplayEventEXT
+
+{-# INLINE _VkRegisterDisplayEventEXT #-}
+
+_VkRegisterDisplayEventEXT :: CString
+_VkRegisterDisplayEventEXT = Ptr "vkRegisterDisplayEventEXT\NUL"#
+
+{-# INLINE is_VkRegisterDisplayEventEXT #-}
+
+is_VkRegisterDisplayEventEXT :: CString -> Bool
+is_VkRegisterDisplayEventEXT
+  = (EQ ==) . cmpCStrings _VkRegisterDisplayEventEXT
+
+type VkRegisterDisplayEventEXT = "vkRegisterDisplayEventEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   > VkResult vkRegisterDisplayEventEXT
@@ -201,41 +228,53 @@
 --   >     , VkFence* pFence
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterDisplayEventEXT.html vkRegisterDisplayEventEXT registry at www.khronos.org>
-foreign import ccall safe "vkRegisterDisplayEventEXT"
-               vkRegisterDisplayEventEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr VkDisplayEventInfoEXT -- ^ pDisplayEventInfo
-                                             ->
-                     Ptr VkAllocationCallbacks -- ^ pAllocator
-                                               -> Ptr VkFence -- ^ pFence
-                                                              -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT registry at www.khronos.org>
+type HS_vkRegisterDisplayEventEXT =
+     VkDevice -- ^ device
+              ->
+       VkDisplayKHR -- ^ display
+                    ->
+         Ptr VkDisplayEventInfoEXT -- ^ pDisplayEventInfo
+                                   ->
+           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                     -> Ptr VkFence -- ^ pFence
+                                                    -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR'.
---
---   > VkResult vkGetSwapchainCounterEXT
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , VkSurfaceCounterFlagBitsEXT counter
---   >     , uint64_t* pCounterValue
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainCounterEXT.html vkGetSwapchainCounterEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkGetSwapchainCounterEXT"
-               vkGetSwapchainCounterEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   VkSurfaceCounterFlagBitsEXT -- ^ counter
-                                               -> Ptr Word64 -- ^ pCounterValue
-                                                             -> IO VkResult
+type PFN_vkRegisterDisplayEventEXT =
+     FunPtr HS_vkRegisterDisplayEventEXT
 
+foreign import ccall "dynamic" unwrapVkRegisterDisplayEventEXT ::
+               PFN_vkRegisterDisplayEventEXT -> HS_vkRegisterDisplayEventEXT
+
+instance VulkanProc "vkRegisterDisplayEventEXT" where
+        type VkProcType "vkRegisterDisplayEventEXT" =
+             HS_vkRegisterDisplayEventEXT
+        vkProcSymbol = _VkRegisterDisplayEventEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkRegisterDisplayEventEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetSwapchainCounterEXT :: CString
+
+pattern VkGetSwapchainCounterEXT <-
+        (is_VkGetSwapchainCounterEXT -> True)
+  where VkGetSwapchainCounterEXT = _VkGetSwapchainCounterEXT
+
+{-# INLINE _VkGetSwapchainCounterEXT #-}
+
+_VkGetSwapchainCounterEXT :: CString
+_VkGetSwapchainCounterEXT = Ptr "vkGetSwapchainCounterEXT\NUL"#
+
+{-# INLINE is_VkGetSwapchainCounterEXT #-}
+
+is_VkGetSwapchainCounterEXT :: CString -> Bool
+is_VkGetSwapchainCounterEXT
+  = (EQ ==) . cmpCStrings _VkGetSwapchainCounterEXT
+
+type VkGetSwapchainCounterEXT = "vkGetSwapchainCounterEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR'.
@@ -247,16 +286,31 @@
 --   >     , uint64_t* pCounterValue
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainCounterEXT.html vkGetSwapchainCounterEXT registry at www.khronos.org>
-foreign import ccall safe "vkGetSwapchainCounterEXT"
-               vkGetSwapchainCounterEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   VkSurfaceCounterFlagBitsEXT -- ^ counter
-                                               -> Ptr Word64 -- ^ pCounterValue
-                                                             -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT registry at www.khronos.org>
+type HS_vkGetSwapchainCounterEXT =
+     VkDevice -- ^ device
+              ->
+       VkSwapchainKHR -- ^ swapchain
+                      ->
+         VkSurfaceCounterFlagBitsEXT -- ^ counter
+                                     -> Ptr Word64 -- ^ pCounterValue
+                                                   -> IO VkResult
+
+type PFN_vkGetSwapchainCounterEXT =
+     FunPtr HS_vkGetSwapchainCounterEXT
+
+foreign import ccall "dynamic" unwrapVkGetSwapchainCounterEXT ::
+               PFN_vkGetSwapchainCounterEXT -> HS_vkGetSwapchainCounterEXT
+
+instance VulkanProc "vkGetSwapchainCounterEXT" where
+        type VkProcType "vkGetSwapchainCounterEXT" =
+             HS_vkGetSwapchainCounterEXT
+        vkProcSymbol = _VkGetSwapchainCounterEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetSwapchainCounterEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DISPLAY_CONTROL_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_display_surface_counter.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_display_surface_counter
        (-- * Vulkan extension: @VK_EXT_display_surface_counter@
@@ -24,19 +27,20 @@
         --
 
         -- ** Required extensions: 'VK_KHR_display'.
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2EXT,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Surface,
+        module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceSurfaceCapabilities2EXT,
-        vkGetPhysicalDeviceSurfaceCapabilities2EXTSafe,
+        VkGetPhysicalDeviceSurfaceCapabilities2EXT,
+        pattern VkGetPhysicalDeviceSurfaceCapabilities2EXT,
+        HS_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
+        PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION,
         pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION,
@@ -45,39 +49,41 @@
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT)
        where
-import           GHC.Ptr                                                (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2EXT
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Surface
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , VkSurfaceCapabilities2EXT* pSurfaceCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html vkGetPhysicalDeviceSurfaceCapabilities2EXT registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceSurfaceCapabilities2EXT"
-               vkGetPhysicalDeviceSurfaceCapabilities2EXT ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr VkSurfaceCapabilities2EXT -- ^ pSurfaceCapabilities
-                                                               -> IO VkResult
+pattern VkGetPhysicalDeviceSurfaceCapabilities2EXT :: CString
 
+pattern VkGetPhysicalDeviceSurfaceCapabilities2EXT <-
+        (is_VkGetPhysicalDeviceSurfaceCapabilities2EXT -> True)
+  where VkGetPhysicalDeviceSurfaceCapabilities2EXT
+          = _VkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceCapabilities2EXT #-}
+
+_VkGetPhysicalDeviceSurfaceCapabilities2EXT :: CString
+_VkGetPhysicalDeviceSurfaceCapabilities2EXT
+  = Ptr "vkGetPhysicalDeviceSurfaceCapabilities2EXT\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceCapabilities2EXT #-}
+
+is_VkGetPhysicalDeviceSurfaceCapabilities2EXT :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceCapabilities2EXT
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+type VkGetPhysicalDeviceSurfaceCapabilities2EXT =
+     "vkGetPhysicalDeviceSurfaceCapabilities2EXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -88,15 +94,32 @@
 --   >     , VkSurfaceCapabilities2EXT* pSurfaceCapabilities
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html vkGetPhysicalDeviceSurfaceCapabilities2EXT registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceSurfaceCapabilities2EXT"
-               vkGetPhysicalDeviceSurfaceCapabilities2EXTSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr VkSurfaceCapabilities2EXT -- ^ pSurfaceCapabilities
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceCapabilities2EXT =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr VkSurfaceCapabilities2EXT -- ^ pSurfaceCapabilities
+                                                     -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceCapabilities2EXT ::
+               PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ->
+                 HS_vkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceCapabilities2EXT"
+         where
+        type VkProcType "vkGetPhysicalDeviceSurfaceCapabilities2EXT" =
+             HS_vkGetPhysicalDeviceSurfaceCapabilities2EXT
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceCapabilities2EXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION ::
         (Num a, Eq a) => a
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
@@ -28,10 +28,10 @@
         pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME,
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)
        where
-import           GHC.Ptr                                                    (Ptr (..))
+import           GHC.Ptr                             (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeBitmask (..),
-                                                                             VkExternalMemoryHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.External (VkExternalMemoryHandleTypeBitmask (..),
+                                                      VkExternalMemoryHandleTypeFlagBits)
 
 pattern VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION ::
         (Num a, Eq a) => a
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
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_external_memory_host
        (-- * Vulkan extension: @VK_EXT_external_memory_host@
@@ -26,24 +29,20 @@
         -- ** Required extensions: 'VK_KHR_external_memory'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkImportMemoryHostPointerInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryHostPointerPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalMemoryHostPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetMemoryHostPointerPropertiesEXT,
-        vkGetMemoryHostPointerPropertiesEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkGetMemoryHostPointerPropertiesEXT,
+        pattern VkGetMemoryHostPointerPropertiesEXT,
+        HS_vkGetMemoryHostPointerPropertiesEXT,
+        PFN_vkGetMemoryHostPointerPropertiesEXT,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION,
         pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION,
@@ -55,49 +54,43 @@
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
         pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT)
        where
-import           GHC.Ptr
-                                                                                               (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkImportMemoryHostPointerInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryHostPointerPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
+import           Graphics.Vulkan.Types.Struct.Import
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkGetMemoryHostPointerPropertiesEXT
---   >     ( VkDevice device
---   >     , VkExternalMemoryHandleTypeFlagBits handleType
---   >     , const void* pHostPointer
---   >     , VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryHostPointerPropertiesEXT.html vkGetMemoryHostPointerPropertiesEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryHostPointerPropertiesEXT"
-               vkGetMemoryHostPointerPropertiesEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   Ptr Void -- ^ pHostPointer
-                            -> Ptr VkMemoryHostPointerPropertiesEXT -- ^ pMemoryHostPointerProperties
-                                                                    -> IO VkResult
+pattern VkGetMemoryHostPointerPropertiesEXT :: CString
 
+pattern VkGetMemoryHostPointerPropertiesEXT <-
+        (is_VkGetMemoryHostPointerPropertiesEXT -> True)
+  where VkGetMemoryHostPointerPropertiesEXT
+          = _VkGetMemoryHostPointerPropertiesEXT
+
+{-# INLINE _VkGetMemoryHostPointerPropertiesEXT #-}
+
+_VkGetMemoryHostPointerPropertiesEXT :: CString
+_VkGetMemoryHostPointerPropertiesEXT
+  = Ptr "vkGetMemoryHostPointerPropertiesEXT\NUL"#
+
+{-# INLINE is_VkGetMemoryHostPointerPropertiesEXT #-}
+
+is_VkGetMemoryHostPointerPropertiesEXT :: CString -> Bool
+is_VkGetMemoryHostPointerPropertiesEXT
+  = (EQ ==) . cmpCStrings _VkGetMemoryHostPointerPropertiesEXT
+
+type VkGetMemoryHostPointerPropertiesEXT =
+     "vkGetMemoryHostPointerPropertiesEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -109,16 +102,33 @@
 --   >     , VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryHostPointerPropertiesEXT.html vkGetMemoryHostPointerPropertiesEXT registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryHostPointerPropertiesEXT"
-               vkGetMemoryHostPointerPropertiesEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   Ptr Void -- ^ pHostPointer
-                            -> Ptr VkMemoryHostPointerPropertiesEXT -- ^ pMemoryHostPointerProperties
-                                                                    -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT registry at www.khronos.org>
+type HS_vkGetMemoryHostPointerPropertiesEXT =
+     VkDevice -- ^ device
+              ->
+       VkExternalMemoryHandleTypeFlagBits -- ^ handleType
+                                          ->
+         Ptr Void -- ^ pHostPointer
+                  -> Ptr VkMemoryHostPointerPropertiesEXT -- ^ pMemoryHostPointerProperties
+                                                          -> IO VkResult
+
+type PFN_vkGetMemoryHostPointerPropertiesEXT =
+     FunPtr HS_vkGetMemoryHostPointerPropertiesEXT
+
+foreign import ccall "dynamic"
+               unwrapVkGetMemoryHostPointerPropertiesEXT ::
+               PFN_vkGetMemoryHostPointerPropertiesEXT ->
+                 HS_vkGetMemoryHostPointerPropertiesEXT
+
+instance VulkanProc "vkGetMemoryHostPointerPropertiesEXT" where
+        type VkProcType "vkGetMemoryHostPointerPropertiesEXT" =
+             HS_vkGetMemoryHostPointerPropertiesEXT
+        vkProcSymbol = _VkGetMemoryHostPointerPropertiesEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryHostPointerPropertiesEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_global_priority.hs
@@ -17,12 +17,11 @@
         -- type: @device@
         --
         -- Extension number: @175@
-        module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueGlobalPriorityCreateInfoEXT,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.Device,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkQueueGlobalPriorityEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Queue,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION,
         pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION,
@@ -31,17 +30,14 @@
         pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
         pattern VK_ERROR_NOT_PERMITTED_EXT)
        where
-import           GHC.Ptr
-                                                                                        (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkQueueGlobalPriorityEXT
-import           Graphics.Vulkan.Types.Enum.VkResult
-                                                                                        (VkResult (..))
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueGlobalPriorityCreateInfoEXT
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Queue
+import           Graphics.Vulkan.Types.Enum.Result        (VkResult (..))
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Device
 
 pattern VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_hdr_metadata.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_hdr_metadata
        (-- * Vulkan extension: @VK_EXT_hdr_metadata@
@@ -23,11 +26,12 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.VkHdrMetadataEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkXYColorEXT,
+        module Graphics.Vulkan.Types.Struct.HdrMetadataEXT,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.XYColorEXT,
         -- > #include "vk_platform.h"
-        vkSetHdrMetadataEXT, vkSetHdrMetadataEXTSafe,
+        VkSetHdrMetadataEXT, pattern VkSetHdrMetadataEXT,
+        HS_vkSetHdrMetadataEXT, PFN_vkSetHdrMetadataEXT,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_HDR_METADATA_SPEC_VERSION,
         pattern VK_EXT_HDR_METADATA_SPEC_VERSION,
@@ -35,46 +39,60 @@
         pattern VK_EXT_HDR_METADATA_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_HDR_METADATA_EXT)
        where
-import           GHC.Ptr                                       (Ptr (..))
+import           GHC.Ptr                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkHdrMetadataEXT
-import           Graphics.Vulkan.Types.Struct.VkXYColorEXT
+import           Graphics.Vulkan.Types.Struct.HdrMetadataEXT
+import           Graphics.Vulkan.Types.Struct.XYColorEXT
 
--- | > () vkSetHdrMetadataEXT
---   >     ( VkDevice device
---   >     , uint32_t swapchainCount
---   >     , const VkSwapchainKHR* pSwapchains
---   >     , const VkHdrMetadataEXT* pMetadata
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetHdrMetadataEXT.html vkSetHdrMetadataEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkSetHdrMetadataEXT"
-               vkSetHdrMetadataEXT ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ swapchainCount
-                        -> Ptr VkSwapchainKHR -- ^ pSwapchains
-                                              -> Ptr VkHdrMetadataEXT -- ^ pMetadata
-                                                                      -> IO ()
+pattern VkSetHdrMetadataEXT :: CString
 
--- | > () vkSetHdrMetadataEXT
+pattern VkSetHdrMetadataEXT <- (is_VkSetHdrMetadataEXT -> True)
+  where VkSetHdrMetadataEXT = _VkSetHdrMetadataEXT
+
+{-# INLINE _VkSetHdrMetadataEXT #-}
+
+_VkSetHdrMetadataEXT :: CString
+_VkSetHdrMetadataEXT = Ptr "vkSetHdrMetadataEXT\NUL"#
+
+{-# INLINE is_VkSetHdrMetadataEXT #-}
+
+is_VkSetHdrMetadataEXT :: CString -> Bool
+is_VkSetHdrMetadataEXT = (EQ ==) . cmpCStrings _VkSetHdrMetadataEXT
+
+type VkSetHdrMetadataEXT = "vkSetHdrMetadataEXT"
+
+-- | > void vkSetHdrMetadataEXT
 --   >     ( VkDevice device
 --   >     , uint32_t swapchainCount
 --   >     , const VkSwapchainKHR* pSwapchains
 --   >     , const VkHdrMetadataEXT* pMetadata
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkSetHdrMetadataEXT.html vkSetHdrMetadataEXT registry at www.khronos.org>
-foreign import ccall safe "vkSetHdrMetadataEXT"
-               vkSetHdrMetadataEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ swapchainCount
-                        -> Ptr VkSwapchainKHR -- ^ pSwapchains
-                                              -> Ptr VkHdrMetadataEXT -- ^ pMetadata
-                                                                      -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkSetHdrMetadataEXT vkSetHdrMetadataEXT registry at www.khronos.org>
+type HS_vkSetHdrMetadataEXT =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ swapchainCount
+              -> Ptr VkSwapchainKHR -- ^ pSwapchains
+                                    -> Ptr VkHdrMetadataEXT -- ^ pMetadata
+                                                            -> IO ()
+
+type PFN_vkSetHdrMetadataEXT = FunPtr HS_vkSetHdrMetadataEXT
+
+foreign import ccall "dynamic" unwrapVkSetHdrMetadataEXT ::
+               PFN_vkSetHdrMetadataEXT -> HS_vkSetHdrMetadataEXT
+
+instance VulkanProc "vkSetHdrMetadataEXT" where
+        type VkProcType "vkSetHdrMetadataEXT" = HS_vkSetHdrMetadataEXT
+        vkProcSymbol = _VkSetHdrMetadataEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkSetHdrMetadataEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_HDR_METADATA_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_sample_locations
        (-- * Vulkan extension: @VK_EXT_sample_locations@
@@ -20,40 +23,32 @@
         --
         -- Extension number: @144@
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkAccessFlags,
-        module Graphics.Vulkan.Types.Struct.VkAttachmentSampleLocationsEXT,
+        module Graphics.Vulkan.Types.Enum.AccessFlags,
+        module Graphics.Vulkan.Types.Struct.Attachment,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkClearColorValue,
-        module Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue,
-        module Graphics.Vulkan.Types.Struct.VkClearValue,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Enum.VkImageAspectFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier,
-        module Graphics.Vulkan.Types.Struct.VkImageSubresourceRange,
-        module Graphics.Vulkan.Types.Struct.VkMultisamplePropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSampleLocationsPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
+        module Graphics.Vulkan.Types.Struct.Clear,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineSampleLocationsStateCreateInfoEXT,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassSampleLocationsBeginInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Struct.VkSampleLocationEXT,
-        module Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSubpassSampleLocationsEXT,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Struct.RenderPass,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Struct.SampleLocation,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Subpass,
         -- > #include "vk_platform.h"
-        vkCmdSetSampleLocationsEXT, vkCmdSetSampleLocationsEXTSafe,
-        vkGetPhysicalDeviceMultisamplePropertiesEXT,
-        vkGetPhysicalDeviceMultisamplePropertiesEXTSafe,
+        VkCmdSetSampleLocationsEXT, pattern VkCmdSetSampleLocationsEXT,
+        HS_vkCmdSetSampleLocationsEXT, PFN_vkCmdSetSampleLocationsEXT,
+        VkGetPhysicalDeviceMultisamplePropertiesEXT,
+        pattern VkGetPhysicalDeviceMultisamplePropertiesEXT,
+        HS_vkGetPhysicalDeviceMultisamplePropertiesEXT,
+        PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
         module Graphics.Vulkan.Types.Handles,
         VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION,
         pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION,
@@ -67,109 +62,136 @@
         pattern VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
         pattern VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT)
        where
-import           GHC.Ptr
-                                                                                            (Ptr (..))
+import           GHC.Ptr                                               (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                          (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags
-import           Graphics.Vulkan.Types.Enum.VkDynamicState
-                                                                                            (VkDynamicState (..))
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-                                                                                            (VkImageCreateBitmask (..),
-                                                                                            VkImageCreateFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.AccessFlags
+import           Graphics.Vulkan.Types.Enum.DynamicState               (VkDynamicState (..))
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAttachmentSampleLocationsEXT
-import           Graphics.Vulkan.Types.Struct.VkClearColorValue
-import           Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue
-import           Graphics.Vulkan.Types.Struct.VkClearValue
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceRange
-import           Graphics.Vulkan.Types.Struct.VkMultisamplePropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSampleLocationsPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineSampleLocationsStateCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo
-import           Graphics.Vulkan.Types.Struct.VkRenderPassSampleLocationsBeginInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationEXT
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkSubpassSampleLocationsEXT
+import           Graphics.Vulkan.Types.Struct.Attachment
+import           Graphics.Vulkan.Types.Struct.Clear
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.RenderPass
+import           Graphics.Vulkan.Types.Struct.SampleLocation
+import           Graphics.Vulkan.Types.Struct.Subpass
 
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetSampleLocationsEXT
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkSampleLocationsInfoEXT* pSampleLocationsInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetSampleLocationsEXT.html vkCmdSetSampleLocationsEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetSampleLocationsEXT"
-               vkCmdSetSampleLocationsEXT ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkSampleLocationsInfoEXT -- ^ pSampleLocationsInfo
-                                                               -> IO ()
+pattern VkCmdSetSampleLocationsEXT :: CString
 
--- | queues: 'graphics'.
+pattern VkCmdSetSampleLocationsEXT <-
+        (is_VkCmdSetSampleLocationsEXT -> True)
+  where VkCmdSetSampleLocationsEXT = _VkCmdSetSampleLocationsEXT
+
+{-# INLINE _VkCmdSetSampleLocationsEXT #-}
+
+_VkCmdSetSampleLocationsEXT :: CString
+_VkCmdSetSampleLocationsEXT = Ptr "vkCmdSetSampleLocationsEXT\NUL"#
+
+{-# INLINE is_VkCmdSetSampleLocationsEXT #-}
+
+is_VkCmdSetSampleLocationsEXT :: CString -> Bool
+is_VkCmdSetSampleLocationsEXT
+  = (EQ ==) . cmpCStrings _VkCmdSetSampleLocationsEXT
+
+type VkCmdSetSampleLocationsEXT = "vkCmdSetSampleLocationsEXT"
+
+-- | Queues: 'graphics'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdSetSampleLocationsEXT
+--   > void vkCmdSetSampleLocationsEXT
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkSampleLocationsInfoEXT* pSampleLocationsInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetSampleLocationsEXT.html vkCmdSetSampleLocationsEXT registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetSampleLocationsEXT"
-               vkCmdSetSampleLocationsEXTSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkSampleLocationsInfoEXT -- ^ pSampleLocationsInfo
-                                                               -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT registry at www.khronos.org>
+type HS_vkCmdSetSampleLocationsEXT =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkSampleLocationsInfoEXT -- ^ pSampleLocationsInfo
+                                                     -> IO ()
 
--- | > () vkGetPhysicalDeviceMultisamplePropertiesEXT
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSampleCountFlagBits samples
---   >     , VkMultisamplePropertiesEXT* pMultisampleProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html vkGetPhysicalDeviceMultisamplePropertiesEXT registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceMultisamplePropertiesEXT"
-               vkGetPhysicalDeviceMultisamplePropertiesEXT ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSampleCountFlagBits -- ^ samples
-                                       -> Ptr VkMultisamplePropertiesEXT -- ^ pMultisampleProperties
-                                                                         -> IO ()
+type PFN_vkCmdSetSampleLocationsEXT =
+     FunPtr HS_vkCmdSetSampleLocationsEXT
 
--- | > () vkGetPhysicalDeviceMultisamplePropertiesEXT
+foreign import ccall "dynamic" unwrapVkCmdSetSampleLocationsEXT ::
+               PFN_vkCmdSetSampleLocationsEXT -> HS_vkCmdSetSampleLocationsEXT
+
+instance VulkanProc "vkCmdSetSampleLocationsEXT" where
+        type VkProcType "vkCmdSetSampleLocationsEXT" =
+             HS_vkCmdSetSampleLocationsEXT
+        vkProcSymbol = _VkCmdSetSampleLocationsEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetSampleLocationsEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceMultisamplePropertiesEXT :: CString
+
+pattern VkGetPhysicalDeviceMultisamplePropertiesEXT <-
+        (is_VkGetPhysicalDeviceMultisamplePropertiesEXT -> True)
+  where VkGetPhysicalDeviceMultisamplePropertiesEXT
+          = _VkGetPhysicalDeviceMultisamplePropertiesEXT
+
+{-# INLINE _VkGetPhysicalDeviceMultisamplePropertiesEXT #-}
+
+_VkGetPhysicalDeviceMultisamplePropertiesEXT :: CString
+_VkGetPhysicalDeviceMultisamplePropertiesEXT
+  = Ptr "vkGetPhysicalDeviceMultisamplePropertiesEXT\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceMultisamplePropertiesEXT #-}
+
+is_VkGetPhysicalDeviceMultisamplePropertiesEXT :: CString -> Bool
+is_VkGetPhysicalDeviceMultisamplePropertiesEXT
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceMultisamplePropertiesEXT
+
+type VkGetPhysicalDeviceMultisamplePropertiesEXT =
+     "vkGetPhysicalDeviceMultisamplePropertiesEXT"
+
+-- | > void vkGetPhysicalDeviceMultisamplePropertiesEXT
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkSampleCountFlagBits samples
 --   >     , VkMultisamplePropertiesEXT* pMultisampleProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html vkGetPhysicalDeviceMultisamplePropertiesEXT registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceMultisamplePropertiesEXT"
-               vkGetPhysicalDeviceMultisamplePropertiesEXTSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSampleCountFlagBits -- ^ samples
-                                       -> Ptr VkMultisamplePropertiesEXT -- ^ pMultisampleProperties
-                                                                         -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceMultisamplePropertiesEXT =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSampleCountFlagBits -- ^ samples
+                             -> Ptr VkMultisamplePropertiesEXT -- ^ pMultisampleProperties
+                                                               -> IO ()
+
+type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT =
+     FunPtr HS_vkGetPhysicalDeviceMultisamplePropertiesEXT
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceMultisamplePropertiesEXT ::
+               PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ->
+                 HS_vkGetPhysicalDeviceMultisamplePropertiesEXT
+
+instance VulkanProc "vkGetPhysicalDeviceMultisamplePropertiesEXT"
+         where
+        type VkProcType "vkGetPhysicalDeviceMultisamplePropertiesEXT" =
+             HS_vkGetPhysicalDeviceMultisamplePropertiesEXT
+        vkProcSymbol = _VkGetPhysicalDeviceMultisamplePropertiesEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceMultisamplePropertiesEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -24,23 +24,16 @@
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkBorderColor,
-        module Graphics.Vulkan.Types.Enum.VkCompareOp,
-        module Graphics.Vulkan.Types.Enum.VkFilter,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSamplerAddressMode,
+        module Graphics.Vulkan.Types.Enum.BorderColor,
+        module Graphics.Vulkan.Types.Enum.CompareOp,
+        module Graphics.Vulkan.Types.Enum.Filter,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.Sampler,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode,
-        module Graphics.Vulkan.Types.Struct.VkSamplerReductionModeCreateInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkSamplerReductionModeEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Sampler,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION,
         pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION,
@@ -50,30 +43,21 @@
         pattern VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
         pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT)
        where
-import           GHC.Ptr
-                                                                                                (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkBorderColor
-import           Graphics.Vulkan.Types.Enum.VkCompareOp
-import           Graphics.Vulkan.Types.Enum.VkFilter
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-                                                                                                (VkFormatFeatureBitmask (..),
-                                                                                                VkFormatFeatureFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSamplerAddressMode
-import           Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode
-import           Graphics.Vulkan.Types.Enum.VkSamplerReductionModeEXT
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerReductionModeCreateInfoEXT
+import           Graphics.Vulkan.Types.Enum.BorderColor
+import           Graphics.Vulkan.Types.Enum.CompareOp
+import           Graphics.Vulkan.Types.Enum.Filter
+import           Graphics.Vulkan.Types.Enum.Format             (VkFormatFeatureBitmask (..),
+                                                                VkFormatFeatureFlagBits)
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Sampler
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Sampler
 
 pattern VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_swapchain_colorspace.hs
@@ -41,9 +41,9 @@
         pattern VK_COLOR_SPACE_PASS_THROUGH_EXT,
         pattern VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT)
        where
-import           GHC.Ptr                                    (Ptr (..))
+import           GHC.Ptr                          (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR (VkColorSpaceKHR (..))
+import           Graphics.Vulkan.Types.Enum.Color (VkColorSpaceKHR (..))
 
 pattern VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_cache.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_EXT_validation_cache
        (-- * Vulkan extension: @VK_EXT_validation_cache@
@@ -22,22 +25,25 @@
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkShaderModuleValidationCacheCreateInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkValidationCacheCreateInfoEXT,
-        module Graphics.Vulkan.Types.Enum.VkValidationCacheHeaderVersionEXT,
+        module Graphics.Vulkan.Types.Struct.Shader,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Validation,
+        module Graphics.Vulkan.Types.Enum.ValidationC,
         -- > #include "vk_platform.h"
-        vkCreateValidationCacheEXT, vkCreateValidationCacheEXTSafe,
-        vkDestroyValidationCacheEXT, vkDestroyValidationCacheEXTSafe,
-        vkMergeValidationCachesEXT, vkMergeValidationCachesEXTSafe,
-        vkGetValidationCacheDataEXT, vkGetValidationCacheDataEXTSafe,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        VkCreateValidationCacheEXT, pattern VkCreateValidationCacheEXT,
+        HS_vkCreateValidationCacheEXT, PFN_vkCreateValidationCacheEXT,
+        VkDestroyValidationCacheEXT, pattern VkDestroyValidationCacheEXT,
+        HS_vkDestroyValidationCacheEXT, PFN_vkDestroyValidationCacheEXT,
+        VkMergeValidationCachesEXT, pattern VkMergeValidationCachesEXT,
+        HS_vkMergeValidationCachesEXT, PFN_vkMergeValidationCachesEXT,
+        VkGetValidationCacheDataEXT, pattern VkGetValidationCacheDataEXT,
+        HS_vkGetValidationCacheDataEXT, PFN_vkGetValidationCacheDataEXT,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_EXT_VALIDATION_CACHE_SPEC_VERSION,
         pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION,
         VK_EXT_VALIDATION_CACHE_EXTENSION_NAME,
@@ -47,50 +53,43 @@
         pattern VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT)
        where
-import           GHC.Ptr
-                                                                                          (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-                                                                                          (VkDebugReportObjectTypeEXT (..))
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-                                                                                          (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-import           Graphics.Vulkan.Types.Enum.VkValidationCacheHeaderVersionEXT
+import           Graphics.Vulkan.Types.Enum.Debug                  (VkDebugReportObjectTypeEXT (..))
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.ValidationC
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkShaderModuleValidationCacheCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkValidationCacheCreateInfoEXT
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Shader
+import           Graphics.Vulkan.Types.Struct.Validation
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkCreateValidationCacheEXT
---   >     ( VkDevice device
---   >     , const VkValidationCacheCreateInfoEXT* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkValidationCacheEXT* pValidationCache
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateValidationCacheEXT.html vkCreateValidationCacheEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateValidationCacheEXT"
-               vkCreateValidationCacheEXT ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkValidationCacheCreateInfoEXT -- ^ pCreateInfo
-                                                    ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkValidationCacheEXT -- ^ pValidationCache
-                                              -> IO VkResult
+pattern VkCreateValidationCacheEXT :: CString
 
+pattern VkCreateValidationCacheEXT <-
+        (is_VkCreateValidationCacheEXT -> True)
+  where VkCreateValidationCacheEXT = _VkCreateValidationCacheEXT
+
+{-# INLINE _VkCreateValidationCacheEXT #-}
+
+_VkCreateValidationCacheEXT :: CString
+_VkCreateValidationCacheEXT = Ptr "vkCreateValidationCacheEXT\NUL"#
+
+{-# INLINE is_VkCreateValidationCacheEXT #-}
+
+is_VkCreateValidationCacheEXT :: CString -> Bool
+is_VkCreateValidationCacheEXT
+  = (EQ ==) . cmpCStrings _VkCreateValidationCacheEXT
+
+type VkCreateValidationCacheEXT = "vkCreateValidationCacheEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -102,70 +101,102 @@
 --   >     , VkValidationCacheEXT* pValidationCache
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateValidationCacheEXT.html vkCreateValidationCacheEXT registry at www.khronos.org>
-foreign import ccall safe "vkCreateValidationCacheEXT"
-               vkCreateValidationCacheEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkValidationCacheCreateInfoEXT -- ^ pCreateInfo
-                                                    ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkValidationCacheEXT -- ^ pValidationCache
-                                              -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateValidationCacheEXT vkCreateValidationCacheEXT registry at www.khronos.org>
+type HS_vkCreateValidationCacheEXT =
+     VkDevice -- ^ device
+              ->
+       Ptr VkValidationCacheCreateInfoEXT -- ^ pCreateInfo
+                                          ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkValidationCacheEXT -- ^ pValidationCache
+                                    -> IO VkResult
 
--- | > () vkDestroyValidationCacheEXT
---   >     ( VkDevice device
---   >     , VkValidationCacheEXT validationCache
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyValidationCacheEXT.html vkDestroyValidationCacheEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyValidationCacheEXT"
-               vkDestroyValidationCacheEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ validationCache
-                                      -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                   -> IO ()
+type PFN_vkCreateValidationCacheEXT =
+     FunPtr HS_vkCreateValidationCacheEXT
 
--- | > () vkDestroyValidationCacheEXT
+foreign import ccall "dynamic" unwrapVkCreateValidationCacheEXT ::
+               PFN_vkCreateValidationCacheEXT -> HS_vkCreateValidationCacheEXT
+
+instance VulkanProc "vkCreateValidationCacheEXT" where
+        type VkProcType "vkCreateValidationCacheEXT" =
+             HS_vkCreateValidationCacheEXT
+        vkProcSymbol = _VkCreateValidationCacheEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateValidationCacheEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyValidationCacheEXT :: CString
+
+pattern VkDestroyValidationCacheEXT <-
+        (is_VkDestroyValidationCacheEXT -> True)
+  where VkDestroyValidationCacheEXT = _VkDestroyValidationCacheEXT
+
+{-# INLINE _VkDestroyValidationCacheEXT #-}
+
+_VkDestroyValidationCacheEXT :: CString
+_VkDestroyValidationCacheEXT
+  = Ptr "vkDestroyValidationCacheEXT\NUL"#
+
+{-# INLINE is_VkDestroyValidationCacheEXT #-}
+
+is_VkDestroyValidationCacheEXT :: CString -> Bool
+is_VkDestroyValidationCacheEXT
+  = (EQ ==) . cmpCStrings _VkDestroyValidationCacheEXT
+
+type VkDestroyValidationCacheEXT = "vkDestroyValidationCacheEXT"
+
+-- | > void vkDestroyValidationCacheEXT
 --   >     ( VkDevice device
 --   >     , VkValidationCacheEXT validationCache
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyValidationCacheEXT.html vkDestroyValidationCacheEXT registry at www.khronos.org>
-foreign import ccall safe "vkDestroyValidationCacheEXT"
-               vkDestroyValidationCacheEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ validationCache
-                                      -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT registry at www.khronos.org>
+type HS_vkDestroyValidationCacheEXT =
+     VkDevice -- ^ device
+              ->
+       VkValidationCacheEXT -- ^ validationCache
+                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkMergeValidationCachesEXT
---   >     ( VkDevice device
---   >     , VkValidationCacheEXT dstCache
---   >     , uint32_t srcCacheCount
---   >     , const VkValidationCacheEXT* pSrcCaches
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMergeValidationCachesEXT.html vkMergeValidationCachesEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkMergeValidationCachesEXT"
-               vkMergeValidationCachesEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ dstCache
-                                      ->
-                   Word32 -- ^ srcCacheCount
-                          -> Ptr VkValidationCacheEXT -- ^ pSrcCaches
-                                                      -> IO VkResult
+type PFN_vkDestroyValidationCacheEXT =
+     FunPtr HS_vkDestroyValidationCacheEXT
 
+foreign import ccall "dynamic" unwrapVkDestroyValidationCacheEXT ::
+               PFN_vkDestroyValidationCacheEXT -> HS_vkDestroyValidationCacheEXT
+
+instance VulkanProc "vkDestroyValidationCacheEXT" where
+        type VkProcType "vkDestroyValidationCacheEXT" =
+             HS_vkDestroyValidationCacheEXT
+        vkProcSymbol = _VkDestroyValidationCacheEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyValidationCacheEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkMergeValidationCachesEXT :: CString
+
+pattern VkMergeValidationCachesEXT <-
+        (is_VkMergeValidationCachesEXT -> True)
+  where VkMergeValidationCachesEXT = _VkMergeValidationCachesEXT
+
+{-# INLINE _VkMergeValidationCachesEXT #-}
+
+_VkMergeValidationCachesEXT :: CString
+_VkMergeValidationCachesEXT = Ptr "vkMergeValidationCachesEXT\NUL"#
+
+{-# INLINE is_VkMergeValidationCachesEXT #-}
+
+is_VkMergeValidationCachesEXT :: CString -> Bool
+is_VkMergeValidationCachesEXT
+  = (EQ ==) . cmpCStrings _VkMergeValidationCachesEXT
+
+type VkMergeValidationCachesEXT = "vkMergeValidationCachesEXT"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -177,38 +208,52 @@
 --   >     , const VkValidationCacheEXT* pSrcCaches
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkMergeValidationCachesEXT.html vkMergeValidationCachesEXT registry at www.khronos.org>
-foreign import ccall safe "vkMergeValidationCachesEXT"
-               vkMergeValidationCachesEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ dstCache
-                                      ->
-                   Word32 -- ^ srcCacheCount
-                          -> Ptr VkValidationCacheEXT -- ^ pSrcCaches
-                                                      -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkMergeValidationCachesEXT vkMergeValidationCachesEXT registry at www.khronos.org>
+type HS_vkMergeValidationCachesEXT =
+     VkDevice -- ^ device
+              ->
+       VkValidationCacheEXT -- ^ dstCache
+                            ->
+         Word32 -- ^ srcCacheCount
+                -> Ptr VkValidationCacheEXT -- ^ pSrcCaches
+                                            -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetValidationCacheDataEXT
---   >     ( VkDevice device
---   >     , VkValidationCacheEXT validationCache
---   >     , size_t* pDataSize
---   >     , void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetValidationCacheDataEXT.html vkGetValidationCacheDataEXT registry at www.khronos.org>
-foreign import ccall unsafe "vkGetValidationCacheDataEXT"
-               vkGetValidationCacheDataEXT ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ validationCache
-                                      -> Ptr CSize -- ^ pDataSize
-                                                   -> Ptr Void -- ^ pData
-                                                               -> IO VkResult
+type PFN_vkMergeValidationCachesEXT =
+     FunPtr HS_vkMergeValidationCachesEXT
 
+foreign import ccall "dynamic" unwrapVkMergeValidationCachesEXT ::
+               PFN_vkMergeValidationCachesEXT -> HS_vkMergeValidationCachesEXT
+
+instance VulkanProc "vkMergeValidationCachesEXT" where
+        type VkProcType "vkMergeValidationCachesEXT" =
+             HS_vkMergeValidationCachesEXT
+        vkProcSymbol = _VkMergeValidationCachesEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkMergeValidationCachesEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetValidationCacheDataEXT :: CString
+
+pattern VkGetValidationCacheDataEXT <-
+        (is_VkGetValidationCacheDataEXT -> True)
+  where VkGetValidationCacheDataEXT = _VkGetValidationCacheDataEXT
+
+{-# INLINE _VkGetValidationCacheDataEXT #-}
+
+_VkGetValidationCacheDataEXT :: CString
+_VkGetValidationCacheDataEXT
+  = Ptr "vkGetValidationCacheDataEXT\NUL"#
+
+{-# INLINE is_VkGetValidationCacheDataEXT #-}
+
+is_VkGetValidationCacheDataEXT :: CString -> Bool
+is_VkGetValidationCacheDataEXT
+  = (EQ ==) . cmpCStrings _VkGetValidationCacheDataEXT
+
+type VkGetValidationCacheDataEXT = "vkGetValidationCacheDataEXT"
+
 -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -220,15 +265,30 @@
 --   >     , void* pData
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetValidationCacheDataEXT.html vkGetValidationCacheDataEXT registry at www.khronos.org>
-foreign import ccall safe "vkGetValidationCacheDataEXT"
-               vkGetValidationCacheDataEXTSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkValidationCacheEXT -- ^ validationCache
-                                      -> Ptr CSize -- ^ pDataSize
-                                                   -> Ptr Void -- ^ pData
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT registry at www.khronos.org>
+type HS_vkGetValidationCacheDataEXT =
+     VkDevice -- ^ device
+              ->
+       VkValidationCacheEXT -- ^ validationCache
+                            -> Ptr CSize -- ^ pDataSize
+                                         -> Ptr Void -- ^ pData
+                                                     -> IO VkResult
+
+type PFN_vkGetValidationCacheDataEXT =
+     FunPtr HS_vkGetValidationCacheDataEXT
+
+foreign import ccall "dynamic" unwrapVkGetValidationCacheDataEXT ::
+               PFN_vkGetValidationCacheDataEXT -> HS_vkGetValidationCacheDataEXT
+
+instance VulkanProc "vkGetValidationCacheDataEXT" where
+        type VkProcType "vkGetValidationCacheDataEXT" =
+             HS_vkGetValidationCacheDataEXT
+        vkProcSymbol = _VkGetValidationCacheDataEXT
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetValidationCacheDataEXT
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_EXT_VALIDATION_CACHE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_validation_flags.hs
@@ -18,13 +18,13 @@
         --
         -- Extension number: @62@
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Struct.VkApplicationInfo,
+        module Graphics.Vulkan.Types.Struct.ApplicationInfo,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkValidationCheckEXT,
-        module Graphics.Vulkan.Types.Struct.VkValidationFlagsEXT,
+        module Graphics.Vulkan.Types.Struct.InstanceCreateInfo,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.ValidationC,
+        module Graphics.Vulkan.Types.Struct.Validation,
         -- > #include "vk_platform.h"
         VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
         pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION,
@@ -32,15 +32,15 @@
         pattern VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT)
        where
-import           GHC.Ptr                                           (Ptr (..))
+import           GHC.Ptr                                         (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkValidationCheckEXT
-import           Graphics.Vulkan.Types.Struct.VkApplicationInfo
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkValidationFlagsEXT
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.ValidationC
+import           Graphics.Vulkan.Types.Struct.ApplicationInfo
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+import           Graphics.Vulkan.Types.Struct.Validation
 
 pattern VK_EXT_VALIDATION_FLAGS_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs b/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_EXT_vertex_attribute_divisor.hs
@@ -24,22 +24,15 @@
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT,
-        module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputDivisorStateCreateInfoEXT,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription,
-        module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDivisorDescriptionEXT,
-        module Graphics.Vulkan.Types.Enum.VkVertexInputRate,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.VertexInput,
+        module Graphics.Vulkan.Types.Enum.VertexInputRate,
         -- > #include "vk_platform.h"
         VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION,
         pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION,
@@ -48,26 +41,18 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
         pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)
        where
-import           GHC.Ptr
-                                                                                                   (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkVertexInputRate
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputDivisorStateCreateInfoEXT
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDivisorDescriptionEXT
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.VertexInputRate
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.VertexInput
 
 pattern VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs b/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_GOOGLE_display_timing.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_GOOGLE_display_timing
        (-- * Vulkan extension: @VK_GOOGLE_display_timing@
@@ -23,18 +26,20 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.VkPastPresentationTimingGOOGLE,
-        module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPresentTimeGOOGLE,
-        module Graphics.Vulkan.Types.Struct.VkPresentTimesInfoGOOGLE,
-        module Graphics.Vulkan.Types.Struct.VkRefreshCycleDurationGOOGLE,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE,
+        module Graphics.Vulkan.Types.Struct.Present,
+        module Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetRefreshCycleDurationGOOGLE,
-        vkGetRefreshCycleDurationGOOGLESafe,
-        vkGetPastPresentationTimingGOOGLE,
-        vkGetPastPresentationTimingGOOGLESafe,
+        VkGetRefreshCycleDurationGOOGLE,
+        pattern VkGetRefreshCycleDurationGOOGLE,
+        HS_vkGetRefreshCycleDurationGOOGLE,
+        PFN_vkGetRefreshCycleDurationGOOGLE,
+        VkGetPastPresentationTimingGOOGLE,
+        pattern VkGetPastPresentationTimingGOOGLE,
+        HS_vkGetPastPresentationTimingGOOGLE,
+        PFN_vkGetPastPresentationTimingGOOGLE,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Handles,
         VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION,
@@ -43,36 +48,38 @@
         pattern VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE)
        where
-import           GHC.Ptr                                                     (Ptr (..))
+import           GHC.Ptr                                                   (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Marshal.Proc                              (VulkanProc (..))
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkPastPresentationTimingGOOGLE
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPresentTimeGOOGLE
-import           Graphics.Vulkan.Types.Struct.VkPresentTimesInfoGOOGLE
-import           Graphics.Vulkan.Types.Struct.VkRefreshCycleDurationGOOGLE
+import           Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
+import           Graphics.Vulkan.Types.Struct.Present
+import           Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetRefreshCycleDurationGOOGLE
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRefreshCycleDurationGOOGLE.html vkGetRefreshCycleDurationGOOGLE registry at www.khronos.org>
-foreign import ccall unsafe "vkGetRefreshCycleDurationGOOGLE"
-               vkGetRefreshCycleDurationGOOGLE ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                -> Ptr VkRefreshCycleDurationGOOGLE -- ^ pDisplayTimingProperties
-                                                                    -> IO VkResult
+pattern VkGetRefreshCycleDurationGOOGLE :: CString
 
+pattern VkGetRefreshCycleDurationGOOGLE <-
+        (is_VkGetRefreshCycleDurationGOOGLE -> True)
+  where VkGetRefreshCycleDurationGOOGLE
+          = _VkGetRefreshCycleDurationGOOGLE
+
+{-# INLINE _VkGetRefreshCycleDurationGOOGLE #-}
+
+_VkGetRefreshCycleDurationGOOGLE :: CString
+_VkGetRefreshCycleDurationGOOGLE
+  = Ptr "vkGetRefreshCycleDurationGOOGLE\NUL"#
+
+{-# INLINE is_VkGetRefreshCycleDurationGOOGLE #-}
+
+is_VkGetRefreshCycleDurationGOOGLE :: CString -> Bool
+is_VkGetRefreshCycleDurationGOOGLE
+  = (EQ ==) . cmpCStrings _VkGetRefreshCycleDurationGOOGLE
+
+type VkGetRefreshCycleDurationGOOGLE =
+     "vkGetRefreshCycleDurationGOOGLE"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -83,37 +90,54 @@
 --   >     , VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetRefreshCycleDurationGOOGLE.html vkGetRefreshCycleDurationGOOGLE registry at www.khronos.org>
-foreign import ccall safe "vkGetRefreshCycleDurationGOOGLE"
-               vkGetRefreshCycleDurationGOOGLESafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                -> Ptr VkRefreshCycleDurationGOOGLE -- ^ pDisplayTimingProperties
-                                                                    -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE registry at www.khronos.org>
+type HS_vkGetRefreshCycleDurationGOOGLE =
+     VkDevice -- ^ device
+              ->
+       VkSwapchainKHR -- ^ swapchain
+                      -> Ptr VkRefreshCycleDurationGOOGLE -- ^ pDisplayTimingProperties
+                                                          -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetPastPresentationTimingGOOGLE
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , uint32_t* pPresentationTimingCount
---   >     , VkPastPresentationTimingGOOGLE* pPresentationTimings
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPastPresentationTimingGOOGLE.html vkGetPastPresentationTimingGOOGLE registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPastPresentationTimingGOOGLE"
-               vkGetPastPresentationTimingGOOGLE ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   Ptr Word32 -- ^ pPresentationTimingCount
-                              -> Ptr VkPastPresentationTimingGOOGLE -- ^ pPresentationTimings
-                                                                    -> IO VkResult
+type PFN_vkGetRefreshCycleDurationGOOGLE =
+     FunPtr HS_vkGetRefreshCycleDurationGOOGLE
 
+foreign import ccall "dynamic"
+               unwrapVkGetRefreshCycleDurationGOOGLE ::
+               PFN_vkGetRefreshCycleDurationGOOGLE ->
+                 HS_vkGetRefreshCycleDurationGOOGLE
+
+instance VulkanProc "vkGetRefreshCycleDurationGOOGLE" where
+        type VkProcType "vkGetRefreshCycleDurationGOOGLE" =
+             HS_vkGetRefreshCycleDurationGOOGLE
+        vkProcSymbol = _VkGetRefreshCycleDurationGOOGLE
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetRefreshCycleDurationGOOGLE
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPastPresentationTimingGOOGLE :: CString
+
+pattern VkGetPastPresentationTimingGOOGLE <-
+        (is_VkGetPastPresentationTimingGOOGLE -> True)
+  where VkGetPastPresentationTimingGOOGLE
+          = _VkGetPastPresentationTimingGOOGLE
+
+{-# INLINE _VkGetPastPresentationTimingGOOGLE #-}
+
+_VkGetPastPresentationTimingGOOGLE :: CString
+_VkGetPastPresentationTimingGOOGLE
+  = Ptr "vkGetPastPresentationTimingGOOGLE\NUL"#
+
+{-# INLINE is_VkGetPastPresentationTimingGOOGLE #-}
+
+is_VkGetPastPresentationTimingGOOGLE :: CString -> Bool
+is_VkGetPastPresentationTimingGOOGLE
+  = (EQ ==) . cmpCStrings _VkGetPastPresentationTimingGOOGLE
+
+type VkGetPastPresentationTimingGOOGLE =
+     "vkGetPastPresentationTimingGOOGLE"
+
 -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
 --   Error codes: 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -125,16 +149,33 @@
 --   >     , VkPastPresentationTimingGOOGLE* pPresentationTimings
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPastPresentationTimingGOOGLE.html vkGetPastPresentationTimingGOOGLE registry at www.khronos.org>
-foreign import ccall safe "vkGetPastPresentationTimingGOOGLE"
-               vkGetPastPresentationTimingGOOGLESafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   Ptr Word32 -- ^ pPresentationTimingCount
-                              -> Ptr VkPastPresentationTimingGOOGLE -- ^ pPresentationTimings
-                                                                    -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE registry at www.khronos.org>
+type HS_vkGetPastPresentationTimingGOOGLE =
+     VkDevice -- ^ device
+              ->
+       VkSwapchainKHR -- ^ swapchain
+                      ->
+         Ptr Word32 -- ^ pPresentationTimingCount
+                    -> Ptr VkPastPresentationTimingGOOGLE -- ^ pPresentationTimings
+                                                          -> IO VkResult
+
+type PFN_vkGetPastPresentationTimingGOOGLE =
+     FunPtr HS_vkGetPastPresentationTimingGOOGLE
+
+foreign import ccall "dynamic"
+               unwrapVkGetPastPresentationTimingGOOGLE ::
+               PFN_vkGetPastPresentationTimingGOOGLE ->
+                 HS_vkGetPastPresentationTimingGOOGLE
+
+instance VulkanProc "vkGetPastPresentationTimingGOOGLE" where
+        type VkProcType "vkGetPastPresentationTimingGOOGLE" =
+             HS_vkGetPastPresentationTimingGOOGLE
+        vkProcSymbol = _VkGetPastPresentationTimingGOOGLE
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPastPresentationTimingGOOGLE
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -24,11 +24,11 @@
         pattern VK_FILTER_CUBIC_IMG,
         pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG)
        where
-import           GHC.Ptr                                         (Ptr (..))
+import           GHC.Ptr                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkFilter             (VkFilter (..))
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags (VkFormatFeatureBitmask (..),
-                                                                  VkFormatFeatureFlagBits)
+import           Graphics.Vulkan.Types.Enum.Filter (VkFilter (..))
+import           Graphics.Vulkan.Types.Enum.Format (VkFormatFeatureBitmask (..),
+                                                    VkFormatFeatureFlagBits)
 
 pattern VK_IMG_FILTER_CUBIC_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs b/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_IMG_format_pvrtc.hs
@@ -30,9 +30,9 @@
         pattern VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
         pattern VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG)
        where
-import           GHC.Ptr                             (Ptr (..))
+import           GHC.Ptr                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkFormat (VkFormat (..))
+import           Graphics.Vulkan.Types.Enum.Format (VkFormat (..))
 
 pattern VK_IMG_FORMAT_PVRTC_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_16bit_storage.hs
@@ -23,19 +23,17 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_storage_buffer_storage_class'.
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeaturesKHR,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
         VK_KHR_16BIT_STORAGE_SPEC_VERSION,
         pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION,
         VK_KHR_16BIT_STORAGE_EXTENSION_NAME,
         pattern VK_KHR_16BIT_STORAGE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR)
        where
-import           GHC.Ptr
-                                                                                       (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                       (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeaturesKHR
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VK_KHR_16BIT_STORAGE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_android_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_android_surface
        (-- * Vulkan extension: @VK_KHR_android_surface@
@@ -26,51 +32,80 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkAndroidSurfaceCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
+        VkCreateAndroidSurfaceKHR, pattern VkCreateAndroidSurfaceKHR,
+        HS_vkCreateAndroidSurfaceKHR, PFN_vkCreateAndroidSurfaceKHR,
         vkCreateAndroidSurfaceKHR, vkCreateAndroidSurfaceKHRSafe,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.Defines,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
         pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION,
         VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                    (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
 import           Graphics.Vulkan.Types.Defines
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkAndroidSurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateAndroidSurfaceKHR :: CString
+
+pattern VkCreateAndroidSurfaceKHR <-
+        (is_VkCreateAndroidSurfaceKHR -> True)
+  where VkCreateAndroidSurfaceKHR = _VkCreateAndroidSurfaceKHR
+
+{-# INLINE _VkCreateAndroidSurfaceKHR #-}
+
+_VkCreateAndroidSurfaceKHR :: CString
+_VkCreateAndroidSurfaceKHR = Ptr "vkCreateAndroidSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateAndroidSurfaceKHR #-}
+
+is_VkCreateAndroidSurfaceKHR :: CString -> Bool
+is_VkCreateAndroidSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateAndroidSurfaceKHR
+
+type VkCreateAndroidSurfaceKHR = "vkCreateAndroidSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
 --
---   > VkResult vkCreateAndroidSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateAndroidSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateAndroidSurfaceKHR.html vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateAndroidSurfaceKHR"
                vkCreateAndroidSurfaceKHR ::
                VkInstance -- ^ instance
@@ -81,18 +116,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
 --
---   > VkResult vkCreateAndroidSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateAndroidSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateAndroidSurfaceKHR.html vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateAndroidSurfaceKHRSafe@ and @vkCreateAndroidSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateAndroidSurfaceKHR <- vkGetInstanceProc @VkCreateAndroidSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateAndroidSurfaceKHR <- vkGetProc @VkCreateAndroidSurfaceKHR
+--
+vkCreateAndroidSurfaceKHR ::
+                          VkInstance -- ^ instance
+                                     ->
+                            Ptr VkAndroidSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                              ->
+                              Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                            -> IO VkResult
+vkCreateAndroidSurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateAndroidSurfaceKHR)
+
+{-# NOINLINE vkCreateAndroidSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateAndroidSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateAndroidSurfaceKHR"
                vkCreateAndroidSurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -102,6 +184,83 @@
                    Ptr VkAllocationCallbacks -- ^ pAllocator
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateAndroidSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateAndroidSurfaceKHRSafe@ and @vkCreateAndroidSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateAndroidSurfaceKHR <- vkGetInstanceProc @VkCreateAndroidSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateAndroidSurfaceKHR <- vkGetProc @VkCreateAndroidSurfaceKHR
+--
+vkCreateAndroidSurfaceKHRSafe ::
+                              VkInstance -- ^ instance
+                                         ->
+                                Ptr VkAndroidSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                                  ->
+                                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                                -> IO VkResult
+vkCreateAndroidSurfaceKHRSafe = vkCreateAndroidSurfaceKHR
+
+{-# INLINE vkCreateAndroidSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+--   > VkResult vkCreateAndroidSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkAndroidSurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateAndroidSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkAndroidSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                         ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateAndroidSurfaceKHR =
+     FunPtr HS_vkCreateAndroidSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateAndroidSurfaceKHR ::
+               PFN_vkCreateAndroidSurfaceKHR -> HS_vkCreateAndroidSurfaceKHR
+
+instance VulkanProc "vkCreateAndroidSurfaceKHR" where
+        type VkProcType "vkCreateAndroidSurfaceKHR" =
+             HS_vkCreateAndroidSurfaceKHR
+        vkProcSymbol = _VkCreateAndroidSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateAndroidSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_ANDROID_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_bind_memory2.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_bind_memory2
        (-- * Vulkan extension: @VK_KHR_bind_memory2@
@@ -19,17 +22,15 @@
         -- type: @device@
         --
         -- Extension number: @158@
-        module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfoKHR,
-        vkBindBufferMemory2KHR, vkBindBufferMemory2KHRSafe,
-        vkBindImageMemory2KHR, vkBindImageMemory2KHRSafe,
-        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.Struct.Bind, VkBindBufferMemory2KHR,
+        pattern VkBindBufferMemory2KHR, HS_vkBindBufferMemory2KHR,
+        PFN_vkBindBufferMemory2KHR, VkBindImageMemory2KHR,
+        pattern VkBindImageMemory2KHR, HS_vkBindImageMemory2KHR,
+        PFN_vkBindImageMemory2KHR, module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo,
         VK_KHR_BIND_MEMORY_2_SPEC_VERSION,
         pattern VK_KHR_BIND_MEMORY_2_SPEC_VERSION,
         VK_KHR_BIND_MEMORY_2_EXTENSION_NAME,
@@ -38,40 +39,37 @@
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
         pattern VK_IMAGE_CREATE_ALIAS_BIT_KHR)
        where
-import           GHC.Ptr                                                (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                               (pattern VK_IMAGE_CREATE_ALIAS_BIT,
-                                                                         pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
-                                                                         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO)
+import           GHC.Ptr                                  (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                 (pattern VK_IMAGE_CREATE_ALIAS_BIT,
+                                                           pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
+                                                           pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfoKHR
+import           Graphics.Vulkan.Types.Struct.Bind
 
--- | This is an alias for `vkBindBufferMemory2`.
---
---   Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindBufferMemory2KHR
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindBufferMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory2KHR.html vkBindBufferMemory2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkBindBufferMemory2"
-               vkBindBufferMemory2KHR ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
-                                                                -> IO VkResult
+pattern VkBindBufferMemory2KHR :: CString
 
+pattern VkBindBufferMemory2KHR <-
+        (is_VkBindBufferMemory2KHR -> True)
+  where VkBindBufferMemory2KHR = _VkBindBufferMemory2KHR
+
+{-# INLINE _VkBindBufferMemory2KHR #-}
+
+_VkBindBufferMemory2KHR :: CString
+_VkBindBufferMemory2KHR = Ptr "vkBindBufferMemory2KHR\NUL"#
+
+{-# INLINE is_VkBindBufferMemory2KHR #-}
+
+is_VkBindBufferMemory2KHR :: CString -> Bool
+is_VkBindBufferMemory2KHR
+  = (EQ ==) . cmpCStrings _VkBindBufferMemory2KHR
+
+type VkBindBufferMemory2KHR = "vkBindBufferMemory2KHR"
+
 -- | This is an alias for `vkBindBufferMemory2`.
 --
 --   Success codes: 'VK_SUCCESS'.
@@ -84,34 +82,46 @@
 --   >     , const VkBindBufferMemoryInfo* pBindInfos
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindBufferMemory2KHR.html vkBindBufferMemory2KHR registry at www.khronos.org>
-foreign import ccall safe "vkBindBufferMemory2"
-               vkBindBufferMemory2KHRSafe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
-                                                                -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindBufferMemory2KHR vkBindBufferMemory2KHR registry at www.khronos.org>
+type HS_vkBindBufferMemory2KHR =
+     VkDevice -- ^ device
+              -> Word32 -- ^ bindInfoCount
+                        -> Ptr VkBindBufferMemoryInfo -- ^ pBindInfos
+                                                      -> IO VkResult
 
--- | This is an alias for `vkBindImageMemory2`.
---
---   Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkBindImageMemory2KHR
---   >     ( VkDevice device
---   >     , uint32_t bindInfoCount
---   >     , const VkBindImageMemoryInfo* pBindInfos
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory2KHR.html vkBindImageMemory2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkBindImageMemory2"
-               vkBindImageMemory2KHR ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
-                                                               -> IO VkResult
+type PFN_vkBindBufferMemory2KHR = FunPtr HS_vkBindBufferMemory2KHR
 
+foreign import ccall "dynamic" unwrapVkBindBufferMemory2KHR ::
+               PFN_vkBindBufferMemory2KHR -> HS_vkBindBufferMemory2KHR
+
+instance VulkanProc "vkBindBufferMemory2KHR" where
+        type VkProcType "vkBindBufferMemory2KHR" =
+             HS_vkBindBufferMemory2KHR
+        vkProcSymbol = _VkBindBufferMemory2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindBufferMemory2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkBindImageMemory2KHR :: CString
+
+pattern VkBindImageMemory2KHR <- (is_VkBindImageMemory2KHR -> True)
+  where VkBindImageMemory2KHR = _VkBindImageMemory2KHR
+
+{-# INLINE _VkBindImageMemory2KHR #-}
+
+_VkBindImageMemory2KHR :: CString
+_VkBindImageMemory2KHR = Ptr "vkBindImageMemory2KHR\NUL"#
+
+{-# INLINE is_VkBindImageMemory2KHR #-}
+
+is_VkBindImageMemory2KHR :: CString -> Bool
+is_VkBindImageMemory2KHR
+  = (EQ ==) . cmpCStrings _VkBindImageMemory2KHR
+
+type VkBindImageMemory2KHR = "vkBindImageMemory2KHR"
+
 -- | This is an alias for `vkBindImageMemory2`.
 --
 --   Success codes: 'VK_SUCCESS'.
@@ -124,13 +134,26 @@
 --   >     , const VkBindImageMemoryInfo* pBindInfos
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkBindImageMemory2KHR.html vkBindImageMemory2KHR registry at www.khronos.org>
-foreign import ccall safe "vkBindImageMemory2"
-               vkBindImageMemory2KHRSafe ::
-               VkDevice -- ^ device
-                        -> Word32 -- ^ bindInfoCount
-                                  -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkBindImageMemory2KHR vkBindImageMemory2KHR registry at www.khronos.org>
+type HS_vkBindImageMemory2KHR =
+     VkDevice -- ^ device
+              -> Word32 -- ^ bindInfoCount
+                        -> Ptr VkBindImageMemoryInfo -- ^ pBindInfos
+                                                     -> IO VkResult
+
+type PFN_vkBindImageMemory2KHR = FunPtr HS_vkBindImageMemory2KHR
+
+foreign import ccall "dynamic" unwrapVkBindImageMemory2KHR ::
+               PFN_vkBindImageMemory2KHR -> HS_vkBindImageMemory2KHR
+
+instance VulkanProc "vkBindImageMemory2KHR" where
+        type VkProcType "vkBindImageMemory2KHR" = HS_vkBindImageMemory2KHR
+        vkProcSymbol = _VkBindImageMemory2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkBindImageMemory2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_BIND_MEMORY_2_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_dedicated_allocation.hs
@@ -23,8 +23,7 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_memory_requirements2'.
-        module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirementsKHR,
+        module Graphics.Vulkan.Types.Struct.Memory,
         VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION,
         pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION,
         VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME,
@@ -32,12 +31,11 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR)
        where
-import           GHC.Ptr                                                       (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                                      (pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
-                                                                                pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS)
+import           GHC.Ptr                             (Ptr (..))
+import           Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
+                                                      pattern VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirementsKHR
+import           Graphics.Vulkan.Types.Struct.Memory
 
 pattern VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_descriptor_update_template.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_descriptor_update_template
        (-- * Vulkan extension: @VK_KHR_descriptor_update_template@
@@ -20,29 +23,30 @@
         --
         -- Extension number: @86@
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntryKHR,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateTypeKHR,
-        vkCreateDescriptorUpdateTemplateKHR,
-        vkCreateDescriptorUpdateTemplateKHRSafe,
-        vkDestroyDescriptorUpdateTemplateKHR,
-        vkDestroyDescriptorUpdateTemplateKHRSafe,
-        vkUpdateDescriptorSetWithTemplateKHR,
-        vkUpdateDescriptorSetWithTemplateKHRSafe,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        VkCreateDescriptorUpdateTemplateKHR,
+        pattern VkCreateDescriptorUpdateTemplateKHR,
+        HS_vkCreateDescriptorUpdateTemplateKHR,
+        PFN_vkCreateDescriptorUpdateTemplateKHR,
+        VkDestroyDescriptorUpdateTemplateKHR,
+        pattern VkDestroyDescriptorUpdateTemplateKHR,
+        HS_vkDestroyDescriptorUpdateTemplateKHR,
+        PFN_vkDestroyDescriptorUpdateTemplateKHR,
+        VkUpdateDescriptorSetWithTemplateKHR,
+        pattern VkUpdateDescriptorSetWithTemplateKHR,
+        HS_vkUpdateDescriptorSetWithTemplateKHR,
+        PFN_vkUpdateDescriptorSetWithTemplateKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorType,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION,
         pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION,
         VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME,
@@ -51,67 +55,58 @@
         pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
         pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
         -- ** Required extensions: 'VK_KHR_push_descriptor'.
-        vkCmdPushDescriptorSetWithTemplateKHR,
-        vkCmdPushDescriptorSetWithTemplateKHRSafe,
+        pattern VkCmdPushDescriptorSetWithTemplateKHR,
+        HS_vkCmdPushDescriptorSetWithTemplateKHR,
+        PFN_vkCmdPushDescriptorSetWithTemplateKHR,
         pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
         -- ** Required extensions: 'VK_EXT_debug_report'.
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT)
        where
-import           GHC.Ptr
-                                                                                       (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                       (pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-                                                                                       pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO)
-import           Graphics.Vulkan.Ext.VK_EXT_debug_report
-                                                                                       (pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
-import           Graphics.Vulkan.Ext.VK_KHR_push_descriptor
-                                                                                       (pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
-                                                                                       vkCmdPushDescriptorSetWithTemplateKHR,
-                                                                                       vkCmdPushDescriptorSetWithTemplateKHRSafe)
+import           GHC.Ptr                                           (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                          (pattern VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+                                                                    pattern VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO)
+import           Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT)
+import           Graphics.Vulkan.Ext.VK_KHR_push_descriptor        (HS_vkCmdPushDescriptorSetWithTemplateKHR,
+                                                                    PFN_vkCmdPushDescriptorSetWithTemplateKHR,
+                                                                    pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
+                                                                    pattern VkCmdPushDescriptorSetWithTemplateKHR)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType
-import           Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType
-import           Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateTypeKHR
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntryKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Descriptor
 
--- | This is an alias for `vkCreateDescriptorUpdateTemplate`.
---
---   Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDescriptorUpdateTemplateKHR
---   >     ( VkDevice device
---   >     , const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorUpdateTemplateKHR.html vkCreateDescriptorUpdateTemplateKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDescriptorUpdateTemplate"
-               vkCreateDescriptorUpdateTemplateKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
-                                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
-                                                    -> IO VkResult
+pattern VkCreateDescriptorUpdateTemplateKHR :: CString
 
+pattern VkCreateDescriptorUpdateTemplateKHR <-
+        (is_VkCreateDescriptorUpdateTemplateKHR -> True)
+  where VkCreateDescriptorUpdateTemplateKHR
+          = _VkCreateDescriptorUpdateTemplateKHR
+
+{-# INLINE _VkCreateDescriptorUpdateTemplateKHR #-}
+
+_VkCreateDescriptorUpdateTemplateKHR :: CString
+_VkCreateDescriptorUpdateTemplateKHR
+  = Ptr "vkCreateDescriptorUpdateTemplateKHR\NUL"#
+
+{-# INLINE is_VkCreateDescriptorUpdateTemplateKHR #-}
+
+is_VkCreateDescriptorUpdateTemplateKHR :: CString -> Bool
+is_VkCreateDescriptorUpdateTemplateKHR
+  = (EQ ==) . cmpCStrings _VkCreateDescriptorUpdateTemplateKHR
+
+type VkCreateDescriptorUpdateTemplateKHR =
+     "vkCreateDescriptorUpdateTemplateKHR"
+
 -- | This is an alias for `vkCreateDescriptorUpdateTemplate`.
 --
 --   Success codes: 'VK_SUCCESS'.
@@ -125,89 +120,148 @@
 --   >     , VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDescriptorUpdateTemplateKHR.html vkCreateDescriptorUpdateTemplateKHR registry at www.khronos.org>
-foreign import ccall safe "vkCreateDescriptorUpdateTemplate"
-               vkCreateDescriptorUpdateTemplateKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
-                                                          ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
-                                                    -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR registry at www.khronos.org>
+type HS_vkCreateDescriptorUpdateTemplateKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorUpdateTemplateCreateInfo -- ^ pCreateInfo
+                                                ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkDescriptorUpdateTemplate -- ^ pDescriptorUpdateTemplate
+                                          -> IO VkResult
 
--- | This is an alias for `vkDestroyDescriptorUpdateTemplate`.
---
---   > () vkDestroyDescriptorUpdateTemplateKHR
---   >     ( VkDevice device
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorUpdateTemplateKHR.html vkDestroyDescriptorUpdateTemplateKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyDescriptorUpdateTemplate"
-               vkDestroyDescriptorUpdateTemplateKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
+type PFN_vkCreateDescriptorUpdateTemplateKHR =
+     FunPtr HS_vkCreateDescriptorUpdateTemplateKHR
 
+foreign import ccall "dynamic"
+               unwrapVkCreateDescriptorUpdateTemplateKHR ::
+               PFN_vkCreateDescriptorUpdateTemplateKHR ->
+                 HS_vkCreateDescriptorUpdateTemplateKHR
+
+instance VulkanProc "vkCreateDescriptorUpdateTemplateKHR" where
+        type VkProcType "vkCreateDescriptorUpdateTemplateKHR" =
+             HS_vkCreateDescriptorUpdateTemplateKHR
+        vkProcSymbol = _VkCreateDescriptorUpdateTemplateKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDescriptorUpdateTemplateKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyDescriptorUpdateTemplateKHR :: CString
+
+pattern VkDestroyDescriptorUpdateTemplateKHR <-
+        (is_VkDestroyDescriptorUpdateTemplateKHR -> True)
+  where VkDestroyDescriptorUpdateTemplateKHR
+          = _VkDestroyDescriptorUpdateTemplateKHR
+
+{-# INLINE _VkDestroyDescriptorUpdateTemplateKHR #-}
+
+_VkDestroyDescriptorUpdateTemplateKHR :: CString
+_VkDestroyDescriptorUpdateTemplateKHR
+  = Ptr "vkDestroyDescriptorUpdateTemplateKHR\NUL"#
+
+{-# INLINE is_VkDestroyDescriptorUpdateTemplateKHR #-}
+
+is_VkDestroyDescriptorUpdateTemplateKHR :: CString -> Bool
+is_VkDestroyDescriptorUpdateTemplateKHR
+  = (EQ ==) . cmpCStrings _VkDestroyDescriptorUpdateTemplateKHR
+
+type VkDestroyDescriptorUpdateTemplateKHR =
+     "vkDestroyDescriptorUpdateTemplateKHR"
+
 -- | This is an alias for `vkDestroyDescriptorUpdateTemplate`.
 --
---   > () vkDestroyDescriptorUpdateTemplateKHR
+--   > void vkDestroyDescriptorUpdateTemplateKHR
 --   >     ( VkDevice device
 --   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyDescriptorUpdateTemplateKHR.html vkDestroyDescriptorUpdateTemplateKHR registry at www.khronos.org>
-foreign import ccall safe "vkDestroyDescriptorUpdateTemplate"
-               vkDestroyDescriptorUpdateTemplateKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR registry at www.khronos.org>
+type HS_vkDestroyDescriptorUpdateTemplateKHR =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                  -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> IO ()
 
--- | This is an alias for `vkUpdateDescriptorSetWithTemplate`.
---
---   > () vkUpdateDescriptorSetWithTemplateKHR
---   >     ( VkDevice device
---   >     , VkDescriptorSet descriptorSet
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html vkUpdateDescriptorSetWithTemplateKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkUpdateDescriptorSetWithTemplate"
-               vkUpdateDescriptorSetWithTemplateKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSet -- ^ descriptorSet
-                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                                               -> Ptr Void -- ^ pData
-                                                                           -> IO ()
+type PFN_vkDestroyDescriptorUpdateTemplateKHR =
+     FunPtr HS_vkDestroyDescriptorUpdateTemplateKHR
 
+foreign import ccall "dynamic"
+               unwrapVkDestroyDescriptorUpdateTemplateKHR ::
+               PFN_vkDestroyDescriptorUpdateTemplateKHR ->
+                 HS_vkDestroyDescriptorUpdateTemplateKHR
+
+instance VulkanProc "vkDestroyDescriptorUpdateTemplateKHR" where
+        type VkProcType "vkDestroyDescriptorUpdateTemplateKHR" =
+             HS_vkDestroyDescriptorUpdateTemplateKHR
+        vkProcSymbol = _VkDestroyDescriptorUpdateTemplateKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyDescriptorUpdateTemplateKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkUpdateDescriptorSetWithTemplateKHR :: CString
+
+pattern VkUpdateDescriptorSetWithTemplateKHR <-
+        (is_VkUpdateDescriptorSetWithTemplateKHR -> True)
+  where VkUpdateDescriptorSetWithTemplateKHR
+          = _VkUpdateDescriptorSetWithTemplateKHR
+
+{-# INLINE _VkUpdateDescriptorSetWithTemplateKHR #-}
+
+_VkUpdateDescriptorSetWithTemplateKHR :: CString
+_VkUpdateDescriptorSetWithTemplateKHR
+  = Ptr "vkUpdateDescriptorSetWithTemplateKHR\NUL"#
+
+{-# INLINE is_VkUpdateDescriptorSetWithTemplateKHR #-}
+
+is_VkUpdateDescriptorSetWithTemplateKHR :: CString -> Bool
+is_VkUpdateDescriptorSetWithTemplateKHR
+  = (EQ ==) . cmpCStrings _VkUpdateDescriptorSetWithTemplateKHR
+
+type VkUpdateDescriptorSetWithTemplateKHR =
+     "vkUpdateDescriptorSetWithTemplateKHR"
+
 -- | This is an alias for `vkUpdateDescriptorSetWithTemplate`.
 --
---   > () vkUpdateDescriptorSetWithTemplateKHR
+--   > void vkUpdateDescriptorSetWithTemplateKHR
 --   >     ( VkDevice device
 --   >     , VkDescriptorSet descriptorSet
 --   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
 --   >     , const void* pData
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html vkUpdateDescriptorSetWithTemplateKHR registry at www.khronos.org>
-foreign import ccall safe "vkUpdateDescriptorSetWithTemplate"
-               vkUpdateDescriptorSetWithTemplateKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDescriptorSet -- ^ descriptorSet
-                                 -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                                               -> Ptr Void -- ^ pData
-                                                                           -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR registry at www.khronos.org>
+type HS_vkUpdateDescriptorSetWithTemplateKHR =
+     VkDevice -- ^ device
+              ->
+       VkDescriptorSet -- ^ descriptorSet
+                       -> VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                                     -> Ptr Void -- ^ pData
+                                                                 -> IO ()
+
+type PFN_vkUpdateDescriptorSetWithTemplateKHR =
+     FunPtr HS_vkUpdateDescriptorSetWithTemplateKHR
+
+foreign import ccall "dynamic"
+               unwrapVkUpdateDescriptorSetWithTemplateKHR ::
+               PFN_vkUpdateDescriptorSetWithTemplateKHR ->
+                 HS_vkUpdateDescriptorSetWithTemplateKHR
+
+instance VulkanProc "vkUpdateDescriptorSetWithTemplateKHR" where
+        type VkProcType "vkUpdateDescriptorSetWithTemplateKHR" =
+             HS_vkUpdateDescriptorSetWithTemplateKHR
+        vkProcSymbol = _VkUpdateDescriptorSetWithTemplateKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkUpdateDescriptorSetWithTemplateKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group.hs
@@ -1,11 +1,14 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_device_group
        (-- * Vulkan extension: @VK_KHR_device_group@
@@ -25,20 +28,20 @@
         --
 
         -- ** Required extensions: 'VK_KHR_device_group_creation'.
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlagBitsKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfoKHR,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Memory,
+        module Graphics.Vulkan.Types.Struct.Memory,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlagBitsKHR,
-        vkGetDeviceGroupPeerMemoryFeaturesKHR,
-        vkGetDeviceGroupPeerMemoryFeaturesKHRSafe, vkCmdSetDeviceMaskKHR,
-        vkCmdSetDeviceMaskKHRSafe, vkCmdDispatchBaseKHR,
-        vkCmdDispatchBaseKHRSafe, module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag,
+        VkGetDeviceGroupPeerMemoryFeaturesKHR,
+        pattern VkGetDeviceGroupPeerMemoryFeaturesKHR,
+        HS_vkGetDeviceGroupPeerMemoryFeaturesKHR,
+        PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR, VkCmdSetDeviceMaskKHR,
+        pattern VkCmdSetDeviceMaskKHR, HS_vkCmdSetDeviceMaskKHR,
+        PFN_vkCmdSetDeviceMaskKHR, VkCmdDispatchBaseKHR,
+        pattern VkCmdDispatchBaseKHR, HS_vkCmdDispatchBaseKHR,
+        PFN_vkCmdDispatchBaseKHR, module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_DEVICE_GROUP_SPEC_VERSION,
         pattern VK_KHR_DEVICE_GROUP_SPEC_VERSION,
@@ -58,51 +61,43 @@
         pattern VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,
         pattern VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,
         -- ** Required extensions: 'VK_KHR_bind_memory2', 'VK_KHR_device_group_creation'.
-        module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfoKHR,
+        module Graphics.Vulkan.Types.Struct.Bind,
         pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
         pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
         -- ** Required extensions: 'VK_KHR_surface', 'VK_KHR_device_group_creation'.
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetDeviceGroupPresentCapabilitiesKHR,
-        vkGetDeviceGroupPresentCapabilitiesKHRSafe,
-        vkGetDeviceGroupSurfacePresentModesKHR,
-        vkGetDeviceGroupSurfacePresentModesKHRSafe,
-        vkGetPhysicalDevicePresentRectanglesKHR,
-        vkGetPhysicalDevicePresentRectanglesKHRSafe,
+        pattern VkGetDeviceGroupPresentCapabilitiesKHR,
+        HS_vkGetDeviceGroupPresentCapabilitiesKHR,
+        PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
+        pattern VkGetDeviceGroupSurfacePresentModesKHR,
+        HS_vkGetDeviceGroupSurfacePresentModesKHR,
+        PFN_vkGetDeviceGroupSurfacePresentModesKHR,
+        pattern VkGetPhysicalDevicePresentRectanglesKHR,
+        HS_vkGetPhysicalDevicePresentRectanglesKHR,
+        PFN_vkGetPhysicalDevicePresentRectanglesKHR,
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_device_group_creation'.
-        module Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkPresentModeKHR,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Present,
+        module Graphics.Vulkan.Types.Enum.PresentModeKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.SwapchainC,
         -- > #include "vk_platform.h"
-        vkAcquireNextImage2KHR, vkAcquireNextImage2KHRSafe,
+        pattern VkAcquireNextImage2KHR, HS_vkAcquireNextImage2KHR,
+        PFN_vkAcquireNextImage2KHR,
         pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
@@ -110,105 +105,90 @@
         pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
         pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR)
        where
-import           GHC.Ptr
-                                                                                      (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                      (pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
-                                                                                      pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
-                                                                                      pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
-                                                                                      pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
-                                                                                      pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
-                                                                                      pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO)
-import           Graphics.Vulkan.Ext.VK_KHR_swapchain
-                                                                                      (pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
-                                                                                      pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
-                                                                                      pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
-                                                                                      pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
-                                                                                      pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
-                                                                                      vkAcquireNextImage2KHR,
-                                                                                      vkAcquireNextImage2KHRSafe,
-                                                                                      vkGetDeviceGroupPresentCapabilitiesKHR,
-                                                                                      vkGetDeviceGroupPresentCapabilitiesKHRSafe,
-                                                                                      vkGetDeviceGroupSurfacePresentModesKHR,
-                                                                                      vkGetDeviceGroupSurfacePresentModesKHRSafe,
-                                                                                      vkGetPhysicalDevicePresentRectanglesKHR,
-                                                                                      vkGetPhysicalDevicePresentRectanglesKHRSafe)
+import           GHC.Ptr                                              (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                             (pattern VK_DEPENDENCY_DEVICE_GROUP_BIT,
+                                                                       pattern VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
+                                                                       pattern VK_PIPELINE_CREATE_DISPATCH_BASE,
+                                                                       pattern VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
+                                                                       pattern VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
+                                                                       pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO)
+import           Graphics.Vulkan.Ext.VK_KHR_swapchain                 (HS_vkAcquireNextImage2KHR,
+                                                                       HS_vkGetDeviceGroupPresentCapabilitiesKHR,
+                                                                       HS_vkGetDeviceGroupSurfacePresentModesKHR,
+                                                                       HS_vkGetPhysicalDevicePresentRectanglesKHR,
+                                                                       PFN_vkAcquireNextImage2KHR,
+                                                                       PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
+                                                                       PFN_vkGetDeviceGroupSurfacePresentModesKHR,
+                                                                       PFN_vkGetPhysicalDevicePresentRectanglesKHR,
+                                                                       pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
+                                                                       pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
+                                                                       pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
+                                                                       pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
+                                                                       pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
+                                                                       pattern VkAcquireNextImage2KHR,
+                                                                       pattern VkGetDeviceGroupPresentCapabilitiesKHR,
+                                                                       pattern VkGetDeviceGroupSurfacePresentModesKHR,
+                                                                       pattern VkGetPhysicalDevicePresentRectanglesKHR)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                         (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags
-                                                                                      (VkMemoryAllocateBitmask (..))
-import           Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Memory
+import           Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
+import           Graphics.Vulkan.Types.Struct.Bind
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.Present
+import           Graphics.Vulkan.Types.Struct.SwapchainC
 
--- | This is an alias for `vkGetDeviceGroupPeerMemoryFeatures`.
---
---   > () vkGetDeviceGroupPeerMemoryFeaturesKHR
---   >     ( VkDevice device
---   >     , uint32_t heapIndex
---   >     , uint32_t localDeviceIndex
---   >     , uint32_t remoteDeviceIndex
---   >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPeerMemoryFeaturesKHR.html vkGetDeviceGroupPeerMemoryFeaturesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDeviceGroupPeerMemoryFeatures"
-               vkGetDeviceGroupPeerMemoryFeaturesKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ heapIndex
-                        -> Word32 -- ^ localDeviceIndex
-                                  -> Word32 -- ^ remoteDeviceIndex
-                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
-                                                                            -> IO ()
+pattern VkGetDeviceGroupPeerMemoryFeaturesKHR :: CString
 
+pattern VkGetDeviceGroupPeerMemoryFeaturesKHR <-
+        (is_VkGetDeviceGroupPeerMemoryFeaturesKHR -> True)
+  where VkGetDeviceGroupPeerMemoryFeaturesKHR
+          = _VkGetDeviceGroupPeerMemoryFeaturesKHR
+
+{-# INLINE _VkGetDeviceGroupPeerMemoryFeaturesKHR #-}
+
+_VkGetDeviceGroupPeerMemoryFeaturesKHR :: CString
+_VkGetDeviceGroupPeerMemoryFeaturesKHR
+  = Ptr "vkGetDeviceGroupPeerMemoryFeaturesKHR\NUL"#
+
+{-# INLINE is_VkGetDeviceGroupPeerMemoryFeaturesKHR #-}
+
+is_VkGetDeviceGroupPeerMemoryFeaturesKHR :: CString -> Bool
+is_VkGetDeviceGroupPeerMemoryFeaturesKHR
+  = (EQ ==) . cmpCStrings _VkGetDeviceGroupPeerMemoryFeaturesKHR
+
+type VkGetDeviceGroupPeerMemoryFeaturesKHR =
+     "vkGetDeviceGroupPeerMemoryFeaturesKHR"
+
 -- | This is an alias for `vkGetDeviceGroupPeerMemoryFeatures`.
 --
---   > () vkGetDeviceGroupPeerMemoryFeaturesKHR
+--   > void vkGetDeviceGroupPeerMemoryFeaturesKHR
 --   >     ( VkDevice device
 --   >     , uint32_t heapIndex
 --   >     , uint32_t localDeviceIndex
@@ -216,87 +196,107 @@
 --   >     , VkPeerMemoryFeatureFlags* pPeerMemoryFeatures
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPeerMemoryFeaturesKHR.html vkGetDeviceGroupPeerMemoryFeaturesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceGroupPeerMemoryFeatures"
-               vkGetDeviceGroupPeerMemoryFeaturesKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Word32 -- ^ heapIndex
-                        -> Word32 -- ^ localDeviceIndex
-                                  -> Word32 -- ^ remoteDeviceIndex
-                                            -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
-                                                                            -> IO ()
-
--- | This is an alias for `vkCmdSetDeviceMask`.
---
---   queues: 'graphics', 'compute', 'transfer'.
---
---   renderpass: @both@
---
---   > () vkCmdSetDeviceMaskKHR
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t deviceMask
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDeviceMaskKHR.html vkCmdSetDeviceMaskKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetDeviceMask"
-               vkCmdSetDeviceMaskKHR :: VkCommandBuffer -- ^ commandBuffer
-                                                        -> Word32 -- ^ deviceMask
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR registry at www.khronos.org>
+type HS_vkGetDeviceGroupPeerMemoryFeaturesKHR =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ heapIndex
+              -> Word32 -- ^ localDeviceIndex
+                        -> Word32 -- ^ remoteDeviceIndex
+                                  -> Ptr VkPeerMemoryFeatureFlags -- ^ pPeerMemoryFeatures
                                                                   -> IO ()
 
+type PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR =
+     FunPtr HS_vkGetDeviceGroupPeerMemoryFeaturesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDeviceGroupPeerMemoryFeaturesKHR ::
+               PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR ->
+                 HS_vkGetDeviceGroupPeerMemoryFeaturesKHR
+
+instance VulkanProc "vkGetDeviceGroupPeerMemoryFeaturesKHR" where
+        type VkProcType "vkGetDeviceGroupPeerMemoryFeaturesKHR" =
+             HS_vkGetDeviceGroupPeerMemoryFeaturesKHR
+        vkProcSymbol = _VkGetDeviceGroupPeerMemoryFeaturesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceGroupPeerMemoryFeaturesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdSetDeviceMaskKHR :: CString
+
+pattern VkCmdSetDeviceMaskKHR <- (is_VkCmdSetDeviceMaskKHR -> True)
+  where VkCmdSetDeviceMaskKHR = _VkCmdSetDeviceMaskKHR
+
+{-# INLINE _VkCmdSetDeviceMaskKHR #-}
+
+_VkCmdSetDeviceMaskKHR :: CString
+_VkCmdSetDeviceMaskKHR = Ptr "vkCmdSetDeviceMaskKHR\NUL"#
+
+{-# INLINE is_VkCmdSetDeviceMaskKHR #-}
+
+is_VkCmdSetDeviceMaskKHR :: CString -> Bool
+is_VkCmdSetDeviceMaskKHR
+  = (EQ ==) . cmpCStrings _VkCmdSetDeviceMaskKHR
+
+type VkCmdSetDeviceMaskKHR = "vkCmdSetDeviceMaskKHR"
+
 -- | This is an alias for `vkCmdSetDeviceMask`.
 --
---   queues: 'graphics', 'compute', 'transfer'.
+--   Queues: 'graphics', 'compute', 'transfer'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdSetDeviceMaskKHR
+--   > void vkCmdSetDeviceMaskKHR
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , uint32_t deviceMask
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetDeviceMaskKHR.html vkCmdSetDeviceMaskKHR registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetDeviceMask"
-               vkCmdSetDeviceMaskKHRSafe :: VkCommandBuffer -- ^ commandBuffer
-                                                            -> Word32 -- ^ deviceMask
-                                                                      -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR registry at www.khronos.org>
+type HS_vkCmdSetDeviceMaskKHR = VkCommandBuffer -- ^ commandBuffer
+                                                -> Word32 -- ^ deviceMask
+                                                          -> IO ()
 
--- | This is an alias for `vkCmdDispatchBase`.
---
---   queues: 'compute'.
---
---   renderpass: @outside@
---
---   > () vkCmdDispatchBaseKHR
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t baseGroupX
---   >     , uint32_t baseGroupY
---   >     , uint32_t baseGroupZ
---   >     , uint32_t groupCountX
---   >     , uint32_t groupCountY
---   >     , uint32_t groupCountZ
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchBaseKHR.html vkCmdDispatchBaseKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdDispatchBase"
-               vkCmdDispatchBaseKHR ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ baseGroupX
-                        -> Word32 -- ^ baseGroupY
-                                  -> Word32 -- ^ baseGroupZ
-                                            -> Word32 -- ^ groupCountX
-                                                      -> Word32 -- ^ groupCountY
-                                                                -> Word32 -- ^ groupCountZ
-                                                                          -> IO ()
+type PFN_vkCmdSetDeviceMaskKHR = FunPtr HS_vkCmdSetDeviceMaskKHR
 
+foreign import ccall "dynamic" unwrapVkCmdSetDeviceMaskKHR ::
+               PFN_vkCmdSetDeviceMaskKHR -> HS_vkCmdSetDeviceMaskKHR
+
+instance VulkanProc "vkCmdSetDeviceMaskKHR" where
+        type VkProcType "vkCmdSetDeviceMaskKHR" = HS_vkCmdSetDeviceMaskKHR
+        vkProcSymbol = _VkCmdSetDeviceMaskKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetDeviceMaskKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdDispatchBaseKHR :: CString
+
+pattern VkCmdDispatchBaseKHR <- (is_VkCmdDispatchBaseKHR -> True)
+  where VkCmdDispatchBaseKHR = _VkCmdDispatchBaseKHR
+
+{-# INLINE _VkCmdDispatchBaseKHR #-}
+
+_VkCmdDispatchBaseKHR :: CString
+_VkCmdDispatchBaseKHR = Ptr "vkCmdDispatchBaseKHR\NUL"#
+
+{-# INLINE is_VkCmdDispatchBaseKHR #-}
+
+is_VkCmdDispatchBaseKHR :: CString -> Bool
+is_VkCmdDispatchBaseKHR
+  = (EQ ==) . cmpCStrings _VkCmdDispatchBaseKHR
+
+type VkCmdDispatchBaseKHR = "vkCmdDispatchBaseKHR"
+
 -- | This is an alias for `vkCmdDispatchBase`.
 --
---   queues: 'compute'.
+--   Queues: 'compute'.
 --
---   renderpass: @outside@
+--   Renderpass: @outside@
 --
---   > () vkCmdDispatchBaseKHR
+--   > void vkCmdDispatchBaseKHR
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , uint32_t baseGroupX
 --   >     , uint32_t baseGroupY
@@ -306,18 +306,31 @@
 --   >     , uint32_t groupCountZ
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdDispatchBaseKHR.html vkCmdDispatchBaseKHR registry at www.khronos.org>
-foreign import ccall safe "vkCmdDispatchBase"
-               vkCmdDispatchBaseKHRSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ baseGroupX
-                        -> Word32 -- ^ baseGroupY
-                                  -> Word32 -- ^ baseGroupZ
-                                            -> Word32 -- ^ groupCountX
-                                                      -> Word32 -- ^ groupCountY
-                                                                -> Word32 -- ^ groupCountZ
-                                                                          -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR registry at www.khronos.org>
+type HS_vkCmdDispatchBaseKHR =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ baseGroupX
+              -> Word32 -- ^ baseGroupY
+                        -> Word32 -- ^ baseGroupZ
+                                  -> Word32 -- ^ groupCountX
+                                            -> Word32 -- ^ groupCountY
+                                                      -> Word32 -- ^ groupCountZ
+                                                                -> IO ()
+
+type PFN_vkCmdDispatchBaseKHR = FunPtr HS_vkCmdDispatchBaseKHR
+
+foreign import ccall "dynamic" unwrapVkCmdDispatchBaseKHR ::
+               PFN_vkCmdDispatchBaseKHR -> HS_vkCmdDispatchBaseKHR
+
+instance VulkanProc "vkCmdDispatchBaseKHR" where
+        type VkProcType "vkCmdDispatchBaseKHR" = HS_vkCmdDispatchBaseKHR
+        vkProcSymbol = _VkCmdDispatchBaseKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdDispatchBaseKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_DEVICE_GROUP_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_device_group_creation.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_device_group_creation
        (-- * Vulkan extension: @VK_KHR_device_group_creation@
@@ -19,16 +22,17 @@
         -- type: @instance@
         --
         -- Extension number: @71@
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupPropertiesKHR,
-        vkEnumeratePhysicalDeviceGroupsKHR,
-        vkEnumeratePhysicalDeviceGroupsKHRSafe,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkEnumeratePhysicalDeviceGroupsKHR,
+        pattern VkEnumeratePhysicalDeviceGroupsKHR,
+        HS_vkEnumeratePhysicalDeviceGroupsKHR,
+        PFN_vkEnumeratePhysicalDeviceGroupsKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties,
         VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION,
         pattern VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION,
         VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
@@ -38,41 +42,42 @@
         pattern VK_MAX_DEVICE_GROUP_SIZE_KHR,
         pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR)
        where
-import           GHC.Ptr                                                         (Ptr (..))
-import           Graphics.Vulkan.Constants                                       (pattern VK_MAX_DEVICE_GROUP_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1                                        (pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-                                                                                  pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
-                                                                                  pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Constants                   (pattern VK_MAX_DEVICE_GROUP_SIZE_KHR)
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+                                                              pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupPropertiesKHR
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | This is an alias for `vkEnumeratePhysicalDeviceGroups`.
---
---   Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkEnumeratePhysicalDeviceGroupsKHR
---   >     ( VkInstance instance
---   >     , uint32_t* pPhysicalDeviceGroupCount
---   >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html vkEnumeratePhysicalDeviceGroupsKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkEnumeratePhysicalDeviceGroups"
-               vkEnumeratePhysicalDeviceGroupsKHR ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
-                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
-                                                                   -> IO VkResult
+pattern VkEnumeratePhysicalDeviceGroupsKHR :: CString
 
+pattern VkEnumeratePhysicalDeviceGroupsKHR <-
+        (is_VkEnumeratePhysicalDeviceGroupsKHR -> True)
+  where VkEnumeratePhysicalDeviceGroupsKHR
+          = _VkEnumeratePhysicalDeviceGroupsKHR
+
+{-# INLINE _VkEnumeratePhysicalDeviceGroupsKHR #-}
+
+_VkEnumeratePhysicalDeviceGroupsKHR :: CString
+_VkEnumeratePhysicalDeviceGroupsKHR
+  = Ptr "vkEnumeratePhysicalDeviceGroupsKHR\NUL"#
+
+{-# INLINE is_VkEnumeratePhysicalDeviceGroupsKHR #-}
+
+is_VkEnumeratePhysicalDeviceGroupsKHR :: CString -> Bool
+is_VkEnumeratePhysicalDeviceGroupsKHR
+  = (EQ ==) . cmpCStrings _VkEnumeratePhysicalDeviceGroupsKHR
+
+type VkEnumeratePhysicalDeviceGroupsKHR =
+     "vkEnumeratePhysicalDeviceGroupsKHR"
+
 -- | This is an alias for `vkEnumeratePhysicalDeviceGroups`.
 --
 --   Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
@@ -85,14 +90,31 @@
 --   >     , VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html vkEnumeratePhysicalDeviceGroupsKHR registry at www.khronos.org>
-foreign import ccall safe "vkEnumeratePhysicalDeviceGroups"
-               vkEnumeratePhysicalDeviceGroupsKHRSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr Word32 -- ^ pPhysicalDeviceGroupCount
-                            -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
-                                                                   -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR registry at www.khronos.org>
+type HS_vkEnumeratePhysicalDeviceGroupsKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr Word32 -- ^ pPhysicalDeviceGroupCount
+                  -> Ptr VkPhysicalDeviceGroupProperties -- ^ pPhysicalDeviceGroupProperties
+                                                         -> IO VkResult
+
+type PFN_vkEnumeratePhysicalDeviceGroupsKHR =
+     FunPtr HS_vkEnumeratePhysicalDeviceGroupsKHR
+
+foreign import ccall "dynamic"
+               unwrapVkEnumeratePhysicalDeviceGroupsKHR ::
+               PFN_vkEnumeratePhysicalDeviceGroupsKHR ->
+                 HS_vkEnumeratePhysicalDeviceGroupsKHR
+
+instance VulkanProc "vkEnumeratePhysicalDeviceGroupsKHR" where
+        type VkProcType "vkEnumeratePhysicalDeviceGroupsKHR" =
+             HS_vkEnumeratePhysicalDeviceGroupsKHR
+        vkProcSymbol = _VkEnumeratePhysicalDeviceGroupsKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkEnumeratePhysicalDeviceGroupsKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display.hs
@@ -1,395 +1,1491 @@
-{-# OPTIONS_HADDOCK not-home#-}
-{-# LANGUAGE DataKinds                #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE MagicHash                #-}
-{-# LANGUAGE PatternSynonyms          #-}
-{-# LANGUAGE Strict                   #-}
-{-# LANGUAGE ViewPatterns             #-}
-module Graphics.Vulkan.Ext.VK_KHR_display
-       (-- * Vulkan extension: @VK_KHR_display@
-        -- |
-        --
-        -- supported: @vulkan@
-        --
-        -- contact: @James Jones @cubanismo,Norbert Nopper @FslNopper@
-        --
-        -- author: @KHR@
-        --
-        -- type: @instance@
-        --
-        -- Extension number: @3@
-        --
-        -- Required extensions: 'VK_KHR_surface'.
-        --
-
-        -- ** Required extensions: 'VK_KHR_surface'.
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkDisplayModeCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplayModePropertiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplayPlaneCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplayPlanePropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplayPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkDisplaySurfaceCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceDisplayPropertiesKHR,
-        vkGetPhysicalDeviceDisplayPropertiesKHRSafe,
-        vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
-        vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe,
-        vkGetDisplayPlaneSupportedDisplaysKHR,
-        vkGetDisplayPlaneSupportedDisplaysKHRSafe,
-        vkGetDisplayModePropertiesKHR, vkGetDisplayModePropertiesKHRSafe,
-        vkCreateDisplayModeKHR, vkCreateDisplayModeKHRSafe,
-        vkGetDisplayPlaneCapabilitiesKHR,
-        vkGetDisplayPlaneCapabilitiesKHRSafe,
-        vkCreateDisplayPlaneSurfaceKHR, vkCreateDisplayPlaneSurfaceKHRSafe,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
-        module Graphics.Vulkan.Types.Funcpointers,
-        module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        VK_KHR_DISPLAY_SPEC_VERSION, pattern VK_KHR_DISPLAY_SPEC_VERSION,
-        VK_KHR_DISPLAY_EXTENSION_NAME,
-        pattern VK_KHR_DISPLAY_EXTENSION_NAME,
-        pattern VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
-        pattern VK_OBJECT_TYPE_DISPLAY_KHR,
-        pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR)
-       where
-import           GHC.Ptr                                                    (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType                    (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkDisplayModeCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplayModePropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplayPlaneCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplayPlanePropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplayPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDisplaySurfaceCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayPropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceDisplayPropertiesKHR"
-               vkGetPhysicalDeviceDisplayPropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
-                                                          -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayPropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceDisplayPropertiesKHR"
-               vkGetPhysicalDeviceDisplayPropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
-                                                          -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayPlanePropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
-               vkGetPhysicalDeviceDisplayPlanePropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayPlanePropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
-               vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pPropertyCount
-                            -> Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t planeIndex
---   >     , uint32_t* pDisplayCount
---   >     , VkDisplayKHR* pDisplays
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDisplayPlaneSupportedDisplaysKHR"
-               vkGetDisplayPlaneSupportedDisplaysKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Word32 -- ^ planeIndex
-                        -> Ptr Word32 -- ^ pDisplayCount
-                                      -> Ptr VkDisplayKHR -- ^ pDisplays
-                                                          -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t planeIndex
---   >     , uint32_t* pDisplayCount
---   >     , VkDisplayKHR* pDisplays
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDisplayPlaneSupportedDisplaysKHR"
-               vkGetDisplayPlaneSupportedDisplaysKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Word32 -- ^ planeIndex
-                        -> Ptr Word32 -- ^ pDisplayCount
-                                      -> Ptr VkDisplayKHR -- ^ pDisplays
-                                                          -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayModePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayKHR display
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayModePropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayModePropertiesKHR.html vkGetDisplayModePropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDisplayModePropertiesKHR"
-               vkGetDisplayModePropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayModePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayKHR display
---   >     , uint32_t* pPropertyCount
---   >     , VkDisplayModePropertiesKHR* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayModePropertiesKHR.html vkGetDisplayModePropertiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDisplayModePropertiesKHR"
-               vkGetDisplayModePropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
-                                                                -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkCreateDisplayModeKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayKHR display
---   >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDisplayModeKHR* pMode
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDisplayModeKHR.html vkCreateDisplayModeKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDisplayModeKHR"
-               vkCreateDisplayModeKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
-                                                  ->
-                     Ptr VkAllocationCallbacks -- ^ pAllocator
-                                               -> Ptr VkDisplayModeKHR -- ^ pMode
-                                                                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
---
---   > VkResult vkCreateDisplayModeKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayKHR display
---   >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkDisplayModeKHR* pMode
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDisplayModeKHR.html vkCreateDisplayModeKHR registry at www.khronos.org>
-foreign import ccall safe "vkCreateDisplayModeKHR"
-               vkCreateDisplayModeKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayKHR -- ^ display
-                              ->
-                   Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
-                                                  ->
-                     Ptr VkAllocationCallbacks -- ^ pAllocator
-                                               -> Ptr VkDisplayModeKHR -- ^ pMode
-                                                                       -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayPlaneCapabilitiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayModeKHR mode
---   >     , uint32_t planeIndex
---   >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayPlaneCapabilitiesKHR.html vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDisplayPlaneCapabilitiesKHR"
-               vkGetDisplayPlaneCapabilitiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayModeKHR -- ^ mode
-                                  ->
-                   Word32 -- ^ planeIndex
-                          -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDisplayPlaneCapabilitiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDisplayModeKHR mode
---   >     , uint32_t planeIndex
---   >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDisplayPlaneCapabilitiesKHR.html vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDisplayPlaneCapabilitiesKHR"
-               vkGetDisplayPlaneCapabilitiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkDisplayModeKHR -- ^ mode
-                                  ->
-                   Word32 -- ^ planeIndex
-                          -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
-                                                               -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDisplayPlaneSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDisplayPlaneSurfaceKHR.html vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateDisplayPlaneSurfaceKHR"
-               vkCreateDisplayPlaneSurfaceKHR ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
-                                                   ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateDisplayPlaneSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateDisplayPlaneSurfaceKHR.html vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
-foreign import ccall safe "vkCreateDisplayPlaneSurfaceKHR"
-               vkCreateDisplayPlaneSurfaceKHRSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
-                                                   ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE MagicHash                #-}
+{-# LANGUAGE PatternSynonyms          #-}
+{-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
+{-# LANGUAGE ViewPatterns             #-}
+module Graphics.Vulkan.Ext.VK_KHR_display
+       (-- * Vulkan extension: @VK_KHR_display@
+        -- |
+        --
+        -- supported: @vulkan@
+        --
+        -- contact: @James Jones @cubanismo,Norbert Nopper @FslNopper@
+        --
+        -- author: @KHR@
+        --
+        -- type: @instance@
+        --
+        -- Extension number: @3@
+        --
+        -- Required extensions: 'VK_KHR_surface'.
+        --
+
+        -- ** Required extensions: 'VK_KHR_surface'.
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Bitmasks,
+        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Enum.Display,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        -- > #include "vk_platform.h"
+        VkGetPhysicalDeviceDisplayPropertiesKHR,
+        pattern VkGetPhysicalDeviceDisplayPropertiesKHR,
+        HS_vkGetPhysicalDeviceDisplayPropertiesKHR,
+        PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
+        vkGetPhysicalDeviceDisplayPropertiesKHR,
+        vkGetPhysicalDeviceDisplayPropertiesKHRSafe,
+        VkGetPhysicalDeviceDisplayPlanePropertiesKHR,
+        pattern VkGetPhysicalDeviceDisplayPlanePropertiesKHR,
+        HS_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
+        PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
+        vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
+        vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe,
+        VkGetDisplayPlaneSupportedDisplaysKHR,
+        pattern VkGetDisplayPlaneSupportedDisplaysKHR,
+        HS_vkGetDisplayPlaneSupportedDisplaysKHR,
+        PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
+        vkGetDisplayPlaneSupportedDisplaysKHR,
+        vkGetDisplayPlaneSupportedDisplaysKHRSafe,
+        VkGetDisplayModePropertiesKHR,
+        pattern VkGetDisplayModePropertiesKHR,
+        HS_vkGetDisplayModePropertiesKHR,
+        PFN_vkGetDisplayModePropertiesKHR, vkGetDisplayModePropertiesKHR,
+        vkGetDisplayModePropertiesKHRSafe, VkCreateDisplayModeKHR,
+        pattern VkCreateDisplayModeKHR, HS_vkCreateDisplayModeKHR,
+        PFN_vkCreateDisplayModeKHR, vkCreateDisplayModeKHR,
+        vkCreateDisplayModeKHRSafe, VkGetDisplayPlaneCapabilitiesKHR,
+        pattern VkGetDisplayPlaneCapabilitiesKHR,
+        HS_vkGetDisplayPlaneCapabilitiesKHR,
+        PFN_vkGetDisplayPlaneCapabilitiesKHR,
+        vkGetDisplayPlaneCapabilitiesKHR,
+        vkGetDisplayPlaneCapabilitiesKHRSafe,
+        VkCreateDisplayPlaneSurfaceKHR,
+        pattern VkCreateDisplayPlaneSurfaceKHR,
+        HS_vkCreateDisplayPlaneSurfaceKHR,
+        PFN_vkCreateDisplayPlaneSurfaceKHR, vkCreateDisplayPlaneSurfaceKHR,
+        vkCreateDisplayPlaneSurfaceKHRSafe,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
+        module Graphics.Vulkan.Types.Funcpointers,
+        module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        VK_KHR_DISPLAY_SPEC_VERSION, pattern VK_KHR_DISPLAY_SPEC_VERSION,
+        VK_KHR_DISPLAY_EXTENSION_NAME,
+        pattern VK_KHR_DISPLAY_EXTENSION_NAME,
+        pattern VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
+        pattern VK_OBJECT_TYPE_DISPLAY_KHR,
+        pattern VK_OBJECT_TYPE_DISPLAY_MODE_KHR)
+       where
+import           GHC.Ptr                                           (Ptr (..))
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Bitmasks
+import           Graphics.Vulkan.Types.Enum.Display
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import           Graphics.Vulkan.Types.Funcpointers
+import           Graphics.Vulkan.Types.Handles
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Display
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+
+pattern VkGetPhysicalDeviceDisplayPropertiesKHR :: CString
+
+pattern VkGetPhysicalDeviceDisplayPropertiesKHR <-
+        (is_VkGetPhysicalDeviceDisplayPropertiesKHR -> True)
+  where VkGetPhysicalDeviceDisplayPropertiesKHR
+          = _VkGetPhysicalDeviceDisplayPropertiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceDisplayPropertiesKHR #-}
+
+_VkGetPhysicalDeviceDisplayPropertiesKHR :: CString
+_VkGetPhysicalDeviceDisplayPropertiesKHR
+  = Ptr "vkGetPhysicalDeviceDisplayPropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceDisplayPropertiesKHR #-}
+
+is_VkGetPhysicalDeviceDisplayPropertiesKHR :: CString -> Bool
+is_VkGetPhysicalDeviceDisplayPropertiesKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceDisplayPropertiesKHR
+
+type VkGetPhysicalDeviceDisplayPropertiesKHR =
+     "vkGetPhysicalDeviceDisplayPropertiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceDisplayPropertiesKHR"
+               vkGetPhysicalDeviceDisplayPropertiesKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
+                                                          -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceDisplayPropertiesKHRSafe@ and @vkGetPhysicalDeviceDisplayPropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceDisplayPropertiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceDisplayPropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceDisplayPropertiesKHR <- vkGetProc @VkGetPhysicalDeviceDisplayPropertiesKHR
+--
+vkGetPhysicalDeviceDisplayPropertiesKHR ::
+                                        VkPhysicalDevice -- ^ physicalDevice
+                                                         ->
+                                          Ptr Word32 -- ^ pPropertyCount
+                                                     -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
+                                                                                   -> IO VkResult
+vkGetPhysicalDeviceDisplayPropertiesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceDisplayPropertiesKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceDisplayPropertiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDeviceDisplayPropertiesKHR"
+               vkGetPhysicalDeviceDisplayPropertiesKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
+                                                          -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceDisplayPropertiesKHRSafe@ and @vkGetPhysicalDeviceDisplayPropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceDisplayPropertiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceDisplayPropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceDisplayPropertiesKHR <- vkGetProc @VkGetPhysicalDeviceDisplayPropertiesKHR
+--
+vkGetPhysicalDeviceDisplayPropertiesKHRSafe ::
+                                            VkPhysicalDevice -- ^ physicalDevice
+                                                             ->
+                                              Ptr Word32 -- ^ pPropertyCount
+                                                         ->
+                                                Ptr VkDisplayPropertiesKHR -- ^ pProperties
+                                                                           -> IO VkResult
+vkGetPhysicalDeviceDisplayPropertiesKHRSafe
+  = vkGetPhysicalDeviceDisplayPropertiesKHR
+
+{-# INLINE vkGetPhysicalDeviceDisplayPropertiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetPhysicalDeviceDisplayPropertiesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t* pPropertyCount
+--   >     , VkDisplayPropertiesKHR* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceDisplayPropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pPropertyCount
+                  -> Ptr VkDisplayPropertiesKHR -- ^ pProperties
+                                                -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceDisplayPropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceDisplayPropertiesKHR ::
+               PFN_vkGetPhysicalDeviceDisplayPropertiesKHR ->
+                 HS_vkGetPhysicalDeviceDisplayPropertiesKHR
+
+instance VulkanProc "vkGetPhysicalDeviceDisplayPropertiesKHR" where
+        type VkProcType "vkGetPhysicalDeviceDisplayPropertiesKHR" =
+             HS_vkGetPhysicalDeviceDisplayPropertiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceDisplayPropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceDisplayPropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceDisplayPlanePropertiesKHR :: CString
+
+pattern VkGetPhysicalDeviceDisplayPlanePropertiesKHR <-
+        (is_VkGetPhysicalDeviceDisplayPlanePropertiesKHR -> True)
+  where VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+          = _VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceDisplayPlanePropertiesKHR #-}
+
+_VkGetPhysicalDeviceDisplayPlanePropertiesKHR :: CString
+_VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+  = Ptr "vkGetPhysicalDeviceDisplayPlanePropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceDisplayPlanePropertiesKHR #-}
+
+is_VkGetPhysicalDeviceDisplayPlanePropertiesKHR :: CString -> Bool
+is_VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+type VkGetPhysicalDeviceDisplayPlanePropertiesKHR =
+     "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPlanePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
+               vkGetPhysicalDeviceDisplayPlanePropertiesKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
+                                                               -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPlanePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe@ and @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceDisplayPlanePropertiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceDisplayPlanePropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceDisplayPlanePropertiesKHR <- vkGetProc @VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+--
+vkGetPhysicalDeviceDisplayPlanePropertiesKHR ::
+                                             VkPhysicalDevice -- ^ physicalDevice
+                                                              ->
+                                               Ptr Word32 -- ^ pPropertyCount
+                                                          ->
+                                                 Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
+                                                                                 -> IO VkResult
+vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceDisplayPlanePropertiesKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceDisplayPlanePropertiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPlanePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe
+               "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
+               vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Ptr Word32 -- ^ pPropertyCount
+                            -> Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
+                                                               -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayPlanePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe@ and @vkGetPhysicalDeviceDisplayPlanePropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceDisplayPlanePropertiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceDisplayPlanePropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceDisplayPlanePropertiesKHR <- vkGetProc @VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+--
+vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe ::
+                                                 VkPhysicalDevice -- ^ physicalDevice
+                                                                  ->
+                                                   Ptr Word32 -- ^ pPropertyCount
+                                                              ->
+                                                     Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
+                                                                                     -> IO VkResult
+vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe
+  = vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+{-# INLINE vkGetPhysicalDeviceDisplayPlanePropertiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t* pPropertyCount
+--   >     , VkDisplayPlanePropertiesKHR* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pPropertyCount
+                  -> Ptr VkDisplayPlanePropertiesKHR -- ^ pProperties
+                                                     -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceDisplayPlanePropertiesKHR ::
+               PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR ->
+                 HS_vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+instance VulkanProc "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" =
+             HS_vkGetPhysicalDeviceDisplayPlanePropertiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceDisplayPlanePropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDisplayPlaneSupportedDisplaysKHR :: CString
+
+pattern VkGetDisplayPlaneSupportedDisplaysKHR <-
+        (is_VkGetDisplayPlaneSupportedDisplaysKHR -> True)
+  where VkGetDisplayPlaneSupportedDisplaysKHR
+          = _VkGetDisplayPlaneSupportedDisplaysKHR
+
+{-# INLINE _VkGetDisplayPlaneSupportedDisplaysKHR #-}
+
+_VkGetDisplayPlaneSupportedDisplaysKHR :: CString
+_VkGetDisplayPlaneSupportedDisplaysKHR
+  = Ptr "vkGetDisplayPlaneSupportedDisplaysKHR\NUL"#
+
+{-# INLINE is_VkGetDisplayPlaneSupportedDisplaysKHR #-}
+
+is_VkGetDisplayPlaneSupportedDisplaysKHR :: CString -> Bool
+is_VkGetDisplayPlaneSupportedDisplaysKHR
+  = (EQ ==) . cmpCStrings _VkGetDisplayPlaneSupportedDisplaysKHR
+
+type VkGetDisplayPlaneSupportedDisplaysKHR =
+     "vkGetDisplayPlaneSupportedDisplaysKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t planeIndex
+-- >     , uint32_t* pDisplayCount
+-- >     , VkDisplayKHR* pDisplays
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDisplayPlaneSupportedDisplaysKHR"
+               vkGetDisplayPlaneSupportedDisplaysKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Word32 -- ^ planeIndex
+                        -> Ptr Word32 -- ^ pDisplayCount
+                                      -> Ptr VkDisplayKHR -- ^ pDisplays
+                                                          -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t planeIndex
+-- >     , uint32_t* pDisplayCount
+-- >     , VkDisplayKHR* pDisplays
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayPlaneSupportedDisplaysKHRSafe@ and @vkGetDisplayPlaneSupportedDisplaysKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayPlaneSupportedDisplaysKHR <- vkGetInstanceProc @VkGetDisplayPlaneSupportedDisplaysKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayPlaneSupportedDisplaysKHR <- vkGetProc @VkGetDisplayPlaneSupportedDisplaysKHR
+--
+vkGetDisplayPlaneSupportedDisplaysKHR ::
+                                      VkPhysicalDevice -- ^ physicalDevice
+                                                       ->
+                                        Word32 -- ^ planeIndex
+                                               -> Ptr Word32 -- ^ pDisplayCount
+                                                             -> Ptr VkDisplayKHR -- ^ pDisplays
+                                                                                 -> IO VkResult
+vkGetDisplayPlaneSupportedDisplaysKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDisplayPlaneSupportedDisplaysKHR)
+
+{-# NOINLINE vkGetDisplayPlaneSupportedDisplaysKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t planeIndex
+-- >     , uint32_t* pDisplayCount
+-- >     , VkDisplayKHR* pDisplays
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDisplayPlaneSupportedDisplaysKHR"
+               vkGetDisplayPlaneSupportedDisplaysKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 Word32 -- ^ planeIndex
+                        -> Ptr Word32 -- ^ pDisplayCount
+                                      -> Ptr VkDisplayKHR -- ^ pDisplays
+                                                          -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t planeIndex
+-- >     , uint32_t* pDisplayCount
+-- >     , VkDisplayKHR* pDisplays
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayPlaneSupportedDisplaysKHRSafe@ and @vkGetDisplayPlaneSupportedDisplaysKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayPlaneSupportedDisplaysKHR <- vkGetInstanceProc @VkGetDisplayPlaneSupportedDisplaysKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayPlaneSupportedDisplaysKHR <- vkGetProc @VkGetDisplayPlaneSupportedDisplaysKHR
+--
+vkGetDisplayPlaneSupportedDisplaysKHRSafe ::
+                                          VkPhysicalDevice -- ^ physicalDevice
+                                                           ->
+                                            Word32 -- ^ planeIndex
+                                                   -> Ptr Word32 -- ^ pDisplayCount
+                                                                 -> Ptr VkDisplayKHR -- ^ pDisplays
+                                                                                     -> IO VkResult
+vkGetDisplayPlaneSupportedDisplaysKHRSafe
+  = vkGetDisplayPlaneSupportedDisplaysKHR
+
+{-# INLINE vkGetDisplayPlaneSupportedDisplaysKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetDisplayPlaneSupportedDisplaysKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t planeIndex
+--   >     , uint32_t* pDisplayCount
+--   >     , VkDisplayKHR* pDisplays
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR registry at www.khronos.org>
+type HS_vkGetDisplayPlaneSupportedDisplaysKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Word32 -- ^ planeIndex
+              -> Ptr Word32 -- ^ pDisplayCount
+                            -> Ptr VkDisplayKHR -- ^ pDisplays
+                                                -> IO VkResult
+
+type PFN_vkGetDisplayPlaneSupportedDisplaysKHR =
+     FunPtr HS_vkGetDisplayPlaneSupportedDisplaysKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDisplayPlaneSupportedDisplaysKHR ::
+               PFN_vkGetDisplayPlaneSupportedDisplaysKHR ->
+                 HS_vkGetDisplayPlaneSupportedDisplaysKHR
+
+instance VulkanProc "vkGetDisplayPlaneSupportedDisplaysKHR" where
+        type VkProcType "vkGetDisplayPlaneSupportedDisplaysKHR" =
+             HS_vkGetDisplayPlaneSupportedDisplaysKHR
+        vkProcSymbol = _VkGetDisplayPlaneSupportedDisplaysKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDisplayPlaneSupportedDisplaysKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDisplayModePropertiesKHR :: CString
+
+pattern VkGetDisplayModePropertiesKHR <-
+        (is_VkGetDisplayModePropertiesKHR -> True)
+  where VkGetDisplayModePropertiesKHR
+          = _VkGetDisplayModePropertiesKHR
+
+{-# INLINE _VkGetDisplayModePropertiesKHR #-}
+
+_VkGetDisplayModePropertiesKHR :: CString
+_VkGetDisplayModePropertiesKHR
+  = Ptr "vkGetDisplayModePropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetDisplayModePropertiesKHR #-}
+
+is_VkGetDisplayModePropertiesKHR :: CString -> Bool
+is_VkGetDisplayModePropertiesKHR
+  = (EQ ==) . cmpCStrings _VkGetDisplayModePropertiesKHR
+
+type VkGetDisplayModePropertiesKHR =
+     "vkGetDisplayModePropertiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayModePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayModePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDisplayModePropertiesKHR"
+               vkGetDisplayModePropertiesKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayKHR -- ^ display
+                              ->
+                   Ptr Word32 -- ^ pPropertyCount
+                              -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
+                                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayModePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayModePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayModePropertiesKHRSafe@ and @vkGetDisplayModePropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayModePropertiesKHR <- vkGetInstanceProc @VkGetDisplayModePropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayModePropertiesKHR <- vkGetProc @VkGetDisplayModePropertiesKHR
+--
+vkGetDisplayModePropertiesKHR ::
+                              VkPhysicalDevice -- ^ physicalDevice
+                                               ->
+                                VkDisplayKHR -- ^ display
+                                             ->
+                                  Ptr Word32 -- ^ pPropertyCount
+                                             -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
+                                                                               -> IO VkResult
+vkGetDisplayModePropertiesKHR
+  = unsafeDupablePerformIO (vkGetProc @VkGetDisplayModePropertiesKHR)
+
+{-# NOINLINE vkGetDisplayModePropertiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayModePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayModePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDisplayModePropertiesKHR"
+               vkGetDisplayModePropertiesKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayKHR -- ^ display
+                              ->
+                   Ptr Word32 -- ^ pPropertyCount
+                              -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
+                                                                -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayModePropertiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , uint32_t* pPropertyCount
+-- >     , VkDisplayModePropertiesKHR* pProperties
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayModePropertiesKHRSafe@ and @vkGetDisplayModePropertiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayModePropertiesKHR <- vkGetInstanceProc @VkGetDisplayModePropertiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayModePropertiesKHR <- vkGetProc @VkGetDisplayModePropertiesKHR
+--
+vkGetDisplayModePropertiesKHRSafe ::
+                                  VkPhysicalDevice -- ^ physicalDevice
+                                                   ->
+                                    VkDisplayKHR -- ^ display
+                                                 ->
+                                      Ptr Word32 -- ^ pPropertyCount
+                                                 -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
+                                                                                   -> IO VkResult
+vkGetDisplayModePropertiesKHRSafe = vkGetDisplayModePropertiesKHR
+
+{-# INLINE vkGetDisplayModePropertiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetDisplayModePropertiesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkDisplayKHR display
+--   >     , uint32_t* pPropertyCount
+--   >     , VkDisplayModePropertiesKHR* pProperties
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR registry at www.khronos.org>
+type HS_vkGetDisplayModePropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkDisplayKHR -- ^ display
+                    ->
+         Ptr Word32 -- ^ pPropertyCount
+                    -> Ptr VkDisplayModePropertiesKHR -- ^ pProperties
+                                                      -> IO VkResult
+
+type PFN_vkGetDisplayModePropertiesKHR =
+     FunPtr HS_vkGetDisplayModePropertiesKHR
+
+foreign import ccall "dynamic" unwrapVkGetDisplayModePropertiesKHR
+               ::
+               PFN_vkGetDisplayModePropertiesKHR ->
+                 HS_vkGetDisplayModePropertiesKHR
+
+instance VulkanProc "vkGetDisplayModePropertiesKHR" where
+        type VkProcType "vkGetDisplayModePropertiesKHR" =
+             HS_vkGetDisplayModePropertiesKHR
+        vkProcSymbol = _VkGetDisplayModePropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDisplayModePropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDisplayModeKHR :: CString
+
+pattern VkCreateDisplayModeKHR <-
+        (is_VkCreateDisplayModeKHR -> True)
+  where VkCreateDisplayModeKHR = _VkCreateDisplayModeKHR
+
+{-# INLINE _VkCreateDisplayModeKHR #-}
+
+_VkCreateDisplayModeKHR :: CString
+_VkCreateDisplayModeKHR = Ptr "vkCreateDisplayModeKHR\NUL"#
+
+{-# INLINE is_VkCreateDisplayModeKHR #-}
+
+is_VkCreateDisplayModeKHR :: CString -> Bool
+is_VkCreateDisplayModeKHR
+  = (EQ ==) . cmpCStrings _VkCreateDisplayModeKHR
+
+type VkCreateDisplayModeKHR = "vkCreateDisplayModeKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkCreateDisplayModeKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDisplayModeKHR* pMode
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayModeKHR vkCreateDisplayModeKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDisplayModeKHR"
+               vkCreateDisplayModeKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayKHR -- ^ display
+                              ->
+                   Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
+                                                  ->
+                     Ptr VkAllocationCallbacks -- ^ pAllocator
+                                               -> Ptr VkDisplayModeKHR -- ^ pMode
+                                                                       -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkCreateDisplayModeKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDisplayModeKHR* pMode
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayModeKHR vkCreateDisplayModeKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDisplayModeKHRSafe@ and @vkCreateDisplayModeKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDisplayModeKHR <- vkGetInstanceProc @VkCreateDisplayModeKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDisplayModeKHR <- vkGetProc @VkCreateDisplayModeKHR
+--
+vkCreateDisplayModeKHR ::
+                       VkPhysicalDevice -- ^ physicalDevice
+                                        ->
+                         VkDisplayKHR -- ^ display
+                                      ->
+                           Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
+                                                          ->
+                             Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                       -> Ptr VkDisplayModeKHR -- ^ pMode
+                                                                               -> IO VkResult
+vkCreateDisplayModeKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateDisplayModeKHR)
+
+{-# NOINLINE vkCreateDisplayModeKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkCreateDisplayModeKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDisplayModeKHR* pMode
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayModeKHR vkCreateDisplayModeKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDisplayModeKHR"
+               vkCreateDisplayModeKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayKHR -- ^ display
+                              ->
+                   Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
+                                                  ->
+                     Ptr VkAllocationCallbacks -- ^ pAllocator
+                                               -> Ptr VkDisplayModeKHR -- ^ pMode
+                                                                       -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+-- > VkResult vkCreateDisplayModeKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayKHR display
+-- >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkDisplayModeKHR* pMode
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayModeKHR vkCreateDisplayModeKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDisplayModeKHRSafe@ and @vkCreateDisplayModeKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDisplayModeKHR <- vkGetInstanceProc @VkCreateDisplayModeKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDisplayModeKHR <- vkGetProc @VkCreateDisplayModeKHR
+--
+vkCreateDisplayModeKHRSafe ::
+                           VkPhysicalDevice -- ^ physicalDevice
+                                            ->
+                             VkDisplayKHR -- ^ display
+                                          ->
+                               Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
+                                                              ->
+                                 Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                           -> Ptr VkDisplayModeKHR -- ^ pMode
+                                                                                   -> IO VkResult
+vkCreateDisplayModeKHRSafe = vkCreateDisplayModeKHR
+
+{-# INLINE vkCreateDisplayModeKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INITIALIZATION_FAILED'.
+--
+--   > VkResult vkCreateDisplayModeKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkDisplayKHR display
+--   >     , const VkDisplayModeCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkDisplayModeKHR* pMode
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayModeKHR vkCreateDisplayModeKHR registry at www.khronos.org>
+type HS_vkCreateDisplayModeKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkDisplayKHR -- ^ display
+                    ->
+         Ptr VkDisplayModeCreateInfoKHR -- ^ pCreateInfo
+                                        ->
+           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                     -> Ptr VkDisplayModeKHR -- ^ pMode
+                                                             -> IO VkResult
+
+type PFN_vkCreateDisplayModeKHR = FunPtr HS_vkCreateDisplayModeKHR
+
+foreign import ccall "dynamic" unwrapVkCreateDisplayModeKHR ::
+               PFN_vkCreateDisplayModeKHR -> HS_vkCreateDisplayModeKHR
+
+instance VulkanProc "vkCreateDisplayModeKHR" where
+        type VkProcType "vkCreateDisplayModeKHR" =
+             HS_vkCreateDisplayModeKHR
+        vkProcSymbol = _VkCreateDisplayModeKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDisplayModeKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDisplayPlaneCapabilitiesKHR :: CString
+
+pattern VkGetDisplayPlaneCapabilitiesKHR <-
+        (is_VkGetDisplayPlaneCapabilitiesKHR -> True)
+  where VkGetDisplayPlaneCapabilitiesKHR
+          = _VkGetDisplayPlaneCapabilitiesKHR
+
+{-# INLINE _VkGetDisplayPlaneCapabilitiesKHR #-}
+
+_VkGetDisplayPlaneCapabilitiesKHR :: CString
+_VkGetDisplayPlaneCapabilitiesKHR
+  = Ptr "vkGetDisplayPlaneCapabilitiesKHR\NUL"#
+
+{-# INLINE is_VkGetDisplayPlaneCapabilitiesKHR #-}
+
+is_VkGetDisplayPlaneCapabilitiesKHR :: CString -> Bool
+is_VkGetDisplayPlaneCapabilitiesKHR
+  = (EQ ==) . cmpCStrings _VkGetDisplayPlaneCapabilitiesKHR
+
+type VkGetDisplayPlaneCapabilitiesKHR =
+     "vkGetDisplayPlaneCapabilitiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayModeKHR mode
+-- >     , uint32_t planeIndex
+-- >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetDisplayPlaneCapabilitiesKHR"
+               vkGetDisplayPlaneCapabilitiesKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayModeKHR -- ^ mode
+                                  ->
+                   Word32 -- ^ planeIndex
+                          -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
+                                                               -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayModeKHR mode
+-- >     , uint32_t planeIndex
+-- >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayPlaneCapabilitiesKHRSafe@ and @vkGetDisplayPlaneCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayPlaneCapabilitiesKHR <- vkGetInstanceProc @VkGetDisplayPlaneCapabilitiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayPlaneCapabilitiesKHR <- vkGetProc @VkGetDisplayPlaneCapabilitiesKHR
+--
+vkGetDisplayPlaneCapabilitiesKHR ::
+                                 VkPhysicalDevice -- ^ physicalDevice
+                                                  ->
+                                   VkDisplayModeKHR -- ^ mode
+                                                    ->
+                                     Word32 -- ^ planeIndex
+                                            -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
+                                                                                 -> IO VkResult
+vkGetDisplayPlaneCapabilitiesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDisplayPlaneCapabilitiesKHR)
+
+{-# NOINLINE vkGetDisplayPlaneCapabilitiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayModeKHR mode
+-- >     , uint32_t planeIndex
+-- >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDisplayPlaneCapabilitiesKHR"
+               vkGetDisplayPlaneCapabilitiesKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkDisplayModeKHR -- ^ mode
+                                  ->
+                   Word32 -- ^ planeIndex
+                          -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
+                                                               -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDisplayPlaneCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkDisplayModeKHR mode
+-- >     , uint32_t planeIndex
+-- >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDisplayPlaneCapabilitiesKHRSafe@ and @vkGetDisplayPlaneCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDisplayPlaneCapabilitiesKHR <- vkGetInstanceProc @VkGetDisplayPlaneCapabilitiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetDisplayPlaneCapabilitiesKHR <- vkGetProc @VkGetDisplayPlaneCapabilitiesKHR
+--
+vkGetDisplayPlaneCapabilitiesKHRSafe ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       VkDisplayModeKHR -- ^ mode
+                                                        ->
+                                         Word32 -- ^ planeIndex
+                                                -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
+                                                                                     -> IO VkResult
+vkGetDisplayPlaneCapabilitiesKHRSafe
+  = vkGetDisplayPlaneCapabilitiesKHR
+
+{-# INLINE vkGetDisplayPlaneCapabilitiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetDisplayPlaneCapabilitiesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkDisplayModeKHR mode
+--   >     , uint32_t planeIndex
+--   >     , VkDisplayPlaneCapabilitiesKHR* pCapabilities
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+type HS_vkGetDisplayPlaneCapabilitiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkDisplayModeKHR -- ^ mode
+                        ->
+         Word32 -- ^ planeIndex
+                -> Ptr VkDisplayPlaneCapabilitiesKHR -- ^ pCapabilities
+                                                     -> IO VkResult
+
+type PFN_vkGetDisplayPlaneCapabilitiesKHR =
+     FunPtr HS_vkGetDisplayPlaneCapabilitiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDisplayPlaneCapabilitiesKHR ::
+               PFN_vkGetDisplayPlaneCapabilitiesKHR ->
+                 HS_vkGetDisplayPlaneCapabilitiesKHR
+
+instance VulkanProc "vkGetDisplayPlaneCapabilitiesKHR" where
+        type VkProcType "vkGetDisplayPlaneCapabilitiesKHR" =
+             HS_vkGetDisplayPlaneCapabilitiesKHR
+        vkProcSymbol = _VkGetDisplayPlaneCapabilitiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDisplayPlaneCapabilitiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateDisplayPlaneSurfaceKHR :: CString
+
+pattern VkCreateDisplayPlaneSurfaceKHR <-
+        (is_VkCreateDisplayPlaneSurfaceKHR -> True)
+  where VkCreateDisplayPlaneSurfaceKHR
+          = _VkCreateDisplayPlaneSurfaceKHR
+
+{-# INLINE _VkCreateDisplayPlaneSurfaceKHR #-}
+
+_VkCreateDisplayPlaneSurfaceKHR :: CString
+_VkCreateDisplayPlaneSurfaceKHR
+  = Ptr "vkCreateDisplayPlaneSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateDisplayPlaneSurfaceKHR #-}
+
+is_VkCreateDisplayPlaneSurfaceKHR :: CString -> Bool
+is_VkCreateDisplayPlaneSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateDisplayPlaneSurfaceKHR
+
+type VkCreateDisplayPlaneSurfaceKHR =
+     "vkCreateDisplayPlaneSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDisplayPlaneSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateDisplayPlaneSurfaceKHR"
+               vkCreateDisplayPlaneSurfaceKHR ::
+               VkInstance -- ^ instance
+                          ->
+                 Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                   ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                 -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDisplayPlaneSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDisplayPlaneSurfaceKHRSafe@ and @vkCreateDisplayPlaneSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDisplayPlaneSurfaceKHR <- vkGetInstanceProc @VkCreateDisplayPlaneSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDisplayPlaneSurfaceKHR <- vkGetProc @VkCreateDisplayPlaneSurfaceKHR
+--
+vkCreateDisplayPlaneSurfaceKHR ::
+                               VkInstance -- ^ instance
+                                          ->
+                                 Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                                   ->
+                                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                                 -> IO VkResult
+vkCreateDisplayPlaneSurfaceKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkCreateDisplayPlaneSurfaceKHR)
+
+{-# NOINLINE vkCreateDisplayPlaneSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDisplayPlaneSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateDisplayPlaneSurfaceKHR"
+               vkCreateDisplayPlaneSurfaceKHRSafe ::
+               VkInstance -- ^ instance
+                          ->
+                 Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                   ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                 -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateDisplayPlaneSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateDisplayPlaneSurfaceKHRSafe@ and @vkCreateDisplayPlaneSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateDisplayPlaneSurfaceKHR <- vkGetInstanceProc @VkCreateDisplayPlaneSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateDisplayPlaneSurfaceKHR <- vkGetProc @VkCreateDisplayPlaneSurfaceKHR
+--
+vkCreateDisplayPlaneSurfaceKHRSafe ::
+                                   VkInstance -- ^ instance
+                                              ->
+                                     Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                                       ->
+                                       Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                 -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                                     -> IO VkResult
+vkCreateDisplayPlaneSurfaceKHRSafe = vkCreateDisplayPlaneSurfaceKHR
+
+{-# INLINE vkCreateDisplayPlaneSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateDisplayPlaneSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkDisplaySurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateDisplayPlaneSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkDisplaySurfaceCreateInfoKHR -- ^ pCreateInfo
+                                         ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateDisplayPlaneSurfaceKHR =
+     FunPtr HS_vkCreateDisplayPlaneSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateDisplayPlaneSurfaceKHR
+               ::
+               PFN_vkCreateDisplayPlaneSurfaceKHR ->
+                 HS_vkCreateDisplayPlaneSurfaceKHR
+
+instance VulkanProc "vkCreateDisplayPlaneSurfaceKHR" where
+        type VkProcType "vkCreateDisplayPlaneSurfaceKHR" =
+             HS_vkCreateDisplayPlaneSurfaceKHR
+        vkProcSymbol = _VkCreateDisplayPlaneSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateDisplayPlaneSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_DISPLAY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_display_swapchain.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_display_swapchain
        (-- * Vulkan extension: @VK_KHR_display_swapchain@
@@ -24,30 +30,32 @@
 
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_display'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkDisplayPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Display,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.Present,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
+        VkCreateSharedSwapchainsKHR, pattern VkCreateSharedSwapchainsKHR,
+        HS_vkCreateSharedSwapchainsKHR, PFN_vkCreateSharedSwapchainsKHR,
         vkCreateSharedSwapchainsKHR, vkCreateSharedSwapchainsKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkPresentModeKHR,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.PresentModeKHR,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.SwapchainC,
         VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION,
         pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION,
         VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME,
@@ -55,44 +63,72 @@
         pattern VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
         pattern VK_ERROR_INCOMPATIBLE_DISPLAY_KHR)
        where
-import           GHC.Ptr                                               (Ptr (..))
+import           GHC.Ptr                                            (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkDisplayPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Display
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.Present
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.SwapchainC
+import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateSharedSwapchainsKHR :: CString
+
+pattern VkCreateSharedSwapchainsKHR <-
+        (is_VkCreateSharedSwapchainsKHR -> True)
+  where VkCreateSharedSwapchainsKHR = _VkCreateSharedSwapchainsKHR
+
+{-# INLINE _VkCreateSharedSwapchainsKHR #-}
+
+_VkCreateSharedSwapchainsKHR :: CString
+_VkCreateSharedSwapchainsKHR
+  = Ptr "vkCreateSharedSwapchainsKHR\NUL"#
+
+{-# INLINE is_VkCreateSharedSwapchainsKHR #-}
+
+is_VkCreateSharedSwapchainsKHR :: CString -> Bool
+is_VkCreateSharedSwapchainsKHR
+  = (EQ ==) . cmpCStrings _VkCreateSharedSwapchainsKHR
+
+type VkCreateSharedSwapchainsKHR = "vkCreateSharedSwapchainsKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkCreateSharedSwapchainsKHR
---   >     ( VkDevice device
---   >     , uint32_t swapchainCount
---   >     , const VkSwapchainCreateInfoKHR* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSwapchainKHR* pSwapchains
---   >     )
+-- > VkResult vkCreateSharedSwapchainsKHR
+-- >     ( VkDevice device
+-- >     , uint32_t swapchainCount
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchains
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSharedSwapchainsKHR.html vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateSharedSwapchainsKHR"
                vkCreateSharedSwapchainsKHR ::
                VkDevice -- ^ device
@@ -105,19 +141,69 @@
                                                -> Ptr VkSwapchainKHR -- ^ pSwapchains
                                                                      -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkCreateSharedSwapchainsKHR
---   >     ( VkDevice device
---   >     , uint32_t swapchainCount
---   >     , const VkSwapchainCreateInfoKHR* pCreateInfos
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSwapchainKHR* pSwapchains
---   >     )
+-- > VkResult vkCreateSharedSwapchainsKHR
+-- >     ( VkDevice device
+-- >     , uint32_t swapchainCount
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchains
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSharedSwapchainsKHR.html vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSharedSwapchainsKHRSafe@ and @vkCreateSharedSwapchainsKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSharedSwapchainsKHR <- vkGetDeviceProc @VkCreateSharedSwapchainsKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSharedSwapchainsKHR <- vkGetProc @VkCreateSharedSwapchainsKHR
+--
+vkCreateSharedSwapchainsKHR ::
+                            VkDevice -- ^ device
+                                     ->
+                              Word32 -- ^ swapchainCount
+                                     ->
+                                Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfos
+                                                             ->
+                                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> Ptr VkSwapchainKHR -- ^ pSwapchains
+                                                                                  -> IO VkResult
+vkCreateSharedSwapchainsKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateSharedSwapchainsKHR)
+
+{-# NOINLINE vkCreateSharedSwapchainsKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkCreateSharedSwapchainsKHR
+-- >     ( VkDevice device
+-- >     , uint32_t swapchainCount
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchains
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateSharedSwapchainsKHR"
                vkCreateSharedSwapchainsKHRSafe ::
                VkDevice -- ^ device
@@ -129,6 +215,89 @@
                      Ptr VkAllocationCallbacks -- ^ pAllocator
                                                -> Ptr VkSwapchainKHR -- ^ pSwapchains
                                                                      -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkCreateSharedSwapchainsKHR
+-- >     ( VkDevice device
+-- >     , uint32_t swapchainCount
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfos
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchains
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSharedSwapchainsKHRSafe@ and @vkCreateSharedSwapchainsKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSharedSwapchainsKHR <- vkGetDeviceProc @VkCreateSharedSwapchainsKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSharedSwapchainsKHR <- vkGetProc @VkCreateSharedSwapchainsKHR
+--
+vkCreateSharedSwapchainsKHRSafe ::
+                                VkDevice -- ^ device
+                                         ->
+                                  Word32 -- ^ swapchainCount
+                                         ->
+                                    Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfos
+                                                                 ->
+                                      Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> Ptr VkSwapchainKHR -- ^ pSwapchains
+                                                                                      -> IO VkResult
+vkCreateSharedSwapchainsKHRSafe = vkCreateSharedSwapchainsKHR
+
+{-# INLINE vkCreateSharedSwapchainsKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_INCOMPATIBLE_DISPLAY_KHR', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkCreateSharedSwapchainsKHR
+--   >     ( VkDevice device
+--   >     , uint32_t swapchainCount
+--   >     , const VkSwapchainCreateInfoKHR* pCreateInfos
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSwapchainKHR* pSwapchains
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR registry at www.khronos.org>
+type HS_vkCreateSharedSwapchainsKHR =
+     VkDevice -- ^ device
+              ->
+       Word32 -- ^ swapchainCount
+              ->
+         Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfos
+                                      ->
+           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                     -> Ptr VkSwapchainKHR -- ^ pSwapchains
+                                                           -> IO VkResult
+
+type PFN_vkCreateSharedSwapchainsKHR =
+     FunPtr HS_vkCreateSharedSwapchainsKHR
+
+foreign import ccall "dynamic" unwrapVkCreateSharedSwapchainsKHR ::
+               PFN_vkCreateSharedSwapchainsKHR -> HS_vkCreateSharedSwapchainsKHR
+
+instance VulkanProc "vkCreateSharedSwapchainsKHR" where
+        type VkProcType "vkCreateSharedSwapchainsKHR" =
+             HS_vkCreateSharedSwapchainsKHR
+        vkProcSymbol = _VkCreateSharedSwapchainsKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSharedSwapchainsKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence.hs
@@ -23,8 +23,8 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_fence_capabilities'.
-        module Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkFenceImportFlagBitsKHR,
+        module Graphics.Vulkan.Types.Struct.Export,
+        module Graphics.Vulkan.Types.Enum.Fence,
         module Graphics.Vulkan.Types.Bitmasks,
         VK_KHR_EXTERNAL_FENCE_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION,
@@ -33,13 +33,12 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
         pattern VK_FENCE_IMPORT_TEMPORARY_BIT_KHR)
        where
-import           GHC.Ptr                                                 (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                                (pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO)
+import           GHC.Ptr                             (Ptr (..))
+import           Graphics.Vulkan.Core_1_1            (pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO)
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags           (VkFenceImportBitmask (..))
-import           Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfoKHR
+import           Graphics.Vulkan.Types.Enum.Fence
+import           Graphics.Vulkan.Types.Struct.Export
 
 pattern VK_KHR_EXTERNAL_FENCE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_capabilities.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_fence_capabilities
        (-- * Vulkan extension: @VK_KHR_external_fence_capabilities@
@@ -24,22 +27,18 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlagBitsKHR,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlagBitsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalFencePropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR,
-        vkGetPhysicalDeviceExternalFencePropertiesKHR,
-        vkGetPhysicalDeviceExternalFencePropertiesKHRSafe,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkGetPhysicalDeviceExternalFencePropertiesKHR,
+        pattern VkGetPhysicalDeviceExternalFencePropertiesKHR,
+        HS_vkGetPhysicalDeviceExternalFencePropertiesKHR,
+        PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkExternalFenceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo,
         VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION,
         VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
@@ -54,65 +53,79 @@
         pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr
-                                                                                    (Ptr (..))
-import           Graphics.Vulkan.Constants
-                                                                                    (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1
-                                                                                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
-                                                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExternalFenceProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalFencePropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | This is an alias for `vkGetPhysicalDeviceExternalFenceProperties`.
---
---   > () vkGetPhysicalDeviceExternalFencePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
---   >     , VkExternalFenceProperties* pExternalFenceProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalFencePropertiesKHR.html vkGetPhysicalDeviceExternalFencePropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalFenceProperties"
-               vkGetPhysicalDeviceExternalFencePropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
-                                                       ->
-                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
-                                                 -> IO ()
+pattern VkGetPhysicalDeviceExternalFencePropertiesKHR :: CString
 
+pattern VkGetPhysicalDeviceExternalFencePropertiesKHR <-
+        (is_VkGetPhysicalDeviceExternalFencePropertiesKHR -> True)
+  where VkGetPhysicalDeviceExternalFencePropertiesKHR
+          = _VkGetPhysicalDeviceExternalFencePropertiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceExternalFencePropertiesKHR #-}
+
+_VkGetPhysicalDeviceExternalFencePropertiesKHR :: CString
+_VkGetPhysicalDeviceExternalFencePropertiesKHR
+  = Ptr "vkGetPhysicalDeviceExternalFencePropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalFencePropertiesKHR #-}
+
+is_VkGetPhysicalDeviceExternalFencePropertiesKHR :: CString -> Bool
+is_VkGetPhysicalDeviceExternalFencePropertiesKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalFencePropertiesKHR
+
+type VkGetPhysicalDeviceExternalFencePropertiesKHR =
+     "vkGetPhysicalDeviceExternalFencePropertiesKHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceExternalFenceProperties`.
 --
---   > () vkGetPhysicalDeviceExternalFencePropertiesKHR
+--   > void vkGetPhysicalDeviceExternalFencePropertiesKHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo
 --   >     , VkExternalFenceProperties* pExternalFenceProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalFencePropertiesKHR.html vkGetPhysicalDeviceExternalFencePropertiesKHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalFenceProperties"
-               vkGetPhysicalDeviceExternalFencePropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
-                                                       ->
-                   Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
-                                                 -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalFencePropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalFenceInfo -- ^ pExternalFenceInfo
+                                             ->
+         Ptr VkExternalFenceProperties -- ^ pExternalFenceProperties
+                                       -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceExternalFencePropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalFencePropertiesKHR ::
+               PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR ->
+                 HS_vkGetPhysicalDeviceExternalFencePropertiesKHR
+
+instance VulkanProc "vkGetPhysicalDeviceExternalFencePropertiesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalFencePropertiesKHR" =
+             HS_vkGetPhysicalDeviceExternalFencePropertiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceExternalFencePropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceExternalFencePropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_fd.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_fence_fd
        (-- * Vulkan extension: @VK_KHR_external_fence_fd@
@@ -24,15 +27,17 @@
 
         -- ** Required extensions: 'VK_KHR_external_fence'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkFenceGetFdInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkFenceImportFlags,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.Fence,
+        module Graphics.Vulkan.Types.Enum.Fence,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkImportFenceFdInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkImportFenceFdKHR, vkImportFenceFdKHRSafe, vkGetFenceFdKHR,
-        vkGetFenceFdKHRSafe, module Graphics.Vulkan.Types.Enum.VkResult,
+        VkImportFenceFdKHR, pattern VkImportFenceFdKHR,
+        HS_vkImportFenceFdKHR, PFN_vkImportFenceFdKHR, VkGetFenceFdKHR,
+        pattern VkGetFenceFdKHR, HS_vkGetFenceFdKHR, PFN_vkGetFenceFdKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION,
@@ -41,32 +46,35 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                                   (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Fence
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkFenceGetFdInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkImportFenceFdInfoKHR
+import           Graphics.Vulkan.Types.Struct.Fence
+import           Graphics.Vulkan.Types.Struct.Import
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkImportFenceFdKHR
---   >     ( VkDevice device
---   >     , const VkImportFenceFdInfoKHR* pImportFenceFdInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportFenceFdKHR.html vkImportFenceFdKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkImportFenceFdKHR" vkImportFenceFdKHR
-               :: VkDevice -- ^ device
-                           -> Ptr VkImportFenceFdInfoKHR -- ^ pImportFenceFdInfo
-                                                         -> IO VkResult
+pattern VkImportFenceFdKHR :: CString
 
+pattern VkImportFenceFdKHR <- (is_VkImportFenceFdKHR -> True)
+  where VkImportFenceFdKHR = _VkImportFenceFdKHR
+
+{-# INLINE _VkImportFenceFdKHR #-}
+
+_VkImportFenceFdKHR :: CString
+_VkImportFenceFdKHR = Ptr "vkImportFenceFdKHR\NUL"#
+
+{-# INLINE is_VkImportFenceFdKHR #-}
+
+is_VkImportFenceFdKHR :: CString -> Bool
+is_VkImportFenceFdKHR = (EQ ==) . cmpCStrings _VkImportFenceFdKHR
+
+type VkImportFenceFdKHR = "vkImportFenceFdKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -76,30 +84,43 @@
 --   >     , const VkImportFenceFdInfoKHR* pImportFenceFdInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportFenceFdKHR.html vkImportFenceFdKHR registry at www.khronos.org>
-foreign import ccall safe "vkImportFenceFdKHR"
-               vkImportFenceFdKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportFenceFdInfoKHR -- ^ pImportFenceFdInfo
-                                                      -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkImportFenceFdKHR vkImportFenceFdKHR registry at www.khronos.org>
+type HS_vkImportFenceFdKHR =
+     VkDevice -- ^ device
+              -> Ptr VkImportFenceFdInfoKHR -- ^ pImportFenceFdInfo
+                                            -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetFenceFdKHR
---   >     ( VkDevice device
---   >     , const VkFenceGetFdInfoKHR* pGetFdInfo
---   >     , int* pFd
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceFdKHR.html vkGetFenceFdKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetFenceFdKHR" vkGetFenceFdKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkFenceGetFdInfoKHR -- ^ pGetFdInfo
-                                                   -> Ptr CInt -- ^ pFd
-                                                               -> IO VkResult
+type PFN_vkImportFenceFdKHR = FunPtr HS_vkImportFenceFdKHR
 
+foreign import ccall "dynamic" unwrapVkImportFenceFdKHR ::
+               PFN_vkImportFenceFdKHR -> HS_vkImportFenceFdKHR
+
+instance VulkanProc "vkImportFenceFdKHR" where
+        type VkProcType "vkImportFenceFdKHR" = HS_vkImportFenceFdKHR
+        vkProcSymbol = _VkImportFenceFdKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkImportFenceFdKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetFenceFdKHR :: CString
+
+pattern VkGetFenceFdKHR <- (is_VkGetFenceFdKHR -> True)
+  where VkGetFenceFdKHR = _VkGetFenceFdKHR
+
+{-# INLINE _VkGetFenceFdKHR #-}
+
+_VkGetFenceFdKHR :: CString
+_VkGetFenceFdKHR = Ptr "vkGetFenceFdKHR\NUL"#
+
+{-# INLINE is_VkGetFenceFdKHR #-}
+
+is_VkGetFenceFdKHR :: CString -> Bool
+is_VkGetFenceFdKHR = (EQ ==) . cmpCStrings _VkGetFenceFdKHR
+
+type VkGetFenceFdKHR = "vkGetFenceFdKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -110,12 +131,26 @@
 --   >     , int* pFd
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceFdKHR.html vkGetFenceFdKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetFenceFdKHR" vkGetFenceFdKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkFenceGetFdInfoKHR -- ^ pGetFdInfo
-                                                   -> Ptr CInt -- ^ pFd
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceFdKHR vkGetFenceFdKHR registry at www.khronos.org>
+type HS_vkGetFenceFdKHR =
+     VkDevice -- ^ device
+              -> Ptr VkFenceGetFdInfoKHR -- ^ pGetFdInfo
+                                         -> Ptr CInt -- ^ pFd
+                                                     -> IO VkResult
+
+type PFN_vkGetFenceFdKHR = FunPtr HS_vkGetFenceFdKHR
+
+foreign import ccall "dynamic" unwrapVkGetFenceFdKHR ::
+               PFN_vkGetFenceFdKHR -> HS_vkGetFenceFdKHR
+
+instance VulkanProc "vkGetFenceFdKHR" where
+        type VkProcType "vkGetFenceFdKHR" = HS_vkGetFenceFdKHR
+        vkProcSymbol = _VkGetFenceFdKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetFenceFdKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_fence_win32.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_fence_win32
        (-- * Vulkan extension: @VK_KHR_external_fence_win32@
@@ -25,20 +28,19 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_fence'.
-        module Graphics.Vulkan.Types.Struct.VkExportFenceWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags,
-        module Graphics.Vulkan.Types.Enum.VkFenceCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkFenceCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkFenceGetWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkFenceImportFlags,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Enum.Fence,
+        module Graphics.Vulkan.Types.Struct.Fence,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkImportFenceWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkImportFenceWin32HandleKHR, vkImportFenceWin32HandleKHRSafe,
-        vkGetFenceWin32HandleKHR, vkGetFenceWin32HandleKHRSafe,
+        VkImportFenceWin32HandleKHR, pattern VkImportFenceWin32HandleKHR,
+        HS_vkImportFenceWin32HandleKHR, PFN_vkImportFenceWin32HandleKHR,
+        VkGetFenceWin32HandleKHR, pattern VkGetFenceWin32HandleKHR,
+        HS_vkGetFenceWin32HandleKHR, PFN_vkGetFenceWin32HandleKHR,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION,
@@ -49,37 +51,39 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr                                                      (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkFenceCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Fence
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkExportFenceWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkFenceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkFenceGetWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkImportFenceWin32HandleInfoKHR
+import           Graphics.Vulkan.Types.Struct.Fence
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkImportFenceWin32HandleKHR
---   >     ( VkDevice device
---   >     , const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportFenceWin32HandleKHR.html vkImportFenceWin32HandleKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkImportFenceWin32HandleKHR"
-               vkImportFenceWin32HandleKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportFenceWin32HandleInfoKHR -- ^ pImportFenceWin32HandleInfo
-                                                               -> IO VkResult
+pattern VkImportFenceWin32HandleKHR :: CString
 
+pattern VkImportFenceWin32HandleKHR <-
+        (is_VkImportFenceWin32HandleKHR -> True)
+  where VkImportFenceWin32HandleKHR = _VkImportFenceWin32HandleKHR
+
+{-# INLINE _VkImportFenceWin32HandleKHR #-}
+
+_VkImportFenceWin32HandleKHR :: CString
+_VkImportFenceWin32HandleKHR
+  = Ptr "vkImportFenceWin32HandleKHR\NUL"#
+
+{-# INLINE is_VkImportFenceWin32HandleKHR #-}
+
+is_VkImportFenceWin32HandleKHR :: CString -> Bool
+is_VkImportFenceWin32HandleKHR
+  = (EQ ==) . cmpCStrings _VkImportFenceWin32HandleKHR
+
+type VkImportFenceWin32HandleKHR = "vkImportFenceWin32HandleKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -89,32 +93,47 @@
 --   >     , const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportFenceWin32HandleKHR.html vkImportFenceWin32HandleKHR registry at www.khronos.org>
-foreign import ccall safe "vkImportFenceWin32HandleKHR"
-               vkImportFenceWin32HandleKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportFenceWin32HandleInfoKHR -- ^ pImportFenceWin32HandleInfo
-                                                               -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR registry at www.khronos.org>
+type HS_vkImportFenceWin32HandleKHR =
+     VkDevice -- ^ device
+              -> Ptr VkImportFenceWin32HandleInfoKHR -- ^ pImportFenceWin32HandleInfo
+                                                     -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetFenceWin32HandleKHR
---   >     ( VkDevice device
---   >     , const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo
---   >     , HANDLE* pHandle
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceWin32HandleKHR.html vkGetFenceWin32HandleKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetFenceWin32HandleKHR"
-               vkGetFenceWin32HandleKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFenceGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                  -> Ptr HANDLE -- ^ pHandle
-                                                                -> IO VkResult
+type PFN_vkImportFenceWin32HandleKHR =
+     FunPtr HS_vkImportFenceWin32HandleKHR
 
+foreign import ccall "dynamic" unwrapVkImportFenceWin32HandleKHR ::
+               PFN_vkImportFenceWin32HandleKHR -> HS_vkImportFenceWin32HandleKHR
+
+instance VulkanProc "vkImportFenceWin32HandleKHR" where
+        type VkProcType "vkImportFenceWin32HandleKHR" =
+             HS_vkImportFenceWin32HandleKHR
+        vkProcSymbol = _VkImportFenceWin32HandleKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkImportFenceWin32HandleKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetFenceWin32HandleKHR :: CString
+
+pattern VkGetFenceWin32HandleKHR <-
+        (is_VkGetFenceWin32HandleKHR -> True)
+  where VkGetFenceWin32HandleKHR = _VkGetFenceWin32HandleKHR
+
+{-# INLINE _VkGetFenceWin32HandleKHR #-}
+
+_VkGetFenceWin32HandleKHR :: CString
+_VkGetFenceWin32HandleKHR = Ptr "vkGetFenceWin32HandleKHR\NUL"#
+
+{-# INLINE is_VkGetFenceWin32HandleKHR #-}
+
+is_VkGetFenceWin32HandleKHR :: CString -> Bool
+is_VkGetFenceWin32HandleKHR
+  = (EQ ==) . cmpCStrings _VkGetFenceWin32HandleKHR
+
+type VkGetFenceWin32HandleKHR = "vkGetFenceWin32HandleKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -125,14 +144,29 @@
 --   >     , HANDLE* pHandle
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetFenceWin32HandleKHR.html vkGetFenceWin32HandleKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetFenceWin32HandleKHR"
-               vkGetFenceWin32HandleKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkFenceGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                  -> Ptr HANDLE -- ^ pHandle
-                                                                -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR registry at www.khronos.org>
+type HS_vkGetFenceWin32HandleKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkFenceGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
+                                        -> Ptr HANDLE -- ^ pHandle
+                                                      -> IO VkResult
+
+type PFN_vkGetFenceWin32HandleKHR =
+     FunPtr HS_vkGetFenceWin32HandleKHR
+
+foreign import ccall "dynamic" unwrapVkGetFenceWin32HandleKHR ::
+               PFN_vkGetFenceWin32HandleKHR -> HS_vkGetFenceWin32HandleKHR
+
+instance VulkanProc "vkGetFenceWin32HandleKHR" where
+        type VkProcType "vkGetFenceWin32HandleKHR" =
+             HS_vkGetFenceWin32HandleKHR
+        vkProcSymbol = _VkGetFenceWin32HandleKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetFenceWin32HandleKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory.hs
@@ -23,9 +23,8 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_memory_capabilities'.
-        module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.Export,
+        module Graphics.Vulkan.Types.Struct.External,
         VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION,
         VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME,
@@ -36,19 +35,15 @@
         pattern VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,
         pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
        where
-import           GHC.Ptr
-                                                                                   (Ptr (..))
-import           Graphics.Vulkan.Constants
-                                                                                   (pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
-import           Graphics.Vulkan.Core_1_1
-                                                                                   (pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
-                                                                                   pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
-                                                                                   pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-                                                                                   pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO)
+import           GHC.Ptr                               (Ptr (..))
+import           Graphics.Vulkan.Constants             (pattern VK_QUEUE_FAMILY_EXTERNAL_KHR)
+import           Graphics.Vulkan.Core_1_1              (pattern VK_ERROR_INVALID_EXTERNAL_HANDLE,
+                                                        pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
+                                                        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+                                                        pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.Export
+import           Graphics.Vulkan.Types.Struct.External
 
 pattern VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_capabilities.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_memory_capabilities
        (-- * Vulkan extension: @VK_KHR_external_memory_capabilities@
@@ -24,28 +27,19 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Struct.VkExternalBufferPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagBitsKHR,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR,
-        vkGetPhysicalDeviceExternalBufferPropertiesKHR,
-        vkGetPhysicalDeviceExternalBufferPropertiesKHRSafe,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkGetPhysicalDeviceExternalBufferPropertiesKHR,
+        pattern VkGetPhysicalDeviceExternalBufferPropertiesKHR,
+        HS_vkGetPhysicalDeviceExternalBufferPropertiesKHR,
+        PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Buffer,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkExternalBufferProperties,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo,
         VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
@@ -67,74 +61,85 @@
         pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr
-                                                                                          (Ptr (..))
-import           Graphics.Vulkan.Constants
-                                                                                          (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1
-                                                                                          (pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
-                                                                                          pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
-                                                                                          pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
-                                                                                          pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
-                                                                                          pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
+                                                              pattern VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Buffer
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExternalBufferProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalBufferPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | This is an alias for `vkGetPhysicalDeviceExternalBufferProperties`.
---
---   > () vkGetPhysicalDeviceExternalBufferPropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
---   >     , VkExternalBufferProperties* pExternalBufferProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalBufferPropertiesKHR.html vkGetPhysicalDeviceExternalBufferPropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalBufferProperties"
-               vkGetPhysicalDeviceExternalBufferPropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
-                                                        ->
-                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
-                                                  -> IO ()
+pattern VkGetPhysicalDeviceExternalBufferPropertiesKHR :: CString
 
+pattern VkGetPhysicalDeviceExternalBufferPropertiesKHR <-
+        (is_VkGetPhysicalDeviceExternalBufferPropertiesKHR -> True)
+  where VkGetPhysicalDeviceExternalBufferPropertiesKHR
+          = _VkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceExternalBufferPropertiesKHR #-}
+
+_VkGetPhysicalDeviceExternalBufferPropertiesKHR :: CString
+_VkGetPhysicalDeviceExternalBufferPropertiesKHR
+  = Ptr "vkGetPhysicalDeviceExternalBufferPropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalBufferPropertiesKHR #-}
+
+is_VkGetPhysicalDeviceExternalBufferPropertiesKHR ::
+                                                  CString -> Bool
+is_VkGetPhysicalDeviceExternalBufferPropertiesKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+type VkGetPhysicalDeviceExternalBufferPropertiesKHR =
+     "vkGetPhysicalDeviceExternalBufferPropertiesKHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceExternalBufferProperties`.
 --
---   > () vkGetPhysicalDeviceExternalBufferPropertiesKHR
+--   > void vkGetPhysicalDeviceExternalBufferPropertiesKHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo
 --   >     , VkExternalBufferProperties* pExternalBufferProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalBufferPropertiesKHR.html vkGetPhysicalDeviceExternalBufferPropertiesKHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalBufferProperties"
-               vkGetPhysicalDeviceExternalBufferPropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
-                                                        ->
-                   Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
-                                                  -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalBufferPropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalBufferInfo -- ^ pExternalBufferInfo
+                                              ->
+         Ptr VkExternalBufferProperties -- ^ pExternalBufferProperties
+                                        -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalBufferPropertiesKHR ::
+               PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR ->
+                 HS_vkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+instance VulkanProc
+           "vkGetPhysicalDeviceExternalBufferPropertiesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalBufferPropertiesKHR" =
+             HS_vkGetPhysicalDeviceExternalBufferPropertiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceExternalBufferPropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_fd.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_memory_fd
        (-- * Vulkan extension: @VK_KHR_external_memory_fd@
@@ -26,16 +29,16 @@
         -- ** Required extensions: 'VK_KHR_external_memory'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkImportMemoryFdInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryFdPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryGetFdInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        -- > #include "vk_platform.h"
-        vkGetMemoryFdKHR, vkGetMemoryFdKHRSafe, vkGetMemoryFdPropertiesKHR,
-        vkGetMemoryFdPropertiesKHRSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.StructureType, -- > #include "vk_platform.h"
+                                                         VkGetMemoryFdKHR,
+        pattern VkGetMemoryFdKHR, HS_vkGetMemoryFdKHR,
+        PFN_vkGetMemoryFdKHR, VkGetMemoryFdPropertiesKHR,
+        pattern VkGetMemoryFdPropertiesKHR, HS_vkGetMemoryFdPropertiesKHR,
+        PFN_vkGetMemoryFdPropertiesKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION,
@@ -45,35 +48,34 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                                    (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkImportMemoryFdInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryFdPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryGetFdInfoKHR
+import           Graphics.Vulkan.Types.Struct.Import
+import           Graphics.Vulkan.Types.Struct.Memory
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetMemoryFdKHR
---   >     ( VkDevice device
---   >     , const VkMemoryGetFdInfoKHR* pGetFdInfo
---   >     , int* pFd
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryFdKHR.html vkGetMemoryFdKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryFdKHR" vkGetMemoryFdKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkMemoryGetFdInfoKHR -- ^ pGetFdInfo
-                                                    -> Ptr CInt -- ^ pFd
-                                                                -> IO VkResult
+pattern VkGetMemoryFdKHR :: CString
 
+pattern VkGetMemoryFdKHR <- (is_VkGetMemoryFdKHR -> True)
+  where VkGetMemoryFdKHR = _VkGetMemoryFdKHR
+
+{-# INLINE _VkGetMemoryFdKHR #-}
+
+_VkGetMemoryFdKHR :: CString
+_VkGetMemoryFdKHR = Ptr "vkGetMemoryFdKHR\NUL"#
+
+{-# INLINE is_VkGetMemoryFdKHR #-}
+
+is_VkGetMemoryFdKHR :: CString -> Bool
+is_VkGetMemoryFdKHR = (EQ ==) . cmpCStrings _VkGetMemoryFdKHR
+
+type VkGetMemoryFdKHR = "vkGetMemoryFdKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -84,35 +86,46 @@
 --   >     , int* pFd
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryFdKHR.html vkGetMemoryFdKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryFdKHR" vkGetMemoryFdKHRSafe
-               :: VkDevice -- ^ device
-                           -> Ptr VkMemoryGetFdInfoKHR -- ^ pGetFdInfo
-                                                       -> Ptr CInt -- ^ pFd
-                                                                   -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryFdKHR vkGetMemoryFdKHR registry at www.khronos.org>
+type HS_vkGetMemoryFdKHR =
+     VkDevice -- ^ device
+              -> Ptr VkMemoryGetFdInfoKHR -- ^ pGetFdInfo
+                                          -> Ptr CInt -- ^ pFd
+                                                      -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkGetMemoryFdPropertiesKHR
---   >     ( VkDevice device
---   >     , VkExternalMemoryHandleTypeFlagBits handleType
---   >     , int fd
---   >     , VkMemoryFdPropertiesKHR* pMemoryFdProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryFdPropertiesKHR.html vkGetMemoryFdPropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryFdPropertiesKHR"
-               vkGetMemoryFdPropertiesKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   CInt -- ^ fd
-                        -> Ptr VkMemoryFdPropertiesKHR -- ^ pMemoryFdProperties
-                                                       -> IO VkResult
+type PFN_vkGetMemoryFdKHR = FunPtr HS_vkGetMemoryFdKHR
 
+foreign import ccall "dynamic" unwrapVkGetMemoryFdKHR ::
+               PFN_vkGetMemoryFdKHR -> HS_vkGetMemoryFdKHR
+
+instance VulkanProc "vkGetMemoryFdKHR" where
+        type VkProcType "vkGetMemoryFdKHR" = HS_vkGetMemoryFdKHR
+        vkProcSymbol = _VkGetMemoryFdKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryFdKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetMemoryFdPropertiesKHR :: CString
+
+pattern VkGetMemoryFdPropertiesKHR <-
+        (is_VkGetMemoryFdPropertiesKHR -> True)
+  where VkGetMemoryFdPropertiesKHR = _VkGetMemoryFdPropertiesKHR
+
+{-# INLINE _VkGetMemoryFdPropertiesKHR #-}
+
+_VkGetMemoryFdPropertiesKHR :: CString
+_VkGetMemoryFdPropertiesKHR = Ptr "vkGetMemoryFdPropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetMemoryFdPropertiesKHR #-}
+
+is_VkGetMemoryFdPropertiesKHR :: CString -> Bool
+is_VkGetMemoryFdPropertiesKHR
+  = (EQ ==) . cmpCStrings _VkGetMemoryFdPropertiesKHR
+
+type VkGetMemoryFdPropertiesKHR = "vkGetMemoryFdPropertiesKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -124,16 +137,31 @@
 --   >     , VkMemoryFdPropertiesKHR* pMemoryFdProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryFdPropertiesKHR.html vkGetMemoryFdPropertiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryFdPropertiesKHR"
-               vkGetMemoryFdPropertiesKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   CInt -- ^ fd
-                        -> Ptr VkMemoryFdPropertiesKHR -- ^ pMemoryFdProperties
-                                                       -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR registry at www.khronos.org>
+type HS_vkGetMemoryFdPropertiesKHR =
+     VkDevice -- ^ device
+              ->
+       VkExternalMemoryHandleTypeFlagBits -- ^ handleType
+                                          ->
+         CInt -- ^ fd
+              -> Ptr VkMemoryFdPropertiesKHR -- ^ pMemoryFdProperties
+                                             -> IO VkResult
+
+type PFN_vkGetMemoryFdPropertiesKHR =
+     FunPtr HS_vkGetMemoryFdPropertiesKHR
+
+foreign import ccall "dynamic" unwrapVkGetMemoryFdPropertiesKHR ::
+               PFN_vkGetMemoryFdPropertiesKHR -> HS_vkGetMemoryFdPropertiesKHR
+
+instance VulkanProc "vkGetMemoryFdPropertiesKHR" where
+        type VkProcType "vkGetMemoryFdPropertiesKHR" =
+             HS_vkGetMemoryFdPropertiesKHR
+        vkProcSymbol = _VkGetMemoryFdPropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryFdPropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_memory_win32.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_memory_win32
        (-- * Vulkan extension: @VK_KHR_external_memory_win32@
@@ -27,19 +30,19 @@
 
         -- ** Required extensions: 'VK_KHR_external_memory'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags,
-        module Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Struct.VkMemoryGetWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryWin32HandlePropertiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetMemoryWin32HandleKHR, vkGetMemoryWin32HandleKHRSafe,
-        vkGetMemoryWin32HandlePropertiesKHR,
-        vkGetMemoryWin32HandlePropertiesKHRSafe,
+        VkGetMemoryWin32HandleKHR, pattern VkGetMemoryWin32HandleKHR,
+        HS_vkGetMemoryWin32HandleKHR, PFN_vkGetMemoryWin32HandleKHR,
+        VkGetMemoryWin32HandlePropertiesKHR,
+        pattern VkGetMemoryWin32HandlePropertiesKHR,
+        HS_vkGetMemoryWin32HandlePropertiesKHR,
+        PFN_vkGetMemoryWin32HandlePropertiesKHR,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
@@ -50,39 +53,37 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr                                                       (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include                                 (HANDLE)
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryGetWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryWin32HandlePropertiesKHR
+import           Graphics.Vulkan.Types.Include                 (HANDLE)
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetMemoryWin32HandleKHR
---   >     ( VkDevice device
---   >     , const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo
---   >     , HANDLE* pHandle
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandleKHR.html vkGetMemoryWin32HandleKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryWin32HandleKHR"
-               vkGetMemoryWin32HandleKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                   -> Ptr HANDLE -- ^ pHandle
-                                                                 -> IO VkResult
+pattern VkGetMemoryWin32HandleKHR :: CString
 
+pattern VkGetMemoryWin32HandleKHR <-
+        (is_VkGetMemoryWin32HandleKHR -> True)
+  where VkGetMemoryWin32HandleKHR = _VkGetMemoryWin32HandleKHR
+
+{-# INLINE _VkGetMemoryWin32HandleKHR #-}
+
+_VkGetMemoryWin32HandleKHR :: CString
+_VkGetMemoryWin32HandleKHR = Ptr "vkGetMemoryWin32HandleKHR\NUL"#
+
+{-# INLINE is_VkGetMemoryWin32HandleKHR #-}
+
+is_VkGetMemoryWin32HandleKHR :: CString -> Bool
+is_VkGetMemoryWin32HandleKHR
+  = (EQ ==) . cmpCStrings _VkGetMemoryWin32HandleKHR
+
+type VkGetMemoryWin32HandleKHR = "vkGetMemoryWin32HandleKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -93,37 +94,52 @@
 --   >     , HANDLE* pHandle
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandleKHR.html vkGetMemoryWin32HandleKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryWin32HandleKHR"
-               vkGetMemoryWin32HandleKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkMemoryGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                   -> Ptr HANDLE -- ^ pHandle
-                                                                 -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR registry at www.khronos.org>
+type HS_vkGetMemoryWin32HandleKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkMemoryGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
+                                         -> Ptr HANDLE -- ^ pHandle
+                                                       -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkGetMemoryWin32HandlePropertiesKHR
---   >     ( VkDevice device
---   >     , VkExternalMemoryHandleTypeFlagBits handleType
---   >     , HANDLE handle
---   >     , VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandlePropertiesKHR.html vkGetMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryWin32HandlePropertiesKHR"
-               vkGetMemoryWin32HandlePropertiesKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   HANDLE -- ^ handle
-                          -> Ptr VkMemoryWin32HandlePropertiesKHR -- ^ pMemoryWin32HandleProperties
-                                                                  -> IO VkResult
+type PFN_vkGetMemoryWin32HandleKHR =
+     FunPtr HS_vkGetMemoryWin32HandleKHR
 
+foreign import ccall "dynamic" unwrapVkGetMemoryWin32HandleKHR ::
+               PFN_vkGetMemoryWin32HandleKHR -> HS_vkGetMemoryWin32HandleKHR
+
+instance VulkanProc "vkGetMemoryWin32HandleKHR" where
+        type VkProcType "vkGetMemoryWin32HandleKHR" =
+             HS_vkGetMemoryWin32HandleKHR
+        vkProcSymbol = _VkGetMemoryWin32HandleKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryWin32HandleKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetMemoryWin32HandlePropertiesKHR :: CString
+
+pattern VkGetMemoryWin32HandlePropertiesKHR <-
+        (is_VkGetMemoryWin32HandlePropertiesKHR -> True)
+  where VkGetMemoryWin32HandlePropertiesKHR
+          = _VkGetMemoryWin32HandlePropertiesKHR
+
+{-# INLINE _VkGetMemoryWin32HandlePropertiesKHR #-}
+
+_VkGetMemoryWin32HandlePropertiesKHR :: CString
+_VkGetMemoryWin32HandlePropertiesKHR
+  = Ptr "vkGetMemoryWin32HandlePropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetMemoryWin32HandlePropertiesKHR #-}
+
+is_VkGetMemoryWin32HandlePropertiesKHR :: CString -> Bool
+is_VkGetMemoryWin32HandlePropertiesKHR
+  = (EQ ==) . cmpCStrings _VkGetMemoryWin32HandlePropertiesKHR
+
+type VkGetMemoryWin32HandlePropertiesKHR =
+     "vkGetMemoryWin32HandlePropertiesKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -135,16 +151,33 @@
 --   >     , VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandlePropertiesKHR.html vkGetMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryWin32HandlePropertiesKHR"
-               vkGetMemoryWin32HandlePropertiesKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkExternalMemoryHandleTypeFlagBits -- ^ handleType
-                                                    ->
-                   HANDLE -- ^ handle
-                          -> Ptr VkMemoryWin32HandlePropertiesKHR -- ^ pMemoryWin32HandleProperties
-                                                                  -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
+type HS_vkGetMemoryWin32HandlePropertiesKHR =
+     VkDevice -- ^ device
+              ->
+       VkExternalMemoryHandleTypeFlagBits -- ^ handleType
+                                          ->
+         HANDLE -- ^ handle
+                -> Ptr VkMemoryWin32HandlePropertiesKHR -- ^ pMemoryWin32HandleProperties
+                                                        -> IO VkResult
+
+type PFN_vkGetMemoryWin32HandlePropertiesKHR =
+     FunPtr HS_vkGetMemoryWin32HandlePropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetMemoryWin32HandlePropertiesKHR ::
+               PFN_vkGetMemoryWin32HandlePropertiesKHR ->
+                 HS_vkGetMemoryWin32HandlePropertiesKHR
+
+instance VulkanProc "vkGetMemoryWin32HandlePropertiesKHR" where
+        type VkProcType "vkGetMemoryWin32HandlePropertiesKHR" =
+             HS_vkGetMemoryWin32HandlePropertiesKHR
+        vkProcSymbol = _VkGetMemoryWin32HandlePropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryWin32HandlePropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore.hs
@@ -23,8 +23,8 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_semaphore_capabilities'.
-        module Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlagBitsKHR,
+        module Graphics.Vulkan.Types.Struct.Export,
+        module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
         module Graphics.Vulkan.Types.Bitmasks,
         VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION,
@@ -33,13 +33,12 @@
         pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
         pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR)
        where
-import           GHC.Ptr                                                     (Ptr (..))
-import           Graphics.Vulkan.Core_1_1                                    (pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO)
+import           GHC.Ptr                                        (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                       (pattern VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO)
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags           (VkSemaphoreImportBitmask (..))
-import           Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfoKHR
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import           Graphics.Vulkan.Types.Struct.Export
 
 pattern VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_capabilities.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_semaphore_capabilities
        (-- * Vulkan extension: @VK_KHR_external_semaphore_capabilities@
@@ -24,22 +27,18 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlagBitsKHR,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlagBitsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExternalSemaphorePropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR,
-        vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,
-        vkGetPhysicalDeviceExternalSemaphorePropertiesKHRSafe,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkGetPhysicalDeviceExternalSemaphorePropertiesKHR,
+        pattern VkGetPhysicalDeviceExternalSemaphorePropertiesKHR,
+        HS_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,
+        PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo,
         VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION,
         VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
@@ -55,65 +54,82 @@
         pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,
         pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR)
        where
-import           GHC.Ptr
-                                                                                        (Ptr (..))
-import           Graphics.Vulkan.Constants
-                                                                                        (pattern VK_LUID_SIZE_KHR)
-import           Graphics.Vulkan.Core_1_1
-                                                                                        (pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
-                                                                                        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Constants                   (pattern VK_LUID_SIZE_KHR)
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlagBitsKHR
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties
-import           Graphics.Vulkan.Types.Struct.VkExternalSemaphorePropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | This is an alias for `vkGetPhysicalDeviceExternalSemaphoreProperties`.
---
---   > () vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
---   >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.html vkGetPhysicalDeviceExternalSemaphorePropertiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalSemaphoreProperties"
-               vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
-                                                           ->
-                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
-                                                     -> IO ()
+pattern VkGetPhysicalDeviceExternalSemaphorePropertiesKHR ::
+        CString
 
+pattern VkGetPhysicalDeviceExternalSemaphorePropertiesKHR <-
+        (is_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR -> True)
+  where VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+          = _VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceExternalSemaphorePropertiesKHR #-}
+
+_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: CString
+_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+  = Ptr "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR #-}
+
+is_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR ::
+                                                     CString -> Bool
+is_VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+type VkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
+     "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceExternalSemaphoreProperties`.
 --
---   > () vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+--   > void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo
 --   >     , VkExternalSemaphoreProperties* pExternalSemaphoreProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.html vkGetPhysicalDeviceExternalSemaphorePropertiesKHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceExternalSemaphoreProperties"
-               vkGetPhysicalDeviceExternalSemaphorePropertiesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
-                                                           ->
-                   Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
-                                                     -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceExternalSemaphoreInfo -- ^ pExternalSemaphoreInfo
+                                                 ->
+         Ptr VkExternalSemaphoreProperties -- ^ pExternalSemaphoreProperties
+                                           -> IO ()
+
+type PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalSemaphorePropertiesKHR ::
+               PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR ->
+                 HS_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+instance VulkanProc
+           "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"
+             = HS_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceExternalSemaphorePropertiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_fd.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_semaphore_fd
        (-- * Vulkan extension: @VK_KHR_external_semaphore_fd@
@@ -24,16 +27,18 @@
 
         -- ** Required extensions: 'VK_KHR_external_semaphore'.
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkImportSemaphoreFdInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkSemaphoreGetFdInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Import,
+        module Graphics.Vulkan.Types.Struct.Semaphore,
+        module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkImportSemaphoreFdKHR, vkImportSemaphoreFdKHRSafe,
-        vkGetSemaphoreFdKHR, vkGetSemaphoreFdKHRSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkImportSemaphoreFdKHR, pattern VkImportSemaphoreFdKHR,
+        HS_vkImportSemaphoreFdKHR, PFN_vkImportSemaphoreFdKHR,
+        VkGetSemaphoreFdKHR, pattern VkGetSemaphoreFdKHR,
+        HS_vkGetSemaphoreFdKHR, PFN_vkGetSemaphoreFdKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION,
         pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION,
@@ -42,33 +47,37 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR)
        where
-import           GHC.Ptr                                                       (Ptr (..))
+import           GHC.Ptr                                        (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkImportSemaphoreFdInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreGetFdInfoKHR
+import           Graphics.Vulkan.Types.Struct.Import
+import           Graphics.Vulkan.Types.Struct.Semaphore
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkImportSemaphoreFdKHR
---   >     ( VkDevice device
---   >     , const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportSemaphoreFdKHR.html vkImportSemaphoreFdKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkImportSemaphoreFdKHR"
-               vkImportSemaphoreFdKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportSemaphoreFdInfoKHR -- ^ pImportSemaphoreFdInfo
-                                                          -> IO VkResult
+pattern VkImportSemaphoreFdKHR :: CString
 
+pattern VkImportSemaphoreFdKHR <-
+        (is_VkImportSemaphoreFdKHR -> True)
+  where VkImportSemaphoreFdKHR = _VkImportSemaphoreFdKHR
+
+{-# INLINE _VkImportSemaphoreFdKHR #-}
+
+_VkImportSemaphoreFdKHR :: CString
+_VkImportSemaphoreFdKHR = Ptr "vkImportSemaphoreFdKHR\NUL"#
+
+{-# INLINE is_VkImportSemaphoreFdKHR #-}
+
+is_VkImportSemaphoreFdKHR :: CString -> Bool
+is_VkImportSemaphoreFdKHR
+  = (EQ ==) . cmpCStrings _VkImportSemaphoreFdKHR
+
+type VkImportSemaphoreFdKHR = "vkImportSemaphoreFdKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -78,31 +87,44 @@
 --   >     , const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportSemaphoreFdKHR.html vkImportSemaphoreFdKHR registry at www.khronos.org>
-foreign import ccall safe "vkImportSemaphoreFdKHR"
-               vkImportSemaphoreFdKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportSemaphoreFdInfoKHR -- ^ pImportSemaphoreFdInfo
-                                                          -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR registry at www.khronos.org>
+type HS_vkImportSemaphoreFdKHR =
+     VkDevice -- ^ device
+              -> Ptr VkImportSemaphoreFdInfoKHR -- ^ pImportSemaphoreFdInfo
+                                                -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetSemaphoreFdKHR
---   >     ( VkDevice device
---   >     , const VkSemaphoreGetFdInfoKHR* pGetFdInfo
---   >     , int* pFd
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSemaphoreFdKHR.html vkGetSemaphoreFdKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetSemaphoreFdKHR"
-               vkGetSemaphoreFdKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkSemaphoreGetFdInfoKHR -- ^ pGetFdInfo
-                                                       -> Ptr CInt -- ^ pFd
-                                                                   -> IO VkResult
+type PFN_vkImportSemaphoreFdKHR = FunPtr HS_vkImportSemaphoreFdKHR
 
+foreign import ccall "dynamic" unwrapVkImportSemaphoreFdKHR ::
+               PFN_vkImportSemaphoreFdKHR -> HS_vkImportSemaphoreFdKHR
+
+instance VulkanProc "vkImportSemaphoreFdKHR" where
+        type VkProcType "vkImportSemaphoreFdKHR" =
+             HS_vkImportSemaphoreFdKHR
+        vkProcSymbol = _VkImportSemaphoreFdKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkImportSemaphoreFdKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetSemaphoreFdKHR :: CString
+
+pattern VkGetSemaphoreFdKHR <- (is_VkGetSemaphoreFdKHR -> True)
+  where VkGetSemaphoreFdKHR = _VkGetSemaphoreFdKHR
+
+{-# INLINE _VkGetSemaphoreFdKHR #-}
+
+_VkGetSemaphoreFdKHR :: CString
+_VkGetSemaphoreFdKHR = Ptr "vkGetSemaphoreFdKHR\NUL"#
+
+{-# INLINE is_VkGetSemaphoreFdKHR #-}
+
+is_VkGetSemaphoreFdKHR :: CString -> Bool
+is_VkGetSemaphoreFdKHR = (EQ ==) . cmpCStrings _VkGetSemaphoreFdKHR
+
+type VkGetSemaphoreFdKHR = "vkGetSemaphoreFdKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -113,13 +135,26 @@
 --   >     , int* pFd
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSemaphoreFdKHR.html vkGetSemaphoreFdKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetSemaphoreFdKHR"
-               vkGetSemaphoreFdKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkSemaphoreGetFdInfoKHR -- ^ pGetFdInfo
-                                                       -> Ptr CInt -- ^ pFd
-                                                                   -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR registry at www.khronos.org>
+type HS_vkGetSemaphoreFdKHR =
+     VkDevice -- ^ device
+              -> Ptr VkSemaphoreGetFdInfoKHR -- ^ pGetFdInfo
+                                             -> Ptr CInt -- ^ pFd
+                                                         -> IO VkResult
+
+type PFN_vkGetSemaphoreFdKHR = FunPtr HS_vkGetSemaphoreFdKHR
+
+foreign import ccall "dynamic" unwrapVkGetSemaphoreFdKHR ::
+               PFN_vkGetSemaphoreFdKHR -> HS_vkGetSemaphoreFdKHR
+
+instance VulkanProc "vkGetSemaphoreFdKHR" where
+        type VkProcType "vkGetSemaphoreFdKHR" = HS_vkGetSemaphoreFdKHR
+        vkProcSymbol = _VkGetSemaphoreFdKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetSemaphoreFdKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_external_semaphore_win32.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_external_semaphore_win32
        (-- * Vulkan extension: @VK_KHR_external_semaphore_win32@
@@ -25,23 +28,24 @@
         --
 
         -- ** Required extensions: 'VK_KHR_external_semaphore'.
-        module Graphics.Vulkan.Types.Struct.VkD3D12FenceSubmitInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExportSemaphoreWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.External,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkImportSemaphoreWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkSemaphoreGetWin32HandleInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSubmitInfo,
+        module Graphics.Vulkan.Types.Struct.Semaphore,
+        module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.SubmitInfo,
         -- > #include "vk_platform.h"
-        vkImportSemaphoreWin32HandleKHR,
-        vkImportSemaphoreWin32HandleKHRSafe, vkGetSemaphoreWin32HandleKHR,
-        vkGetSemaphoreWin32HandleKHRSafe, module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        VkImportSemaphoreWin32HandleKHR,
+        pattern VkImportSemaphoreWin32HandleKHR,
+        HS_vkImportSemaphoreWin32HandleKHR,
+        PFN_vkImportSemaphoreWin32HandleKHR, VkGetSemaphoreWin32HandleKHR,
+        pattern VkGetSemaphoreWin32HandleKHR,
+        HS_vkGetSemaphoreWin32HandleKHR, PFN_vkGetSemaphoreWin32HandleKHR,
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
         VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION,
@@ -53,41 +57,44 @@
         pattern VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
         pattern VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR)
        where
-import           GHC.Ptr
-                                                                                   (Ptr (..))
+import           GHC.Ptr                                        (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                   (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkD3D12FenceSubmitInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExportSemaphoreWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkImportSemaphoreWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreGetWin32HandleInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import           Graphics.Vulkan.Types.Struct.Semaphore
+import           Graphics.Vulkan.Types.Struct.SubmitInfo
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
---
---   > VkResult vkImportSemaphoreWin32HandleKHR
---   >     ( VkDevice device
---   >     , const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportSemaphoreWin32HandleKHR.html vkImportSemaphoreWin32HandleKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkImportSemaphoreWin32HandleKHR"
-               vkImportSemaphoreWin32HandleKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportSemaphoreWin32HandleInfoKHR -- ^ pImportSemaphoreWin32HandleInfo
-                                                                   -> IO VkResult
+pattern VkImportSemaphoreWin32HandleKHR :: CString
 
+pattern VkImportSemaphoreWin32HandleKHR <-
+        (is_VkImportSemaphoreWin32HandleKHR -> True)
+  where VkImportSemaphoreWin32HandleKHR
+          = _VkImportSemaphoreWin32HandleKHR
+
+{-# INLINE _VkImportSemaphoreWin32HandleKHR #-}
+
+_VkImportSemaphoreWin32HandleKHR :: CString
+_VkImportSemaphoreWin32HandleKHR
+  = Ptr "vkImportSemaphoreWin32HandleKHR\NUL"#
+
+{-# INLINE is_VkImportSemaphoreWin32HandleKHR #-}
+
+is_VkImportSemaphoreWin32HandleKHR :: CString -> Bool
+is_VkImportSemaphoreWin32HandleKHR
+  = (EQ ==) . cmpCStrings _VkImportSemaphoreWin32HandleKHR
+
+type VkImportSemaphoreWin32HandleKHR =
+     "vkImportSemaphoreWin32HandleKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_INVALID_EXTERNAL_HANDLE'.
@@ -97,32 +104,50 @@
 --   >     , const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkImportSemaphoreWin32HandleKHR.html vkImportSemaphoreWin32HandleKHR registry at www.khronos.org>
-foreign import ccall safe "vkImportSemaphoreWin32HandleKHR"
-               vkImportSemaphoreWin32HandleKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkImportSemaphoreWin32HandleInfoKHR -- ^ pImportSemaphoreWin32HandleInfo
-                                                                   -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR registry at www.khronos.org>
+type HS_vkImportSemaphoreWin32HandleKHR =
+     VkDevice -- ^ device
+              -> Ptr VkImportSemaphoreWin32HandleInfoKHR -- ^ pImportSemaphoreWin32HandleInfo
+                                                         -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetSemaphoreWin32HandleKHR
---   >     ( VkDevice device
---   >     , const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo
---   >     , HANDLE* pHandle
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSemaphoreWin32HandleKHR.html vkGetSemaphoreWin32HandleKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetSemaphoreWin32HandleKHR"
-               vkGetSemaphoreWin32HandleKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSemaphoreGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                      -> Ptr HANDLE -- ^ pHandle
-                                                                    -> IO VkResult
+type PFN_vkImportSemaphoreWin32HandleKHR =
+     FunPtr HS_vkImportSemaphoreWin32HandleKHR
 
+foreign import ccall "dynamic"
+               unwrapVkImportSemaphoreWin32HandleKHR ::
+               PFN_vkImportSemaphoreWin32HandleKHR ->
+                 HS_vkImportSemaphoreWin32HandleKHR
+
+instance VulkanProc "vkImportSemaphoreWin32HandleKHR" where
+        type VkProcType "vkImportSemaphoreWin32HandleKHR" =
+             HS_vkImportSemaphoreWin32HandleKHR
+        vkProcSymbol = _VkImportSemaphoreWin32HandleKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkImportSemaphoreWin32HandleKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetSemaphoreWin32HandleKHR :: CString
+
+pattern VkGetSemaphoreWin32HandleKHR <-
+        (is_VkGetSemaphoreWin32HandleKHR -> True)
+  where VkGetSemaphoreWin32HandleKHR = _VkGetSemaphoreWin32HandleKHR
+
+{-# INLINE _VkGetSemaphoreWin32HandleKHR #-}
+
+_VkGetSemaphoreWin32HandleKHR :: CString
+_VkGetSemaphoreWin32HandleKHR
+  = Ptr "vkGetSemaphoreWin32HandleKHR\NUL"#
+
+{-# INLINE is_VkGetSemaphoreWin32HandleKHR #-}
+
+is_VkGetSemaphoreWin32HandleKHR :: CString -> Bool
+is_VkGetSemaphoreWin32HandleKHR
+  = (EQ ==) . cmpCStrings _VkGetSemaphoreWin32HandleKHR
+
+type VkGetSemaphoreWin32HandleKHR = "vkGetSemaphoreWin32HandleKHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -133,14 +158,30 @@
 --   >     , HANDLE* pHandle
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSemaphoreWin32HandleKHR.html vkGetSemaphoreWin32HandleKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetSemaphoreWin32HandleKHR"
-               vkGetSemaphoreWin32HandleKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSemaphoreGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
-                                                      -> Ptr HANDLE -- ^ pHandle
-                                                                    -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR registry at www.khronos.org>
+type HS_vkGetSemaphoreWin32HandleKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSemaphoreGetWin32HandleInfoKHR -- ^ pGetWin32HandleInfo
+                                            -> Ptr HANDLE -- ^ pHandle
+                                                          -> IO VkResult
+
+type PFN_vkGetSemaphoreWin32HandleKHR =
+     FunPtr HS_vkGetSemaphoreWin32HandleKHR
+
+foreign import ccall "dynamic" unwrapVkGetSemaphoreWin32HandleKHR
+               ::
+               PFN_vkGetSemaphoreWin32HandleKHR -> HS_vkGetSemaphoreWin32HandleKHR
+
+instance VulkanProc "vkGetSemaphoreWin32HandleKHR" where
+        type VkProcType "vkGetSemaphoreWin32HandleKHR" =
+             HS_vkGetSemaphoreWin32HandleKHR
+        vkProcSymbol = _VkGetSemaphoreWin32HandleKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetSemaphoreWin32HandleKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_memory_requirements2.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_get_memory_requirements2
        (-- * Vulkan extension: @VK_KHR_get_memory_requirements2@
@@ -19,32 +22,29 @@
         -- type: @device@
         --
         -- Extension number: @147@
-        module Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2KHR,
-        module Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2KHR,
-        module Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2KHR,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements2KHR,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2KHR,
-        vkGetImageMemoryRequirements2KHR,
-        vkGetImageMemoryRequirements2KHRSafe,
-        vkGetBufferMemoryRequirements2KHR,
-        vkGetBufferMemoryRequirements2KHRSafe,
-        vkGetImageSparseMemoryRequirements2KHR,
-        vkGetImageSparseMemoryRequirements2KHRSafe,
+        module Graphics.Vulkan.Types.Struct.Buffer,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Struct.Sparse,
+        VkGetImageMemoryRequirements2KHR,
+        pattern VkGetImageMemoryRequirements2KHR,
+        HS_vkGetImageMemoryRequirements2KHR,
+        PFN_vkGetImageMemoryRequirements2KHR,
+        VkGetBufferMemoryRequirements2KHR,
+        pattern VkGetBufferMemoryRequirements2KHR,
+        HS_vkGetBufferMemoryRequirements2KHR,
+        PFN_vkGetBufferMemoryRequirements2KHR,
+        VkGetImageSparseMemoryRequirements2KHR,
+        pattern VkGetImageSparseMemoryRequirements2KHR,
+        HS_vkGetImageSparseMemoryRequirements2KHR,
+        PFN_vkGetImageSparseMemoryRequirements2KHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkImageAspectFlags,
-        module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.Sparse,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements,
-        module Graphics.Vulkan.Types.Struct.VkMemoryRequirements2,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2,
+        module Graphics.Vulkan.Types.Struct.Extent,
         VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION,
         pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION,
         VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME,
@@ -55,146 +55,197 @@
         pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR)
        where
-import           GHC.Ptr
-                                                                                       (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                       (pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
-                                                                                       pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
-                                                                                       pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
-                                                                                       pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
-                                                                                       pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2)
+import           GHC.Ptr                                  (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                 (pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
+                                                           pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
+                                                           pattern VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
+                                                           pattern VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+                                                           pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-import           Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Sparse
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2
-import           Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements2
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements2KHR
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2KHR
+import           Graphics.Vulkan.Types.Struct.Buffer
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.Sparse
 
--- | This is an alias for `vkGetImageMemoryRequirements2`.
---
---   > () vkGetImageMemoryRequirements2KHR
---   >     ( VkDevice device
---   >     , const VkImageMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements2KHR.html vkGetImageMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageMemoryRequirements2"
-               vkGetImageMemoryRequirements2KHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
-                                                    ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
+pattern VkGetImageMemoryRequirements2KHR :: CString
 
+pattern VkGetImageMemoryRequirements2KHR <-
+        (is_VkGetImageMemoryRequirements2KHR -> True)
+  where VkGetImageMemoryRequirements2KHR
+          = _VkGetImageMemoryRequirements2KHR
+
+{-# INLINE _VkGetImageMemoryRequirements2KHR #-}
+
+_VkGetImageMemoryRequirements2KHR :: CString
+_VkGetImageMemoryRequirements2KHR
+  = Ptr "vkGetImageMemoryRequirements2KHR\NUL"#
+
+{-# INLINE is_VkGetImageMemoryRequirements2KHR #-}
+
+is_VkGetImageMemoryRequirements2KHR :: CString -> Bool
+is_VkGetImageMemoryRequirements2KHR
+  = (EQ ==) . cmpCStrings _VkGetImageMemoryRequirements2KHR
+
+type VkGetImageMemoryRequirements2KHR =
+     "vkGetImageMemoryRequirements2KHR"
+
 -- | This is an alias for `vkGetImageMemoryRequirements2`.
 --
---   > () vkGetImageMemoryRequirements2KHR
+--   > void vkGetImageMemoryRequirements2KHR
 --   >     ( VkDevice device
 --   >     , const VkImageMemoryRequirementsInfo2* pInfo
 --   >     , VkMemoryRequirements2* pMemoryRequirements
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageMemoryRequirements2KHR.html vkGetImageMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetImageMemoryRequirements2"
-               vkGetImageMemoryRequirements2KHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
-                                                    ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR registry at www.khronos.org>
+type HS_vkGetImageMemoryRequirements2KHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageMemoryRequirementsInfo2 -- ^ pInfo
+                                          ->
+         Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                   -> IO ()
 
--- | This is an alias for `vkGetBufferMemoryRequirements2`.
---
---   > () vkGetBufferMemoryRequirements2KHR
---   >     ( VkDevice device
---   >     , const VkBufferMemoryRequirementsInfo2* pInfo
---   >     , VkMemoryRequirements2* pMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements2KHR.html vkGetBufferMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetBufferMemoryRequirements2"
-               vkGetBufferMemoryRequirements2KHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
-                                                     ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
+type PFN_vkGetImageMemoryRequirements2KHR =
+     FunPtr HS_vkGetImageMemoryRequirements2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetImageMemoryRequirements2KHR ::
+               PFN_vkGetImageMemoryRequirements2KHR ->
+                 HS_vkGetImageMemoryRequirements2KHR
+
+instance VulkanProc "vkGetImageMemoryRequirements2KHR" where
+        type VkProcType "vkGetImageMemoryRequirements2KHR" =
+             HS_vkGetImageMemoryRequirements2KHR
+        vkProcSymbol = _VkGetImageMemoryRequirements2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageMemoryRequirements2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetBufferMemoryRequirements2KHR :: CString
+
+pattern VkGetBufferMemoryRequirements2KHR <-
+        (is_VkGetBufferMemoryRequirements2KHR -> True)
+  where VkGetBufferMemoryRequirements2KHR
+          = _VkGetBufferMemoryRequirements2KHR
+
+{-# INLINE _VkGetBufferMemoryRequirements2KHR #-}
+
+_VkGetBufferMemoryRequirements2KHR :: CString
+_VkGetBufferMemoryRequirements2KHR
+  = Ptr "vkGetBufferMemoryRequirements2KHR\NUL"#
+
+{-# INLINE is_VkGetBufferMemoryRequirements2KHR #-}
+
+is_VkGetBufferMemoryRequirements2KHR :: CString -> Bool
+is_VkGetBufferMemoryRequirements2KHR
+  = (EQ ==) . cmpCStrings _VkGetBufferMemoryRequirements2KHR
+
+type VkGetBufferMemoryRequirements2KHR =
+     "vkGetBufferMemoryRequirements2KHR"
+
 -- | This is an alias for `vkGetBufferMemoryRequirements2`.
 --
---   > () vkGetBufferMemoryRequirements2KHR
+--   > void vkGetBufferMemoryRequirements2KHR
 --   >     ( VkDevice device
 --   >     , const VkBufferMemoryRequirementsInfo2* pInfo
 --   >     , VkMemoryRequirements2* pMemoryRequirements
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetBufferMemoryRequirements2KHR.html vkGetBufferMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetBufferMemoryRequirements2"
-               vkGetBufferMemoryRequirements2KHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
-                                                     ->
-                   Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
-                                             -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR registry at www.khronos.org>
+type HS_vkGetBufferMemoryRequirements2KHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkBufferMemoryRequirementsInfo2 -- ^ pInfo
+                                           ->
+         Ptr VkMemoryRequirements2 -- ^ pMemoryRequirements
+                                   -> IO ()
 
--- | This is an alias for `vkGetImageSparseMemoryRequirements2`.
---
---   > () vkGetImageSparseMemoryRequirements2KHR
---   >     ( VkDevice device
---   >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
---   >     , uint32_t* pSparseMemoryRequirementCount
---   >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements2KHR.html vkGetImageSparseMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetImageSparseMemoryRequirements2"
-               vkGetImageSparseMemoryRequirements2KHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
-                                                          ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
-                                                                      -> IO ()
+type PFN_vkGetBufferMemoryRequirements2KHR =
+     FunPtr HS_vkGetBufferMemoryRequirements2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetBufferMemoryRequirements2KHR ::
+               PFN_vkGetBufferMemoryRequirements2KHR ->
+                 HS_vkGetBufferMemoryRequirements2KHR
+
+instance VulkanProc "vkGetBufferMemoryRequirements2KHR" where
+        type VkProcType "vkGetBufferMemoryRequirements2KHR" =
+             HS_vkGetBufferMemoryRequirements2KHR
+        vkProcSymbol = _VkGetBufferMemoryRequirements2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetBufferMemoryRequirements2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetImageSparseMemoryRequirements2KHR :: CString
+
+pattern VkGetImageSparseMemoryRequirements2KHR <-
+        (is_VkGetImageSparseMemoryRequirements2KHR -> True)
+  where VkGetImageSparseMemoryRequirements2KHR
+          = _VkGetImageSparseMemoryRequirements2KHR
+
+{-# INLINE _VkGetImageSparseMemoryRequirements2KHR #-}
+
+_VkGetImageSparseMemoryRequirements2KHR :: CString
+_VkGetImageSparseMemoryRequirements2KHR
+  = Ptr "vkGetImageSparseMemoryRequirements2KHR\NUL"#
+
+{-# INLINE is_VkGetImageSparseMemoryRequirements2KHR #-}
+
+is_VkGetImageSparseMemoryRequirements2KHR :: CString -> Bool
+is_VkGetImageSparseMemoryRequirements2KHR
+  = (EQ ==) . cmpCStrings _VkGetImageSparseMemoryRequirements2KHR
+
+type VkGetImageSparseMemoryRequirements2KHR =
+     "vkGetImageSparseMemoryRequirements2KHR"
+
 -- | This is an alias for `vkGetImageSparseMemoryRequirements2`.
 --
---   > () vkGetImageSparseMemoryRequirements2KHR
+--   > void vkGetImageSparseMemoryRequirements2KHR
 --   >     ( VkDevice device
 --   >     , const VkImageSparseMemoryRequirementsInfo2* pInfo
 --   >     , uint32_t* pSparseMemoryRequirementCount
 --   >     , VkSparseImageMemoryRequirements2* pSparseMemoryRequirements
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetImageSparseMemoryRequirements2KHR.html vkGetImageSparseMemoryRequirements2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetImageSparseMemoryRequirements2"
-               vkGetImageSparseMemoryRequirements2KHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
-                                                          ->
-                   Ptr Word32 -- ^ pSparseMemoryRequirementCount
-                              -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
-                                                                      -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR registry at www.khronos.org>
+type HS_vkGetImageSparseMemoryRequirements2KHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkImageSparseMemoryRequirementsInfo2 -- ^ pInfo
+                                                ->
+         Ptr Word32 -- ^ pSparseMemoryRequirementCount
+                    -> Ptr VkSparseImageMemoryRequirements2 -- ^ pSparseMemoryRequirements
+                                                            -> IO ()
+
+type PFN_vkGetImageSparseMemoryRequirements2KHR =
+     FunPtr HS_vkGetImageSparseMemoryRequirements2KHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetImageSparseMemoryRequirements2KHR ::
+               PFN_vkGetImageSparseMemoryRequirements2KHR ->
+                 HS_vkGetImageSparseMemoryRequirements2KHR
+
+instance VulkanProc "vkGetImageSparseMemoryRequirements2KHR" where
+        type VkProcType "vkGetImageSparseMemoryRequirements2KHR" =
+             HS_vkGetImageSparseMemoryRequirements2KHR
+        vkProcSymbol = _VkGetImageSparseMemoryRequirements2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetImageSparseMemoryRequirements2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_physical_device_properties2.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_get_physical_device_properties2
        (-- * Vulkan extension: @VK_KHR_get_physical_device_properties2@
@@ -19,72 +22,57 @@
         -- type: @instance@
         --
         -- Extension number: @60@
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties2KHR,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2KHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2KHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2KHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2KHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2KHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2KHR,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2KHR,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2KHR,
-        vkGetPhysicalDeviceFeatures2KHR,
-        vkGetPhysicalDeviceFeatures2KHRSafe,
-        vkGetPhysicalDeviceProperties2KHR,
-        vkGetPhysicalDeviceProperties2KHRSafe,
-        vkGetPhysicalDeviceFormatProperties2KHR,
-        vkGetPhysicalDeviceFormatProperties2KHRSafe,
-        vkGetPhysicalDeviceImageFormatProperties2KHR,
-        vkGetPhysicalDeviceImageFormatProperties2KHRSafe,
-        vkGetPhysicalDeviceQueueFamilyProperties2KHR,
-        vkGetPhysicalDeviceQueueFamilyProperties2KHRSafe,
-        vkGetPhysicalDeviceMemoryProperties2KHR,
-        vkGetPhysicalDeviceMemoryProperties2KHRSafe,
-        vkGetPhysicalDeviceSparseImageFormatProperties2KHR,
-        vkGetPhysicalDeviceSparseImageFormatProperties2KHRSafe,
+        module Graphics.Vulkan.Types.Struct.FormatProperties,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.QueueFamilyProperties,
+        module Graphics.Vulkan.Types.Struct.Sparse,
+        VkGetPhysicalDeviceFeatures2KHR,
+        pattern VkGetPhysicalDeviceFeatures2KHR,
+        HS_vkGetPhysicalDeviceFeatures2KHR,
+        PFN_vkGetPhysicalDeviceFeatures2KHR,
+        VkGetPhysicalDeviceProperties2KHR,
+        pattern VkGetPhysicalDeviceProperties2KHR,
+        HS_vkGetPhysicalDeviceProperties2KHR,
+        PFN_vkGetPhysicalDeviceProperties2KHR,
+        VkGetPhysicalDeviceFormatProperties2KHR,
+        pattern VkGetPhysicalDeviceFormatProperties2KHR,
+        HS_vkGetPhysicalDeviceFormatProperties2KHR,
+        PFN_vkGetPhysicalDeviceFormatProperties2KHR,
+        VkGetPhysicalDeviceImageFormatProperties2KHR,
+        pattern VkGetPhysicalDeviceImageFormatProperties2KHR,
+        HS_vkGetPhysicalDeviceImageFormatProperties2KHR,
+        PFN_vkGetPhysicalDeviceImageFormatProperties2KHR,
+        VkGetPhysicalDeviceQueueFamilyProperties2KHR,
+        pattern VkGetPhysicalDeviceQueueFamilyProperties2KHR,
+        HS_vkGetPhysicalDeviceQueueFamilyProperties2KHR,
+        PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR,
+        VkGetPhysicalDeviceMemoryProperties2KHR,
+        pattern VkGetPhysicalDeviceMemoryProperties2KHR,
+        HS_vkGetPhysicalDeviceMemoryProperties2KHR,
+        PFN_vkGetPhysicalDeviceMemoryProperties2KHR,
+        VkGetPhysicalDeviceSparseImageFormatProperties2KHR,
+        pattern VkGetPhysicalDeviceSparseImageFormatProperties2KHR,
+        HS_vkGetPhysicalDeviceSparseImageFormatProperties2KHR,
+        PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageAspectFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags,
-        module Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkQueueFlags,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.Memory,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.Queue,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.Sparse,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkFormatProperties2,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2,
-        module Graphics.Vulkan.Types.Struct.VkMemoryHeap,
-        module Graphics.Vulkan.Types.Struct.VkMemoryType,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties,
-        module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties,
-        module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures,
         VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION,
         pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION,
         VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
@@ -99,182 +87,225 @@
         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR)
        where
-import           GHC.Ptr
-                                                                                         (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                         (pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
-                                                                                         pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
+import           GHC.Ptr                                             (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                            (pattern VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
+                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
+                                                                      pattern VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
+                                                                      pattern VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                        (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags
-import           Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkQueueFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Memory
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Queue
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.Sparse
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties2KHR
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2KHR
-import           Graphics.Vulkan.Types.Struct.VkMemoryHeap
-import           Graphics.Vulkan.Types.Struct.VkMemoryType
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2KHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2KHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2KHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2KHR
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2KHR
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.FormatProperties
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+import           Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+import           Graphics.Vulkan.Types.Struct.Sparse
 
--- | This is an alias for `vkGetPhysicalDeviceFeatures2`.
---
---   > () vkGetPhysicalDeviceFeatures2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceFeatures2* pFeatures
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures2KHR.html vkGetPhysicalDeviceFeatures2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFeatures2"
-               vkGetPhysicalDeviceFeatures2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
-                                                                 -> IO ()
+pattern VkGetPhysicalDeviceFeatures2KHR :: CString
 
+pattern VkGetPhysicalDeviceFeatures2KHR <-
+        (is_VkGetPhysicalDeviceFeatures2KHR -> True)
+  where VkGetPhysicalDeviceFeatures2KHR
+          = _VkGetPhysicalDeviceFeatures2KHR
+
+{-# INLINE _VkGetPhysicalDeviceFeatures2KHR #-}
+
+_VkGetPhysicalDeviceFeatures2KHR :: CString
+_VkGetPhysicalDeviceFeatures2KHR
+  = Ptr "vkGetPhysicalDeviceFeatures2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceFeatures2KHR #-}
+
+is_VkGetPhysicalDeviceFeatures2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceFeatures2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFeatures2KHR
+
+type VkGetPhysicalDeviceFeatures2KHR =
+     "vkGetPhysicalDeviceFeatures2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceFeatures2`.
 --
---   > () vkGetPhysicalDeviceFeatures2KHR
+--   > void vkGetPhysicalDeviceFeatures2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkPhysicalDeviceFeatures2* pFeatures
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFeatures2KHR.html vkGetPhysicalDeviceFeatures2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFeatures2"
-               vkGetPhysicalDeviceFeatures2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
-                                                                 -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFeatures2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceFeatures2 -- ^ pFeatures
+                                                       -> IO ()
 
--- | This is an alias for `vkGetPhysicalDeviceProperties2`.
---
---   > () vkGetPhysicalDeviceProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties2KHR.html vkGetPhysicalDeviceProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceProperties2"
-               vkGetPhysicalDeviceProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
-                                                                   -> IO ()
+type PFN_vkGetPhysicalDeviceFeatures2KHR =
+     FunPtr HS_vkGetPhysicalDeviceFeatures2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceFeatures2KHR ::
+               PFN_vkGetPhysicalDeviceFeatures2KHR ->
+                 HS_vkGetPhysicalDeviceFeatures2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceFeatures2KHR" where
+        type VkProcType "vkGetPhysicalDeviceFeatures2KHR" =
+             HS_vkGetPhysicalDeviceFeatures2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceFeatures2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFeatures2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceProperties2KHR :: CString
+
+pattern VkGetPhysicalDeviceProperties2KHR <-
+        (is_VkGetPhysicalDeviceProperties2KHR -> True)
+  where VkGetPhysicalDeviceProperties2KHR
+          = _VkGetPhysicalDeviceProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceProperties2KHR #-}
+
+_VkGetPhysicalDeviceProperties2KHR :: CString
+_VkGetPhysicalDeviceProperties2KHR
+  = Ptr "vkGetPhysicalDeviceProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceProperties2KHR #-}
+
+is_VkGetPhysicalDeviceProperties2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceProperties2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceProperties2KHR
+
+type VkGetPhysicalDeviceProperties2KHR =
+     "vkGetPhysicalDeviceProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceProperties2`.
 --
---   > () vkGetPhysicalDeviceProperties2KHR
+--   > void vkGetPhysicalDeviceProperties2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkPhysicalDeviceProperties2* pProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceProperties2KHR.html vkGetPhysicalDeviceProperties2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceProperties2"
-               vkGetPhysicalDeviceProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
-                                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceProperties2 -- ^ pProperties
+                                                         -> IO ()
 
--- | This is an alias for `vkGetPhysicalDeviceFormatProperties2`.
---
---   > () vkGetPhysicalDeviceFormatProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkFormatProperties2* pFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html vkGetPhysicalDeviceFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceFormatProperties2"
-               vkGetPhysicalDeviceFormatProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
-                                                                       -> IO ()
+type PFN_vkGetPhysicalDeviceProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceProperties2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceProperties2KHR ::
+               PFN_vkGetPhysicalDeviceProperties2KHR ->
+                 HS_vkGetPhysicalDeviceProperties2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceProperties2KHR" where
+        type VkProcType "vkGetPhysicalDeviceProperties2KHR" =
+             HS_vkGetPhysicalDeviceProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceFormatProperties2KHR :: CString
+
+pattern VkGetPhysicalDeviceFormatProperties2KHR <-
+        (is_VkGetPhysicalDeviceFormatProperties2KHR -> True)
+  where VkGetPhysicalDeviceFormatProperties2KHR
+          = _VkGetPhysicalDeviceFormatProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceFormatProperties2KHR #-}
+
+_VkGetPhysicalDeviceFormatProperties2KHR :: CString
+_VkGetPhysicalDeviceFormatProperties2KHR
+  = Ptr "vkGetPhysicalDeviceFormatProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceFormatProperties2KHR #-}
+
+is_VkGetPhysicalDeviceFormatProperties2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceFormatProperties2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceFormatProperties2KHR
+
+type VkGetPhysicalDeviceFormatProperties2KHR =
+     "vkGetPhysicalDeviceFormatProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceFormatProperties2`.
 --
---   > () vkGetPhysicalDeviceFormatProperties2KHR
+--   > void vkGetPhysicalDeviceFormatProperties2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkFormat format
 --   >     , VkFormatProperties2* pFormatProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html vkGetPhysicalDeviceFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceFormatProperties2"
-               vkGetPhysicalDeviceFormatProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> VkFormat -- ^ format
-                                            -> Ptr VkFormatProperties2 -- ^ pFormatProperties
-                                                                       -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceFormatProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> VkFormat -- ^ format
+                                  -> Ptr VkFormatProperties2 -- ^ pFormatProperties
+                                                             -> IO ()
 
--- | This is an alias for `vkGetPhysicalDeviceImageFormatProperties2`.
---
---   Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceImageFormatProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo
---   >     , VkImageFormatProperties2* pImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html vkGetPhysicalDeviceImageFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceImageFormatProperties2"
-               vkGetPhysicalDeviceImageFormatProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
-                                                      ->
-                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
-                                                -> IO VkResult
+type PFN_vkGetPhysicalDeviceFormatProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceFormatProperties2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceFormatProperties2KHR ::
+               PFN_vkGetPhysicalDeviceFormatProperties2KHR ->
+                 HS_vkGetPhysicalDeviceFormatProperties2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceFormatProperties2KHR" where
+        type VkProcType "vkGetPhysicalDeviceFormatProperties2KHR" =
+             HS_vkGetPhysicalDeviceFormatProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceFormatProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceFormatProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceImageFormatProperties2KHR :: CString
+
+pattern VkGetPhysicalDeviceImageFormatProperties2KHR <-
+        (is_VkGetPhysicalDeviceImageFormatProperties2KHR -> True)
+  where VkGetPhysicalDeviceImageFormatProperties2KHR
+          = _VkGetPhysicalDeviceImageFormatProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceImageFormatProperties2KHR #-}
+
+_VkGetPhysicalDeviceImageFormatProperties2KHR :: CString
+_VkGetPhysicalDeviceImageFormatProperties2KHR
+  = Ptr "vkGetPhysicalDeviceImageFormatProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceImageFormatProperties2KHR #-}
+
+is_VkGetPhysicalDeviceImageFormatProperties2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceImageFormatProperties2KHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceImageFormatProperties2KHR
+
+type VkGetPhysicalDeviceImageFormatProperties2KHR =
+     "vkGetPhysicalDeviceImageFormatProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceImageFormatProperties2`.
 --
 --   Success codes: 'VK_SUCCESS'.
@@ -287,122 +318,213 @@
 --   >     , VkImageFormatProperties2* pImageFormatProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html vkGetPhysicalDeviceImageFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceImageFormatProperties2"
-               vkGetPhysicalDeviceImageFormatProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
-                                                      ->
-                   Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
-                                                -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceImageFormatProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceImageFormatInfo2 -- ^ pImageFormatInfo
+                                            ->
+         Ptr VkImageFormatProperties2 -- ^ pImageFormatProperties
+                                      -> IO VkResult
 
--- | This is an alias for `vkGetPhysicalDeviceQueueFamilyProperties2`.
---
---   > () vkGetPhysicalDeviceQueueFamilyProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t* pQueueFamilyPropertyCount
---   >     , VkQueueFamilyProperties2* pQueueFamilyProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html vkGetPhysicalDeviceQueueFamilyProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceQueueFamilyProperties2"
-               vkGetPhysicalDeviceQueueFamilyProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
-                                                            -> IO ()
+type PFN_vkGetPhysicalDeviceImageFormatProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceImageFormatProperties2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceImageFormatProperties2KHR ::
+               PFN_vkGetPhysicalDeviceImageFormatProperties2KHR ->
+                 HS_vkGetPhysicalDeviceImageFormatProperties2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceImageFormatProperties2KHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceImageFormatProperties2KHR" =
+             HS_vkGetPhysicalDeviceImageFormatProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceImageFormatProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceImageFormatProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties2KHR :: CString
+
+pattern VkGetPhysicalDeviceQueueFamilyProperties2KHR <-
+        (is_VkGetPhysicalDeviceQueueFamilyProperties2KHR -> True)
+  where VkGetPhysicalDeviceQueueFamilyProperties2KHR
+          = _VkGetPhysicalDeviceQueueFamilyProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceQueueFamilyProperties2KHR #-}
+
+_VkGetPhysicalDeviceQueueFamilyProperties2KHR :: CString
+_VkGetPhysicalDeviceQueueFamilyProperties2KHR
+  = Ptr "vkGetPhysicalDeviceQueueFamilyProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceQueueFamilyProperties2KHR #-}
+
+is_VkGetPhysicalDeviceQueueFamilyProperties2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceQueueFamilyProperties2KHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceQueueFamilyProperties2KHR
+
+type VkGetPhysicalDeviceQueueFamilyProperties2KHR =
+     "vkGetPhysicalDeviceQueueFamilyProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceQueueFamilyProperties2`.
 --
---   > () vkGetPhysicalDeviceQueueFamilyProperties2KHR
+--   > void vkGetPhysicalDeviceQueueFamilyProperties2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , uint32_t* pQueueFamilyPropertyCount
 --   >     , VkQueueFamilyProperties2* pQueueFamilyProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html vkGetPhysicalDeviceQueueFamilyProperties2KHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceQueueFamilyProperties2"
-               vkGetPhysicalDeviceQueueFamilyProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr Word32 -- ^ pQueueFamilyPropertyCount
-                            -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
-                                                            -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceQueueFamilyProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr Word32 -- ^ pQueueFamilyPropertyCount
+                  -> Ptr VkQueueFamilyProperties2 -- ^ pQueueFamilyProperties
+                                                  -> IO ()
 
--- | This is an alias for `vkGetPhysicalDeviceMemoryProperties2`.
---
---   > () vkGetPhysicalDeviceMemoryProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html vkGetPhysicalDeviceMemoryProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceMemoryProperties2"
-               vkGetPhysicalDeviceMemoryProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
-                                                                         -> IO ()
+type PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceQueueFamilyProperties2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceQueueFamilyProperties2KHR ::
+               PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR ->
+                 HS_vkGetPhysicalDeviceQueueFamilyProperties2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceQueueFamilyProperties2KHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceQueueFamilyProperties2KHR" =
+             HS_vkGetPhysicalDeviceQueueFamilyProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceQueueFamilyProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceQueueFamilyProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceMemoryProperties2KHR :: CString
+
+pattern VkGetPhysicalDeviceMemoryProperties2KHR <-
+        (is_VkGetPhysicalDeviceMemoryProperties2KHR -> True)
+  where VkGetPhysicalDeviceMemoryProperties2KHR
+          = _VkGetPhysicalDeviceMemoryProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceMemoryProperties2KHR #-}
+
+_VkGetPhysicalDeviceMemoryProperties2KHR :: CString
+_VkGetPhysicalDeviceMemoryProperties2KHR
+  = Ptr "vkGetPhysicalDeviceMemoryProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceMemoryProperties2KHR #-}
+
+is_VkGetPhysicalDeviceMemoryProperties2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceMemoryProperties2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceMemoryProperties2KHR
+
+type VkGetPhysicalDeviceMemoryProperties2KHR =
+     "vkGetPhysicalDeviceMemoryProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceMemoryProperties2`.
 --
---   > () vkGetPhysicalDeviceMemoryProperties2KHR
+--   > void vkGetPhysicalDeviceMemoryProperties2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkPhysicalDeviceMemoryProperties2* pMemoryProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html vkGetPhysicalDeviceMemoryProperties2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceMemoryProperties2"
-               vkGetPhysicalDeviceMemoryProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
-                                                                         -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceMemoryProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Ptr VkPhysicalDeviceMemoryProperties2 -- ^ pMemoryProperties
+                                                               -> IO ()
 
--- | This is an alias for `vkGetPhysicalDeviceSparseImageFormatProperties2`.
---
---   > () vkGetPhysicalDeviceSparseImageFormatProperties2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
---   >     , uint32_t* pPropertyCount
---   >     , VkSparseImageFormatProperties2* pProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html vkGetPhysicalDeviceSparseImageFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceSparseImageFormatProperties2"
-               vkGetPhysicalDeviceSparseImageFormatProperties2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
-                                                            ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
-                                                                    -> IO ()
+type PFN_vkGetPhysicalDeviceMemoryProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceMemoryProperties2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceMemoryProperties2KHR ::
+               PFN_vkGetPhysicalDeviceMemoryProperties2KHR ->
+                 HS_vkGetPhysicalDeviceMemoryProperties2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceMemoryProperties2KHR" where
+        type VkProcType "vkGetPhysicalDeviceMemoryProperties2KHR" =
+             HS_vkGetPhysicalDeviceMemoryProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceMemoryProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceMemoryProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties2KHR ::
+        CString
+
+pattern VkGetPhysicalDeviceSparseImageFormatProperties2KHR <-
+        (is_VkGetPhysicalDeviceSparseImageFormatProperties2KHR -> True)
+  where VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+          = _VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+{-# INLINE _VkGetPhysicalDeviceSparseImageFormatProperties2KHR #-}
+
+_VkGetPhysicalDeviceSparseImageFormatProperties2KHR :: CString
+_VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+  = Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+           #-}
+
+is_VkGetPhysicalDeviceSparseImageFormatProperties2KHR ::
+                                                      CString -> Bool
+is_VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+type VkGetPhysicalDeviceSparseImageFormatProperties2KHR =
+     "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"
+
 -- | This is an alias for `vkGetPhysicalDeviceSparseImageFormatProperties2`.
 --
---   > () vkGetPhysicalDeviceSparseImageFormatProperties2KHR
+--   > void vkGetPhysicalDeviceSparseImageFormatProperties2KHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo
 --   >     , uint32_t* pPropertyCount
 --   >     , VkSparseImageFormatProperties2* pProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html vkGetPhysicalDeviceSparseImageFormatProperties2KHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceSparseImageFormatProperties2"
-               vkGetPhysicalDeviceSparseImageFormatProperties2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
-                                                            ->
-                   Ptr Word32 -- ^ pPropertyCount
-                              -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
-                                                                    -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceSparseImageFormatInfo2 -- ^ pFormatInfo
+                                                  ->
+         Ptr Word32 -- ^ pPropertyCount
+                    -> Ptr VkSparseImageFormatProperties2 -- ^ pProperties
+                                                          -> IO ()
+
+type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
+     FunPtr HS_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSparseImageFormatProperties2KHR ::
+               PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR ->
+                 HS_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+instance VulkanProc
+           "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"
+         where
+        type VkProcType
+               "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"
+             = HS_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceSparseImageFormatProperties2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_get_surface_capabilities2.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_get_surface_capabilities2
        (-- * Vulkan extension: @VK_KHR_get_surface_capabilities2@
@@ -23,26 +26,27 @@
         --
 
         -- ** Required extensions: 'VK_KHR_surface'.
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSurfaceInfo2KHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceFormat2KHR,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Surface,
+        module Graphics.Vulkan.Types.Enum.Surface,
         -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceSurfaceCapabilities2KHR,
-        vkGetPhysicalDeviceSurfaceCapabilities2KHRSafe,
-        vkGetPhysicalDeviceSurfaceFormats2KHR,
-        vkGetPhysicalDeviceSurfaceFormats2KHRSafe,
+        VkGetPhysicalDeviceSurfaceCapabilities2KHR,
+        pattern VkGetPhysicalDeviceSurfaceCapabilities2KHR,
+        HS_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
+        PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
+        VkGetPhysicalDeviceSurfaceFormats2KHR,
+        pattern VkGetPhysicalDeviceSurfaceFormats2KHR,
+        HS_vkGetPhysicalDeviceSurfaceFormats2KHR,
+        PFN_vkGetPhysicalDeviceSurfaceFormats2KHR,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION,
         pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION,
@@ -52,45 +56,44 @@
         pattern VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
         pattern VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)
        where
-import           GHC.Ptr                                                      (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSurfaceInfo2KHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceFormat2KHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Surface
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo
---   >     , VkSurfaceCapabilities2KHR* pSurfaceCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html vkGetPhysicalDeviceSurfaceCapabilities2KHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceSurfaceCapabilities2KHR"
-               vkGetPhysicalDeviceSurfaceCapabilities2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
-                                                     ->
-                   Ptr VkSurfaceCapabilities2KHR -- ^ pSurfaceCapabilities
-                                                 -> IO VkResult
+pattern VkGetPhysicalDeviceSurfaceCapabilities2KHR :: CString
 
+pattern VkGetPhysicalDeviceSurfaceCapabilities2KHR <-
+        (is_VkGetPhysicalDeviceSurfaceCapabilities2KHR -> True)
+  where VkGetPhysicalDeviceSurfaceCapabilities2KHR
+          = _VkGetPhysicalDeviceSurfaceCapabilities2KHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceCapabilities2KHR #-}
+
+_VkGetPhysicalDeviceSurfaceCapabilities2KHR :: CString
+_VkGetPhysicalDeviceSurfaceCapabilities2KHR
+  = Ptr "vkGetPhysicalDeviceSurfaceCapabilities2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceCapabilities2KHR #-}
+
+is_VkGetPhysicalDeviceSurfaceCapabilities2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceCapabilities2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceCapabilities2KHR
+
+type VkGetPhysicalDeviceSurfaceCapabilities2KHR =
+     "vkGetPhysicalDeviceSurfaceCapabilities2KHR"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -101,39 +104,56 @@
 --   >     , VkSurfaceCapabilities2KHR* pSurfaceCapabilities
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html vkGetPhysicalDeviceSurfaceCapabilities2KHR registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceSurfaceCapabilities2KHR"
-               vkGetPhysicalDeviceSurfaceCapabilities2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
-                                                     ->
-                   Ptr VkSurfaceCapabilities2KHR -- ^ pSurfaceCapabilities
-                                                 -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceCapabilities2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
+                                           ->
+         Ptr VkSurfaceCapabilities2KHR -- ^ pSurfaceCapabilities
+                                       -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetPhysicalDeviceSurfaceFormats2KHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo
---   >     , uint32_t* pSurfaceFormatCount
---   >     , VkSurfaceFormat2KHR* pSurfaceFormats
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html vkGetPhysicalDeviceSurfaceFormats2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetPhysicalDeviceSurfaceFormats2KHR"
-               vkGetPhysicalDeviceSurfaceFormats2KHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
-                                                     ->
-                   Ptr Word32 -- ^ pSurfaceFormatCount
-                              -> Ptr VkSurfaceFormat2KHR -- ^ pSurfaceFormats
-                                                         -> IO VkResult
+type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceCapabilities2KHR
 
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceCapabilities2KHR ::
+               PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ->
+                 HS_vkGetPhysicalDeviceSurfaceCapabilities2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceCapabilities2KHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceSurfaceCapabilities2KHR" =
+             HS_vkGetPhysicalDeviceSurfaceCapabilities2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceCapabilities2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceCapabilities2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSurfaceFormats2KHR :: CString
+
+pattern VkGetPhysicalDeviceSurfaceFormats2KHR <-
+        (is_VkGetPhysicalDeviceSurfaceFormats2KHR -> True)
+  where VkGetPhysicalDeviceSurfaceFormats2KHR
+          = _VkGetPhysicalDeviceSurfaceFormats2KHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceFormats2KHR #-}
+
+_VkGetPhysicalDeviceSurfaceFormats2KHR :: CString
+_VkGetPhysicalDeviceSurfaceFormats2KHR
+  = Ptr "vkGetPhysicalDeviceSurfaceFormats2KHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceFormats2KHR #-}
+
+is_VkGetPhysicalDeviceSurfaceFormats2KHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceFormats2KHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceFormats2KHR
+
+type VkGetPhysicalDeviceSurfaceFormats2KHR =
+     "vkGetPhysicalDeviceSurfaceFormats2KHR"
+
 -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -145,16 +165,33 @@
 --   >     , VkSurfaceFormat2KHR* pSurfaceFormats
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html vkGetPhysicalDeviceSurfaceFormats2KHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDeviceSurfaceFormats2KHR"
-               vkGetPhysicalDeviceSurfaceFormats2KHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
-                                                     ->
-                   Ptr Word32 -- ^ pSurfaceFormatCount
-                              -> Ptr VkSurfaceFormat2KHR -- ^ pSurfaceFormats
-                                                         -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceFormats2KHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkPhysicalDeviceSurfaceInfo2KHR -- ^ pSurfaceInfo
+                                           ->
+         Ptr Word32 -- ^ pSurfaceFormatCount
+                    -> Ptr VkSurfaceFormat2KHR -- ^ pSurfaceFormats
+                                               -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceFormats2KHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceFormats2KHR ::
+               PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ->
+                 HS_vkGetPhysicalDeviceSurfaceFormats2KHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceFormats2KHR" where
+        type VkProcType "vkGetPhysicalDeviceSurfaceFormats2KHR" =
+             HS_vkGetPhysicalDeviceSurfaceFormats2KHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceFormats2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceFormats2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_image_format_list.hs
@@ -17,19 +17,14 @@
         -- type: @device@
         --
         -- Extension number: @148@
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatListCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION,
         pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION,
@@ -37,21 +32,16 @@
         pattern VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                     (Ptr (..))
+import           GHC.Ptr                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageFormatListCreateInfoKHR
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
 
 pattern VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_incremental_present.hs
@@ -22,14 +22,12 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain'.
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPresentRegionKHR,
-        module Graphics.Vulkan.Types.Struct.VkPresentRegionsKHR,
-        module Graphics.Vulkan.Types.Struct.VkRectLayerKHR,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.Present,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION,
         pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION,
@@ -37,16 +35,14 @@
         pattern VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR)
        where
-import           GHC.Ptr                                          (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPresentRegionKHR
-import           Graphics.Vulkan.Types.Struct.VkPresentRegionsKHR
-import           Graphics.Vulkan.Types.Struct.VkRectLayerKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.Present
+import           Graphics.Vulkan.Types.Struct.Rect
 
 pattern VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance1.hs
@@ -1,11 +1,14 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_maintenance1
        (-- * Vulkan extension: @VK_KHR_maintenance1@
@@ -20,8 +23,9 @@
         -- type: @device@
         --
         -- Extension number: @70@
-        module Graphics.Vulkan.Types.Bitmasks, vkTrimCommandPoolKHR,
-        vkTrimCommandPoolKHRSafe, module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.Bitmasks, VkTrimCommandPoolKHR,
+        pattern VkTrimCommandPoolKHR, HS_vkTrimCommandPoolKHR,
+        PFN_vkTrimCommandPoolKHR, module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_MAINTENANCE1_SPEC_VERSION,
@@ -39,41 +43,57 @@
                                                   pattern VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
                                                   pattern VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc    (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
 import           Graphics.Vulkan.Types.Handles
 
--- | This is an alias for `vkTrimCommandPool`.
---
---   > () vkTrimCommandPoolKHR
---   >     ( VkDevice device
---   >     , VkCommandPool commandPool
---   >     , VkCommandPoolTrimFlags flags
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkTrimCommandPoolKHR.html vkTrimCommandPoolKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkTrimCommandPool"
-               vkTrimCommandPoolKHR ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> VkCommandPoolTrimFlags -- ^ flags
-                                                                   -> IO ()
+pattern VkTrimCommandPoolKHR :: CString
 
+pattern VkTrimCommandPoolKHR <- (is_VkTrimCommandPoolKHR -> True)
+  where VkTrimCommandPoolKHR = _VkTrimCommandPoolKHR
+
+{-# INLINE _VkTrimCommandPoolKHR #-}
+
+_VkTrimCommandPoolKHR :: CString
+_VkTrimCommandPoolKHR = Ptr "vkTrimCommandPoolKHR\NUL"#
+
+{-# INLINE is_VkTrimCommandPoolKHR #-}
+
+is_VkTrimCommandPoolKHR :: CString -> Bool
+is_VkTrimCommandPoolKHR
+  = (EQ ==) . cmpCStrings _VkTrimCommandPoolKHR
+
+type VkTrimCommandPoolKHR = "vkTrimCommandPoolKHR"
+
 -- | This is an alias for `vkTrimCommandPool`.
 --
---   > () vkTrimCommandPoolKHR
+--   > void vkTrimCommandPoolKHR
 --   >     ( VkDevice device
 --   >     , VkCommandPool commandPool
 --   >     , VkCommandPoolTrimFlags flags
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkTrimCommandPoolKHR.html vkTrimCommandPoolKHR registry at www.khronos.org>
-foreign import ccall safe "vkTrimCommandPool"
-               vkTrimCommandPoolKHRSafe ::
-               VkDevice -- ^ device
-                        -> VkCommandPool -- ^ commandPool
-                                         -> VkCommandPoolTrimFlags -- ^ flags
-                                                                   -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkTrimCommandPoolKHR vkTrimCommandPoolKHR registry at www.khronos.org>
+type HS_vkTrimCommandPoolKHR =
+     VkDevice -- ^ device
+              -> VkCommandPool -- ^ commandPool
+                               -> VkCommandPoolTrimFlags -- ^ flags
+                                                         -> IO ()
+
+type PFN_vkTrimCommandPoolKHR = FunPtr HS_vkTrimCommandPoolKHR
+
+foreign import ccall "dynamic" unwrapVkTrimCommandPoolKHR ::
+               PFN_vkTrimCommandPoolKHR -> HS_vkTrimCommandPoolKHR
+
+instance VulkanProc "vkTrimCommandPoolKHR" where
+        type VkProcType "vkTrimCommandPoolKHR" = HS_vkTrimCommandPoolKHR
+        vkProcSymbol = _VkTrimCommandPoolKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkTrimCommandPoolKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_MAINTENANCE1_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance2.hs
@@ -18,13 +18,13 @@
         -- type: @device@
         --
         -- Extension number: @118@
-        module Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReferenceKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkPointClippingBehaviorKHR,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkTessellationDomainOriginKHR,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.PointClippingBehavior,
+        module Graphics.Vulkan.Types.Struct.RenderPass,
+        module Graphics.Vulkan.Types.Enum.TessellationDomainOrigin,
         VK_KHR_MAINTENANCE2_SPEC_VERSION,
         pattern VK_KHR_MAINTENANCE2_SPEC_VERSION,
         VK_KHR_MAINTENANCE2_EXTENSION_NAME,
@@ -42,29 +42,23 @@
         pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
         pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR)
        where
-import           GHC.Ptr
-                                                                                                    (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                                    (pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
-                                                                                                    pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
-                                                                                                    pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-                                                                                                    pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-                                                                                                    pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
-                                                                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
-                                                                                                    pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-                                                                                                    pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO)
+import           GHC.Ptr                                                     (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                                    (pattern VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
+                                                                              pattern VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
+                                                                              pattern VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+                                                                              pattern VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+                                                                              pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
+                                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
+                                                                              pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
+                                                                              pattern VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkPointClippingBehavior
-                                                                                                    (VkPointClippingBehavior (..))
-import           Graphics.Vulkan.Types.Enum.VkPointClippingBehaviorKHR
-import           Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin
-                                                                                                    (VkTessellationDomainOrigin (..))
-import           Graphics.Vulkan.Types.Enum.VkTessellationDomainOriginKHR
-import           Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReferenceKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfoKHR
+import           Graphics.Vulkan.Types.Enum.PointClippingBehavior
+import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.RenderPass
 
 pattern VK_KHR_MAINTENANCE2_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_maintenance3.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_maintenance3
        (-- * Vulkan extension: @VK_KHR_maintenance3@
@@ -24,20 +27,18 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupportKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3PropertiesKHR,
-        vkGetDescriptorSetLayoutSupportKHR,
-        vkGetDescriptorSetLayoutSupportKHRSafe,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        VkGetDescriptorSetLayoutSupportKHR,
+        pattern VkGetDescriptorSetLayoutSupportKHR,
+        HS_vkGetDescriptorSetLayoutSupportKHR,
+        PFN_vkGetDescriptorSetLayoutSupportKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorType,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport,
         VK_KHR_MAINTENANCE3_SPEC_VERSION,
         pattern VK_KHR_MAINTENANCE3_SPEC_VERSION,
         VK_KHR_MAINTENANCE3_EXTENSION_NAME,
@@ -45,59 +46,75 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
         pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR)
        where
-import           GHC.Ptr
-                                                                                         (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                         (pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
-                                                                                         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupportKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3PropertiesKHR
+import           Graphics.Vulkan.Types.Struct.Descriptor
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
--- | This is an alias for `vkGetDescriptorSetLayoutSupport`.
---
---   > () vkGetDescriptorSetLayoutSupportKHR
---   >     ( VkDevice device
---   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
---   >     , VkDescriptorSetLayoutSupport* pSupport
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDescriptorSetLayoutSupportKHR.html vkGetDescriptorSetLayoutSupportKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetDescriptorSetLayoutSupport"
-               vkGetDescriptorSetLayoutSupportKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
-                                                    -> IO ()
+pattern VkGetDescriptorSetLayoutSupportKHR :: CString
 
+pattern VkGetDescriptorSetLayoutSupportKHR <-
+        (is_VkGetDescriptorSetLayoutSupportKHR -> True)
+  where VkGetDescriptorSetLayoutSupportKHR
+          = _VkGetDescriptorSetLayoutSupportKHR
+
+{-# INLINE _VkGetDescriptorSetLayoutSupportKHR #-}
+
+_VkGetDescriptorSetLayoutSupportKHR :: CString
+_VkGetDescriptorSetLayoutSupportKHR
+  = Ptr "vkGetDescriptorSetLayoutSupportKHR\NUL"#
+
+{-# INLINE is_VkGetDescriptorSetLayoutSupportKHR #-}
+
+is_VkGetDescriptorSetLayoutSupportKHR :: CString -> Bool
+is_VkGetDescriptorSetLayoutSupportKHR
+  = (EQ ==) . cmpCStrings _VkGetDescriptorSetLayoutSupportKHR
+
+type VkGetDescriptorSetLayoutSupportKHR =
+     "vkGetDescriptorSetLayoutSupportKHR"
+
 -- | This is an alias for `vkGetDescriptorSetLayoutSupport`.
 --
---   > () vkGetDescriptorSetLayoutSupportKHR
+--   > void vkGetDescriptorSetLayoutSupportKHR
 --   >     ( VkDevice device
 --   >     , const VkDescriptorSetLayoutCreateInfo* pCreateInfo
 --   >     , VkDescriptorSetLayoutSupport* pSupport
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDescriptorSetLayoutSupportKHR.html vkGetDescriptorSetLayoutSupportKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDescriptorSetLayoutSupport"
-               vkGetDescriptorSetLayoutSupportKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
-                                                     ->
-                   Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
-                                                    -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR registry at www.khronos.org>
+type HS_vkGetDescriptorSetLayoutSupportKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkDescriptorSetLayoutCreateInfo -- ^ pCreateInfo
+                                           ->
+         Ptr VkDescriptorSetLayoutSupport -- ^ pSupport
+                                          -> IO ()
+
+type PFN_vkGetDescriptorSetLayoutSupportKHR =
+     FunPtr HS_vkGetDescriptorSetLayoutSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDescriptorSetLayoutSupportKHR ::
+               PFN_vkGetDescriptorSetLayoutSupportKHR ->
+                 HS_vkGetDescriptorSetLayoutSupportKHR
+
+instance VulkanProc "vkGetDescriptorSetLayoutSupportKHR" where
+        type VkProcType "vkGetDescriptorSetLayoutSupportKHR" =
+             HS_vkGetDescriptorSetLayoutSupportKHR
+        vkProcSymbol = _VkGetDescriptorSetLayoutSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDescriptorSetLayoutSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_MAINTENANCE3_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_mir_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_mir_surface
        (-- * Vulkan extension: @VK_KHR_mir_surface@
@@ -27,52 +33,84 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkMirSurfaceCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PlatformMirKhr,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
+        VkCreateMirSurfaceKHR, pattern VkCreateMirSurfaceKHR,
+        HS_vkCreateMirSurfaceKHR, PFN_vkCreateMirSurfaceKHR,
         vkCreateMirSurfaceKHR, vkCreateMirSurfaceKHRSafe,
+        VkGetPhysicalDeviceMirPresentationSupportKHR,
+        pattern VkGetPhysicalDeviceMirPresentationSupportKHR,
+        HS_vkGetPhysicalDeviceMirPresentationSupportKHR,
+        PFN_vkGetPhysicalDeviceMirPresentationSupportKHR,
         vkGetPhysicalDeviceMirPresentationSupportKHR,
         vkGetPhysicalDeviceMirPresentationSupportKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_MIR_SURFACE_SPEC_VERSION,
         pattern VK_KHR_MIR_SURFACE_SPEC_VERSION,
         VK_KHR_MIR_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_MIR_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkMirSurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformMirKhr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateMirSurfaceKHR :: CString
+
+pattern VkCreateMirSurfaceKHR <- (is_VkCreateMirSurfaceKHR -> True)
+  where VkCreateMirSurfaceKHR = _VkCreateMirSurfaceKHR
+
+{-# INLINE _VkCreateMirSurfaceKHR #-}
+
+_VkCreateMirSurfaceKHR :: CString
+_VkCreateMirSurfaceKHR = Ptr "vkCreateMirSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateMirSurfaceKHR #-}
+
+is_VkCreateMirSurfaceKHR :: CString -> Bool
+is_VkCreateMirSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateMirSurfaceKHR
+
+type VkCreateMirSurfaceKHR = "vkCreateMirSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateMirSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateMirSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateMirSurfaceKHR.html vkCreateMirSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateMirSurfaceKHR"
                vkCreateMirSurfaceKHR ::
                VkInstance -- ^ instance
@@ -83,18 +121,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateMirSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateMirSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateMirSurfaceKHR.html vkCreateMirSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateMirSurfaceKHRSafe@ and @vkCreateMirSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateMirSurfaceKHR <- vkGetInstanceProc @VkCreateMirSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateMirSurfaceKHR <- vkGetProc @VkCreateMirSurfaceKHR
+--
+vkCreateMirSurfaceKHR ::
+                      VkInstance -- ^ instance
+                                 ->
+                        Ptr VkMirSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                      ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                        -> IO VkResult
+vkCreateMirSurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateMirSurfaceKHR)
+
+{-# NOINLINE vkCreateMirSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateMirSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateMirSurfaceKHR"
                vkCreateMirSurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -105,13 +190,117 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , MirConnection* connection
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateMirSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateMirSurfaceKHRSafe@ and @vkCreateMirSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateMirSurfaceKHR <- vkGetInstanceProc @VkCreateMirSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateMirSurfaceKHR <- vkGetProc @VkCreateMirSurfaceKHR
+--
+vkCreateMirSurfaceKHRSafe ::
+                          VkInstance -- ^ instance
+                                     ->
+                            Ptr VkMirSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                          ->
+                              Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                            -> IO VkResult
+vkCreateMirSurfaceKHRSafe = vkCreateMirSurfaceKHR
+
+{-# INLINE vkCreateMirSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateMirSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkMirSurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMirPresentationSupportKHR.html vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateMirSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkMirSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                     ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateMirSurfaceKHR = FunPtr HS_vkCreateMirSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateMirSurfaceKHR ::
+               PFN_vkCreateMirSurfaceKHR -> HS_vkCreateMirSurfaceKHR
+
+instance VulkanProc "vkCreateMirSurfaceKHR" where
+        type VkProcType "vkCreateMirSurfaceKHR" = HS_vkCreateMirSurfaceKHR
+        vkProcSymbol = _VkCreateMirSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateMirSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceMirPresentationSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceMirPresentationSupportKHR <-
+        (is_VkGetPhysicalDeviceMirPresentationSupportKHR -> True)
+  where VkGetPhysicalDeviceMirPresentationSupportKHR
+          = _VkGetPhysicalDeviceMirPresentationSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceMirPresentationSupportKHR #-}
+
+_VkGetPhysicalDeviceMirPresentationSupportKHR :: CString
+_VkGetPhysicalDeviceMirPresentationSupportKHR
+  = Ptr "vkGetPhysicalDeviceMirPresentationSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceMirPresentationSupportKHR #-}
+
+is_VkGetPhysicalDeviceMirPresentationSupportKHR :: CString -> Bool
+is_VkGetPhysicalDeviceMirPresentationSupportKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceMirPresentationSupportKHR
+
+type VkGetPhysicalDeviceMirPresentationSupportKHR =
+     "vkGetPhysicalDeviceMirPresentationSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , MirConnection* connection
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceMirPresentationSupportKHR"
                vkGetPhysicalDeviceMirPresentationSupportKHR ::
@@ -120,13 +309,54 @@
                                           -> Ptr MirConnection -- ^ connection
                                                                -> IO VkBool32
 
--- | > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , MirConnection* connection
---   >     )
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , MirConnection* connection
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceMirPresentationSupportKHR.html vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMirPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceMirPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMirPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceMirPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMirPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceMirPresentationSupportKHR
+--
+vkGetPhysicalDeviceMirPresentationSupportKHR ::
+                                             VkPhysicalDevice -- ^ physicalDevice
+                                                              ->
+                                               Word32 -- ^ queueFamilyIndex
+                                                      -> Ptr MirConnection -- ^ connection
+                                                                           -> IO VkBool32
+vkGetPhysicalDeviceMirPresentationSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceMirPresentationSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceMirPresentationSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , MirConnection* connection
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceMirPresentationSupportKHR"
                vkGetPhysicalDeviceMirPresentationSupportKHRSafe ::
@@ -134,6 +364,73 @@
                                 -> Word32 -- ^ queueFamilyIndex
                                           -> Ptr MirConnection -- ^ connection
                                                                -> IO VkBool32
+
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , MirConnection* connection
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceMirPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceMirPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceMirPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceMirPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceMirPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceMirPresentationSupportKHR
+--
+vkGetPhysicalDeviceMirPresentationSupportKHRSafe ::
+                                                 VkPhysicalDevice -- ^ physicalDevice
+                                                                  ->
+                                                   Word32 -- ^ queueFamilyIndex
+                                                          -> Ptr MirConnection -- ^ connection
+                                                                               -> IO VkBool32
+vkGetPhysicalDeviceMirPresentationSupportKHRSafe
+  = vkGetPhysicalDeviceMirPresentationSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceMirPresentationSupportKHRSafe #-}
+#endif
+
+-- | > VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
+--   >     , MirConnection* connection
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceMirPresentationSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Word32 -- ^ queueFamilyIndex
+                                -> Ptr MirConnection -- ^ connection
+                                                     -> IO VkBool32
+
+type PFN_vkGetPhysicalDeviceMirPresentationSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceMirPresentationSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceMirPresentationSupportKHR ::
+               PFN_vkGetPhysicalDeviceMirPresentationSupportKHR ->
+                 HS_vkGetPhysicalDeviceMirPresentationSupportKHR
+
+instance VulkanProc "vkGetPhysicalDeviceMirPresentationSupportKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceMirPresentationSupportKHR" =
+             HS_vkGetPhysicalDeviceMirPresentationSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceMirPresentationSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceMirPresentationSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_MIR_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_multiview.hs
@@ -23,9 +23,8 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeaturesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.RenderPass,
         VK_KHR_MULTIVIEW_SPEC_VERSION,
         pattern VK_KHR_MULTIVIEW_SPEC_VERSION,
         VK_KHR_MULTIVIEW_EXTENSION_NAME,
@@ -35,17 +34,14 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
         pattern VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR)
        where
-import           GHC.Ptr
-                                                                                      (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                      (pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
-                                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
-                                                                                      pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
-                                                                                      pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_DEPENDENCY_VIEW_LOCAL_BIT,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
+                                                              pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
+                                                              pattern VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeaturesKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.RenderPass
 
 pattern VK_KHR_MULTIVIEW_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_push_descriptor
        (-- * Vulkan extension: @VK_KHR_push_descriptor@
@@ -25,23 +28,19 @@
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePushDescriptorPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkCmdPushDescriptorSetKHR, vkCmdPushDescriptorSetKHRSafe,
-        module Graphics.Vulkan.Types.Enum.VkDescriptorType,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint,
+        VkCmdPushDescriptorSetKHR, pattern VkCmdPushDescriptorSetKHR,
+        HS_vkCmdPushDescriptorSetKHR, PFN_vkCmdPushDescriptorSetKHR,
+        module Graphics.Vulkan.Types.Enum.Descriptor,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo,
-        module Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo,
-        module Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet,
+        module Graphics.Vulkan.Types.Struct.Descriptor,
+        module Graphics.Vulkan.Types.Struct.WriteDescriptorSet,
         VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION,
         pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION,
         VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME,
@@ -49,67 +48,51 @@
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
         pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
-        vkCmdPushDescriptorSetWithTemplateKHR,
-        vkCmdPushDescriptorSetWithTemplateKHRSafe,
+        VkCmdPushDescriptorSetWithTemplateKHR,
+        pattern VkCmdPushDescriptorSetWithTemplateKHR,
+        HS_vkCmdPushDescriptorSetWithTemplateKHR,
+        PFN_vkCmdPushDescriptorSetWithTemplateKHR,
         pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR)
        where
-import           GHC.Ptr
-                                                                                           (Ptr (..))
+import           GHC.Ptr                                         (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                    (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-                                                                                           (VkDescriptorSetLayoutCreateBitmask (..),
-                                                                                           VkDescriptorSetLayoutCreateFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType
-import           Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType
-                                                                                           (VkDescriptorUpdateTemplateType (..))
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.Descriptor
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo
-import           Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevicePushDescriptorPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-import           Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet
+import           Graphics.Vulkan.Types.Struct.Descriptor
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.WriteDescriptorSet
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPushDescriptorSetKHR
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkPipelineBindPoint pipelineBindPoint
---   >     , VkPipelineLayout layout
---   >     , uint32_t set
---   >     , uint32_t descriptorWriteCount
---   >     , const VkWriteDescriptorSet* pDescriptorWrites
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushDescriptorSetKHR.html vkCmdPushDescriptorSetKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdPushDescriptorSetKHR"
-               vkCmdPushDescriptorSetKHR ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineBindPoint -- ^ pipelineBindPoint
-                                     ->
-                   VkPipelineLayout -- ^ layout
-                                    ->
-                     Word32 -- ^ set
-                            -> Word32 -- ^ descriptorWriteCount
-                                      -> Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
-                                                                  -> IO ()
+pattern VkCmdPushDescriptorSetKHR :: CString
 
--- | queues: 'graphics', 'compute'.
+pattern VkCmdPushDescriptorSetKHR <-
+        (is_VkCmdPushDescriptorSetKHR -> True)
+  where VkCmdPushDescriptorSetKHR = _VkCmdPushDescriptorSetKHR
+
+{-# INLINE _VkCmdPushDescriptorSetKHR #-}
+
+_VkCmdPushDescriptorSetKHR :: CString
+_VkCmdPushDescriptorSetKHR = Ptr "vkCmdPushDescriptorSetKHR\NUL"#
+
+{-# INLINE is_VkCmdPushDescriptorSetKHR #-}
+
+is_VkCmdPushDescriptorSetKHR :: CString -> Bool
+is_VkCmdPushDescriptorSetKHR
+  = (EQ ==) . cmpCStrings _VkCmdPushDescriptorSetKHR
+
+type VkCmdPushDescriptorSetKHR = "vkCmdPushDescriptorSetKHR"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdPushDescriptorSetKHR
+--   > void vkCmdPushDescriptorSetKHR
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , VkPipelineBindPoint pipelineBindPoint
 --   >     , VkPipelineLayout layout
@@ -118,20 +101,35 @@
 --   >     , const VkWriteDescriptorSet* pDescriptorWrites
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushDescriptorSetKHR.html vkCmdPushDescriptorSetKHR registry at www.khronos.org>
-foreign import ccall safe "vkCmdPushDescriptorSetKHR"
-               vkCmdPushDescriptorSetKHRSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkPipelineBindPoint -- ^ pipelineBindPoint
-                                     ->
-                   VkPipelineLayout -- ^ layout
-                                    ->
-                     Word32 -- ^ set
-                            -> Word32 -- ^ descriptorWriteCount
-                                      -> Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
-                                                                  -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR registry at www.khronos.org>
+type HS_vkCmdPushDescriptorSetKHR =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkPipelineBindPoint -- ^ pipelineBindPoint
+                           ->
+         VkPipelineLayout -- ^ layout
+                          ->
+           Word32 -- ^ set
+                  -> Word32 -- ^ descriptorWriteCount
+                            -> Ptr VkWriteDescriptorSet -- ^ pDescriptorWrites
+                                                        -> IO ()
 
+type PFN_vkCmdPushDescriptorSetKHR =
+     FunPtr HS_vkCmdPushDescriptorSetKHR
+
+foreign import ccall "dynamic" unwrapVkCmdPushDescriptorSetKHR ::
+               PFN_vkCmdPushDescriptorSetKHR -> HS_vkCmdPushDescriptorSetKHR
+
+instance VulkanProc "vkCmdPushDescriptorSetKHR" where
+        type VkProcType "vkCmdPushDescriptorSetKHR" =
+             HS_vkCmdPushDescriptorSetKHR
+        vkProcSymbol = _VkCmdPushDescriptorSetKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdPushDescriptorSetKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
 pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION :: (Num a, Eq a) => a
 
 pattern VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION = 2
@@ -175,35 +173,33 @@
 pattern VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR =
         VkDescriptorSetLayoutCreateFlagBits 1
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @both@
---
---   > () vkCmdPushDescriptorSetWithTemplateKHR
---   >     ( VkCommandBuffer commandBuffer
---   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
---   >     , VkPipelineLayout layout
---   >     , uint32_t set
---   >     , const void* pData
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html vkCmdPushDescriptorSetWithTemplateKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdPushDescriptorSetWithTemplateKHR"
-               vkCmdPushDescriptorSetWithTemplateKHR ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            ->
-                   VkPipelineLayout -- ^ layout
-                                    -> Word32 -- ^ set
-                                              -> Ptr Void -- ^ pData
-                                                          -> IO ()
+pattern VkCmdPushDescriptorSetWithTemplateKHR :: CString
 
--- | queues: 'graphics', 'compute'.
+pattern VkCmdPushDescriptorSetWithTemplateKHR <-
+        (is_VkCmdPushDescriptorSetWithTemplateKHR -> True)
+  where VkCmdPushDescriptorSetWithTemplateKHR
+          = _VkCmdPushDescriptorSetWithTemplateKHR
+
+{-# INLINE _VkCmdPushDescriptorSetWithTemplateKHR #-}
+
+_VkCmdPushDescriptorSetWithTemplateKHR :: CString
+_VkCmdPushDescriptorSetWithTemplateKHR
+  = Ptr "vkCmdPushDescriptorSetWithTemplateKHR\NUL"#
+
+{-# INLINE is_VkCmdPushDescriptorSetWithTemplateKHR #-}
+
+is_VkCmdPushDescriptorSetWithTemplateKHR :: CString -> Bool
+is_VkCmdPushDescriptorSetWithTemplateKHR
+  = (EQ ==) . cmpCStrings _VkCmdPushDescriptorSetWithTemplateKHR
+
+type VkCmdPushDescriptorSetWithTemplateKHR =
+     "vkCmdPushDescriptorSetWithTemplateKHR"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdPushDescriptorSetWithTemplateKHR
+--   > void vkCmdPushDescriptorSetWithTemplateKHR
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , VkDescriptorUpdateTemplate descriptorUpdateTemplate
 --   >     , VkPipelineLayout layout
@@ -211,17 +207,34 @@
 --   >     , const void* pData
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html vkCmdPushDescriptorSetWithTemplateKHR registry at www.khronos.org>
-foreign import ccall safe "vkCmdPushDescriptorSetWithTemplateKHR"
-               vkCmdPushDescriptorSetWithTemplateKHRSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
-                                            ->
-                   VkPipelineLayout -- ^ layout
-                                    -> Word32 -- ^ set
-                                              -> Ptr Void -- ^ pData
-                                                          -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR registry at www.khronos.org>
+type HS_vkCmdPushDescriptorSetWithTemplateKHR =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       VkDescriptorUpdateTemplate -- ^ descriptorUpdateTemplate
+                                  ->
+         VkPipelineLayout -- ^ layout
+                          -> Word32 -- ^ set
+                                    -> Ptr Void -- ^ pData
+                                                -> IO ()
+
+type PFN_vkCmdPushDescriptorSetWithTemplateKHR =
+     FunPtr HS_vkCmdPushDescriptorSetWithTemplateKHR
+
+foreign import ccall "dynamic"
+               unwrapVkCmdPushDescriptorSetWithTemplateKHR ::
+               PFN_vkCmdPushDescriptorSetWithTemplateKHR ->
+                 HS_vkCmdPushDescriptorSetWithTemplateKHR
+
+instance VulkanProc "vkCmdPushDescriptorSetWithTemplateKHR" where
+        type VkProcType "vkCmdPushDescriptorSetWithTemplateKHR" =
+             HS_vkCmdPushDescriptorSetWithTemplateKHR
+        vkProcSymbol = _VkCmdPushDescriptorSetWithTemplateKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdPushDescriptorSetWithTemplateKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 -- | Create descriptor update template for pushed descriptor updates
 pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR ::
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_mirror_clamp_to_edge.hs
@@ -23,9 +23,9 @@
         pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME,
         pattern VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE)
        where
-import           GHC.Ptr                                         (Ptr (..))
+import           GHC.Ptr                            (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkSamplerAddressMode (VkSamplerAddressMode (..))
+import           Graphics.Vulkan.Types.Enum.Sampler (VkSamplerAddressMode (..))
 
 pattern VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_sampler_ycbcr_conversion.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_sampler_ycbcr_conversion
        (-- * Vulkan extension: @VK_KHR_sampler_ycbcr_conversion@
@@ -24,36 +27,33 @@
         --
 
         -- ** Required extensions: 'VK_KHR_maintenance1', 'VK_KHR_bind_memory2', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2'.
-        module Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkChromaLocationKHR,
-        module Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatPropertiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversionKHR,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRangeKHR,
-        vkCreateSamplerYcbcrConversionKHR,
-        vkCreateSamplerYcbcrConversionKHRSafe,
-        vkDestroySamplerYcbcrConversionKHR,
-        vkDestroySamplerYcbcrConversionKHRSafe,
+        module Graphics.Vulkan.Types.Struct.Bind,
+        module Graphics.Vulkan.Types.Enum.ChromaLocation,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Struct.Sampler,
+        module Graphics.Vulkan.Types.Enum.Sampler,
+        VkCreateSamplerYcbcrConversionKHR,
+        pattern VkCreateSamplerYcbcrConversionKHR,
+        HS_vkCreateSamplerYcbcrConversionKHR,
+        PFN_vkCreateSamplerYcbcrConversionKHR,
+        VkDestroySamplerYcbcrConversionKHR,
+        pattern VkDestroySamplerYcbcrConversionKHR,
+        HS_vkDestroySamplerYcbcrConversionKHR,
+        PFN_vkDestroySamplerYcbcrConversionKHR,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkChromaLocation,
-        module Graphics.Vulkan.Types.Enum.VkComponentSwizzle,
-        module Graphics.Vulkan.Types.Enum.VkFilter,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion,
-        module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.ComponentSwizzle,
+        module Graphics.Vulkan.Types.Enum.Filter,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkComponentMapping,
-        module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.ComponentMapping,
         VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION,
         pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION,
         VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME,
@@ -123,115 +123,103 @@
         -- ** Required extensions: 'VK_EXT_debug_report', 'VK_KHR_maintenance1', 'VK_KHR_bind_memory2', 'VK_KHR_get_memory_requirements2', 'VK_KHR_get_physical_device_properties2'.
         pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
        where
-import           GHC.Ptr
-                                                                                                 (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                                 (pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_B16G16R16G16_422_UNORM,
-                                                                                                 pattern VK_FORMAT_B8G8R8G8_422_UNORM,
-                                                                                                 pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
-                                                                                                 pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
-                                                                                                 pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
-                                                                                                 pattern VK_FORMAT_G16B16G16R16_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
-                                                                                                 pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
-                                                                                                 pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-                                                                                                 pattern VK_FORMAT_G8B8G8R8_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
-                                                                                                 pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
-                                                                                                 pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
-                                                                                                 pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
-                                                                                                 pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
-                                                                                                 pattern VK_FORMAT_R10X6_UNORM_PACK16,
-                                                                                                 pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
-                                                                                                 pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
-                                                                                                 pattern VK_FORMAT_R12X4_UNORM_PACK16,
-                                                                                                 pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
-                                                                                                 pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
-                                                                                                 pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
-                                                                                                 pattern VK_IMAGE_CREATE_DISJOINT_BIT,
-                                                                                                 pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-                                                                                                 pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
-                                                                                                 pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
-                                                                                                 pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
-                                                                                                 pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
-                                                                                                 pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
-                                                                                                 pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO)
-import           Graphics.Vulkan.Ext.VK_EXT_debug_report
-                                                                                                 (pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
+import           GHC.Ptr                                           (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                          (pattern VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_B16G16R16G16_422_UNORM,
+                                                                    pattern VK_FORMAT_B8G8R8G8_422_UNORM,
+                                                                    pattern VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_DISJOINT_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
+                                                                    pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
+                                                                    pattern VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
+                                                                    pattern VK_FORMAT_G16B16G16R16_422_UNORM,
+                                                                    pattern VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
+                                                                    pattern VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
+                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
+                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
+                                                                    pattern VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
+                                                                    pattern VK_FORMAT_G8B8G8R8_422_UNORM,
+                                                                    pattern VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
+                                                                    pattern VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
+                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
+                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
+                                                                    pattern VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
+                                                                    pattern VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
+                                                                    pattern VK_FORMAT_R10X6_UNORM_PACK16,
+                                                                    pattern VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
+                                                                    pattern VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
+                                                                    pattern VK_FORMAT_R12X4_UNORM_PACK16,
+                                                                    pattern VK_IMAGE_ASPECT_PLANE_0_BIT,
+                                                                    pattern VK_IMAGE_ASPECT_PLANE_1_BIT,
+                                                                    pattern VK_IMAGE_ASPECT_PLANE_2_BIT,
+                                                                    pattern VK_IMAGE_CREATE_DISJOINT_BIT,
+                                                                    pattern VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+                                                                    pattern VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
+                                                                    pattern VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
+                                                                    pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
+                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
+                                                                    pattern VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO)
+import           Graphics.Vulkan.Ext.VK_EXT_debug_report           (pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT)
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkChromaLocation
-import           Graphics.Vulkan.Types.Enum.VkChromaLocationKHR
-import           Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-import           Graphics.Vulkan.Types.Enum.VkFilter
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversionKHR
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRangeKHR
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.ChromaLocation
+import           Graphics.Vulkan.Types.Enum.ComponentSwizzle
+import           Graphics.Vulkan.Types.Enum.Filter
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.Sampler
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping
-import           Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatPropertiesKHR
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Bind
+import           Graphics.Vulkan.Types.Struct.ComponentMapping
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
+import           Graphics.Vulkan.Types.Struct.Sampler
 
--- | This is an alias for `vkCreateSamplerYcbcrConversion`.
---
---   Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateSamplerYcbcrConversionKHR
---   >     ( VkDevice device
---   >     , const VkSamplerYcbcrConversionCreateInfo* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSamplerYcbcrConversion* pYcbcrConversion
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSamplerYcbcrConversionKHR.html vkCreateSamplerYcbcrConversionKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateSamplerYcbcrConversion"
-               vkCreateSamplerYcbcrConversionKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
-                                                  -> IO VkResult
+pattern VkCreateSamplerYcbcrConversionKHR :: CString
 
+pattern VkCreateSamplerYcbcrConversionKHR <-
+        (is_VkCreateSamplerYcbcrConversionKHR -> True)
+  where VkCreateSamplerYcbcrConversionKHR
+          = _VkCreateSamplerYcbcrConversionKHR
+
+{-# INLINE _VkCreateSamplerYcbcrConversionKHR #-}
+
+_VkCreateSamplerYcbcrConversionKHR :: CString
+_VkCreateSamplerYcbcrConversionKHR
+  = Ptr "vkCreateSamplerYcbcrConversionKHR\NUL"#
+
+{-# INLINE is_VkCreateSamplerYcbcrConversionKHR #-}
+
+is_VkCreateSamplerYcbcrConversionKHR :: CString -> Bool
+is_VkCreateSamplerYcbcrConversionKHR
+  = (EQ ==) . cmpCStrings _VkCreateSamplerYcbcrConversionKHR
+
+type VkCreateSamplerYcbcrConversionKHR =
+     "vkCreateSamplerYcbcrConversionKHR"
+
 -- | This is an alias for `vkCreateSamplerYcbcrConversion`.
 --
 --   Success codes: 'VK_SUCCESS'.
@@ -245,51 +233,90 @@
 --   >     , VkSamplerYcbcrConversion* pYcbcrConversion
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSamplerYcbcrConversionKHR.html vkCreateSamplerYcbcrConversionKHR registry at www.khronos.org>
-foreign import ccall safe "vkCreateSamplerYcbcrConversion"
-               vkCreateSamplerYcbcrConversionKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
-                                                        ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
-                                                  -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR registry at www.khronos.org>
+type HS_vkCreateSamplerYcbcrConversionKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSamplerYcbcrConversionCreateInfo -- ^ pCreateInfo
+                                              ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkSamplerYcbcrConversion -- ^ pYcbcrConversion
+                                        -> IO VkResult
 
--- | This is an alias for `vkDestroySamplerYcbcrConversion`.
---
---   > () vkDestroySamplerYcbcrConversionKHR
---   >     ( VkDevice device
---   >     , VkSamplerYcbcrConversion ycbcrConversion
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySamplerYcbcrConversionKHR.html vkDestroySamplerYcbcrConversionKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroySamplerYcbcrConversion"
-               vkDestroySamplerYcbcrConversionKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+type PFN_vkCreateSamplerYcbcrConversionKHR =
+     FunPtr HS_vkCreateSamplerYcbcrConversionKHR
 
+foreign import ccall "dynamic"
+               unwrapVkCreateSamplerYcbcrConversionKHR ::
+               PFN_vkCreateSamplerYcbcrConversionKHR ->
+                 HS_vkCreateSamplerYcbcrConversionKHR
+
+instance VulkanProc "vkCreateSamplerYcbcrConversionKHR" where
+        type VkProcType "vkCreateSamplerYcbcrConversionKHR" =
+             HS_vkCreateSamplerYcbcrConversionKHR
+        vkProcSymbol = _VkCreateSamplerYcbcrConversionKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSamplerYcbcrConversionKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroySamplerYcbcrConversionKHR :: CString
+
+pattern VkDestroySamplerYcbcrConversionKHR <-
+        (is_VkDestroySamplerYcbcrConversionKHR -> True)
+  where VkDestroySamplerYcbcrConversionKHR
+          = _VkDestroySamplerYcbcrConversionKHR
+
+{-# INLINE _VkDestroySamplerYcbcrConversionKHR #-}
+
+_VkDestroySamplerYcbcrConversionKHR :: CString
+_VkDestroySamplerYcbcrConversionKHR
+  = Ptr "vkDestroySamplerYcbcrConversionKHR\NUL"#
+
+{-# INLINE is_VkDestroySamplerYcbcrConversionKHR #-}
+
+is_VkDestroySamplerYcbcrConversionKHR :: CString -> Bool
+is_VkDestroySamplerYcbcrConversionKHR
+  = (EQ ==) . cmpCStrings _VkDestroySamplerYcbcrConversionKHR
+
+type VkDestroySamplerYcbcrConversionKHR =
+     "vkDestroySamplerYcbcrConversionKHR"
+
 -- | This is an alias for `vkDestroySamplerYcbcrConversion`.
 --
---   > () vkDestroySamplerYcbcrConversionKHR
+--   > void vkDestroySamplerYcbcrConversionKHR
 --   >     ( VkDevice device
 --   >     , VkSamplerYcbcrConversion ycbcrConversion
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySamplerYcbcrConversionKHR.html vkDestroySamplerYcbcrConversionKHR registry at www.khronos.org>
-foreign import ccall safe "vkDestroySamplerYcbcrConversion"
-               vkDestroySamplerYcbcrConversionKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSamplerYcbcrConversion -- ^ ycbcrConversion
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR registry at www.khronos.org>
+type HS_vkDestroySamplerYcbcrConversionKHR =
+     VkDevice -- ^ device
+              ->
+       VkSamplerYcbcrConversion -- ^ ycbcrConversion
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkDestroySamplerYcbcrConversionKHR =
+     FunPtr HS_vkDestroySamplerYcbcrConversionKHR
+
+foreign import ccall "dynamic"
+               unwrapVkDestroySamplerYcbcrConversionKHR ::
+               PFN_vkDestroySamplerYcbcrConversionKHR ->
+                 HS_vkDestroySamplerYcbcrConversionKHR
+
+instance VulkanProc "vkDestroySamplerYcbcrConversionKHR" where
+        type VkProcType "vkDestroySamplerYcbcrConversionKHR" =
+             HS_vkDestroySamplerYcbcrConversionKHR
+        vkProcSymbol = _VkDestroySamplerYcbcrConversionKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySamplerYcbcrConversionKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_shared_presentable_image.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_shared_presentable_image
        (-- * Vulkan extension: @VK_KHR_shared_presentable_image@
@@ -23,18 +26,18 @@
         --
 
         -- ** Required extensions: 'VK_KHR_swapchain', 'VK_KHR_get_physical_device_properties2', 'VK_KHR_get_surface_capabilities2'.
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkSharedPresentSurfaceCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        -- > #include "vk_platform.h"
-        vkGetSwapchainStatusKHR, vkGetSwapchainStatusKHRSafe,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Surface,
+        module Graphics.Vulkan.Types.Enum.Surface, -- > #include "vk_platform.h"
+                                                   VkGetSwapchainStatusKHR,
+        pattern VkGetSwapchainStatusKHR, HS_vkGetSwapchainStatusKHR,
+        PFN_vkGetSwapchainStatusKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION,
         pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION,
@@ -46,40 +49,42 @@
         pattern VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR)
        where
 import           GHC.Ptr
-                                                                                     (Ptr (..))
+                                                                                   (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+                                                                                   (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-                                                                                     (VkImageLayout (..))
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-                                                                                     (VkPresentModeKHR (..))
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+                                                                                   (VkPresentModeKHR (..))
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkSharedPresentSurfaceCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
+import           Graphics.Vulkan.Types.Struct.Surface
 
--- | Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetSwapchainStatusKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainStatusKHR.html vkGetSwapchainStatusKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetSwapchainStatusKHR"
-               vkGetSwapchainStatusKHR ::
-               VkDevice -- ^ device
-                        -> VkSwapchainKHR -- ^ swapchain
-                                          -> IO VkResult
+pattern VkGetSwapchainStatusKHR :: CString
 
+pattern VkGetSwapchainStatusKHR <-
+        (is_VkGetSwapchainStatusKHR -> True)
+  where VkGetSwapchainStatusKHR = _VkGetSwapchainStatusKHR
+
+{-# INLINE _VkGetSwapchainStatusKHR #-}
+
+_VkGetSwapchainStatusKHR :: CString
+_VkGetSwapchainStatusKHR = Ptr "vkGetSwapchainStatusKHR\NUL"#
+
+{-# INLINE is_VkGetSwapchainStatusKHR #-}
+
+is_VkGetSwapchainStatusKHR :: CString -> Bool
+is_VkGetSwapchainStatusKHR
+  = (EQ ==) . cmpCStrings _VkGetSwapchainStatusKHR
+
+type VkGetSwapchainStatusKHR = "vkGetSwapchainStatusKHR"
+
 -- | Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
@@ -89,12 +94,27 @@
 --   >     , VkSwapchainKHR swapchain
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainStatusKHR.html vkGetSwapchainStatusKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetSwapchainStatusKHR"
-               vkGetSwapchainStatusKHRSafe ::
-               VkDevice -- ^ device
-                        -> VkSwapchainKHR -- ^ swapchain
-                                          -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR registry at www.khronos.org>
+type HS_vkGetSwapchainStatusKHR =
+     VkDevice -- ^ device
+              -> VkSwapchainKHR -- ^ swapchain
+                                -> IO VkResult
+
+type PFN_vkGetSwapchainStatusKHR =
+     FunPtr HS_vkGetSwapchainStatusKHR
+
+foreign import ccall "dynamic" unwrapVkGetSwapchainStatusKHR ::
+               PFN_vkGetSwapchainStatusKHR -> HS_vkGetSwapchainStatusKHR
+
+instance VulkanProc "vkGetSwapchainStatusKHR" where
+        type VkProcType "vkGetSwapchainStatusKHR" =
+             HS_vkGetSwapchainStatusKHR
+        vkProcSymbol = _VkGetSwapchainStatusKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetSwapchainStatusKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_surface.hs
@@ -1,10 +1,16 @@
 {-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures#-}
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_surface
        (-- * Vulkan extension: @VK_KHR_surface@
@@ -19,32 +25,49 @@
         -- type: @instance@
         --
         -- Extension number: @1@
+        VkDestroySurfaceKHR, pattern VkDestroySurfaceKHR,
+        HS_vkDestroySurfaceKHR, PFN_vkDestroySurfaceKHR,
         vkDestroySurfaceKHR, vkDestroySurfaceKHRSafe,
+        VkGetPhysicalDeviceSurfaceSupportKHR,
+        pattern VkGetPhysicalDeviceSurfaceSupportKHR,
+        HS_vkGetPhysicalDeviceSurfaceSupportKHR,
+        PFN_vkGetPhysicalDeviceSurfaceSupportKHR,
         vkGetPhysicalDeviceSurfaceSupportKHR,
         vkGetPhysicalDeviceSurfaceSupportKHRSafe,
+        VkGetPhysicalDeviceSurfaceCapabilitiesKHR,
+        pattern VkGetPhysicalDeviceSurfaceCapabilitiesKHR,
+        HS_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
+        PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
         vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
         vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe,
+        VkGetPhysicalDeviceSurfaceFormatsKHR,
+        pattern VkGetPhysicalDeviceSurfaceFormatsKHR,
+        HS_vkGetPhysicalDeviceSurfaceFormatsKHR,
+        PFN_vkGetPhysicalDeviceSurfaceFormatsKHR,
         vkGetPhysicalDeviceSurfaceFormatsKHR,
         vkGetPhysicalDeviceSurfaceFormatsKHRSafe,
+        VkGetPhysicalDeviceSurfacePresentModesKHR,
+        pattern VkGetPhysicalDeviceSurfacePresentModesKHR,
+        HS_vkGetPhysicalDeviceSurfacePresentModesKHR,
+        PFN_vkGetPhysicalDeviceSurfacePresentModesKHR,
         vkGetPhysicalDeviceSurfacePresentModesKHR,
         vkGetPhysicalDeviceSurfacePresentModesKHRSafe,
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkPresentModeKHR,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.PresentModeKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Surface,
         VK_KHR_SURFACE_SPEC_VERSION, pattern VK_KHR_SURFACE_SPEC_VERSION,
         VK_KHR_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_SURFACE_EXTENSION_NAME,
@@ -53,33 +76,57 @@
         pattern VK_COLORSPACE_SRGB_NONLINEAR_KHR,
         pattern VK_OBJECT_TYPE_SURFACE_KHR)
        where
-import           GHC.Ptr                                               (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType               (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object                 (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Surface
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | > () vkDestroySurfaceKHR
---   >     ( VkInstance instance
---   >     , VkSurfaceKHR surface
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
+pattern VkDestroySurfaceKHR :: CString
+
+pattern VkDestroySurfaceKHR <- (is_VkDestroySurfaceKHR -> True)
+  where VkDestroySurfaceKHR = _VkDestroySurfaceKHR
+
+{-# INLINE _VkDestroySurfaceKHR #-}
+
+_VkDestroySurfaceKHR :: CString
+_VkDestroySurfaceKHR = Ptr "vkDestroySurfaceKHR\NUL"#
+
+{-# INLINE is_VkDestroySurfaceKHR #-}
+
+is_VkDestroySurfaceKHR :: CString -> Bool
+is_VkDestroySurfaceKHR = (EQ ==) . cmpCStrings _VkDestroySurfaceKHR
+
+type VkDestroySurfaceKHR = "vkDestroySurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySurfaceKHR
+-- >     ( VkInstance instance
+-- >     , VkSurfaceKHR surface
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySurfaceKHR.html vkDestroySurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySurfaceKHR vkDestroySurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkDestroySurfaceKHR"
                vkDestroySurfaceKHR ::
                VkInstance -- ^ instance
@@ -87,13 +134,52 @@
                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
                                                                        -> IO ()
 
--- | > () vkDestroySurfaceKHR
---   >     ( VkInstance instance
---   >     , VkSurfaceKHR surface
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
+#else
+-- |
+-- > void vkDestroySurfaceKHR
+-- >     ( VkInstance instance
+-- >     , VkSurfaceKHR surface
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySurfaceKHR.html vkDestroySurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySurfaceKHR vkDestroySurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySurfaceKHRSafe@ and @vkDestroySurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySurfaceKHR <- vkGetInstanceProc @VkDestroySurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myDestroySurfaceKHR <- vkGetProc @VkDestroySurfaceKHR
+--
+vkDestroySurfaceKHR ::
+                    VkInstance -- ^ instance
+                               -> VkSurfaceKHR -- ^ surface
+                                               -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                            -> IO ()
+vkDestroySurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkDestroySurfaceKHR)
+
+{-# NOINLINE vkDestroySurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySurfaceKHR
+-- >     ( VkInstance instance
+-- >     , VkSurfaceKHR surface
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySurfaceKHR vkDestroySurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkDestroySurfaceKHR"
                vkDestroySurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -101,18 +187,105 @@
                                           -> Ptr VkAllocationCallbacks -- ^ pAllocator
                                                                        -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- > void vkDestroySurfaceKHR
+-- >     ( VkInstance instance
+-- >     , VkSurfaceKHR surface
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySurfaceKHR vkDestroySurfaceKHR registry at www.khronos.org>
 --
---   > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySurfaceKHRSafe@ and @vkDestroySurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySurfaceKHR <- vkGetInstanceProc @VkDestroySurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myDestroySurfaceKHR <- vkGetProc @VkDestroySurfaceKHR
+--
+vkDestroySurfaceKHRSafe ::
+                        VkInstance -- ^ instance
+                                   -> VkSurfaceKHR -- ^ surface
+                                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                -> IO ()
+vkDestroySurfaceKHRSafe = vkDestroySurfaceKHR
+
+{-# INLINE vkDestroySurfaceKHRSafe #-}
+#endif
+
+-- | > void vkDestroySurfaceKHR
+--   >     ( VkInstance instance
 --   >     , VkSurfaceKHR surface
---   >     , VkBool32* pSupported
+--   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySurfaceKHR vkDestroySurfaceKHR registry at www.khronos.org>
+type HS_vkDestroySurfaceKHR =
+     VkInstance -- ^ instance
+                -> VkSurfaceKHR -- ^ surface
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkDestroySurfaceKHR = FunPtr HS_vkDestroySurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkDestroySurfaceKHR ::
+               PFN_vkDestroySurfaceKHR -> HS_vkDestroySurfaceKHR
+
+instance VulkanProc "vkDestroySurfaceKHR" where
+        type VkProcType "vkDestroySurfaceKHR" = HS_vkDestroySurfaceKHR
+        vkProcSymbol = _VkDestroySurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSurfaceSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceSurfaceSupportKHR <-
+        (is_VkGetPhysicalDeviceSurfaceSupportKHR -> True)
+  where VkGetPhysicalDeviceSurfaceSupportKHR
+          = _VkGetPhysicalDeviceSurfaceSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceSupportKHR #-}
+
+_VkGetPhysicalDeviceSurfaceSupportKHR :: CString
+_VkGetPhysicalDeviceSurfaceSupportKHR
+  = Ptr "vkGetPhysicalDeviceSurfaceSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceSupportKHR #-}
+
+is_VkGetPhysicalDeviceSurfaceSupportKHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceSupportKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceSupportKHR
+
+type VkGetPhysicalDeviceSurfaceSupportKHR =
+     "vkGetPhysicalDeviceSurfaceSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , VkSurfaceKHR surface
+-- >     , VkBool32* pSupported
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkGetPhysicalDeviceSurfaceSupportKHR"
                vkGetPhysicalDeviceSurfaceSupportKHR ::
                VkPhysicalDevice -- ^ physicalDevice
@@ -122,18 +295,65 @@
                                         -> Ptr VkBool32 -- ^ pSupported
                                                         -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , VkSurfaceKHR surface
---   >     , VkBool32* pSupported
---   >     )
+-- > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , VkSurfaceKHR surface
+-- >     , VkBool32* pSupported
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceSupportKHRSafe@ and @vkGetPhysicalDeviceSurfaceSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceSupportKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceSupportKHR
+--
+vkGetPhysicalDeviceSurfaceSupportKHR ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       Word32 -- ^ queueFamilyIndex
+                                              -> VkSurfaceKHR -- ^ surface
+                                                              -> Ptr VkBool32 -- ^ pSupported
+                                                                              -> IO VkResult
+vkGetPhysicalDeviceSurfaceSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSurfaceSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceSurfaceSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , VkSurfaceKHR surface
+-- >     , VkBool32* pSupported
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkGetPhysicalDeviceSurfaceSupportKHR"
                vkGetPhysicalDeviceSurfaceSupportKHRSafe ::
                VkPhysicalDevice -- ^ physicalDevice
@@ -143,17 +363,123 @@
                                         -> Ptr VkBool32 -- ^ pSupported
                                                         -> IO VkResult
 
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , VkSurfaceKHR surface
+-- >     , VkBool32* pSupported
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceSupportKHRSafe@ and @vkGetPhysicalDeviceSurfaceSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceSupportKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceSupportKHR
+--
+vkGetPhysicalDeviceSurfaceSupportKHRSafe ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           Word32 -- ^ queueFamilyIndex
+                                                  -> VkSurfaceKHR -- ^ surface
+                                                                  -> Ptr VkBool32 -- ^ pSupported
+                                                                                  -> IO VkResult
+vkGetPhysicalDeviceSurfaceSupportKHRSafe
+  = vkGetPhysicalDeviceSurfaceSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceSurfaceSupportKHRSafe #-}
+#endif
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+--   > VkResult vkGetPhysicalDeviceSurfaceSupportKHR
 --   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
 --   >     , VkSurfaceKHR surface
---   >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
+--   >     , VkBool32* pSupported
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Word32 -- ^ queueFamilyIndex
+              -> VkSurfaceKHR -- ^ surface
+                              -> Ptr VkBool32 -- ^ pSupported
+                                              -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfaceSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceSupportKHR ::
+               PFN_vkGetPhysicalDeviceSurfaceSupportKHR ->
+                 HS_vkGetPhysicalDeviceSurfaceSupportKHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceSupportKHR" where
+        type VkProcType "vkGetPhysicalDeviceSurfaceSupportKHR" =
+             HS_vkGetPhysicalDeviceSurfaceSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSurfaceCapabilitiesKHR :: CString
+
+pattern VkGetPhysicalDeviceSurfaceCapabilitiesKHR <-
+        (is_VkGetPhysicalDeviceSurfaceCapabilitiesKHR -> True)
+  where VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+          = _VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceCapabilitiesKHR #-}
+
+_VkGetPhysicalDeviceSurfaceCapabilitiesKHR :: CString
+_VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+  = Ptr "vkGetPhysicalDeviceSurfaceCapabilitiesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceCapabilitiesKHR #-}
+
+is_VkGetPhysicalDeviceSurfaceCapabilitiesKHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+type VkGetPhysicalDeviceSurfaceCapabilitiesKHR =
+     "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"
                vkGetPhysicalDeviceSurfaceCapabilitiesKHR ::
@@ -163,17 +489,63 @@
                               -> Ptr VkSurfaceCapabilitiesKHR -- ^ pSurfaceCapabilities
                                                               -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
---   >     )
+-- > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe@ and @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceCapabilitiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceCapabilitiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceCapabilitiesKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+--
+vkGetPhysicalDeviceSurfaceCapabilitiesKHR ::
+                                          VkPhysicalDevice -- ^ physicalDevice
+                                                           ->
+                                            VkSurfaceKHR -- ^ surface
+                                                         ->
+                                              Ptr VkSurfaceCapabilitiesKHR -- ^ pSurfaceCapabilities
+                                                                           -> IO VkResult
+vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSurfaceCapabilitiesKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceSurfaceCapabilitiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"
                vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe ::
@@ -183,18 +555,122 @@
                               -> Ptr VkSurfaceCapabilitiesKHR -- ^ pSurfaceCapabilities
                                                               -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe@ and @vkGetPhysicalDeviceSurfaceCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceCapabilitiesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceCapabilitiesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceCapabilitiesKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+--
+vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe ::
+                                              VkPhysicalDevice -- ^ physicalDevice
+                                                               ->
+                                                VkSurfaceKHR -- ^ surface
+                                                             ->
+                                                  Ptr VkSurfaceCapabilitiesKHR -- ^ pSurfaceCapabilities
+                                                                               -> IO VkResult
+vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe
+  = vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+{-# INLINE vkGetPhysicalDeviceSurfaceCapabilitiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
+--   > VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkSurfaceKHR surface
---   >     , uint32_t* pSurfaceFormatCount
---   >     , VkSurfaceFormatKHR* pSurfaceFormats
+--   >     , VkSurfaceCapabilitiesKHR* pSurfaceCapabilities
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr VkSurfaceCapabilitiesKHR -- ^ pSurfaceCapabilities
+                                                    -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceCapabilitiesKHR ::
+               PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR ->
+                 HS_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" =
+             HS_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceCapabilitiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSurfaceFormatsKHR :: CString
+
+pattern VkGetPhysicalDeviceSurfaceFormatsKHR <-
+        (is_VkGetPhysicalDeviceSurfaceFormatsKHR -> True)
+  where VkGetPhysicalDeviceSurfaceFormatsKHR
+          = _VkGetPhysicalDeviceSurfaceFormatsKHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfaceFormatsKHR #-}
+
+_VkGetPhysicalDeviceSurfaceFormatsKHR :: CString
+_VkGetPhysicalDeviceSurfaceFormatsKHR
+  = Ptr "vkGetPhysicalDeviceSurfaceFormatsKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfaceFormatsKHR #-}
+
+is_VkGetPhysicalDeviceSurfaceFormatsKHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfaceFormatsKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfaceFormatsKHR
+
+type VkGetPhysicalDeviceSurfaceFormatsKHR =
+     "vkGetPhysicalDeviceSurfaceFormatsKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pSurfaceFormatCount
+-- >     , VkSurfaceFormatKHR* pSurfaceFormats
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkGetPhysicalDeviceSurfaceFormatsKHR"
                vkGetPhysicalDeviceSurfaceFormatsKHR ::
                VkPhysicalDevice -- ^ physicalDevice
@@ -204,18 +680,66 @@
                                             -> Ptr VkSurfaceFormatKHR -- ^ pSurfaceFormats
                                                                       -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , uint32_t* pSurfaceFormatCount
---   >     , VkSurfaceFormatKHR* pSurfaceFormats
---   >     )
+-- > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pSurfaceFormatCount
+-- >     , VkSurfaceFormatKHR* pSurfaceFormats
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceFormatsKHRSafe@ and @vkGetPhysicalDeviceSurfaceFormatsKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceFormatsKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceFormatsKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceFormatsKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceFormatsKHR
+--
+vkGetPhysicalDeviceSurfaceFormatsKHR ::
+                                     VkPhysicalDevice -- ^ physicalDevice
+                                                      ->
+                                       VkSurfaceKHR -- ^ surface
+                                                    ->
+                                         Ptr Word32 -- ^ pSurfaceFormatCount
+                                                    -> Ptr VkSurfaceFormatKHR -- ^ pSurfaceFormats
+                                                                              -> IO VkResult
+vkGetPhysicalDeviceSurfaceFormatsKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSurfaceFormatsKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceSurfaceFormatsKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pSurfaceFormatCount
+-- >     , VkSurfaceFormatKHR* pSurfaceFormats
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkGetPhysicalDeviceSurfaceFormatsKHR"
                vkGetPhysicalDeviceSurfaceFormatsKHRSafe ::
                VkPhysicalDevice -- ^ physicalDevice
@@ -225,18 +749,125 @@
                                             -> Ptr VkSurfaceFormatKHR -- ^ pSurfaceFormats
                                                                       -> IO VkResult
 
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pSurfaceFormatCount
+-- >     , VkSurfaceFormatKHR* pSurfaceFormats
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfaceFormatsKHRSafe@ and @vkGetPhysicalDeviceSurfaceFormatsKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfaceFormatsKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfaceFormatsKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfaceFormatsKHR <- vkGetProc @VkGetPhysicalDeviceSurfaceFormatsKHR
+--
+vkGetPhysicalDeviceSurfaceFormatsKHRSafe ::
+                                         VkPhysicalDevice -- ^ physicalDevice
+                                                          ->
+                                           VkSurfaceKHR -- ^ surface
+                                                        ->
+                                             Ptr Word32 -- ^ pSurfaceFormatCount
+                                                        -> Ptr VkSurfaceFormatKHR -- ^ pSurfaceFormats
+                                                                                  -> IO VkResult
+vkGetPhysicalDeviceSurfaceFormatsKHRSafe
+  = vkGetPhysicalDeviceSurfaceFormatsKHR
+
+{-# INLINE vkGetPhysicalDeviceSurfaceFormatsKHRSafe #-}
+#endif
+
 -- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+--   > VkResult vkGetPhysicalDeviceSurfaceFormatsKHR
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkSurfaceKHR surface
---   >     , uint32_t* pPresentModeCount
---   >     , VkPresentModeKHR* pPresentModes
+--   >     , uint32_t* pSurfaceFormatCount
+--   >     , VkSurfaceFormatKHR* pSurfaceFormats
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfaceFormatsKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr Word32 -- ^ pSurfaceFormatCount
+                                  -> Ptr VkSurfaceFormatKHR -- ^ pSurfaceFormats
+                                                            -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfaceFormatsKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfaceFormatsKHR ::
+               PFN_vkGetPhysicalDeviceSurfaceFormatsKHR ->
+                 HS_vkGetPhysicalDeviceSurfaceFormatsKHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfaceFormatsKHR" where
+        type VkProcType "vkGetPhysicalDeviceSurfaceFormatsKHR" =
+             HS_vkGetPhysicalDeviceSurfaceFormatsKHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfaceFormatsKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfaceFormatsKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceSurfacePresentModesKHR :: CString
+
+pattern VkGetPhysicalDeviceSurfacePresentModesKHR <-
+        (is_VkGetPhysicalDeviceSurfacePresentModesKHR -> True)
+  where VkGetPhysicalDeviceSurfacePresentModesKHR
+          = _VkGetPhysicalDeviceSurfacePresentModesKHR
+
+{-# INLINE _VkGetPhysicalDeviceSurfacePresentModesKHR #-}
+
+_VkGetPhysicalDeviceSurfacePresentModesKHR :: CString
+_VkGetPhysicalDeviceSurfacePresentModesKHR
+  = Ptr "vkGetPhysicalDeviceSurfacePresentModesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceSurfacePresentModesKHR #-}
+
+is_VkGetPhysicalDeviceSurfacePresentModesKHR :: CString -> Bool
+is_VkGetPhysicalDeviceSurfacePresentModesKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDeviceSurfacePresentModesKHR
+
+type VkGetPhysicalDeviceSurfacePresentModesKHR =
+     "vkGetPhysicalDeviceSurfacePresentModesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pPresentModeCount
+-- >     , VkPresentModeKHR* pPresentModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceSurfacePresentModesKHR"
                vkGetPhysicalDeviceSurfacePresentModesKHR ::
@@ -247,18 +878,66 @@
                                             -> Ptr VkPresentModeKHR -- ^ pPresentModes
                                                                     -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
 --
---   > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , uint32_t* pPresentModeCount
---   >     , VkPresentModeKHR* pPresentModes
---   >     )
+-- > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pPresentModeCount
+-- >     , VkPresentModeKHR* pPresentModes
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfacePresentModesKHRSafe@ and @vkGetPhysicalDeviceSurfacePresentModesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfacePresentModesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfacePresentModesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfacePresentModesKHR <- vkGetProc @VkGetPhysicalDeviceSurfacePresentModesKHR
+--
+vkGetPhysicalDeviceSurfacePresentModesKHR ::
+                                          VkPhysicalDevice -- ^ physicalDevice
+                                                           ->
+                                            VkSurfaceKHR -- ^ surface
+                                                         ->
+                                              Ptr Word32 -- ^ pPresentModeCount
+                                                         -> Ptr VkPresentModeKHR -- ^ pPresentModes
+                                                                                 -> IO VkResult
+vkGetPhysicalDeviceSurfacePresentModesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceSurfacePresentModesKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceSurfacePresentModesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pPresentModeCount
+-- >     , VkPresentModeKHR* pPresentModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceSurfacePresentModesKHR"
                vkGetPhysicalDeviceSurfacePresentModesKHRSafe ::
@@ -268,6 +947,86 @@
                               -> Ptr Word32 -- ^ pPresentModeCount
                                             -> Ptr VkPresentModeKHR -- ^ pPresentModes
                                                                     -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pPresentModeCount
+-- >     , VkPresentModeKHR* pPresentModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceSurfacePresentModesKHRSafe@ and @vkGetPhysicalDeviceSurfacePresentModesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceSurfacePresentModesKHR <- vkGetInstanceProc @VkGetPhysicalDeviceSurfacePresentModesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceSurfacePresentModesKHR <- vkGetProc @VkGetPhysicalDeviceSurfacePresentModesKHR
+--
+vkGetPhysicalDeviceSurfacePresentModesKHRSafe ::
+                                              VkPhysicalDevice -- ^ physicalDevice
+                                                               ->
+                                                VkSurfaceKHR -- ^ surface
+                                                             ->
+                                                  Ptr Word32 -- ^ pPresentModeCount
+                                                             -> Ptr VkPresentModeKHR -- ^ pPresentModes
+                                                                                     -> IO VkResult
+vkGetPhysicalDeviceSurfacePresentModesKHRSafe
+  = vkGetPhysicalDeviceSurfacePresentModesKHR
+
+{-# INLINE vkGetPhysicalDeviceSurfacePresentModesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkGetPhysicalDeviceSurfacePresentModesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkSurfaceKHR surface
+--   >     , uint32_t* pPresentModeCount
+--   >     , VkPresentModeKHR* pPresentModes
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceSurfacePresentModesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr Word32 -- ^ pPresentModeCount
+                                  -> Ptr VkPresentModeKHR -- ^ pPresentModes
+                                                          -> IO VkResult
+
+type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR =
+     FunPtr HS_vkGetPhysicalDeviceSurfacePresentModesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceSurfacePresentModesKHR ::
+               PFN_vkGetPhysicalDeviceSurfacePresentModesKHR ->
+                 HS_vkGetPhysicalDeviceSurfacePresentModesKHR
+
+instance VulkanProc "vkGetPhysicalDeviceSurfacePresentModesKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceSurfacePresentModesKHR" =
+             HS_vkGetPhysicalDeviceSurfacePresentModesKHR
+        vkProcSymbol = _VkGetPhysicalDeviceSurfacePresentModesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDeviceSurfacePresentModesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -1,542 +1,1832 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports#-}
-{-# OPTIONS_HADDOCK not-home#-}
-{-# LANGUAGE DataKinds                #-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-{-# LANGUAGE MagicHash                #-}
-{-# LANGUAGE PatternSynonyms          #-}
-{-# LANGUAGE Strict                   #-}
-{-# LANGUAGE ViewPatterns             #-}
-module Graphics.Vulkan.Ext.VK_KHR_swapchain
-       (-- * Vulkan extension: @VK_KHR_swapchain@
-        -- |
-        --
-        -- supported: @vulkan@
-        --
-        -- contact: @James Jones @cubanismo,Ian Elliott ianelliott@google.com@
-        --
-        -- author: @KHR@
-        --
-        -- type: @device@
-        --
-        -- Extension number: @2@
-        --
-        -- Required extensions: 'VK_KHR_surface'.
-        --
-
-        -- ** Required extensions: 'VK_KHR_surface'.
-        vkCreateSwapchainKHR, vkCreateSwapchainKHRSafe,
-        vkDestroySwapchainKHR, vkDestroySwapchainKHRSafe,
-        vkGetSwapchainImagesKHR, vkGetSwapchainImagesKHRSafe,
-        vkAcquireNextImageKHR, vkAcquireNextImageKHRSafe,
-        vkQueuePresentKHR, vkQueuePresentKHRSafe,
-        module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR,
-        module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkPresentModeKHR,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
-        module Graphics.Vulkan.Types.Funcpointers,
-        module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR,
-        VK_KHR_SWAPCHAIN_SPEC_VERSION,
-        pattern VK_KHR_SWAPCHAIN_SPEC_VERSION,
-        VK_KHR_SWAPCHAIN_EXTENSION_NAME,
-        pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME,
-        pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
-        pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, pattern VK_SUBOPTIMAL_KHR,
-        pattern VK_ERROR_OUT_OF_DATE_KHR,
-        pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR,
-        -- ** Required extensions: 'VK_KHR_surface'.
-        module Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo,
-        module Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        -- > #include "vk_platform.h"
-        vkGetDeviceGroupPresentCapabilitiesKHR,
-        vkGetDeviceGroupPresentCapabilitiesKHRSafe,
-        vkGetDeviceGroupSurfacePresentModesKHR,
-        vkGetDeviceGroupSurfacePresentModesKHRSafe,
-        vkGetPhysicalDevicePresentRectanglesKHR,
-        vkGetPhysicalDevicePresentRectanglesKHRSafe,
-        vkAcquireNextImage2KHR, vkAcquireNextImage2KHRSafe,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
-        pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
-        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
-        pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
-        pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR)
-       where
-import           GHC.Ptr
-                                                                                   (Ptr (..))
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-                                                                                   (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-import           Graphics.Vulkan.Types.Funcpointers
-import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
---
---   > VkResult vkCreateSwapchainKHR
---   >     ( VkDevice device
---   >     , const VkSwapchainCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSwapchainKHR* pSwapchain
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSwapchainKHR.html vkCreateSwapchainKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateSwapchainKHR"
-               vkCreateSwapchainKHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
-                                              ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSwapchainKHR -- ^ pSwapchain
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
---
---   > VkResult vkCreateSwapchainKHR
---   >     ( VkDevice device
---   >     , const VkSwapchainCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSwapchainKHR* pSwapchain
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateSwapchainKHR.html vkCreateSwapchainKHR registry at www.khronos.org>
-foreign import ccall safe "vkCreateSwapchainKHR"
-               vkCreateSwapchainKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
-                                              ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSwapchainKHR -- ^ pSwapchain
-                                                                   -> IO VkResult
-
--- | > () vkDestroySwapchainKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySwapchainKHR.html vkDestroySwapchainKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroySwapchainKHR"
-               vkDestroySwapchainKHR ::
-               VkDevice -- ^ device
-                        -> VkSwapchainKHR -- ^ swapchain
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | > () vkDestroySwapchainKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroySwapchainKHR.html vkDestroySwapchainKHR registry at www.khronos.org>
-foreign import ccall safe "vkDestroySwapchainKHR"
-               vkDestroySwapchainKHRSafe ::
-               VkDevice -- ^ device
-                        -> VkSwapchainKHR -- ^ swapchain
-                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                       -> IO ()
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetSwapchainImagesKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , uint32_t* pSwapchainImageCount
---   >     , VkImage* pSwapchainImages
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainImagesKHR.html vkGetSwapchainImagesKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkGetSwapchainImagesKHR"
-               vkGetSwapchainImagesKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                -> Ptr Word32 -- ^ pSwapchainImageCount
-                                              -> Ptr VkImage -- ^ pSwapchainImages
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetSwapchainImagesKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , uint32_t* pSwapchainImageCount
---   >     , VkImage* pSwapchainImages
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetSwapchainImagesKHR.html vkGetSwapchainImagesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetSwapchainImagesKHR"
-               vkGetSwapchainImagesKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                -> Ptr Word32 -- ^ pSwapchainImageCount
-                                              -> Ptr VkImage -- ^ pSwapchainImages
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkAcquireNextImageKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , uint64_t timeout
---   >     , VkSemaphore semaphore
---   >     , VkFence fence
---   >     , uint32_t* pImageIndex
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireNextImageKHR.html vkAcquireNextImageKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkAcquireNextImageKHR"
-               vkAcquireNextImageKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   Word64 -- ^ timeout
-                          -> VkSemaphore -- ^ semaphore
-                                         -> VkFence -- ^ fence
-                                                    -> Ptr Word32 -- ^ pImageIndex
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkAcquireNextImageKHR
---   >     ( VkDevice device
---   >     , VkSwapchainKHR swapchain
---   >     , uint64_t timeout
---   >     , VkSemaphore semaphore
---   >     , VkFence fence
---   >     , uint32_t* pImageIndex
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireNextImageKHR.html vkAcquireNextImageKHR registry at www.khronos.org>
-foreign import ccall safe "vkAcquireNextImageKHR"
-               vkAcquireNextImageKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSwapchainKHR -- ^ swapchain
-                                ->
-                   Word64 -- ^ timeout
-                          -> VkSemaphore -- ^ semaphore
-                                         -> VkFence -- ^ fence
-                                                    -> Ptr Word32 -- ^ pImageIndex
-                                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkQueuePresentKHR
---   >     ( VkQueue queue
---   >     , const VkPresentInfoKHR* pPresentInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueuePresentKHR.html vkQueuePresentKHR registry at www.khronos.org>
-foreign import ccall unsafe "vkQueuePresentKHR" vkQueuePresentKHR
-               :: VkQueue -- ^ queue
-                          -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
-                                                  -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkQueuePresentKHR
---   >     ( VkQueue queue
---   >     , const VkPresentInfoKHR* pPresentInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkQueuePresentKHR.html vkQueuePresentKHR registry at www.khronos.org>
-foreign import ccall safe "vkQueuePresentKHR" vkQueuePresentKHRSafe
-               :: VkQueue -- ^ queue
-                          -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
-                                                  -> IO VkResult
-
-pattern VK_KHR_SWAPCHAIN_SPEC_VERSION :: (Num a, Eq a) => a
-
-pattern VK_KHR_SWAPCHAIN_SPEC_VERSION = 70
-
-type VK_KHR_SWAPCHAIN_SPEC_VERSION = 70
-
-pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString
-
-pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME <-
-        (is_VK_KHR_SWAPCHAIN_EXTENSION_NAME -> True)
-  where VK_KHR_SWAPCHAIN_EXTENSION_NAME
-          = _VK_KHR_SWAPCHAIN_EXTENSION_NAME
-
-{-# INLINE _VK_KHR_SWAPCHAIN_EXTENSION_NAME #-}
-
-_VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString
-_VK_KHR_SWAPCHAIN_EXTENSION_NAME = Ptr "VK_KHR_swapchain\NUL"#
-
-{-# INLINE is_VK_KHR_SWAPCHAIN_EXTENSION_NAME #-}
-
-is_VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString -> Bool
-is_VK_KHR_SWAPCHAIN_EXTENSION_NAME
-  = (EQ ==) . cmpCStrings _VK_KHR_SWAPCHAIN_EXTENSION_NAME
-
-type VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain"
-
-pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR =
-        VkStructureType 1000001000
-
-pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR =
-        VkStructureType 1000001001
-
-pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = VkImageLayout 1000001002
-
-pattern VK_SUBOPTIMAL_KHR :: VkResult
-
-pattern VK_SUBOPTIMAL_KHR = VkResult 1000001003
-
-pattern VK_ERROR_OUT_OF_DATE_KHR :: VkResult
-
-pattern VK_ERROR_OUT_OF_DATE_KHR = VkResult (-1000001004)
-
--- | VkSwapchainKHR
-pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR :: VkObjectType
-
-pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR = VkObjectType 1000001000
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
---   >     ( VkDevice device
---   >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetDeviceGroupPresentCapabilitiesKHR"
-               vkGetDeviceGroupPresentCapabilitiesKHR ::
-               VkDevice -- ^ device
-                        -> Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
---   >     ( VkDevice device
---   >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceGroupPresentCapabilitiesKHR"
-               vkGetDeviceGroupPresentCapabilitiesKHRSafe ::
-               VkDevice -- ^ device
-                        -> Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
-                                                                   -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetDeviceGroupSurfacePresentModesKHR
---   >     ( VkDevice device
---   >     , VkSurfaceKHR surface
---   >     , VkDeviceGroupPresentModeFlagsKHR* pModes
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetDeviceGroupSurfacePresentModesKHR"
-               vkGetDeviceGroupSurfacePresentModesKHR ::
-               VkDevice -- ^ device
-                        ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
-                                                                      -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkGetDeviceGroupSurfacePresentModesKHR
---   >     ( VkDevice device
---   >     , VkSurfaceKHR surface
---   >     , VkDeviceGroupPresentModeFlagsKHR* pModes
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetDeviceGroupSurfacePresentModesKHR"
-               vkGetDeviceGroupSurfacePresentModesKHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
-                                                                      -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDevicePresentRectanglesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , uint32_t* pRectCount
---   >     , VkRect2D* pRects
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDevicePresentRectanglesKHR"
-               vkGetPhysicalDevicePresentRectanglesKHR ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr Word32 -- ^ pRectCount
-                                            -> Ptr VkRect2D -- ^ pRects
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkGetPhysicalDevicePresentRectanglesKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkSurfaceKHR surface
---   >     , uint32_t* pRectCount
---   >     , VkRect2D* pRects
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
-foreign import ccall safe "vkGetPhysicalDevicePresentRectanglesKHR"
-               vkGetPhysicalDevicePresentRectanglesKHRSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkSurfaceKHR -- ^ surface
-                              -> Ptr Word32 -- ^ pRectCount
-                                            -> Ptr VkRect2D -- ^ pRects
-                                                            -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkAcquireNextImage2KHR
---   >     ( VkDevice device
---   >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
---   >     , uint32_t* pImageIndex
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireNextImage2KHR.html vkAcquireNextImage2KHR registry at www.khronos.org>
-foreign import ccall unsafe "vkAcquireNextImage2KHR"
-               vkAcquireNextImage2KHR ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
-                                               -> Ptr Word32 -- ^ pImageIndex
-                                                             -> IO VkResult
-
--- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
---
---   > VkResult vkAcquireNextImage2KHR
---   >     ( VkDevice device
---   >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
---   >     , uint32_t* pImageIndex
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkAcquireNextImage2KHR.html vkAcquireNextImage2KHR registry at www.khronos.org>
-foreign import ccall safe "vkAcquireNextImage2KHR"
-               vkAcquireNextImage2KHRSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
-                                               -> Ptr Word32 -- ^ pImageIndex
-                                                             -> IO VkResult
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE MagicHash                #-}
+{-# LANGUAGE PatternSynonyms          #-}
+{-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
+{-# LANGUAGE ViewPatterns             #-}
+module Graphics.Vulkan.Ext.VK_KHR_swapchain
+       (-- * Vulkan extension: @VK_KHR_swapchain@
+        -- |
+        --
+        -- supported: @vulkan@
+        --
+        -- contact: @James Jones @cubanismo,Ian Elliott ianelliott@google.com@
+        --
+        -- author: @KHR@
+        --
+        -- type: @device@
+        --
+        -- Extension number: @2@
+        --
+        -- Required extensions: 'VK_KHR_surface'.
+        --
+
+        -- ** Required extensions: 'VK_KHR_surface'.
+        VkCreateSwapchainKHR, pattern VkCreateSwapchainKHR,
+        HS_vkCreateSwapchainKHR, PFN_vkCreateSwapchainKHR,
+        vkCreateSwapchainKHR, vkCreateSwapchainKHRSafe,
+        VkDestroySwapchainKHR, pattern VkDestroySwapchainKHR,
+        HS_vkDestroySwapchainKHR, PFN_vkDestroySwapchainKHR,
+        vkDestroySwapchainKHR, vkDestroySwapchainKHRSafe,
+        VkGetSwapchainImagesKHR, pattern VkGetSwapchainImagesKHR,
+        HS_vkGetSwapchainImagesKHR, PFN_vkGetSwapchainImagesKHR,
+        vkGetSwapchainImagesKHR, vkGetSwapchainImagesKHRSafe,
+        VkAcquireNextImageKHR, pattern VkAcquireNextImageKHR,
+        HS_vkAcquireNextImageKHR, PFN_vkAcquireNextImageKHR,
+        vkAcquireNextImageKHR, vkAcquireNextImageKHRSafe,
+        VkQueuePresentKHR, pattern VkQueuePresentKHR, HS_vkQueuePresentKHR,
+        PFN_vkQueuePresentKHR, vkQueuePresentKHR, vkQueuePresentKHRSafe,
+        module Graphics.Vulkan.Marshal,
+        module Graphics.Vulkan.Types.BaseTypes,
+        module Graphics.Vulkan.Types.Enum.Color,
+        module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.PresentModeKHR,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Enum.Surface,
+        module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
+        module Graphics.Vulkan.Types.Funcpointers,
+        module Graphics.Vulkan.Types.Handles,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Present,
+        module Graphics.Vulkan.Types.Struct.SwapchainC,
+        VK_KHR_SWAPCHAIN_SPEC_VERSION,
+        pattern VK_KHR_SWAPCHAIN_SPEC_VERSION,
+        VK_KHR_SWAPCHAIN_EXTENSION_NAME,
+        pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME,
+        pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
+        pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, pattern VK_SUBOPTIMAL_KHR,
+        pattern VK_ERROR_OUT_OF_DATE_KHR,
+        pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR,
+        -- ** Required extensions: 'VK_KHR_surface'.
+        module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR,
+        module Graphics.Vulkan.Types.Struct.Bind,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.Device,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        -- > #include "vk_platform.h"
+        VkGetDeviceGroupPresentCapabilitiesKHR,
+        pattern VkGetDeviceGroupPresentCapabilitiesKHR,
+        HS_vkGetDeviceGroupPresentCapabilitiesKHR,
+        PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
+        vkGetDeviceGroupPresentCapabilitiesKHR,
+        vkGetDeviceGroupPresentCapabilitiesKHRSafe,
+        VkGetDeviceGroupSurfacePresentModesKHR,
+        pattern VkGetDeviceGroupSurfacePresentModesKHR,
+        HS_vkGetDeviceGroupSurfacePresentModesKHR,
+        PFN_vkGetDeviceGroupSurfacePresentModesKHR,
+        vkGetDeviceGroupSurfacePresentModesKHR,
+        vkGetDeviceGroupSurfacePresentModesKHRSafe,
+        VkGetPhysicalDevicePresentRectanglesKHR,
+        pattern VkGetPhysicalDevicePresentRectanglesKHR,
+        HS_vkGetPhysicalDevicePresentRectanglesKHR,
+        PFN_vkGetPhysicalDevicePresentRectanglesKHR,
+        vkGetPhysicalDevicePresentRectanglesKHR,
+        vkGetPhysicalDevicePresentRectanglesKHRSafe,
+        VkAcquireNextImage2KHR, pattern VkAcquireNextImage2KHR,
+        HS_vkAcquireNextImage2KHR, PFN_vkAcquireNextImage2KHR,
+        vkAcquireNextImage2KHR, vkAcquireNextImage2KHRSafe,
+        module Graphics.Vulkan.Types.Struct.Offset,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
+        pattern VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
+        pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
+        pattern VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
+        pattern VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR)
+       where
+import           GHC.Ptr                                              (Ptr (..))
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+import           Graphics.Vulkan.Types.BaseTypes
+import           Graphics.Vulkan.Types.Enum.Color
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+import           Graphics.Vulkan.Types.Enum.Device
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object                    (VkObjectType (..))
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Surface
+import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
+import           Graphics.Vulkan.Types.Funcpointers
+import           Graphics.Vulkan.Types.Handles
+import           Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Bind
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.Present
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.SwapchainC
+import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
+
+pattern VkCreateSwapchainKHR :: CString
+
+pattern VkCreateSwapchainKHR <- (is_VkCreateSwapchainKHR -> True)
+  where VkCreateSwapchainKHR = _VkCreateSwapchainKHR
+
+{-# INLINE _VkCreateSwapchainKHR #-}
+
+_VkCreateSwapchainKHR :: CString
+_VkCreateSwapchainKHR = Ptr "vkCreateSwapchainKHR\NUL"#
+
+{-# INLINE is_VkCreateSwapchainKHR #-}
+
+is_VkCreateSwapchainKHR :: CString -> Bool
+is_VkCreateSwapchainKHR
+  = (EQ ==) . cmpCStrings _VkCreateSwapchainKHR
+
+type VkCreateSwapchainKHR = "vkCreateSwapchainKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateSwapchainKHR
+-- >     ( VkDevice device
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchain
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSwapchainKHR vkCreateSwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkCreateSwapchainKHR"
+               vkCreateSwapchainKHR ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
+                                              ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSwapchainKHR -- ^ pSwapchain
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateSwapchainKHR
+-- >     ( VkDevice device
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchain
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSwapchainKHR vkCreateSwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSwapchainKHRSafe@ and @vkCreateSwapchainKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSwapchainKHR <- vkGetDeviceProc @VkCreateSwapchainKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSwapchainKHR <- vkGetProc @VkCreateSwapchainKHR
+--
+vkCreateSwapchainKHR ::
+                     VkDevice -- ^ device
+                              ->
+                       Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
+                                                    ->
+                         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                   -> Ptr VkSwapchainKHR -- ^ pSwapchain
+                                                                         -> IO VkResult
+vkCreateSwapchainKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateSwapchainKHR)
+
+{-# NOINLINE vkCreateSwapchainKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateSwapchainKHR
+-- >     ( VkDevice device
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchain
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSwapchainKHR vkCreateSwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkCreateSwapchainKHR"
+               vkCreateSwapchainKHRSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
+                                              ->
+                   Ptr VkAllocationCallbacks -- ^ pAllocator
+                                             -> Ptr VkSwapchainKHR -- ^ pSwapchain
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+-- > VkResult vkCreateSwapchainKHR
+-- >     ( VkDevice device
+-- >     , const VkSwapchainCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSwapchainKHR* pSwapchain
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSwapchainKHR vkCreateSwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateSwapchainKHRSafe@ and @vkCreateSwapchainKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateSwapchainKHR <- vkGetDeviceProc @VkCreateSwapchainKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myCreateSwapchainKHR <- vkGetProc @VkCreateSwapchainKHR
+--
+vkCreateSwapchainKHRSafe ::
+                         VkDevice -- ^ device
+                                  ->
+                           Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
+                                                        ->
+                             Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                       -> Ptr VkSwapchainKHR -- ^ pSwapchain
+                                                                             -> IO VkResult
+vkCreateSwapchainKHRSafe = vkCreateSwapchainKHR
+
+{-# INLINE vkCreateSwapchainKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_SURFACE_LOST_KHR', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
+--
+--   > VkResult vkCreateSwapchainKHR
+--   >     ( VkDevice device
+--   >     , const VkSwapchainCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSwapchainKHR* pSwapchain
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateSwapchainKHR vkCreateSwapchainKHR registry at www.khronos.org>
+type HS_vkCreateSwapchainKHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkSwapchainCreateInfoKHR -- ^ pCreateInfo
+                                    ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSwapchainKHR -- ^ pSwapchain
+                                                         -> IO VkResult
+
+type PFN_vkCreateSwapchainKHR = FunPtr HS_vkCreateSwapchainKHR
+
+foreign import ccall "dynamic" unwrapVkCreateSwapchainKHR ::
+               PFN_vkCreateSwapchainKHR -> HS_vkCreateSwapchainKHR
+
+instance VulkanProc "vkCreateSwapchainKHR" where
+        type VkProcType "vkCreateSwapchainKHR" = HS_vkCreateSwapchainKHR
+        vkProcSymbol = _VkCreateSwapchainKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateSwapchainKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroySwapchainKHR :: CString
+
+pattern VkDestroySwapchainKHR <- (is_VkDestroySwapchainKHR -> True)
+  where VkDestroySwapchainKHR = _VkDestroySwapchainKHR
+
+{-# INLINE _VkDestroySwapchainKHR #-}
+
+_VkDestroySwapchainKHR :: CString
+_VkDestroySwapchainKHR = Ptr "vkDestroySwapchainKHR\NUL"#
+
+{-# INLINE is_VkDestroySwapchainKHR #-}
+
+is_VkDestroySwapchainKHR :: CString -> Bool
+is_VkDestroySwapchainKHR
+  = (EQ ==) . cmpCStrings _VkDestroySwapchainKHR
+
+type VkDestroySwapchainKHR = "vkDestroySwapchainKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySwapchainKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySwapchainKHR vkDestroySwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkDestroySwapchainKHR"
+               vkDestroySwapchainKHR ::
+               VkDevice -- ^ device
+                        -> VkSwapchainKHR -- ^ swapchain
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkDestroySwapchainKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySwapchainKHR vkDestroySwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySwapchainKHRSafe@ and @vkDestroySwapchainKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySwapchainKHR <- vkGetDeviceProc @VkDestroySwapchainKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySwapchainKHR <- vkGetProc @VkDestroySwapchainKHR
+--
+vkDestroySwapchainKHR ::
+                      VkDevice -- ^ device
+                               -> VkSwapchainKHR -- ^ swapchain
+                                                 -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                              -> IO ()
+vkDestroySwapchainKHR
+  = unsafeDupablePerformIO (vkGetProc @VkDestroySwapchainKHR)
+
+{-# NOINLINE vkDestroySwapchainKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > void vkDestroySwapchainKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySwapchainKHR vkDestroySwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkDestroySwapchainKHR"
+               vkDestroySwapchainKHRSafe ::
+               VkDevice -- ^ device
+                        -> VkSwapchainKHR -- ^ swapchain
+                                          -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                       -> IO ()
+
+#else
+-- |
+-- > void vkDestroySwapchainKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySwapchainKHR vkDestroySwapchainKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkDestroySwapchainKHRSafe@ and @vkDestroySwapchainKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myDestroySwapchainKHR <- vkGetDeviceProc @VkDestroySwapchainKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myDestroySwapchainKHR <- vkGetProc @VkDestroySwapchainKHR
+--
+vkDestroySwapchainKHRSafe ::
+                          VkDevice -- ^ device
+                                   -> VkSwapchainKHR -- ^ swapchain
+                                                     -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                                  -> IO ()
+vkDestroySwapchainKHRSafe = vkDestroySwapchainKHR
+
+{-# INLINE vkDestroySwapchainKHRSafe #-}
+#endif
+
+-- | > void vkDestroySwapchainKHR
+--   >     ( VkDevice device
+--   >     , VkSwapchainKHR swapchain
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroySwapchainKHR vkDestroySwapchainKHR registry at www.khronos.org>
+type HS_vkDestroySwapchainKHR =
+     VkDevice -- ^ device
+              -> VkSwapchainKHR -- ^ swapchain
+                                -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                             -> IO ()
+
+type PFN_vkDestroySwapchainKHR = FunPtr HS_vkDestroySwapchainKHR
+
+foreign import ccall "dynamic" unwrapVkDestroySwapchainKHR ::
+               PFN_vkDestroySwapchainKHR -> HS_vkDestroySwapchainKHR
+
+instance VulkanProc "vkDestroySwapchainKHR" where
+        type VkProcType "vkDestroySwapchainKHR" = HS_vkDestroySwapchainKHR
+        vkProcSymbol = _VkDestroySwapchainKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroySwapchainKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetSwapchainImagesKHR :: CString
+
+pattern VkGetSwapchainImagesKHR <-
+        (is_VkGetSwapchainImagesKHR -> True)
+  where VkGetSwapchainImagesKHR = _VkGetSwapchainImagesKHR
+
+{-# INLINE _VkGetSwapchainImagesKHR #-}
+
+_VkGetSwapchainImagesKHR :: CString
+_VkGetSwapchainImagesKHR = Ptr "vkGetSwapchainImagesKHR\NUL"#
+
+{-# INLINE is_VkGetSwapchainImagesKHR #-}
+
+is_VkGetSwapchainImagesKHR :: CString -> Bool
+is_VkGetSwapchainImagesKHR
+  = (EQ ==) . cmpCStrings _VkGetSwapchainImagesKHR
+
+type VkGetSwapchainImagesKHR = "vkGetSwapchainImagesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetSwapchainImagesKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint32_t* pSwapchainImageCount
+-- >     , VkImage* pSwapchainImages
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkGetSwapchainImagesKHR"
+               vkGetSwapchainImagesKHR ::
+               VkDevice -- ^ device
+                        ->
+                 VkSwapchainKHR -- ^ swapchain
+                                -> Ptr Word32 -- ^ pSwapchainImageCount
+                                              -> Ptr VkImage -- ^ pSwapchainImages
+                                                             -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetSwapchainImagesKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint32_t* pSwapchainImageCount
+-- >     , VkImage* pSwapchainImages
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetSwapchainImagesKHRSafe@ and @vkGetSwapchainImagesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetSwapchainImagesKHR <- vkGetDeviceProc @VkGetSwapchainImagesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetSwapchainImagesKHR <- vkGetProc @VkGetSwapchainImagesKHR
+--
+vkGetSwapchainImagesKHR ::
+                        VkDevice -- ^ device
+                                 ->
+                          VkSwapchainKHR -- ^ swapchain
+                                         -> Ptr Word32 -- ^ pSwapchainImageCount
+                                                       -> Ptr VkImage -- ^ pSwapchainImages
+                                                                      -> IO VkResult
+vkGetSwapchainImagesKHR
+  = unsafeDupablePerformIO (vkGetProc @VkGetSwapchainImagesKHR)
+
+{-# NOINLINE vkGetSwapchainImagesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetSwapchainImagesKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint32_t* pSwapchainImageCount
+-- >     , VkImage* pSwapchainImages
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetSwapchainImagesKHR"
+               vkGetSwapchainImagesKHRSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkSwapchainKHR -- ^ swapchain
+                                -> Ptr Word32 -- ^ pSwapchainImageCount
+                                              -> Ptr VkImage -- ^ pSwapchainImages
+                                                             -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetSwapchainImagesKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint32_t* pSwapchainImageCount
+-- >     , VkImage* pSwapchainImages
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetSwapchainImagesKHRSafe@ and @vkGetSwapchainImagesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetSwapchainImagesKHR <- vkGetDeviceProc @VkGetSwapchainImagesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetSwapchainImagesKHR <- vkGetProc @VkGetSwapchainImagesKHR
+--
+vkGetSwapchainImagesKHRSafe ::
+                            VkDevice -- ^ device
+                                     ->
+                              VkSwapchainKHR -- ^ swapchain
+                                             -> Ptr Word32 -- ^ pSwapchainImageCount
+                                                           -> Ptr VkImage -- ^ pSwapchainImages
+                                                                          -> IO VkResult
+vkGetSwapchainImagesKHRSafe = vkGetSwapchainImagesKHR
+
+{-# INLINE vkGetSwapchainImagesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetSwapchainImagesKHR
+--   >     ( VkDevice device
+--   >     , VkSwapchainKHR swapchain
+--   >     , uint32_t* pSwapchainImageCount
+--   >     , VkImage* pSwapchainImages
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR registry at www.khronos.org>
+type HS_vkGetSwapchainImagesKHR =
+     VkDevice -- ^ device
+              ->
+       VkSwapchainKHR -- ^ swapchain
+                      -> Ptr Word32 -- ^ pSwapchainImageCount
+                                    -> Ptr VkImage -- ^ pSwapchainImages
+                                                   -> IO VkResult
+
+type PFN_vkGetSwapchainImagesKHR =
+     FunPtr HS_vkGetSwapchainImagesKHR
+
+foreign import ccall "dynamic" unwrapVkGetSwapchainImagesKHR ::
+               PFN_vkGetSwapchainImagesKHR -> HS_vkGetSwapchainImagesKHR
+
+instance VulkanProc "vkGetSwapchainImagesKHR" where
+        type VkProcType "vkGetSwapchainImagesKHR" =
+             HS_vkGetSwapchainImagesKHR
+        vkProcSymbol = _VkGetSwapchainImagesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetSwapchainImagesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkAcquireNextImageKHR :: CString
+
+pattern VkAcquireNextImageKHR <- (is_VkAcquireNextImageKHR -> True)
+  where VkAcquireNextImageKHR = _VkAcquireNextImageKHR
+
+{-# INLINE _VkAcquireNextImageKHR #-}
+
+_VkAcquireNextImageKHR :: CString
+_VkAcquireNextImageKHR = Ptr "vkAcquireNextImageKHR\NUL"#
+
+{-# INLINE is_VkAcquireNextImageKHR #-}
+
+is_VkAcquireNextImageKHR :: CString -> Bool
+is_VkAcquireNextImageKHR
+  = (EQ ==) . cmpCStrings _VkAcquireNextImageKHR
+
+type VkAcquireNextImageKHR = "vkAcquireNextImageKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImageKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint64_t timeout
+-- >     , VkSemaphore semaphore
+-- >     , VkFence fence
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImageKHR vkAcquireNextImageKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkAcquireNextImageKHR"
+               vkAcquireNextImageKHR ::
+               VkDevice -- ^ device
+                        ->
+                 VkSwapchainKHR -- ^ swapchain
+                                ->
+                   Word64 -- ^ timeout
+                          -> VkSemaphore -- ^ semaphore
+                                         -> VkFence -- ^ fence
+                                                    -> Ptr Word32 -- ^ pImageIndex
+                                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImageKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint64_t timeout
+-- >     , VkSemaphore semaphore
+-- >     , VkFence fence
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImageKHR vkAcquireNextImageKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAcquireNextImageKHRSafe@ and @vkAcquireNextImageKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAcquireNextImageKHR <- vkGetDeviceProc @VkAcquireNextImageKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myAcquireNextImageKHR <- vkGetProc @VkAcquireNextImageKHR
+--
+vkAcquireNextImageKHR ::
+                      VkDevice -- ^ device
+                               ->
+                        VkSwapchainKHR -- ^ swapchain
+                                       ->
+                          Word64 -- ^ timeout
+                                 -> VkSemaphore -- ^ semaphore
+                                                -> VkFence -- ^ fence
+                                                           -> Ptr Word32 -- ^ pImageIndex
+                                                                         -> IO VkResult
+vkAcquireNextImageKHR
+  = unsafeDupablePerformIO (vkGetProc @VkAcquireNextImageKHR)
+
+{-# NOINLINE vkAcquireNextImageKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImageKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint64_t timeout
+-- >     , VkSemaphore semaphore
+-- >     , VkFence fence
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImageKHR vkAcquireNextImageKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkAcquireNextImageKHR"
+               vkAcquireNextImageKHRSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkSwapchainKHR -- ^ swapchain
+                                ->
+                   Word64 -- ^ timeout
+                          -> VkSemaphore -- ^ semaphore
+                                         -> VkFence -- ^ fence
+                                                    -> Ptr Word32 -- ^ pImageIndex
+                                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImageKHR
+-- >     ( VkDevice device
+-- >     , VkSwapchainKHR swapchain
+-- >     , uint64_t timeout
+-- >     , VkSemaphore semaphore
+-- >     , VkFence fence
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImageKHR vkAcquireNextImageKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAcquireNextImageKHRSafe@ and @vkAcquireNextImageKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAcquireNextImageKHR <- vkGetDeviceProc @VkAcquireNextImageKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myAcquireNextImageKHR <- vkGetProc @VkAcquireNextImageKHR
+--
+vkAcquireNextImageKHRSafe ::
+                          VkDevice -- ^ device
+                                   ->
+                            VkSwapchainKHR -- ^ swapchain
+                                           ->
+                              Word64 -- ^ timeout
+                                     -> VkSemaphore -- ^ semaphore
+                                                    -> VkFence -- ^ fence
+                                                               -> Ptr Word32 -- ^ pImageIndex
+                                                                             -> IO VkResult
+vkAcquireNextImageKHRSafe = vkAcquireNextImageKHR
+
+{-# INLINE vkAcquireNextImageKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkAcquireNextImageKHR
+--   >     ( VkDevice device
+--   >     , VkSwapchainKHR swapchain
+--   >     , uint64_t timeout
+--   >     , VkSemaphore semaphore
+--   >     , VkFence fence
+--   >     , uint32_t* pImageIndex
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImageKHR vkAcquireNextImageKHR registry at www.khronos.org>
+type HS_vkAcquireNextImageKHR =
+     VkDevice -- ^ device
+              ->
+       VkSwapchainKHR -- ^ swapchain
+                      ->
+         Word64 -- ^ timeout
+                -> VkSemaphore -- ^ semaphore
+                               -> VkFence -- ^ fence
+                                          -> Ptr Word32 -- ^ pImageIndex
+                                                        -> IO VkResult
+
+type PFN_vkAcquireNextImageKHR = FunPtr HS_vkAcquireNextImageKHR
+
+foreign import ccall "dynamic" unwrapVkAcquireNextImageKHR ::
+               PFN_vkAcquireNextImageKHR -> HS_vkAcquireNextImageKHR
+
+instance VulkanProc "vkAcquireNextImageKHR" where
+        type VkProcType "vkAcquireNextImageKHR" = HS_vkAcquireNextImageKHR
+        vkProcSymbol = _VkAcquireNextImageKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAcquireNextImageKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkQueuePresentKHR :: CString
+
+pattern VkQueuePresentKHR <- (is_VkQueuePresentKHR -> True)
+  where VkQueuePresentKHR = _VkQueuePresentKHR
+
+{-# INLINE _VkQueuePresentKHR #-}
+
+_VkQueuePresentKHR :: CString
+_VkQueuePresentKHR = Ptr "vkQueuePresentKHR\NUL"#
+
+{-# INLINE is_VkQueuePresentKHR #-}
+
+is_VkQueuePresentKHR :: CString -> Bool
+is_VkQueuePresentKHR = (EQ ==) . cmpCStrings _VkQueuePresentKHR
+
+type VkQueuePresentKHR = "vkQueuePresentKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkQueuePresentKHR
+-- >     ( VkQueue queue
+-- >     , const VkPresentInfoKHR* pPresentInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueuePresentKHR vkQueuePresentKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkQueuePresentKHR" vkQueuePresentKHR
+               :: VkQueue -- ^ queue
+                          -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
+                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkQueuePresentKHR
+-- >     ( VkQueue queue
+-- >     , const VkPresentInfoKHR* pPresentInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueuePresentKHR vkQueuePresentKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueuePresentKHRSafe@ and @vkQueuePresentKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueuePresentKHR <- vkGetInstanceProc @VkQueuePresentKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myQueuePresentKHR <- vkGetProc @VkQueuePresentKHR
+--
+vkQueuePresentKHR :: VkQueue -- ^ queue
+                             -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
+                                                     -> IO VkResult
+vkQueuePresentKHR
+  = unsafeDupablePerformIO (vkGetProc @VkQueuePresentKHR)
+
+{-# NOINLINE vkQueuePresentKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkQueuePresentKHR
+-- >     ( VkQueue queue
+-- >     , const VkPresentInfoKHR* pPresentInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueuePresentKHR vkQueuePresentKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkQueuePresentKHR" vkQueuePresentKHRSafe
+               :: VkQueue -- ^ queue
+                          -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
+                                                  -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkQueuePresentKHR
+-- >     ( VkQueue queue
+-- >     , const VkPresentInfoKHR* pPresentInfo
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueuePresentKHR vkQueuePresentKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkQueuePresentKHRSafe@ and @vkQueuePresentKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myQueuePresentKHR <- vkGetInstanceProc @VkQueuePresentKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myQueuePresentKHR <- vkGetProc @VkQueuePresentKHR
+--
+vkQueuePresentKHRSafe ::
+                      VkQueue -- ^ queue
+                              -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
+                                                      -> IO VkResult
+vkQueuePresentKHRSafe = vkQueuePresentKHR
+
+{-# INLINE vkQueuePresentKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_SUBOPTIMAL_KHR'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkQueuePresentKHR
+--   >     ( VkQueue queue
+--   >     , const VkPresentInfoKHR* pPresentInfo
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkQueuePresentKHR vkQueuePresentKHR registry at www.khronos.org>
+type HS_vkQueuePresentKHR =
+     VkQueue -- ^ queue
+             -> Ptr VkPresentInfoKHR -- ^ pPresentInfo
+                                     -> IO VkResult
+
+type PFN_vkQueuePresentKHR = FunPtr HS_vkQueuePresentKHR
+
+foreign import ccall "dynamic" unwrapVkQueuePresentKHR ::
+               PFN_vkQueuePresentKHR -> HS_vkQueuePresentKHR
+
+instance VulkanProc "vkQueuePresentKHR" where
+        type VkProcType "vkQueuePresentKHR" = HS_vkQueuePresentKHR
+        vkProcSymbol = _VkQueuePresentKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkQueuePresentKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VK_KHR_SWAPCHAIN_SPEC_VERSION :: (Num a, Eq a) => a
+
+pattern VK_KHR_SWAPCHAIN_SPEC_VERSION = 70
+
+type VK_KHR_SWAPCHAIN_SPEC_VERSION = 70
+
+pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString
+
+pattern VK_KHR_SWAPCHAIN_EXTENSION_NAME <-
+        (is_VK_KHR_SWAPCHAIN_EXTENSION_NAME -> True)
+  where VK_KHR_SWAPCHAIN_EXTENSION_NAME
+          = _VK_KHR_SWAPCHAIN_EXTENSION_NAME
+
+{-# INLINE _VK_KHR_SWAPCHAIN_EXTENSION_NAME #-}
+
+_VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString
+_VK_KHR_SWAPCHAIN_EXTENSION_NAME = Ptr "VK_KHR_swapchain\NUL"#
+
+{-# INLINE is_VK_KHR_SWAPCHAIN_EXTENSION_NAME #-}
+
+is_VK_KHR_SWAPCHAIN_EXTENSION_NAME :: CString -> Bool
+is_VK_KHR_SWAPCHAIN_EXTENSION_NAME
+  = (EQ ==) . cmpCStrings _VK_KHR_SWAPCHAIN_EXTENSION_NAME
+
+type VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain"
+
+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR =
+        VkStructureType 1000001000
+
+pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PRESENT_INFO_KHR =
+        VkStructureType 1000001001
+
+pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = VkImageLayout 1000001002
+
+pattern VK_SUBOPTIMAL_KHR :: VkResult
+
+pattern VK_SUBOPTIMAL_KHR = VkResult 1000001003
+
+pattern VK_ERROR_OUT_OF_DATE_KHR :: VkResult
+
+pattern VK_ERROR_OUT_OF_DATE_KHR = VkResult (-1000001004)
+
+-- | VkSwapchainKHR
+pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR :: VkObjectType
+
+pattern VK_OBJECT_TYPE_SWAPCHAIN_KHR = VkObjectType 1000001000
+
+pattern VkGetDeviceGroupPresentCapabilitiesKHR :: CString
+
+pattern VkGetDeviceGroupPresentCapabilitiesKHR <-
+        (is_VkGetDeviceGroupPresentCapabilitiesKHR -> True)
+  where VkGetDeviceGroupPresentCapabilitiesKHR
+          = _VkGetDeviceGroupPresentCapabilitiesKHR
+
+{-# INLINE _VkGetDeviceGroupPresentCapabilitiesKHR #-}
+
+_VkGetDeviceGroupPresentCapabilitiesKHR :: CString
+_VkGetDeviceGroupPresentCapabilitiesKHR
+  = Ptr "vkGetDeviceGroupPresentCapabilitiesKHR\NUL"#
+
+{-# INLINE is_VkGetDeviceGroupPresentCapabilitiesKHR #-}
+
+is_VkGetDeviceGroupPresentCapabilitiesKHR :: CString -> Bool
+is_VkGetDeviceGroupPresentCapabilitiesKHR
+  = (EQ ==) . cmpCStrings _VkGetDeviceGroupPresentCapabilitiesKHR
+
+type VkGetDeviceGroupPresentCapabilitiesKHR =
+     "vkGetDeviceGroupPresentCapabilitiesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
+-- >     ( VkDevice device
+-- >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetDeviceGroupPresentCapabilitiesKHR"
+               vkGetDeviceGroupPresentCapabilitiesKHR ::
+               VkDevice -- ^ device
+                        -> Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
+-- >     ( VkDevice device
+-- >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupPresentCapabilitiesKHRSafe@ and @vkGetDeviceGroupPresentCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupPresentCapabilitiesKHR <- vkGetDeviceProc @VkGetDeviceGroupPresentCapabilitiesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupPresentCapabilitiesKHR <- vkGetProc @VkGetDeviceGroupPresentCapabilitiesKHR
+--
+vkGetDeviceGroupPresentCapabilitiesKHR ::
+                                       VkDevice -- ^ device
+                                                ->
+                                         Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
+                                                                                 -> IO VkResult
+vkGetDeviceGroupPresentCapabilitiesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDeviceGroupPresentCapabilitiesKHR)
+
+{-# NOINLINE vkGetDeviceGroupPresentCapabilitiesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
+-- >     ( VkDevice device
+-- >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceGroupPresentCapabilitiesKHR"
+               vkGetDeviceGroupPresentCapabilitiesKHRSafe ::
+               VkDevice -- ^ device
+                        -> Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
+                                                                   -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
+-- >     ( VkDevice device
+-- >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupPresentCapabilitiesKHRSafe@ and @vkGetDeviceGroupPresentCapabilitiesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupPresentCapabilitiesKHR <- vkGetDeviceProc @VkGetDeviceGroupPresentCapabilitiesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupPresentCapabilitiesKHR <- vkGetProc @VkGetDeviceGroupPresentCapabilitiesKHR
+--
+vkGetDeviceGroupPresentCapabilitiesKHRSafe ::
+                                           VkDevice -- ^ device
+                                                    ->
+                                             Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
+                                                                                     -> IO VkResult
+vkGetDeviceGroupPresentCapabilitiesKHRSafe
+  = vkGetDeviceGroupPresentCapabilitiesKHR
+
+{-# INLINE vkGetDeviceGroupPresentCapabilitiesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetDeviceGroupPresentCapabilitiesKHR
+--   >     ( VkDevice device
+--   >     , VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+type HS_vkGetDeviceGroupPresentCapabilitiesKHR =
+     VkDevice -- ^ device
+              -> Ptr VkDeviceGroupPresentCapabilitiesKHR -- ^ pDeviceGroupPresentCapabilities
+                                                         -> IO VkResult
+
+type PFN_vkGetDeviceGroupPresentCapabilitiesKHR =
+     FunPtr HS_vkGetDeviceGroupPresentCapabilitiesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDeviceGroupPresentCapabilitiesKHR ::
+               PFN_vkGetDeviceGroupPresentCapabilitiesKHR ->
+                 HS_vkGetDeviceGroupPresentCapabilitiesKHR
+
+instance VulkanProc "vkGetDeviceGroupPresentCapabilitiesKHR" where
+        type VkProcType "vkGetDeviceGroupPresentCapabilitiesKHR" =
+             HS_vkGetDeviceGroupPresentCapabilitiesKHR
+        vkProcSymbol = _VkGetDeviceGroupPresentCapabilitiesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceGroupPresentCapabilitiesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetDeviceGroupSurfacePresentModesKHR :: CString
+
+pattern VkGetDeviceGroupSurfacePresentModesKHR <-
+        (is_VkGetDeviceGroupSurfacePresentModesKHR -> True)
+  where VkGetDeviceGroupSurfacePresentModesKHR
+          = _VkGetDeviceGroupSurfacePresentModesKHR
+
+{-# INLINE _VkGetDeviceGroupSurfacePresentModesKHR #-}
+
+_VkGetDeviceGroupSurfacePresentModesKHR :: CString
+_VkGetDeviceGroupSurfacePresentModesKHR
+  = Ptr "vkGetDeviceGroupSurfacePresentModesKHR\NUL"#
+
+{-# INLINE is_VkGetDeviceGroupSurfacePresentModesKHR #-}
+
+is_VkGetDeviceGroupSurfacePresentModesKHR :: CString -> Bool
+is_VkGetDeviceGroupSurfacePresentModesKHR
+  = (EQ ==) . cmpCStrings _VkGetDeviceGroupSurfacePresentModesKHR
+
+type VkGetDeviceGroupSurfacePresentModesKHR =
+     "vkGetDeviceGroupSurfacePresentModesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetDeviceGroupSurfacePresentModesKHR
+-- >     ( VkDevice device
+-- >     , VkSurfaceKHR surface
+-- >     , VkDeviceGroupPresentModeFlagsKHR* pModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetDeviceGroupSurfacePresentModesKHR"
+               vkGetDeviceGroupSurfacePresentModesKHR ::
+               VkDevice -- ^ device
+                        ->
+                 VkSurfaceKHR -- ^ surface
+                              -> Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
+                                                                      -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetDeviceGroupSurfacePresentModesKHR
+-- >     ( VkDevice device
+-- >     , VkSurfaceKHR surface
+-- >     , VkDeviceGroupPresentModeFlagsKHR* pModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupSurfacePresentModesKHRSafe@ and @vkGetDeviceGroupSurfacePresentModesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupSurfacePresentModesKHR <- vkGetDeviceProc @VkGetDeviceGroupSurfacePresentModesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupSurfacePresentModesKHR <- vkGetProc @VkGetDeviceGroupSurfacePresentModesKHR
+--
+vkGetDeviceGroupSurfacePresentModesKHR ::
+                                       VkDevice -- ^ device
+                                                ->
+                                         VkSurfaceKHR -- ^ surface
+                                                      ->
+                                           Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
+                                                                                -> IO VkResult
+vkGetDeviceGroupSurfacePresentModesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetDeviceGroupSurfacePresentModesKHR)
+
+{-# NOINLINE vkGetDeviceGroupSurfacePresentModesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetDeviceGroupSurfacePresentModesKHR
+-- >     ( VkDevice device
+-- >     , VkSurfaceKHR surface
+-- >     , VkDeviceGroupPresentModeFlagsKHR* pModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetDeviceGroupSurfacePresentModesKHR"
+               vkGetDeviceGroupSurfacePresentModesKHRSafe ::
+               VkDevice -- ^ device
+                        ->
+                 VkSurfaceKHR -- ^ surface
+                              -> Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
+                                                                      -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkGetDeviceGroupSurfacePresentModesKHR
+-- >     ( VkDevice device
+-- >     , VkSurfaceKHR surface
+-- >     , VkDeviceGroupPresentModeFlagsKHR* pModes
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetDeviceGroupSurfacePresentModesKHRSafe@ and @vkGetDeviceGroupSurfacePresentModesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetDeviceGroupSurfacePresentModesKHR <- vkGetDeviceProc @VkGetDeviceGroupSurfacePresentModesKHR vkDevice
+--
+-- or less efficient:
+--
+-- > myGetDeviceGroupSurfacePresentModesKHR <- vkGetProc @VkGetDeviceGroupSurfacePresentModesKHR
+--
+vkGetDeviceGroupSurfacePresentModesKHRSafe ::
+                                           VkDevice -- ^ device
+                                                    ->
+                                             VkSurfaceKHR -- ^ surface
+                                                          ->
+                                               Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
+                                                                                    -> IO VkResult
+vkGetDeviceGroupSurfacePresentModesKHRSafe
+  = vkGetDeviceGroupSurfacePresentModesKHR
+
+{-# INLINE vkGetDeviceGroupSurfacePresentModesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkGetDeviceGroupSurfacePresentModesKHR
+--   >     ( VkDevice device
+--   >     , VkSurfaceKHR surface
+--   >     , VkDeviceGroupPresentModeFlagsKHR* pModes
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR registry at www.khronos.org>
+type HS_vkGetDeviceGroupSurfacePresentModesKHR =
+     VkDevice -- ^ device
+              ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr VkDeviceGroupPresentModeFlagsKHR -- ^ pModes
+                                                            -> IO VkResult
+
+type PFN_vkGetDeviceGroupSurfacePresentModesKHR =
+     FunPtr HS_vkGetDeviceGroupSurfacePresentModesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetDeviceGroupSurfacePresentModesKHR ::
+               PFN_vkGetDeviceGroupSurfacePresentModesKHR ->
+                 HS_vkGetDeviceGroupSurfacePresentModesKHR
+
+instance VulkanProc "vkGetDeviceGroupSurfacePresentModesKHR" where
+        type VkProcType "vkGetDeviceGroupSurfacePresentModesKHR" =
+             HS_vkGetDeviceGroupSurfacePresentModesKHR
+        vkProcSymbol = _VkGetDeviceGroupSurfacePresentModesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetDeviceGroupSurfacePresentModesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDevicePresentRectanglesKHR :: CString
+
+pattern VkGetPhysicalDevicePresentRectanglesKHR <-
+        (is_VkGetPhysicalDevicePresentRectanglesKHR -> True)
+  where VkGetPhysicalDevicePresentRectanglesKHR
+          = _VkGetPhysicalDevicePresentRectanglesKHR
+
+{-# INLINE _VkGetPhysicalDevicePresentRectanglesKHR #-}
+
+_VkGetPhysicalDevicePresentRectanglesKHR :: CString
+_VkGetPhysicalDevicePresentRectanglesKHR
+  = Ptr "vkGetPhysicalDevicePresentRectanglesKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDevicePresentRectanglesKHR #-}
+
+is_VkGetPhysicalDevicePresentRectanglesKHR :: CString -> Bool
+is_VkGetPhysicalDevicePresentRectanglesKHR
+  = (EQ ==) . cmpCStrings _VkGetPhysicalDevicePresentRectanglesKHR
+
+type VkGetPhysicalDevicePresentRectanglesKHR =
+     "vkGetPhysicalDevicePresentRectanglesKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDevicePresentRectanglesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pRectCount
+-- >     , VkRect2D* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe
+               "vkGetPhysicalDevicePresentRectanglesKHR"
+               vkGetPhysicalDevicePresentRectanglesKHR ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkSurfaceKHR -- ^ surface
+                              -> Ptr Word32 -- ^ pRectCount
+                                            -> Ptr VkRect2D -- ^ pRects
+                                                            -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDevicePresentRectanglesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pRectCount
+-- >     , VkRect2D* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDevicePresentRectanglesKHRSafe@ and @vkGetPhysicalDevicePresentRectanglesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDevicePresentRectanglesKHR <- vkGetInstanceProc @VkGetPhysicalDevicePresentRectanglesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDevicePresentRectanglesKHR <- vkGetProc @VkGetPhysicalDevicePresentRectanglesKHR
+--
+vkGetPhysicalDevicePresentRectanglesKHR ::
+                                        VkPhysicalDevice -- ^ physicalDevice
+                                                         ->
+                                          VkSurfaceKHR -- ^ surface
+                                                       -> Ptr Word32 -- ^ pRectCount
+                                                                     -> Ptr VkRect2D -- ^ pRects
+                                                                                     -> IO VkResult
+vkGetPhysicalDevicePresentRectanglesKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDevicePresentRectanglesKHR)
+
+{-# NOINLINE vkGetPhysicalDevicePresentRectanglesKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDevicePresentRectanglesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pRectCount
+-- >     , VkRect2D* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkGetPhysicalDevicePresentRectanglesKHR"
+               vkGetPhysicalDevicePresentRectanglesKHRSafe ::
+               VkPhysicalDevice -- ^ physicalDevice
+                                ->
+                 VkSurfaceKHR -- ^ surface
+                              -> Ptr Word32 -- ^ pRectCount
+                                            -> Ptr VkRect2D -- ^ pRects
+                                                            -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkGetPhysicalDevicePresentRectanglesKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , VkSurfaceKHR surface
+-- >     , uint32_t* pRectCount
+-- >     , VkRect2D* pRects
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDevicePresentRectanglesKHRSafe@ and @vkGetPhysicalDevicePresentRectanglesKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDevicePresentRectanglesKHR <- vkGetInstanceProc @VkGetPhysicalDevicePresentRectanglesKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDevicePresentRectanglesKHR <- vkGetProc @VkGetPhysicalDevicePresentRectanglesKHR
+--
+vkGetPhysicalDevicePresentRectanglesKHRSafe ::
+                                            VkPhysicalDevice -- ^ physicalDevice
+                                                             ->
+                                              VkSurfaceKHR -- ^ surface
+                                                           ->
+                                                Ptr Word32 -- ^ pRectCount
+                                                           -> Ptr VkRect2D -- ^ pRects
+                                                                           -> IO VkResult
+vkGetPhysicalDevicePresentRectanglesKHRSafe
+  = vkGetPhysicalDevicePresentRectanglesKHR
+
+{-# INLINE vkGetPhysicalDevicePresentRectanglesKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_INCOMPLETE'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkGetPhysicalDevicePresentRectanglesKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , VkSurfaceKHR surface
+--   >     , uint32_t* pRectCount
+--   >     , VkRect2D* pRects
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDevicePresentRectanglesKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkSurfaceKHR -- ^ surface
+                    -> Ptr Word32 -- ^ pRectCount
+                                  -> Ptr VkRect2D -- ^ pRects
+                                                  -> IO VkResult
+
+type PFN_vkGetPhysicalDevicePresentRectanglesKHR =
+     FunPtr HS_vkGetPhysicalDevicePresentRectanglesKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDevicePresentRectanglesKHR ::
+               PFN_vkGetPhysicalDevicePresentRectanglesKHR ->
+                 HS_vkGetPhysicalDevicePresentRectanglesKHR
+
+instance VulkanProc "vkGetPhysicalDevicePresentRectanglesKHR" where
+        type VkProcType "vkGetPhysicalDevicePresentRectanglesKHR" =
+             HS_vkGetPhysicalDevicePresentRectanglesKHR
+        vkProcSymbol = _VkGetPhysicalDevicePresentRectanglesKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetPhysicalDevicePresentRectanglesKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkAcquireNextImage2KHR :: CString
+
+pattern VkAcquireNextImage2KHR <-
+        (is_VkAcquireNextImage2KHR -> True)
+  where VkAcquireNextImage2KHR = _VkAcquireNextImage2KHR
+
+{-# INLINE _VkAcquireNextImage2KHR #-}
+
+_VkAcquireNextImage2KHR :: CString
+_VkAcquireNextImage2KHR = Ptr "vkAcquireNextImage2KHR\NUL"#
+
+{-# INLINE is_VkAcquireNextImage2KHR #-}
+
+is_VkAcquireNextImage2KHR :: CString -> Bool
+is_VkAcquireNextImage2KHR
+  = (EQ ==) . cmpCStrings _VkAcquireNextImage2KHR
+
+type VkAcquireNextImage2KHR = "vkAcquireNextImage2KHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImage2KHR
+-- >     ( VkDevice device
+-- >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImage2KHR vkAcquireNextImage2KHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall unsafe "vkAcquireNextImage2KHR"
+               vkAcquireNextImage2KHR ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
+                                               -> Ptr Word32 -- ^ pImageIndex
+                                                             -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImage2KHR
+-- >     ( VkDevice device
+-- >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImage2KHR vkAcquireNextImage2KHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAcquireNextImage2KHRSafe@ and @vkAcquireNextImage2KHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAcquireNextImage2KHR <- vkGetDeviceProc @VkAcquireNextImage2KHR vkDevice
+--
+-- or less efficient:
+--
+-- > myAcquireNextImage2KHR <- vkGetProc @VkAcquireNextImage2KHR
+--
+vkAcquireNextImage2KHR ::
+                       VkDevice -- ^ device
+                                ->
+                         Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
+                                                       -> Ptr Word32 -- ^ pImageIndex
+                                                                     -> IO VkResult
+vkAcquireNextImage2KHR
+  = unsafeDupablePerformIO (vkGetProc @VkAcquireNextImage2KHR)
+
+{-# NOINLINE vkAcquireNextImage2KHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_1
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImage2KHR
+-- >     ( VkDevice device
+-- >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImage2KHR vkAcquireNextImage2KHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
+foreign import ccall safe "vkAcquireNextImage2KHR"
+               vkAcquireNextImage2KHRSafe ::
+               VkDevice -- ^ device
+                        ->
+                 Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
+                                               -> Ptr Word32 -- ^ pImageIndex
+                                                             -> IO VkResult
+
+#else
+-- |
+-- Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+-- > VkResult vkAcquireNextImage2KHR
+-- >     ( VkDevice device
+-- >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
+-- >     , uint32_t* pImageIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImage2KHR vkAcquireNextImage2KHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-1@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkAcquireNextImage2KHRSafe@ and @vkAcquireNextImage2KHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myAcquireNextImage2KHR <- vkGetDeviceProc @VkAcquireNextImage2KHR vkDevice
+--
+-- or less efficient:
+--
+-- > myAcquireNextImage2KHR <- vkGetProc @VkAcquireNextImage2KHR
+--
+vkAcquireNextImage2KHRSafe ::
+                           VkDevice -- ^ device
+                                    ->
+                             Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
+                                                           -> Ptr Word32 -- ^ pImageIndex
+                                                                         -> IO VkResult
+vkAcquireNextImage2KHRSafe = vkAcquireNextImage2KHR
+
+{-# INLINE vkAcquireNextImage2KHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS', 'VK_TIMEOUT', 'VK_NOT_READY', 'VK_SUBOPTIMAL_KHR'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_DEVICE_LOST', 'VK_ERROR_OUT_OF_DATE_KHR', 'VK_ERROR_SURFACE_LOST_KHR'.
+--
+--   > VkResult vkAcquireNextImage2KHR
+--   >     ( VkDevice device
+--   >     , const VkAcquireNextImageInfoKHR* pAcquireInfo
+--   >     , uint32_t* pImageIndex
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkAcquireNextImage2KHR vkAcquireNextImage2KHR registry at www.khronos.org>
+type HS_vkAcquireNextImage2KHR =
+     VkDevice -- ^ device
+              ->
+       Ptr VkAcquireNextImageInfoKHR -- ^ pAcquireInfo
+                                     -> Ptr Word32 -- ^ pImageIndex
+                                                   -> IO VkResult
+
+type PFN_vkAcquireNextImage2KHR = FunPtr HS_vkAcquireNextImage2KHR
+
+foreign import ccall "dynamic" unwrapVkAcquireNextImage2KHR ::
+               PFN_vkAcquireNextImage2KHR -> HS_vkAcquireNextImage2KHR
+
+instance VulkanProc "vkAcquireNextImage2KHR" where
+        type VkProcType "vkAcquireNextImage2KHR" =
+             HS_vkAcquireNextImage2KHR
+        vkProcSymbol = _VkAcquireNextImage2KHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkAcquireNextImage2KHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR ::
         VkStructureType
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_variable_pointers.hs
@@ -23,19 +23,17 @@
         --
 
         -- ** Required extensions: 'VK_KHR_get_physical_device_properties2', 'VK_KHR_storage_buffer_storage_class'.
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeaturesKHR,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
         VK_KHR_VARIABLE_POINTERS_SPEC_VERSION,
         pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION,
         VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME,
         pattern VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR)
        where
-import           GHC.Ptr
-                                                                                          (Ptr (..))
-import           Graphics.Vulkan.Core_1_1
-                                                                                          (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES)
+import           GHC.Ptr                                     (Ptr (..))
+import           Graphics.Vulkan.Core_1_1                    (pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES)
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeaturesKHR
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VK_KHR_VARIABLE_POINTERS_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_wayland_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_wayland_surface
        (-- * Vulkan extension: @VK_KHR_wayland_surface@
@@ -26,53 +32,86 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkWaylandSurfaceCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PlatformWaylandKhr,
         -- > #include "vk_platform.h"
+        VkCreateWaylandSurfaceKHR, pattern VkCreateWaylandSurfaceKHR,
+        HS_vkCreateWaylandSurfaceKHR, PFN_vkCreateWaylandSurfaceKHR,
         vkCreateWaylandSurfaceKHR, vkCreateWaylandSurfaceKHRSafe,
+        VkGetPhysicalDeviceWaylandPresentationSupportKHR,
+        pattern VkGetPhysicalDeviceWaylandPresentationSupportKHR,
+        HS_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
+        PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
         vkGetPhysicalDeviceWaylandPresentationSupportKHR,
         vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_WAYLAND_SURFACE_SPEC_VERSION,
         pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION,
         VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                    (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkWaylandSurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateWaylandSurfaceKHR :: CString
+
+pattern VkCreateWaylandSurfaceKHR <-
+        (is_VkCreateWaylandSurfaceKHR -> True)
+  where VkCreateWaylandSurfaceKHR = _VkCreateWaylandSurfaceKHR
+
+{-# INLINE _VkCreateWaylandSurfaceKHR #-}
+
+_VkCreateWaylandSurfaceKHR :: CString
+_VkCreateWaylandSurfaceKHR = Ptr "vkCreateWaylandSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateWaylandSurfaceKHR #-}
+
+is_VkCreateWaylandSurfaceKHR :: CString -> Bool
+is_VkCreateWaylandSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateWaylandSurfaceKHR
+
+type VkCreateWaylandSurfaceKHR = "vkCreateWaylandSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateWaylandSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateWaylandSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateWaylandSurfaceKHR.html vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateWaylandSurfaceKHR"
                vkCreateWaylandSurfaceKHR ::
                VkInstance -- ^ instance
@@ -83,18 +122,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateWaylandSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateWaylandSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateWaylandSurfaceKHR.html vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateWaylandSurfaceKHRSafe@ and @vkCreateWaylandSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateWaylandSurfaceKHR <- vkGetInstanceProc @VkCreateWaylandSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateWaylandSurfaceKHR <- vkGetProc @VkCreateWaylandSurfaceKHR
+--
+vkCreateWaylandSurfaceKHR ::
+                          VkInstance -- ^ instance
+                                     ->
+                            Ptr VkWaylandSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                              ->
+                              Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                            -> IO VkResult
+vkCreateWaylandSurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateWaylandSurfaceKHR)
+
+{-# NOINLINE vkCreateWaylandSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateWaylandSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateWaylandSurfaceKHR"
                vkCreateWaylandSurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -105,13 +191,120 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , struct wl_display* display
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateWaylandSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateWaylandSurfaceKHRSafe@ and @vkCreateWaylandSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateWaylandSurfaceKHR <- vkGetInstanceProc @VkCreateWaylandSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateWaylandSurfaceKHR <- vkGetProc @VkCreateWaylandSurfaceKHR
+--
+vkCreateWaylandSurfaceKHRSafe ::
+                              VkInstance -- ^ instance
+                                         ->
+                                Ptr VkWaylandSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                                  ->
+                                  Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                            -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                                -> IO VkResult
+vkCreateWaylandSurfaceKHRSafe = vkCreateWaylandSurfaceKHR
+
+{-# INLINE vkCreateWaylandSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateWaylandSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkWaylandSurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateWaylandSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkWaylandSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                         ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateWaylandSurfaceKHR =
+     FunPtr HS_vkCreateWaylandSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateWaylandSurfaceKHR ::
+               PFN_vkCreateWaylandSurfaceKHR -> HS_vkCreateWaylandSurfaceKHR
+
+instance VulkanProc "vkCreateWaylandSurfaceKHR" where
+        type VkProcType "vkCreateWaylandSurfaceKHR" =
+             HS_vkCreateWaylandSurfaceKHR
+        vkProcSymbol = _VkCreateWaylandSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateWaylandSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceWaylandPresentationSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceWaylandPresentationSupportKHR <-
+        (is_VkGetPhysicalDeviceWaylandPresentationSupportKHR -> True)
+  where VkGetPhysicalDeviceWaylandPresentationSupportKHR
+          = _VkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceWaylandPresentationSupportKHR #-}
+
+_VkGetPhysicalDeviceWaylandPresentationSupportKHR :: CString
+_VkGetPhysicalDeviceWaylandPresentationSupportKHR
+  = Ptr "vkGetPhysicalDeviceWaylandPresentationSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceWaylandPresentationSupportKHR #-}
+
+is_VkGetPhysicalDeviceWaylandPresentationSupportKHR ::
+                                                    CString -> Bool
+is_VkGetPhysicalDeviceWaylandPresentationSupportKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+type VkGetPhysicalDeviceWaylandPresentationSupportKHR =
+     "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , struct wl_display* display
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
                vkGetPhysicalDeviceWaylandPresentationSupportKHR ::
@@ -120,13 +313,54 @@
                                           -> Ptr WlDisplay -- ^ display
                                                            -> IO VkBool32
 
--- | > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , struct wl_display* display
---   >     )
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , struct wl_display* display
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceWaylandPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceWaylandPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceWaylandPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceWaylandPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceWaylandPresentationSupportKHR
+--
+vkGetPhysicalDeviceWaylandPresentationSupportKHR ::
+                                                 VkPhysicalDevice -- ^ physicalDevice
+                                                                  ->
+                                                   Word32 -- ^ queueFamilyIndex
+                                                          -> Ptr WlDisplay -- ^ display
+                                                                           -> IO VkBool32
+vkGetPhysicalDeviceWaylandPresentationSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceWaylandPresentationSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceWaylandPresentationSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , struct wl_display* display
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
                vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe ::
@@ -134,6 +368,74 @@
                                 -> Word32 -- ^ queueFamilyIndex
                                           -> Ptr WlDisplay -- ^ display
                                                            -> IO VkBool32
+
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , struct wl_display* display
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceWaylandPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceWaylandPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceWaylandPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceWaylandPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceWaylandPresentationSupportKHR
+--
+vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe ::
+                                                     VkPhysicalDevice -- ^ physicalDevice
+                                                                      ->
+                                                       Word32 -- ^ queueFamilyIndex
+                                                              -> Ptr WlDisplay -- ^ display
+                                                                               -> IO VkBool32
+vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe
+  = vkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceWaylandPresentationSupportKHRSafe #-}
+#endif
+
+-- | > VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
+--   >     , struct wl_display* display
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceWaylandPresentationSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Word32 -- ^ queueFamilyIndex
+                                -> Ptr WlDisplay -- ^ display
+                                                 -> IO VkBool32
+
+type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceWaylandPresentationSupportKHR ::
+               PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR ->
+                 HS_vkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+instance VulkanProc
+           "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
+             = HS_vkGetPhysicalDeviceWaylandPresentationSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceWaylandPresentationSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_WAYLAND_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_keyed_mutex.hs
@@ -25,10 +25,10 @@
 
         -- ** Required extensions: 'VK_KHR_external_memory_win32'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSubmitInfo,
-        module Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoKHR,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.SubmitInfo,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         -- > #include "vk_platform.h"
         VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION,
         pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION,
@@ -36,14 +36,13 @@
         pattern VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR)
        where
-import           GHC.Ptr
-                                                                                      (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoKHR
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import           Graphics.Vulkan.Types.Struct.SubmitInfo
 
 pattern VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_win32_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_win32_surface
        (-- * Vulkan extension: @VK_KHR_win32_surface@
@@ -26,53 +32,86 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkWin32SurfaceCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         -- > #include "vk_platform.h"
+        VkCreateWin32SurfaceKHR, pattern VkCreateWin32SurfaceKHR,
+        HS_vkCreateWin32SurfaceKHR, PFN_vkCreateWin32SurfaceKHR,
         vkCreateWin32SurfaceKHR, vkCreateWin32SurfaceKHRSafe,
+        VkGetPhysicalDeviceWin32PresentationSupportKHR,
+        pattern VkGetPhysicalDeviceWin32PresentationSupportKHR,
+        HS_vkGetPhysicalDeviceWin32PresentationSupportKHR,
+        PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
         vkGetPhysicalDeviceWin32PresentationSupportKHR,
         vkGetPhysicalDeviceWin32PresentationSupportKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_WIN32_SURFACE_SPEC_VERSION,
         pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION,
         VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                  (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkWin32SurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateWin32SurfaceKHR :: CString
+
+pattern VkCreateWin32SurfaceKHR <-
+        (is_VkCreateWin32SurfaceKHR -> True)
+  where VkCreateWin32SurfaceKHR = _VkCreateWin32SurfaceKHR
+
+{-# INLINE _VkCreateWin32SurfaceKHR #-}
+
+_VkCreateWin32SurfaceKHR :: CString
+_VkCreateWin32SurfaceKHR = Ptr "vkCreateWin32SurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateWin32SurfaceKHR #-}
+
+is_VkCreateWin32SurfaceKHR :: CString -> Bool
+is_VkCreateWin32SurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateWin32SurfaceKHR
+
+type VkCreateWin32SurfaceKHR = "vkCreateWin32SurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateWin32SurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateWin32SurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateWin32SurfaceKHR.html vkCreateWin32SurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateWin32SurfaceKHR"
                vkCreateWin32SurfaceKHR ::
                VkInstance -- ^ instance
@@ -83,18 +122,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateWin32SurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateWin32SurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateWin32SurfaceKHR.html vkCreateWin32SurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateWin32SurfaceKHRSafe@ and @vkCreateWin32SurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateWin32SurfaceKHR <- vkGetInstanceProc @VkCreateWin32SurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateWin32SurfaceKHR <- vkGetProc @VkCreateWin32SurfaceKHR
+--
+vkCreateWin32SurfaceKHR ::
+                        VkInstance -- ^ instance
+                                   ->
+                          Ptr VkWin32SurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                          ->
+                            Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                      -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                          -> IO VkResult
+vkCreateWin32SurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateWin32SurfaceKHR)
+
+{-# NOINLINE vkCreateWin32SurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateWin32SurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateWin32SurfaceKHR"
                vkCreateWin32SurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -105,12 +191,119 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateWin32SurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateWin32SurfaceKHRSafe@ and @vkCreateWin32SurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateWin32SurfaceKHR <- vkGetInstanceProc @VkCreateWin32SurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateWin32SurfaceKHR <- vkGetProc @VkCreateWin32SurfaceKHR
+--
+vkCreateWin32SurfaceKHRSafe ::
+                            VkInstance -- ^ instance
+                                       ->
+                              Ptr VkWin32SurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                              ->
+                                Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                          -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                              -> IO VkResult
+vkCreateWin32SurfaceKHRSafe = vkCreateWin32SurfaceKHR
+
+{-# INLINE vkCreateWin32SurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateWin32SurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkWin32SurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceWin32PresentationSupportKHR.html vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR registry at www.khronos.org>
+type HS_vkCreateWin32SurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkWin32SurfaceCreateInfoKHR -- ^ pCreateInfo
+                                       ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateWin32SurfaceKHR =
+     FunPtr HS_vkCreateWin32SurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateWin32SurfaceKHR ::
+               PFN_vkCreateWin32SurfaceKHR -> HS_vkCreateWin32SurfaceKHR
+
+instance VulkanProc "vkCreateWin32SurfaceKHR" where
+        type VkProcType "vkCreateWin32SurfaceKHR" =
+             HS_vkCreateWin32SurfaceKHR
+        vkProcSymbol = _VkCreateWin32SurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateWin32SurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceWin32PresentationSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceWin32PresentationSupportKHR <-
+        (is_VkGetPhysicalDeviceWin32PresentationSupportKHR -> True)
+  where VkGetPhysicalDeviceWin32PresentationSupportKHR
+          = _VkGetPhysicalDeviceWin32PresentationSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceWin32PresentationSupportKHR #-}
+
+_VkGetPhysicalDeviceWin32PresentationSupportKHR :: CString
+_VkGetPhysicalDeviceWin32PresentationSupportKHR
+  = Ptr "vkGetPhysicalDeviceWin32PresentationSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceWin32PresentationSupportKHR #-}
+
+is_VkGetPhysicalDeviceWin32PresentationSupportKHR ::
+                                                  CString -> Bool
+is_VkGetPhysicalDeviceWin32PresentationSupportKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceWin32PresentationSupportKHR
+
+type VkGetPhysicalDeviceWin32PresentationSupportKHR =
+     "vkGetPhysicalDeviceWin32PresentationSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceWin32PresentationSupportKHR"
                vkGetPhysicalDeviceWin32PresentationSupportKHR ::
@@ -118,18 +311,119 @@
                                 -> Word32 -- ^ queueFamilyIndex
                                           -> IO VkBool32
 
--- | > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     )
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceWin32PresentationSupportKHR.html vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceWin32PresentationSupportKHRSafe@ and @vkGetPhysicalDeviceWin32PresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceWin32PresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceWin32PresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceWin32PresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceWin32PresentationSupportKHR
+--
+vkGetPhysicalDeviceWin32PresentationSupportKHR ::
+                                               VkPhysicalDevice -- ^ physicalDevice
+                                                                -> Word32 -- ^ queueFamilyIndex
+                                                                          -> IO VkBool32
+vkGetPhysicalDeviceWin32PresentationSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceWin32PresentationSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceWin32PresentationSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceWin32PresentationSupportKHR"
                vkGetPhysicalDeviceWin32PresentationSupportKHRSafe ::
                VkPhysicalDevice -- ^ physicalDevice
                                 -> Word32 -- ^ queueFamilyIndex
                                           -> IO VkBool32
+
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceWin32PresentationSupportKHRSafe@ and @vkGetPhysicalDeviceWin32PresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceWin32PresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceWin32PresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceWin32PresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceWin32PresentationSupportKHR
+--
+vkGetPhysicalDeviceWin32PresentationSupportKHRSafe ::
+                                                   VkPhysicalDevice -- ^ physicalDevice
+                                                                    -> Word32 -- ^ queueFamilyIndex
+                                                                              -> IO VkBool32
+vkGetPhysicalDeviceWin32PresentationSupportKHRSafe
+  = vkGetPhysicalDeviceWin32PresentationSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceWin32PresentationSupportKHRSafe #-}
+#endif
+
+-- | > VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceWin32PresentationSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      -> Word32 -- ^ queueFamilyIndex
+                                -> IO VkBool32
+
+type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceWin32PresentationSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceWin32PresentationSupportKHR ::
+               PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR ->
+                 HS_vkGetPhysicalDeviceWin32PresentationSupportKHR
+
+instance VulkanProc
+           "vkGetPhysicalDeviceWin32PresentationSupportKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceWin32PresentationSupportKHR" =
+             HS_vkGetPhysicalDeviceWin32PresentationSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceWin32PresentationSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceWin32PresentationSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_WIN32_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xcb_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_xcb_surface
        (-- * Vulkan extension: @VK_KHR_xcb_surface@
@@ -26,53 +32,85 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkXcbSurfaceCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PlatformXcbKhr,
         -- > #include "vk_platform.h"
+        VkCreateXcbSurfaceKHR, pattern VkCreateXcbSurfaceKHR,
+        HS_vkCreateXcbSurfaceKHR, PFN_vkCreateXcbSurfaceKHR,
         vkCreateXcbSurfaceKHR, vkCreateXcbSurfaceKHRSafe,
+        VkGetPhysicalDeviceXcbPresentationSupportKHR,
+        pattern VkGetPhysicalDeviceXcbPresentationSupportKHR,
+        HS_vkGetPhysicalDeviceXcbPresentationSupportKHR,
+        PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
         vkGetPhysicalDeviceXcbPresentationSupportKHR,
         vkGetPhysicalDeviceXcbPresentationSupportKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_XCB_SURFACE_SPEC_VERSION,
         pattern VK_KHR_XCB_SURFACE_SPEC_VERSION,
         VK_KHR_XCB_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_XCB_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkXcbSurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformXcbKhr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateXcbSurfaceKHR :: CString
+
+pattern VkCreateXcbSurfaceKHR <- (is_VkCreateXcbSurfaceKHR -> True)
+  where VkCreateXcbSurfaceKHR = _VkCreateXcbSurfaceKHR
+
+{-# INLINE _VkCreateXcbSurfaceKHR #-}
+
+_VkCreateXcbSurfaceKHR :: CString
+_VkCreateXcbSurfaceKHR = Ptr "vkCreateXcbSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateXcbSurfaceKHR #-}
+
+is_VkCreateXcbSurfaceKHR :: CString -> Bool
+is_VkCreateXcbSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateXcbSurfaceKHR
+
+type VkCreateXcbSurfaceKHR = "vkCreateXcbSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateXcbSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateXcbSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateXcbSurfaceKHR.html vkCreateXcbSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateXcbSurfaceKHR"
                vkCreateXcbSurfaceKHR ::
                VkInstance -- ^ instance
@@ -83,18 +121,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateXcbSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateXcbSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateXcbSurfaceKHR.html vkCreateXcbSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateXcbSurfaceKHRSafe@ and @vkCreateXcbSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateXcbSurfaceKHR <- vkGetInstanceProc @VkCreateXcbSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateXcbSurfaceKHR <- vkGetProc @VkCreateXcbSurfaceKHR
+--
+vkCreateXcbSurfaceKHR ::
+                      VkInstance -- ^ instance
+                                 ->
+                        Ptr VkXcbSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                      ->
+                          Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                    -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                        -> IO VkResult
+vkCreateXcbSurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateXcbSurfaceKHR)
+
+{-# NOINLINE vkCreateXcbSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateXcbSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateXcbSurfaceKHR"
                vkCreateXcbSurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -105,14 +190,118 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , xcb_connection_t* connection
---   >     , xcb_visualid_t visual_id
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateXcbSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateXcbSurfaceKHRSafe@ and @vkCreateXcbSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateXcbSurfaceKHR <- vkGetInstanceProc @VkCreateXcbSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateXcbSurfaceKHR <- vkGetProc @VkCreateXcbSurfaceKHR
+--
+vkCreateXcbSurfaceKHRSafe ::
+                          VkInstance -- ^ instance
+                                     ->
+                            Ptr VkXcbSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                          ->
+                              Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                        -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                            -> IO VkResult
+vkCreateXcbSurfaceKHRSafe = vkCreateXcbSurfaceKHR
+
+{-# INLINE vkCreateXcbSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateXcbSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkXcbSurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateXcbSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkXcbSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                     ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateXcbSurfaceKHR = FunPtr HS_vkCreateXcbSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateXcbSurfaceKHR ::
+               PFN_vkCreateXcbSurfaceKHR -> HS_vkCreateXcbSurfaceKHR
+
+instance VulkanProc "vkCreateXcbSurfaceKHR" where
+        type VkProcType "vkCreateXcbSurfaceKHR" = HS_vkCreateXcbSurfaceKHR
+        vkProcSymbol = _VkCreateXcbSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateXcbSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceXcbPresentationSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceXcbPresentationSupportKHR <-
+        (is_VkGetPhysicalDeviceXcbPresentationSupportKHR -> True)
+  where VkGetPhysicalDeviceXcbPresentationSupportKHR
+          = _VkGetPhysicalDeviceXcbPresentationSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceXcbPresentationSupportKHR #-}
+
+_VkGetPhysicalDeviceXcbPresentationSupportKHR :: CString
+_VkGetPhysicalDeviceXcbPresentationSupportKHR
+  = Ptr "vkGetPhysicalDeviceXcbPresentationSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceXcbPresentationSupportKHR #-}
+
+is_VkGetPhysicalDeviceXcbPresentationSupportKHR :: CString -> Bool
+is_VkGetPhysicalDeviceXcbPresentationSupportKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceXcbPresentationSupportKHR
+
+type VkGetPhysicalDeviceXcbPresentationSupportKHR =
+     "vkGetPhysicalDeviceXcbPresentationSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , xcb_connection_t* connection
+-- >     , xcb_visualid_t visual_id
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceXcbPresentationSupportKHR"
                vkGetPhysicalDeviceXcbPresentationSupportKHR ::
@@ -123,14 +312,58 @@
                                               -> XcbVisualidT -- ^ visual_id
                                                               -> IO VkBool32
 
--- | > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , xcb_connection_t* connection
---   >     , xcb_visualid_t visual_id
---   >     )
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , xcb_connection_t* connection
+-- >     , xcb_visualid_t visual_id
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceXcbPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceXcbPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceXcbPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceXcbPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceXcbPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceXcbPresentationSupportKHR
+--
+vkGetPhysicalDeviceXcbPresentationSupportKHR ::
+                                             VkPhysicalDevice -- ^ physicalDevice
+                                                              ->
+                                               Word32 -- ^ queueFamilyIndex
+                                                      ->
+                                                 Ptr XcbConnectionT -- ^ connection
+                                                                    -> XcbVisualidT -- ^ visual_id
+                                                                                    -> IO VkBool32
+vkGetPhysicalDeviceXcbPresentationSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceXcbPresentationSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceXcbPresentationSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , xcb_connection_t* connection
+-- >     , xcb_visualid_t visual_id
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceXcbPresentationSupportKHR"
                vkGetPhysicalDeviceXcbPresentationSupportKHRSafe ::
@@ -140,6 +373,80 @@
                         -> Ptr XcbConnectionT -- ^ connection
                                               -> XcbVisualidT -- ^ visual_id
                                                               -> IO VkBool32
+
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , xcb_connection_t* connection
+-- >     , xcb_visualid_t visual_id
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceXcbPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceXcbPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceXcbPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceXcbPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceXcbPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceXcbPresentationSupportKHR
+--
+vkGetPhysicalDeviceXcbPresentationSupportKHRSafe ::
+                                                 VkPhysicalDevice -- ^ physicalDevice
+                                                                  ->
+                                                   Word32 -- ^ queueFamilyIndex
+                                                          ->
+                                                     Ptr XcbConnectionT -- ^ connection
+                                                                        ->
+                                                       XcbVisualidT -- ^ visual_id
+                                                                    -> IO VkBool32
+vkGetPhysicalDeviceXcbPresentationSupportKHRSafe
+  = vkGetPhysicalDeviceXcbPresentationSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceXcbPresentationSupportKHRSafe #-}
+#endif
+
+-- | > VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
+--   >     , xcb_connection_t* connection
+--   >     , xcb_visualid_t visual_id
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceXcbPresentationSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Word32 -- ^ queueFamilyIndex
+              -> Ptr XcbConnectionT -- ^ connection
+                                    -> XcbVisualidT -- ^ visual_id
+                                                    -> IO VkBool32
+
+type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceXcbPresentationSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceXcbPresentationSupportKHR ::
+               PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR ->
+                 HS_vkGetPhysicalDeviceXcbPresentationSupportKHR
+
+instance VulkanProc "vkGetPhysicalDeviceXcbPresentationSupportKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceXcbPresentationSupportKHR" =
+             HS_vkGetPhysicalDeviceXcbPresentationSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceXcbPresentationSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceXcbPresentationSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_XCB_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_KHR_xlib_surface.hs
@@ -1,9 +1,15 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
+{-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE CPP                      #-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeApplications         #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_KHR_xlib_surface
        (-- * Vulkan extension: @VK_KHR_xlib_surface@
@@ -26,53 +32,86 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkXlibSurfaceCreateInfoKHR,
+        module Graphics.Vulkan.Types.Struct.PlatformXlibKhr,
         -- > #include "vk_platform.h"
+        VkCreateXlibSurfaceKHR, pattern VkCreateXlibSurfaceKHR,
+        HS_vkCreateXlibSurfaceKHR, PFN_vkCreateXlibSurfaceKHR,
         vkCreateXlibSurfaceKHR, vkCreateXlibSurfaceKHRSafe,
+        VkGetPhysicalDeviceXlibPresentationSupportKHR,
+        pattern VkGetPhysicalDeviceXlibPresentationSupportKHR,
+        HS_vkGetPhysicalDeviceXlibPresentationSupportKHR,
+        PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
         vkGetPhysicalDeviceXlibPresentationSupportKHR,
         vkGetPhysicalDeviceXlibPresentationSupportKHRSafe,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
         module Graphics.Vulkan.Types.Include,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_KHR_XLIB_SURFACE_SPEC_VERSION,
         pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION,
         VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
         pattern VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR)
        where
-import           GHC.Ptr                                                 (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
 import           Graphics.Vulkan.Types.Include
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkXlibSurfaceCreateInfoKHR
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformXlibKhr
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
 
--- | Success codes: 'VK_SUCCESS'.
+pattern VkCreateXlibSurfaceKHR :: CString
+
+pattern VkCreateXlibSurfaceKHR <-
+        (is_VkCreateXlibSurfaceKHR -> True)
+  where VkCreateXlibSurfaceKHR = _VkCreateXlibSurfaceKHR
+
+{-# INLINE _VkCreateXlibSurfaceKHR #-}
+
+_VkCreateXlibSurfaceKHR :: CString
+_VkCreateXlibSurfaceKHR = Ptr "vkCreateXlibSurfaceKHR\NUL"#
+
+{-# INLINE is_VkCreateXlibSurfaceKHR #-}
+
+is_VkCreateXlibSurfaceKHR :: CString -> Bool
+is_VkCreateXlibSurfaceKHR
+  = (EQ ==) . cmpCStrings _VkCreateXlibSurfaceKHR
+
+type VkCreateXlibSurfaceKHR = "vkCreateXlibSurfaceKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateXlibSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateXlibSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateXlibSurfaceKHR.html vkCreateXlibSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe "vkCreateXlibSurfaceKHR"
                vkCreateXlibSurfaceKHR ::
                VkInstance -- ^ instance
@@ -83,18 +122,65 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
 --
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
 --
---   > VkResult vkCreateXlibSurfaceKHR
---   >     ( VkInstance instance
---   >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
+-- > VkResult vkCreateXlibSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateXlibSurfaceKHR.html vkCreateXlibSurfaceKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateXlibSurfaceKHRSafe@ and @vkCreateXlibSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateXlibSurfaceKHR <- vkGetInstanceProc @VkCreateXlibSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateXlibSurfaceKHR <- vkGetProc @VkCreateXlibSurfaceKHR
+--
+vkCreateXlibSurfaceKHR ::
+                       VkInstance -- ^ instance
+                                  ->
+                         Ptr VkXlibSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                        ->
+                           Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                     -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                         -> IO VkResult
+vkCreateXlibSurfaceKHR
+  = unsafeDupablePerformIO (vkGetProc @VkCreateXlibSurfaceKHR)
+
+{-# NOINLINE vkCreateXlibSurfaceKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateXlibSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe "vkCreateXlibSurfaceKHR"
                vkCreateXlibSurfaceKHRSafe ::
                VkInstance -- ^ instance
@@ -105,14 +191,119 @@
                                              -> Ptr VkSurfaceKHR -- ^ pSurface
                                                                  -> IO VkResult
 
--- | > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , Display* dpy
---   >     , VisualID visualID
+#else
+-- |
+-- Success codes: 'VK_SUCCESS'.
+--
+-- Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+-- > VkResult vkCreateXlibSurfaceKHR
+-- >     ( VkInstance instance
+-- >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
+-- >     , const VkAllocationCallbacks* pAllocator
+-- >     , VkSurfaceKHR* pSurface
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkCreateXlibSurfaceKHRSafe@ and @vkCreateXlibSurfaceKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myCreateXlibSurfaceKHR <- vkGetInstanceProc @VkCreateXlibSurfaceKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myCreateXlibSurfaceKHR <- vkGetProc @VkCreateXlibSurfaceKHR
+--
+vkCreateXlibSurfaceKHRSafe ::
+                           VkInstance -- ^ instance
+                                      ->
+                             Ptr VkXlibSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                                            ->
+                               Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                         -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                                             -> IO VkResult
+vkCreateXlibSurfaceKHRSafe = vkCreateXlibSurfaceKHR
+
+{-# INLINE vkCreateXlibSurfaceKHRSafe #-}
+#endif
+
+-- | Success codes: 'VK_SUCCESS'.
+--
+--   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
+--
+--   > VkResult vkCreateXlibSurfaceKHR
+--   >     ( VkInstance instance
+--   >     , const VkXlibSurfaceCreateInfoKHR* pCreateInfo
+--   >     , const VkAllocationCallbacks* pAllocator
+--   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR registry at www.khronos.org>
+type HS_vkCreateXlibSurfaceKHR =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkXlibSurfaceCreateInfoKHR -- ^ pCreateInfo
+                                      ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateXlibSurfaceKHR = FunPtr HS_vkCreateXlibSurfaceKHR
+
+foreign import ccall "dynamic" unwrapVkCreateXlibSurfaceKHR ::
+               PFN_vkCreateXlibSurfaceKHR -> HS_vkCreateXlibSurfaceKHR
+
+instance VulkanProc "vkCreateXlibSurfaceKHR" where
+        type VkProcType "vkCreateXlibSurfaceKHR" =
+             HS_vkCreateXlibSurfaceKHR
+        vkProcSymbol = _VkCreateXlibSurfaceKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateXlibSurfaceKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceXlibPresentationSupportKHR :: CString
+
+pattern VkGetPhysicalDeviceXlibPresentationSupportKHR <-
+        (is_VkGetPhysicalDeviceXlibPresentationSupportKHR -> True)
+  where VkGetPhysicalDeviceXlibPresentationSupportKHR
+          = _VkGetPhysicalDeviceXlibPresentationSupportKHR
+
+{-# INLINE _VkGetPhysicalDeviceXlibPresentationSupportKHR #-}
+
+_VkGetPhysicalDeviceXlibPresentationSupportKHR :: CString
+_VkGetPhysicalDeviceXlibPresentationSupportKHR
+  = Ptr "vkGetPhysicalDeviceXlibPresentationSupportKHR\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceXlibPresentationSupportKHR #-}
+
+is_VkGetPhysicalDeviceXlibPresentationSupportKHR :: CString -> Bool
+is_VkGetPhysicalDeviceXlibPresentationSupportKHR
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceXlibPresentationSupportKHR
+
+type VkGetPhysicalDeviceXlibPresentationSupportKHR =
+     "vkGetPhysicalDeviceXlibPresentationSupportKHR"
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , Display* dpy
+-- >     , VisualID visualID
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall unsafe
                "vkGetPhysicalDeviceXlibPresentationSupportKHR"
                vkGetPhysicalDeviceXlibPresentationSupportKHR ::
@@ -123,14 +314,57 @@
                                        -> VisualID -- ^ visualID
                                                    -> IO VkBool32
 
--- | > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
---   >     ( VkPhysicalDevice physicalDevice
---   >     , uint32_t queueFamilyIndex
---   >     , Display* dpy
---   >     , VisualID visualID
---   >     )
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , Display* dpy
+-- >     , VisualID visualID
+-- >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceXlibPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceXlibPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceXlibPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceXlibPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceXlibPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceXlibPresentationSupportKHR
+--
+vkGetPhysicalDeviceXlibPresentationSupportKHR ::
+                                              VkPhysicalDevice -- ^ physicalDevice
+                                                               ->
+                                                Word32 -- ^ queueFamilyIndex
+                                                       -> Ptr Display -- ^ dpy
+                                                                      -> VisualID -- ^ visualID
+                                                                                  -> IO VkBool32
+vkGetPhysicalDeviceXlibPresentationSupportKHR
+  = unsafeDupablePerformIO
+      (vkGetProc @VkGetPhysicalDeviceXlibPresentationSupportKHR)
+
+{-# NOINLINE vkGetPhysicalDeviceXlibPresentationSupportKHR #-}
+#endif
+
+#ifdef NATIVE_FFI_VK_VERSION_1_0
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , Display* dpy
+-- >     , VisualID visualID
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is enabled, so this function is implemented
+--           as a @foreign import@ call to C Vulkan loader.
+--
 foreign import ccall safe
                "vkGetPhysicalDeviceXlibPresentationSupportKHR"
                vkGetPhysicalDeviceXlibPresentationSupportKHRSafe ::
@@ -140,6 +374,78 @@
                         -> Ptr Display -- ^ dpy
                                        -> VisualID -- ^ visualID
                                                    -> IO VkBool32
+
+#else
+-- |
+-- > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
+-- >     ( VkPhysicalDevice physicalDevice
+-- >     , uint32_t queueFamilyIndex
+-- >     , Display* dpy
+-- >     , VisualID visualID
+-- >     )
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+--
+-- __Note:__ flag @useNativeFFI-1-0@ is disabled, so this function is looked up
+--           dynamically at runtime;
+--           @vkGetPhysicalDeviceXlibPresentationSupportKHRSafe@ and @vkGetPhysicalDeviceXlibPresentationSupportKHR@ are synonyms.
+--
+-- Independently of the flag setting, you can lookup the function manually at runtime:
+--
+-- > myGetPhysicalDeviceXlibPresentationSupportKHR <- vkGetInstanceProc @VkGetPhysicalDeviceXlibPresentationSupportKHR vkInstance
+--
+-- or less efficient:
+--
+-- > myGetPhysicalDeviceXlibPresentationSupportKHR <- vkGetProc @VkGetPhysicalDeviceXlibPresentationSupportKHR
+--
+vkGetPhysicalDeviceXlibPresentationSupportKHRSafe ::
+                                                  VkPhysicalDevice -- ^ physicalDevice
+                                                                   ->
+                                                    Word32 -- ^ queueFamilyIndex
+                                                           -> Ptr Display -- ^ dpy
+                                                                          -> VisualID -- ^ visualID
+                                                                                      -> IO VkBool32
+vkGetPhysicalDeviceXlibPresentationSupportKHRSafe
+  = vkGetPhysicalDeviceXlibPresentationSupportKHR
+
+{-# INLINE vkGetPhysicalDeviceXlibPresentationSupportKHRSafe #-}
+#endif
+
+-- | > VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR
+--   >     ( VkPhysicalDevice physicalDevice
+--   >     , uint32_t queueFamilyIndex
+--   >     , Display* dpy
+--   >     , VisualID visualID
+--   >     )
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceXlibPresentationSupportKHR =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Word32 -- ^ queueFamilyIndex
+              -> Ptr Display -- ^ dpy
+                             -> VisualID -- ^ visualID
+                                         -> IO VkBool32
+
+type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR =
+     FunPtr HS_vkGetPhysicalDeviceXlibPresentationSupportKHR
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceXlibPresentationSupportKHR ::
+               PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR ->
+                 HS_vkGetPhysicalDeviceXlibPresentationSupportKHR
+
+instance VulkanProc "vkGetPhysicalDeviceXlibPresentationSupportKHR"
+         where
+        type VkProcType "vkGetPhysicalDeviceXlibPresentationSupportKHR" =
+             HS_vkGetPhysicalDeviceXlibPresentationSupportKHR
+        vkProcSymbol = _VkGetPhysicalDeviceXlibPresentationSupportKHR
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceXlibPresentationSupportKHR
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_KHR_XLIB_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_MVK_ios_surface.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_MVK_ios_surface
        (-- * Vulkan extension: @VK_MVK_ios_surface@
@@ -27,58 +30,56 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkIOSSurfaceCreateInfoMVK,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PlatformIosMvk,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkCreateIOSSurfaceMVK, vkCreateIOSSurfaceMVKSafe,
+        VkCreateIOSSurfaceMVK, pattern VkCreateIOSSurfaceMVK,
+        HS_vkCreateIOSSurfaceMVK, PFN_vkCreateIOSSurfaceMVK,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_MVK_IOS_SURFACE_SPEC_VERSION,
         pattern VK_MVK_IOS_SURFACE_SPEC_VERSION,
         VK_MVK_IOS_SURFACE_EXTENSION_NAME,
         pattern VK_MVK_IOS_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK)
        where
-import           GHC.Ptr                                                (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkIOSSurfaceCreateInfoMVK
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformIosMvk
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
---
---   > VkResult vkCreateIOSSurfaceMVK
---   >     ( VkInstance instance
---   >     , const VkIOSSurfaceCreateInfoMVK* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateIOSSurfaceMVK.html vkCreateIOSSurfaceMVK registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateIOSSurfaceMVK"
-               vkCreateIOSSurfaceMVK ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkIOSSurfaceCreateInfoMVK -- ^ pCreateInfo
-                                               ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+pattern VkCreateIOSSurfaceMVK :: CString
 
+pattern VkCreateIOSSurfaceMVK <- (is_VkCreateIOSSurfaceMVK -> True)
+  where VkCreateIOSSurfaceMVK = _VkCreateIOSSurfaceMVK
+
+{-# INLINE _VkCreateIOSSurfaceMVK #-}
+
+_VkCreateIOSSurfaceMVK :: CString
+_VkCreateIOSSurfaceMVK = Ptr "vkCreateIOSSurfaceMVK\NUL"#
+
+{-# INLINE is_VkCreateIOSSurfaceMVK #-}
+
+is_VkCreateIOSSurfaceMVK :: CString -> Bool
+is_VkCreateIOSSurfaceMVK
+  = (EQ ==) . cmpCStrings _VkCreateIOSSurfaceMVK
+
+type VkCreateIOSSurfaceMVK = "vkCreateIOSSurfaceMVK"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
@@ -90,16 +91,29 @@
 --   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateIOSSurfaceMVK.html vkCreateIOSSurfaceMVK registry at www.khronos.org>
-foreign import ccall safe "vkCreateIOSSurfaceMVK"
-               vkCreateIOSSurfaceMVKSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkIOSSurfaceCreateInfoMVK -- ^ pCreateInfo
-                                               ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK registry at www.khronos.org>
+type HS_vkCreateIOSSurfaceMVK =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkIOSSurfaceCreateInfoMVK -- ^ pCreateInfo
+                                     ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateIOSSurfaceMVK = FunPtr HS_vkCreateIOSSurfaceMVK
+
+foreign import ccall "dynamic" unwrapVkCreateIOSSurfaceMVK ::
+               PFN_vkCreateIOSSurfaceMVK -> HS_vkCreateIOSSurfaceMVK
+
+instance VulkanProc "vkCreateIOSSurfaceMVK" where
+        type VkProcType "vkCreateIOSSurfaceMVK" = HS_vkCreateIOSSurfaceMVK
+        vkProcSymbol = _VkCreateIOSSurfaceMVK
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateIOSSurfaceMVK
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_MVK_IOS_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_MVK_macos_surface.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_MVK_macos_surface
        (-- * Vulkan extension: @VK_MVK_macos_surface@
@@ -27,58 +30,57 @@
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkMacOSSurfaceCreateInfoMVK,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PlatformMacosMvk,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkCreateMacOSSurfaceMVK, vkCreateMacOSSurfaceMVKSafe,
+        VkCreateMacOSSurfaceMVK, pattern VkCreateMacOSSurfaceMVK,
+        HS_vkCreateMacOSSurfaceMVK, PFN_vkCreateMacOSSurfaceMVK,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_MVK_MACOS_SURFACE_SPEC_VERSION,
         pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION,
         VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
         pattern VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK)
        where
-import           GHC.Ptr                                                  (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkMacOSSurfaceCreateInfoMVK
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformMacosMvk
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
---
---   > VkResult vkCreateMacOSSurfaceMVK
---   >     ( VkInstance instance
---   >     , const VkMacOSSurfaceCreateInfoMVK* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateMacOSSurfaceMVK.html vkCreateMacOSSurfaceMVK registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateMacOSSurfaceMVK"
-               vkCreateMacOSSurfaceMVK ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkMacOSSurfaceCreateInfoMVK -- ^ pCreateInfo
-                                                 ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+pattern VkCreateMacOSSurfaceMVK :: CString
 
+pattern VkCreateMacOSSurfaceMVK <-
+        (is_VkCreateMacOSSurfaceMVK -> True)
+  where VkCreateMacOSSurfaceMVK = _VkCreateMacOSSurfaceMVK
+
+{-# INLINE _VkCreateMacOSSurfaceMVK #-}
+
+_VkCreateMacOSSurfaceMVK :: CString
+_VkCreateMacOSSurfaceMVK = Ptr "vkCreateMacOSSurfaceMVK\NUL"#
+
+{-# INLINE is_VkCreateMacOSSurfaceMVK #-}
+
+is_VkCreateMacOSSurfaceMVK :: CString -> Bool
+is_VkCreateMacOSSurfaceMVK
+  = (EQ ==) . cmpCStrings _VkCreateMacOSSurfaceMVK
+
+type VkCreateMacOSSurfaceMVK = "vkCreateMacOSSurfaceMVK"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
@@ -90,16 +92,31 @@
 --   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateMacOSSurfaceMVK.html vkCreateMacOSSurfaceMVK registry at www.khronos.org>
-foreign import ccall safe "vkCreateMacOSSurfaceMVK"
-               vkCreateMacOSSurfaceMVKSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkMacOSSurfaceCreateInfoMVK -- ^ pCreateInfo
-                                                 ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK registry at www.khronos.org>
+type HS_vkCreateMacOSSurfaceMVK =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkMacOSSurfaceCreateInfoMVK -- ^ pCreateInfo
+                                       ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateMacOSSurfaceMVK =
+     FunPtr HS_vkCreateMacOSSurfaceMVK
+
+foreign import ccall "dynamic" unwrapVkCreateMacOSSurfaceMVK ::
+               PFN_vkCreateMacOSSurfaceMVK -> HS_vkCreateMacOSSurfaceMVK
+
+instance VulkanProc "vkCreateMacOSSurfaceMVK" where
+        type VkProcType "vkCreateMacOSSurfaceMVK" =
+             HS_vkCreateMacOSSurfaceMVK
+        vkProcSymbol = _VkCreateMacOSSurfaceMVK
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateMacOSSurfaceMVK
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_MVK_MACOS_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs b/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NN_vi_surface.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_NN_vi_surface
        (-- * Vulkan extension: @VK_NN_vi_surface@
@@ -26,59 +29,56 @@
 
         -- ** Required extensions: 'VK_KHR_surface'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkViSurfaceCreateInfoNN,
+        module Graphics.Vulkan.Types.Struct.PlatformViNn,
         -- > #include "vk_platform.h"
-        vkCreateViSurfaceNN, vkCreateViSurfaceNNSafe,
+        VkCreateViSurfaceNN, pattern VkCreateViSurfaceNN,
+        HS_vkCreateViSurfaceNN, PFN_vkCreateViSurfaceNN,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_NN_VI_SURFACE_SPEC_VERSION,
         pattern VK_NN_VI_SURFACE_SPEC_VERSION,
         VK_NN_VI_SURFACE_EXTENSION_NAME,
         pattern VK_NN_VI_SURFACE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN)
        where
-import           GHC.Ptr                                              (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkViSurfaceCreateInfoNN
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.PlatformViNn
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
---
---   > VkResult vkCreateViSurfaceNN
---   >     ( VkInstance instance
---   >     , const VkViSurfaceCreateInfoNN* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkSurfaceKHR* pSurface
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateViSurfaceNN.html vkCreateViSurfaceNN registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateViSurfaceNN"
-               vkCreateViSurfaceNN ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkViSurfaceCreateInfoNN -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+pattern VkCreateViSurfaceNN :: CString
 
+pattern VkCreateViSurfaceNN <- (is_VkCreateViSurfaceNN -> True)
+  where VkCreateViSurfaceNN = _VkCreateViSurfaceNN
+
+{-# INLINE _VkCreateViSurfaceNN #-}
+
+_VkCreateViSurfaceNN :: CString
+_VkCreateViSurfaceNN = Ptr "vkCreateViSurfaceNN\NUL"#
+
+{-# INLINE is_VkCreateViSurfaceNN #-}
+
+is_VkCreateViSurfaceNN :: CString -> Bool
+is_VkCreateViSurfaceNN = (EQ ==) . cmpCStrings _VkCreateViSurfaceNN
+
+type VkCreateViSurfaceNN = "vkCreateViSurfaceNN"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_NATIVE_WINDOW_IN_USE_KHR'.
@@ -90,16 +90,29 @@
 --   >     , VkSurfaceKHR* pSurface
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateViSurfaceNN.html vkCreateViSurfaceNN registry at www.khronos.org>
-foreign import ccall safe "vkCreateViSurfaceNN"
-               vkCreateViSurfaceNNSafe ::
-               VkInstance -- ^ instance
-                          ->
-                 Ptr VkViSurfaceCreateInfoNN -- ^ pCreateInfo
-                                             ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkSurfaceKHR -- ^ pSurface
-                                                                 -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateViSurfaceNN vkCreateViSurfaceNN registry at www.khronos.org>
+type HS_vkCreateViSurfaceNN =
+     VkInstance -- ^ instance
+                ->
+       Ptr VkViSurfaceCreateInfoNN -- ^ pCreateInfo
+                                   ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkSurfaceKHR -- ^ pSurface
+                                                       -> IO VkResult
+
+type PFN_vkCreateViSurfaceNN = FunPtr HS_vkCreateViSurfaceNN
+
+foreign import ccall "dynamic" unwrapVkCreateViSurfaceNN ::
+               PFN_vkCreateViSurfaceNN -> HS_vkCreateViSurfaceNN
+
+instance VulkanProc "vkCreateViSurfaceNN" where
+        type VkProcType "vkCreateViSurfaceNN" = HS_vkCreateViSurfaceNN
+        vkProcSymbol = _VkCreateViSurfaceNN
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateViSurfaceNN
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_NN_VI_SURFACE_SPEC_VERSION :: (Num a, Eq a) => a
 
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
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_NVX_device_generated_commands
        (-- * Vulkan extension: @VK_NVX_device_generated_commands@
@@ -19,49 +22,50 @@
         --
         -- Extension number: @87@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkCmdProcessCommandsInfoNVX,
-        module Graphics.Vulkan.Types.Struct.VkCmdReserveSpaceForCommandsInfoNVX,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsFeaturesNVX,
-        module Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsLimitsNVX,
-        module Graphics.Vulkan.Types.Enum.VkIndexType,
-        module Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutCreateInfoNVX,
-        module Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutTokenNVX,
-        module Graphics.Vulkan.Types.Enum.VkIndirectCommandsLayoutUsageFlagsNVX,
-        module Graphics.Vulkan.Types.Struct.VkIndirectCommandsTokenNVX,
-        module Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX,
-        module Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX,
-        module Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTableCreateInfoNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTableDescriptorSetEntryNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTableEntryNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTableIndexBufferEntryNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTablePipelineEntryNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTablePushConstantEntryNVX,
-        module Graphics.Vulkan.Types.Struct.VkObjectTableVertexBufferEntryNVX,
-        module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint,
-        module Graphics.Vulkan.Types.Enum.VkShaderStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Cmd,
+        module Graphics.Vulkan.Types.Struct.Device,
+        module Graphics.Vulkan.Types.Enum.IndexType,
+        module Graphics.Vulkan.Types.Struct.IndirectCommands,
+        module Graphics.Vulkan.Types.Enum.IndirectCommands,
+        module Graphics.Vulkan.Types.Enum.Object,
+        module Graphics.Vulkan.Types.Struct.ObjectTable,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.Shader,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkCmdProcessCommandsNVX, vkCmdProcessCommandsNVXSafe,
-        vkCmdReserveSpaceForCommandsNVX,
-        vkCmdReserveSpaceForCommandsNVXSafe,
-        vkCreateIndirectCommandsLayoutNVX,
-        vkCreateIndirectCommandsLayoutNVXSafe,
-        vkDestroyIndirectCommandsLayoutNVX,
-        vkDestroyIndirectCommandsLayoutNVXSafe, vkCreateObjectTableNVX,
-        vkCreateObjectTableNVXSafe, vkDestroyObjectTableNVX,
-        vkDestroyObjectTableNVXSafe, vkRegisterObjectsNVX,
-        vkRegisterObjectsNVXSafe, vkUnregisterObjectsNVX,
-        vkUnregisterObjectsNVXSafe,
-        vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,
-        vkGetPhysicalDeviceGeneratedCommandsPropertiesNVXSafe,
+        VkCmdProcessCommandsNVX, pattern VkCmdProcessCommandsNVX,
+        HS_vkCmdProcessCommandsNVX, PFN_vkCmdProcessCommandsNVX,
+        VkCmdReserveSpaceForCommandsNVX,
+        pattern VkCmdReserveSpaceForCommandsNVX,
+        HS_vkCmdReserveSpaceForCommandsNVX,
+        PFN_vkCmdReserveSpaceForCommandsNVX,
+        VkCreateIndirectCommandsLayoutNVX,
+        pattern VkCreateIndirectCommandsLayoutNVX,
+        HS_vkCreateIndirectCommandsLayoutNVX,
+        PFN_vkCreateIndirectCommandsLayoutNVX,
+        VkDestroyIndirectCommandsLayoutNVX,
+        pattern VkDestroyIndirectCommandsLayoutNVX,
+        HS_vkDestroyIndirectCommandsLayoutNVX,
+        PFN_vkDestroyIndirectCommandsLayoutNVX, VkCreateObjectTableNVX,
+        pattern VkCreateObjectTableNVX, HS_vkCreateObjectTableNVX,
+        PFN_vkCreateObjectTableNVX, VkDestroyObjectTableNVX,
+        pattern VkDestroyObjectTableNVX, HS_vkDestroyObjectTableNVX,
+        PFN_vkDestroyObjectTableNVX, VkRegisterObjectsNVX,
+        pattern VkRegisterObjectsNVX, HS_vkRegisterObjectsNVX,
+        PFN_vkRegisterObjectsNVX, VkUnregisterObjectsNVX,
+        pattern VkUnregisterObjectsNVX, HS_vkUnregisterObjectsNVX,
+        PFN_vkUnregisterObjectsNVX,
+        VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,
+        pattern VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,
+        HS_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,
+        PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkInternalAllocationType,
-        module Graphics.Vulkan.Types.Enum.VkResult,
-        module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope,
+        module Graphics.Vulkan.Types.Enum.InternalAllocationType,
+        module Graphics.Vulkan.Types.Enum.Result,
+        module Graphics.Vulkan.Types.Enum.SystemAllocationScope,
         module Graphics.Vulkan.Types.Funcpointers,
         module Graphics.Vulkan.Types.Handles,
-        module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks,
+        module Graphics.Vulkan.Types.Struct.AllocationCallbacks,
         VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION,
         pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION,
         VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME,
@@ -78,134 +82,156 @@
         pattern VK_OBJECT_TYPE_OBJECT_TABLE_NVX,
         pattern VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX)
        where
-import           GHC.Ptr
-                                                                                     (Ptr (..))
+import           GHC.Ptr                                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                      (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags
-                                                                                     (VkAccessBitmask (..),
-                                                                                     VkAccessFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkIndexType
-import           Graphics.Vulkan.Types.Enum.VkIndirectCommandsLayoutUsageFlagsNVX
-import           Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX
-import           Graphics.Vulkan.Types.Enum.VkObjectType
-                                                                                     (VkObjectType (..))
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-                                                                                     (VkPipelineStageBitmask (..),
-                                                                                     VkPipelineStageFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
+import           Graphics.Vulkan.Types.Enum.AccessFlags            (VkAccessBitmask (..),
+                                                                    VkAccessFlagBits)
+import           Graphics.Vulkan.Types.Enum.IndexType
+import           Graphics.Vulkan.Types.Enum.IndirectCommands
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType
+import           Graphics.Vulkan.Types.Enum.Object
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.Shader
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope
 import           Graphics.Vulkan.Types.Funcpointers
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-import           Graphics.Vulkan.Types.Struct.VkCmdProcessCommandsInfoNVX
-import           Graphics.Vulkan.Types.Struct.VkCmdReserveSpaceForCommandsInfoNVX
-import           Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsFeaturesNVX
-import           Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsLimitsNVX
-import           Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutCreateInfoNVX
-import           Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutTokenNVX
-import           Graphics.Vulkan.Types.Struct.VkIndirectCommandsTokenNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTableCreateInfoNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTableDescriptorSetEntryNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTableEntryNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTableIndexBufferEntryNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTablePipelineEntryNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTablePushConstantEntryNVX
-import           Graphics.Vulkan.Types.Struct.VkObjectTableVertexBufferEntryNVX
+import           Graphics.Vulkan.Types.Struct.AllocationCallbacks
+import           Graphics.Vulkan.Types.Struct.Cmd
+import           Graphics.Vulkan.Types.Struct.Device
+import           Graphics.Vulkan.Types.Struct.IndirectCommands
+import           Graphics.Vulkan.Types.Struct.ObjectTable
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @inside@
---
---   > () vkCmdProcessCommandsNVX
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdProcessCommandsNVX.html vkCmdProcessCommandsNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdProcessCommandsNVX"
-               vkCmdProcessCommandsNVX ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCmdProcessCommandsInfoNVX -- ^ pProcessCommandsInfo
-                                                                  -> IO ()
+pattern VkCmdProcessCommandsNVX :: CString
 
--- | queues: 'graphics', 'compute'.
+pattern VkCmdProcessCommandsNVX <-
+        (is_VkCmdProcessCommandsNVX -> True)
+  where VkCmdProcessCommandsNVX = _VkCmdProcessCommandsNVX
+
+{-# INLINE _VkCmdProcessCommandsNVX #-}
+
+_VkCmdProcessCommandsNVX :: CString
+_VkCmdProcessCommandsNVX = Ptr "vkCmdProcessCommandsNVX\NUL"#
+
+{-# INLINE is_VkCmdProcessCommandsNVX #-}
+
+is_VkCmdProcessCommandsNVX :: CString -> Bool
+is_VkCmdProcessCommandsNVX
+  = (EQ ==) . cmpCStrings _VkCmdProcessCommandsNVX
+
+type VkCmdProcessCommandsNVX = "vkCmdProcessCommandsNVX"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @inside@
+--   Renderpass: @inside@
 --
---   > () vkCmdProcessCommandsNVX
+--   > void vkCmdProcessCommandsNVX
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdProcessCommandsNVX.html vkCmdProcessCommandsNVX registry at www.khronos.org>
-foreign import ccall safe "vkCmdProcessCommandsNVX"
-               vkCmdProcessCommandsNVXSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCmdProcessCommandsInfoNVX -- ^ pProcessCommandsInfo
-                                                                  -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX registry at www.khronos.org>
+type HS_vkCmdProcessCommandsNVX =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkCmdProcessCommandsInfoNVX -- ^ pProcessCommandsInfo
+                                                        -> IO ()
 
--- | queues: 'graphics', 'compute'.
---
---   renderpass: @inside@
---
---   > () vkCmdReserveSpaceForCommandsNVX
---   >     ( VkCommandBuffer commandBuffer
---   >     , const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdReserveSpaceForCommandsNVX.html vkCmdReserveSpaceForCommandsNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdReserveSpaceForCommandsNVX"
-               vkCmdReserveSpaceForCommandsNVX ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCmdReserveSpaceForCommandsInfoNVX -- ^ pReserveSpaceInfo
-                                                                          -> IO ()
+type PFN_vkCmdProcessCommandsNVX =
+     FunPtr HS_vkCmdProcessCommandsNVX
 
--- | queues: 'graphics', 'compute'.
+foreign import ccall "dynamic" unwrapVkCmdProcessCommandsNVX ::
+               PFN_vkCmdProcessCommandsNVX -> HS_vkCmdProcessCommandsNVX
+
+instance VulkanProc "vkCmdProcessCommandsNVX" where
+        type VkProcType "vkCmdProcessCommandsNVX" =
+             HS_vkCmdProcessCommandsNVX
+        vkProcSymbol = _VkCmdProcessCommandsNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdProcessCommandsNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCmdReserveSpaceForCommandsNVX :: CString
+
+pattern VkCmdReserveSpaceForCommandsNVX <-
+        (is_VkCmdReserveSpaceForCommandsNVX -> True)
+  where VkCmdReserveSpaceForCommandsNVX
+          = _VkCmdReserveSpaceForCommandsNVX
+
+{-# INLINE _VkCmdReserveSpaceForCommandsNVX #-}
+
+_VkCmdReserveSpaceForCommandsNVX :: CString
+_VkCmdReserveSpaceForCommandsNVX
+  = Ptr "vkCmdReserveSpaceForCommandsNVX\NUL"#
+
+{-# INLINE is_VkCmdReserveSpaceForCommandsNVX #-}
+
+is_VkCmdReserveSpaceForCommandsNVX :: CString -> Bool
+is_VkCmdReserveSpaceForCommandsNVX
+  = (EQ ==) . cmpCStrings _VkCmdReserveSpaceForCommandsNVX
+
+type VkCmdReserveSpaceForCommandsNVX =
+     "vkCmdReserveSpaceForCommandsNVX"
+
+-- | Queues: 'graphics', 'compute'.
 --
---   renderpass: @inside@
+--   Renderpass: @inside@
 --
---   > () vkCmdReserveSpaceForCommandsNVX
+--   > void vkCmdReserveSpaceForCommandsNVX
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdReserveSpaceForCommandsNVX.html vkCmdReserveSpaceForCommandsNVX registry at www.khronos.org>
-foreign import ccall safe "vkCmdReserveSpaceForCommandsNVX"
-               vkCmdReserveSpaceForCommandsNVXSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               -> Ptr VkCmdReserveSpaceForCommandsInfoNVX -- ^ pReserveSpaceInfo
-                                                                          -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX registry at www.khronos.org>
+type HS_vkCmdReserveSpaceForCommandsNVX =
+     VkCommandBuffer -- ^ commandBuffer
+                     -> Ptr VkCmdReserveSpaceForCommandsInfoNVX -- ^ pReserveSpaceInfo
+                                                                -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateIndirectCommandsLayoutNVX
---   >     ( VkDevice device
---   >     , const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateIndirectCommandsLayoutNVX.html vkCreateIndirectCommandsLayoutNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateIndirectCommandsLayoutNVX"
-               vkCreateIndirectCommandsLayoutNVX ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkIndirectCommandsLayoutCreateInfoNVX -- ^ pCreateInfo
-                                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkIndirectCommandsLayoutNVX -- ^ pIndirectCommandsLayout
-                                                     -> IO VkResult
+type PFN_vkCmdReserveSpaceForCommandsNVX =
+     FunPtr HS_vkCmdReserveSpaceForCommandsNVX
 
+foreign import ccall "dynamic"
+               unwrapVkCmdReserveSpaceForCommandsNVX ::
+               PFN_vkCmdReserveSpaceForCommandsNVX ->
+                 HS_vkCmdReserveSpaceForCommandsNVX
+
+instance VulkanProc "vkCmdReserveSpaceForCommandsNVX" where
+        type VkProcType "vkCmdReserveSpaceForCommandsNVX" =
+             HS_vkCmdReserveSpaceForCommandsNVX
+        vkProcSymbol = _VkCmdReserveSpaceForCommandsNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdReserveSpaceForCommandsNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateIndirectCommandsLayoutNVX :: CString
+
+pattern VkCreateIndirectCommandsLayoutNVX <-
+        (is_VkCreateIndirectCommandsLayoutNVX -> True)
+  where VkCreateIndirectCommandsLayoutNVX
+          = _VkCreateIndirectCommandsLayoutNVX
+
+{-# INLINE _VkCreateIndirectCommandsLayoutNVX #-}
+
+_VkCreateIndirectCommandsLayoutNVX :: CString
+_VkCreateIndirectCommandsLayoutNVX
+  = Ptr "vkCreateIndirectCommandsLayoutNVX\NUL"#
+
+{-# INLINE is_VkCreateIndirectCommandsLayoutNVX #-}
+
+is_VkCreateIndirectCommandsLayoutNVX :: CString -> Bool
+is_VkCreateIndirectCommandsLayoutNVX
+  = (EQ ==) . cmpCStrings _VkCreateIndirectCommandsLayoutNVX
+
+type VkCreateIndirectCommandsLayoutNVX =
+     "vkCreateIndirectCommandsLayoutNVX"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -217,70 +243,108 @@
 --   >     , VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateIndirectCommandsLayoutNVX.html vkCreateIndirectCommandsLayoutNVX registry at www.khronos.org>
-foreign import ccall safe "vkCreateIndirectCommandsLayoutNVX"
-               vkCreateIndirectCommandsLayoutNVXSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkIndirectCommandsLayoutCreateInfoNVX -- ^ pCreateInfo
-                                                           ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             ->
-                     Ptr VkIndirectCommandsLayoutNVX -- ^ pIndirectCommandsLayout
-                                                     -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX registry at www.khronos.org>
+type HS_vkCreateIndirectCommandsLayoutNVX =
+     VkDevice -- ^ device
+              ->
+       Ptr VkIndirectCommandsLayoutCreateInfoNVX -- ^ pCreateInfo
+                                                 ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   ->
+           Ptr VkIndirectCommandsLayoutNVX -- ^ pIndirectCommandsLayout
+                                           -> IO VkResult
 
--- | > () vkDestroyIndirectCommandsLayoutNVX
---   >     ( VkDevice device
---   >     , VkIndirectCommandsLayoutNVX indirectCommandsLayout
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyIndirectCommandsLayoutNVX.html vkDestroyIndirectCommandsLayoutNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyIndirectCommandsLayoutNVX"
-               vkDestroyIndirectCommandsLayoutNVX ::
-               VkDevice -- ^ device
-                        ->
-                 VkIndirectCommandsLayoutNVX -- ^ indirectCommandsLayout
-                                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                          -> IO ()
+type PFN_vkCreateIndirectCommandsLayoutNVX =
+     FunPtr HS_vkCreateIndirectCommandsLayoutNVX
 
--- | > () vkDestroyIndirectCommandsLayoutNVX
+foreign import ccall "dynamic"
+               unwrapVkCreateIndirectCommandsLayoutNVX ::
+               PFN_vkCreateIndirectCommandsLayoutNVX ->
+                 HS_vkCreateIndirectCommandsLayoutNVX
+
+instance VulkanProc "vkCreateIndirectCommandsLayoutNVX" where
+        type VkProcType "vkCreateIndirectCommandsLayoutNVX" =
+             HS_vkCreateIndirectCommandsLayoutNVX
+        vkProcSymbol = _VkCreateIndirectCommandsLayoutNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateIndirectCommandsLayoutNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyIndirectCommandsLayoutNVX :: CString
+
+pattern VkDestroyIndirectCommandsLayoutNVX <-
+        (is_VkDestroyIndirectCommandsLayoutNVX -> True)
+  where VkDestroyIndirectCommandsLayoutNVX
+          = _VkDestroyIndirectCommandsLayoutNVX
+
+{-# INLINE _VkDestroyIndirectCommandsLayoutNVX #-}
+
+_VkDestroyIndirectCommandsLayoutNVX :: CString
+_VkDestroyIndirectCommandsLayoutNVX
+  = Ptr "vkDestroyIndirectCommandsLayoutNVX\NUL"#
+
+{-# INLINE is_VkDestroyIndirectCommandsLayoutNVX #-}
+
+is_VkDestroyIndirectCommandsLayoutNVX :: CString -> Bool
+is_VkDestroyIndirectCommandsLayoutNVX
+  = (EQ ==) . cmpCStrings _VkDestroyIndirectCommandsLayoutNVX
+
+type VkDestroyIndirectCommandsLayoutNVX =
+     "vkDestroyIndirectCommandsLayoutNVX"
+
+-- | > void vkDestroyIndirectCommandsLayoutNVX
 --   >     ( VkDevice device
 --   >     , VkIndirectCommandsLayoutNVX indirectCommandsLayout
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyIndirectCommandsLayoutNVX.html vkDestroyIndirectCommandsLayoutNVX registry at www.khronos.org>
-foreign import ccall safe "vkDestroyIndirectCommandsLayoutNVX"
-               vkDestroyIndirectCommandsLayoutNVXSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkIndirectCommandsLayoutNVX -- ^ indirectCommandsLayout
-                                             -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                          -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX registry at www.khronos.org>
+type HS_vkDestroyIndirectCommandsLayoutNVX =
+     VkDevice -- ^ device
+              ->
+       VkIndirectCommandsLayoutNVX -- ^ indirectCommandsLayout
+                                   -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                                -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkCreateObjectTableNVX
---   >     ( VkDevice device
---   >     , const VkObjectTableCreateInfoNVX* pCreateInfo
---   >     , const VkAllocationCallbacks* pAllocator
---   >     , VkObjectTableNVX* pObjectTable
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateObjectTableNVX.html vkCreateObjectTableNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkCreateObjectTableNVX"
-               vkCreateObjectTableNVX ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkObjectTableCreateInfoNVX -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkObjectTableNVX -- ^ pObjectTable
-                                                                     -> IO VkResult
+type PFN_vkDestroyIndirectCommandsLayoutNVX =
+     FunPtr HS_vkDestroyIndirectCommandsLayoutNVX
 
+foreign import ccall "dynamic"
+               unwrapVkDestroyIndirectCommandsLayoutNVX ::
+               PFN_vkDestroyIndirectCommandsLayoutNVX ->
+                 HS_vkDestroyIndirectCommandsLayoutNVX
+
+instance VulkanProc "vkDestroyIndirectCommandsLayoutNVX" where
+        type VkProcType "vkDestroyIndirectCommandsLayoutNVX" =
+             HS_vkDestroyIndirectCommandsLayoutNVX
+        vkProcSymbol = _VkDestroyIndirectCommandsLayoutNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyIndirectCommandsLayoutNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkCreateObjectTableNVX :: CString
+
+pattern VkCreateObjectTableNVX <-
+        (is_VkCreateObjectTableNVX -> True)
+  where VkCreateObjectTableNVX = _VkCreateObjectTableNVX
+
+{-# INLINE _VkCreateObjectTableNVX #-}
+
+_VkCreateObjectTableNVX :: CString
+_VkCreateObjectTableNVX = Ptr "vkCreateObjectTableNVX\NUL"#
+
+{-# INLINE is_VkCreateObjectTableNVX #-}
+
+is_VkCreateObjectTableNVX :: CString -> Bool
+is_VkCreateObjectTableNVX
+  = (EQ ==) . cmpCStrings _VkCreateObjectTableNVX
+
+type VkCreateObjectTableNVX = "vkCreateObjectTableNVX"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -292,70 +356,97 @@
 --   >     , VkObjectTableNVX* pObjectTable
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCreateObjectTableNVX.html vkCreateObjectTableNVX registry at www.khronos.org>
-foreign import ccall safe "vkCreateObjectTableNVX"
-               vkCreateObjectTableNVXSafe ::
-               VkDevice -- ^ device
-                        ->
-                 Ptr VkObjectTableCreateInfoNVX -- ^ pCreateInfo
-                                                ->
-                   Ptr VkAllocationCallbacks -- ^ pAllocator
-                                             -> Ptr VkObjectTableNVX -- ^ pObjectTable
-                                                                     -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCreateObjectTableNVX vkCreateObjectTableNVX registry at www.khronos.org>
+type HS_vkCreateObjectTableNVX =
+     VkDevice -- ^ device
+              ->
+       Ptr VkObjectTableCreateInfoNVX -- ^ pCreateInfo
+                                      ->
+         Ptr VkAllocationCallbacks -- ^ pAllocator
+                                   -> Ptr VkObjectTableNVX -- ^ pObjectTable
+                                                           -> IO VkResult
 
--- | > () vkDestroyObjectTableNVX
---   >     ( VkDevice device
---   >     , VkObjectTableNVX objectTable
---   >     , const VkAllocationCallbacks* pAllocator
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyObjectTableNVX.html vkDestroyObjectTableNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkDestroyObjectTableNVX"
-               vkDestroyObjectTableNVX ::
-               VkDevice -- ^ device
-                        -> VkObjectTableNVX -- ^ objectTable
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
+type PFN_vkCreateObjectTableNVX = FunPtr HS_vkCreateObjectTableNVX
 
--- | > () vkDestroyObjectTableNVX
+foreign import ccall "dynamic" unwrapVkCreateObjectTableNVX ::
+               PFN_vkCreateObjectTableNVX -> HS_vkCreateObjectTableNVX
+
+instance VulkanProc "vkCreateObjectTableNVX" where
+        type VkProcType "vkCreateObjectTableNVX" =
+             HS_vkCreateObjectTableNVX
+        vkProcSymbol = _VkCreateObjectTableNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCreateObjectTableNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkDestroyObjectTableNVX :: CString
+
+pattern VkDestroyObjectTableNVX <-
+        (is_VkDestroyObjectTableNVX -> True)
+  where VkDestroyObjectTableNVX = _VkDestroyObjectTableNVX
+
+{-# INLINE _VkDestroyObjectTableNVX #-}
+
+_VkDestroyObjectTableNVX :: CString
+_VkDestroyObjectTableNVX = Ptr "vkDestroyObjectTableNVX\NUL"#
+
+{-# INLINE is_VkDestroyObjectTableNVX #-}
+
+is_VkDestroyObjectTableNVX :: CString -> Bool
+is_VkDestroyObjectTableNVX
+  = (EQ ==) . cmpCStrings _VkDestroyObjectTableNVX
+
+type VkDestroyObjectTableNVX = "vkDestroyObjectTableNVX"
+
+-- | > void vkDestroyObjectTableNVX
 --   >     ( VkDevice device
 --   >     , VkObjectTableNVX objectTable
 --   >     , const VkAllocationCallbacks* pAllocator
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkDestroyObjectTableNVX.html vkDestroyObjectTableNVX registry at www.khronos.org>
-foreign import ccall safe "vkDestroyObjectTableNVX"
-               vkDestroyObjectTableNVXSafe ::
-               VkDevice -- ^ device
-                        -> VkObjectTableNVX -- ^ objectTable
-                                            -> Ptr VkAllocationCallbacks -- ^ pAllocator
-                                                                         -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkDestroyObjectTableNVX vkDestroyObjectTableNVX registry at www.khronos.org>
+type HS_vkDestroyObjectTableNVX =
+     VkDevice -- ^ device
+              -> VkObjectTableNVX -- ^ objectTable
+                                  -> Ptr VkAllocationCallbacks -- ^ pAllocator
+                                                               -> IO ()
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkRegisterObjectsNVX
---   >     ( VkDevice device
---   >     , VkObjectTableNVX objectTable
---   >     , uint32_t objectCount
---   >     , const VkObjectTableEntryNVX* const*    ppObjectTableEntries
---   >     , const uint32_t* pObjectIndices
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterObjectsNVX.html vkRegisterObjectsNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkRegisterObjectsNVX"
-               vkRegisterObjectsNVX ::
-               VkDevice -- ^ device
-                        ->
-                 VkObjectTableNVX -- ^ objectTable
-                                  ->
-                   Word32 -- ^ objectCount
-                          ->
-                     Ptr (Ptr VkObjectTableEntryNVX) -- ^ ppObjectTableEntries
-                                                     -> Ptr Word32 -- ^ pObjectIndices
-                                                                   -> IO VkResult
+type PFN_vkDestroyObjectTableNVX =
+     FunPtr HS_vkDestroyObjectTableNVX
 
+foreign import ccall "dynamic" unwrapVkDestroyObjectTableNVX ::
+               PFN_vkDestroyObjectTableNVX -> HS_vkDestroyObjectTableNVX
+
+instance VulkanProc "vkDestroyObjectTableNVX" where
+        type VkProcType "vkDestroyObjectTableNVX" =
+             HS_vkDestroyObjectTableNVX
+        vkProcSymbol = _VkDestroyObjectTableNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkDestroyObjectTableNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkRegisterObjectsNVX :: CString
+
+pattern VkRegisterObjectsNVX <- (is_VkRegisterObjectsNVX -> True)
+  where VkRegisterObjectsNVX = _VkRegisterObjectsNVX
+
+{-# INLINE _VkRegisterObjectsNVX #-}
+
+_VkRegisterObjectsNVX :: CString
+_VkRegisterObjectsNVX = Ptr "vkRegisterObjectsNVX\NUL"#
+
+{-# INLINE is_VkRegisterObjectsNVX #-}
+
+is_VkRegisterObjectsNVX :: CString -> Bool
+is_VkRegisterObjectsNVX
+  = (EQ ==) . cmpCStrings _VkRegisterObjectsNVX
+
+type VkRegisterObjectsNVX = "vkRegisterObjectsNVX"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -368,43 +459,51 @@
 --   >     , const uint32_t* pObjectIndices
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkRegisterObjectsNVX.html vkRegisterObjectsNVX registry at www.khronos.org>
-foreign import ccall safe "vkRegisterObjectsNVX"
-               vkRegisterObjectsNVXSafe ::
-               VkDevice -- ^ device
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkRegisterObjectsNVX vkRegisterObjectsNVX registry at www.khronos.org>
+type HS_vkRegisterObjectsNVX =
+     VkDevice -- ^ device
+              ->
+       VkObjectTableNVX -- ^ objectTable
                         ->
-                 VkObjectTableNVX -- ^ objectTable
-                                  ->
-                   Word32 -- ^ objectCount
-                          ->
-                     Ptr (Ptr VkObjectTableEntryNVX) -- ^ ppObjectTableEntries
-                                                     -> Ptr Word32 -- ^ pObjectIndices
-                                                                   -> IO VkResult
+         Word32 -- ^ objectCount
+                ->
+           Ptr (Ptr VkObjectTableEntryNVX) -- ^ ppObjectTableEntries
+                                           -> Ptr Word32 -- ^ pObjectIndices
+                                                         -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
---
---   > VkResult vkUnregisterObjectsNVX
---   >     ( VkDevice device
---   >     , VkObjectTableNVX objectTable
---   >     , uint32_t objectCount
---   >     , const VkObjectEntryTypeNVX* pObjectEntryTypes
---   >     , const uint32_t* pObjectIndices
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUnregisterObjectsNVX.html vkUnregisterObjectsNVX registry at www.khronos.org>
-foreign import ccall unsafe "vkUnregisterObjectsNVX"
-               vkUnregisterObjectsNVX ::
-               VkDevice -- ^ device
-                        ->
-                 VkObjectTableNVX -- ^ objectTable
-                                  ->
-                   Word32 -- ^ objectCount
-                          -> Ptr VkObjectEntryTypeNVX -- ^ pObjectEntryTypes
-                                                      -> Ptr Word32 -- ^ pObjectIndices
-                                                                    -> IO VkResult
+type PFN_vkRegisterObjectsNVX = FunPtr HS_vkRegisterObjectsNVX
 
+foreign import ccall "dynamic" unwrapVkRegisterObjectsNVX ::
+               PFN_vkRegisterObjectsNVX -> HS_vkRegisterObjectsNVX
+
+instance VulkanProc "vkRegisterObjectsNVX" where
+        type VkProcType "vkRegisterObjectsNVX" = HS_vkRegisterObjectsNVX
+        vkProcSymbol = _VkRegisterObjectsNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkRegisterObjectsNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkUnregisterObjectsNVX :: CString
+
+pattern VkUnregisterObjectsNVX <-
+        (is_VkUnregisterObjectsNVX -> True)
+  where VkUnregisterObjectsNVX = _VkUnregisterObjectsNVX
+
+{-# INLINE _VkUnregisterObjectsNVX #-}
+
+_VkUnregisterObjectsNVX :: CString
+_VkUnregisterObjectsNVX = Ptr "vkUnregisterObjectsNVX\NUL"#
+
+{-# INLINE is_VkUnregisterObjectsNVX #-}
+
+is_VkUnregisterObjectsNVX :: CString -> Bool
+is_VkUnregisterObjectsNVX
+  = (EQ ==) . cmpCStrings _VkUnregisterObjectsNVX
+
+type VkUnregisterObjectsNVX = "vkUnregisterObjectsNVX"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY'.
@@ -417,51 +516,92 @@
 --   >     , const uint32_t* pObjectIndices
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkUnregisterObjectsNVX.html vkUnregisterObjectsNVX registry at www.khronos.org>
-foreign import ccall safe "vkUnregisterObjectsNVX"
-               vkUnregisterObjectsNVXSafe ::
-               VkDevice -- ^ device
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkUnregisterObjectsNVX vkUnregisterObjectsNVX registry at www.khronos.org>
+type HS_vkUnregisterObjectsNVX =
+     VkDevice -- ^ device
+              ->
+       VkObjectTableNVX -- ^ objectTable
                         ->
-                 VkObjectTableNVX -- ^ objectTable
-                                  ->
-                   Word32 -- ^ objectCount
-                          -> Ptr VkObjectEntryTypeNVX -- ^ pObjectEntryTypes
-                                                      -> Ptr Word32 -- ^ pObjectIndices
-                                                                    -> IO VkResult
+         Word32 -- ^ objectCount
+                -> Ptr VkObjectEntryTypeNVX -- ^ pObjectEntryTypes
+                                            -> Ptr Word32 -- ^ pObjectIndices
+                                                          -> IO VkResult
 
--- | > () vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkDeviceGeneratedCommandsFeaturesNVX* pFeatures
---   >     , VkDeviceGeneratedCommandsLimitsNVX* pLimits
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX.html vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"
-               vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkDeviceGeneratedCommandsFeaturesNVX -- ^ pFeatures
-                                                          ->
-                   Ptr VkDeviceGeneratedCommandsLimitsNVX -- ^ pLimits
-                                                          -> IO ()
+type PFN_vkUnregisterObjectsNVX = FunPtr HS_vkUnregisterObjectsNVX
 
--- | > () vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+foreign import ccall "dynamic" unwrapVkUnregisterObjectsNVX ::
+               PFN_vkUnregisterObjectsNVX -> HS_vkUnregisterObjectsNVX
+
+instance VulkanProc "vkUnregisterObjectsNVX" where
+        type VkProcType "vkUnregisterObjectsNVX" =
+             HS_vkUnregisterObjectsNVX
+        vkProcSymbol = _VkUnregisterObjectsNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkUnregisterObjectsNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
+
+pattern VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ::
+        CString
+
+pattern VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX <-
+        (is_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX -> True)
+  where VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+          = _VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+{-# INLINE _VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX #-}
+
+_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX :: CString
+_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+  = Ptr "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX #-}
+
+is_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ::
+                                                     CString -> Bool
+is_VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+type VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX =
+     "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"
+
+-- | > void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
 --   >     ( VkPhysicalDevice physicalDevice
 --   >     , VkDeviceGeneratedCommandsFeaturesNVX* pFeatures
 --   >     , VkDeviceGeneratedCommandsLimitsNVX* pLimits
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX.html vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX registry at www.khronos.org>
-foreign import ccall safe
-               "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"
-               vkGetPhysicalDeviceGeneratedCommandsPropertiesNVXSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 Ptr VkDeviceGeneratedCommandsFeaturesNVX -- ^ pFeatures
-                                                          ->
-                   Ptr VkDeviceGeneratedCommandsLimitsNVX -- ^ pLimits
-                                                          -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       Ptr VkDeviceGeneratedCommandsFeaturesNVX -- ^ pFeatures
+                                                ->
+         Ptr VkDeviceGeneratedCommandsLimitsNVX -- ^ pLimits
+                                                -> IO ()
+
+type PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX =
+     FunPtr HS_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ::
+               PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ->
+                 HS_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+instance VulkanProc
+           "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"
+         where
+        type VkProcType "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"
+             = HS_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+        vkProcSymbol = _VkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceGeneratedCommandsPropertiesNVX
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION ::
         (Num a, Eq a) => a
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
@@ -24,14 +24,10 @@
         -- ** Required extensions: 'VK_KHR_multiview'.
         module Graphics.Vulkan.Marshal,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2,
-        module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties,
-        module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PhysicalDevice,
+        module Graphics.Vulkan.Types.Enum.PhysicalDeviceType,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION,
         pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION,
@@ -41,21 +37,15 @@
         pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
         pattern VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX)
        where
-import           GHC.Ptr
-                                                                                                       (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags
-                                                                                                       (VkSubpassDescriptionBitmask (..),
-                                                                                                       VkSubpassDescriptionFlagBits)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.Subpass            (VkSubpassDescriptionBitmask (..),
+                                                                VkSubpassDescriptionFlagBits)
+import           Graphics.Vulkan.Types.Struct.PhysicalDevice
 
 pattern VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_clip_space_w_scaling.hs
@@ -1,9 +1,12 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_NV_clip_space_w_scaling
        (-- * Vulkan extension: @VK_NV_clip_space_w_scaling@
@@ -19,17 +22,16 @@
         --
         -- Extension number: @88@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.Offset,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportWScalingStateCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkViewport,
-        module Graphics.Vulkan.Types.Struct.VkViewportWScalingNV,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Viewport,
         -- > #include "vk_platform.h"
-        vkCmdSetViewportWScalingNV, vkCmdSetViewportWScalingNVSafe,
+        VkCmdSetViewportWScalingNV, pattern VkCmdSetViewportWScalingNV,
+        HS_vkCmdSetViewportWScalingNV, PFN_vkCmdSetViewportWScalingNV,
         module Graphics.Vulkan.Types.Handles,
         VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION,
         pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION,
@@ -38,64 +40,74 @@
         pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
         pattern VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV)
        where
-import           GHC.Ptr
-                                                                                           (Ptr (..))
+import           GHC.Ptr                                  (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc             (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkDynamicState
-                                                                                           (VkDynamicState (..))
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.DynamicState  (VkDynamicState (..))
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportWScalingStateCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkViewport
-import           Graphics.Vulkan.Types.Struct.VkViewportWScalingNV
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.Viewport
 
--- | queues: 'graphics'.
---
---   renderpass: @both@
---
---   > () vkCmdSetViewportWScalingNV
---   >     ( VkCommandBuffer commandBuffer
---   >     , uint32_t firstViewport
---   >     , uint32_t viewportCount
---   >     , const VkViewportWScalingNV* pViewportWScalings
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetViewportWScalingNV.html vkCmdSetViewportWScalingNV registry at www.khronos.org>
-foreign import ccall unsafe "vkCmdSetViewportWScalingNV"
-               vkCmdSetViewportWScalingNV ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ firstViewport
-                        -> Word32 -- ^ viewportCount
-                                  -> Ptr VkViewportWScalingNV -- ^ pViewportWScalings
-                                                              -> IO ()
+pattern VkCmdSetViewportWScalingNV :: CString
 
--- | queues: 'graphics'.
+pattern VkCmdSetViewportWScalingNV <-
+        (is_VkCmdSetViewportWScalingNV -> True)
+  where VkCmdSetViewportWScalingNV = _VkCmdSetViewportWScalingNV
+
+{-# INLINE _VkCmdSetViewportWScalingNV #-}
+
+_VkCmdSetViewportWScalingNV :: CString
+_VkCmdSetViewportWScalingNV = Ptr "vkCmdSetViewportWScalingNV\NUL"#
+
+{-# INLINE is_VkCmdSetViewportWScalingNV #-}
+
+is_VkCmdSetViewportWScalingNV :: CString -> Bool
+is_VkCmdSetViewportWScalingNV
+  = (EQ ==) . cmpCStrings _VkCmdSetViewportWScalingNV
+
+type VkCmdSetViewportWScalingNV = "vkCmdSetViewportWScalingNV"
+
+-- | Queues: 'graphics'.
 --
---   renderpass: @both@
+--   Renderpass: @both@
 --
---   > () vkCmdSetViewportWScalingNV
+--   > void vkCmdSetViewportWScalingNV
 --   >     ( VkCommandBuffer commandBuffer
 --   >     , uint32_t firstViewport
 --   >     , uint32_t viewportCount
 --   >     , const VkViewportWScalingNV* pViewportWScalings
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkCmdSetViewportWScalingNV.html vkCmdSetViewportWScalingNV registry at www.khronos.org>
-foreign import ccall safe "vkCmdSetViewportWScalingNV"
-               vkCmdSetViewportWScalingNVSafe ::
-               VkCommandBuffer -- ^ commandBuffer
-                               ->
-                 Word32 -- ^ firstViewport
-                        -> Word32 -- ^ viewportCount
-                                  -> Ptr VkViewportWScalingNV -- ^ pViewportWScalings
-                                                              -> IO ()
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV registry at www.khronos.org>
+type HS_vkCmdSetViewportWScalingNV =
+     VkCommandBuffer -- ^ commandBuffer
+                     ->
+       Word32 -- ^ firstViewport
+              -> Word32 -- ^ viewportCount
+                        -> Ptr VkViewportWScalingNV -- ^ pViewportWScalings
+                                                    -> IO ()
+
+type PFN_vkCmdSetViewportWScalingNV =
+     FunPtr HS_vkCmdSetViewportWScalingNV
+
+foreign import ccall "dynamic" unwrapVkCmdSetViewportWScalingNV ::
+               PFN_vkCmdSetViewportWScalingNV -> HS_vkCmdSetViewportWScalingNV
+
+instance VulkanProc "vkCmdSetViewportWScalingNV" where
+        type VkProcType "vkCmdSetViewportWScalingNV" =
+             HS_vkCmdSetViewportWScalingNV
+        vkProcSymbol = _VkCmdSetViewportWScalingNV
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkCmdSetViewportWScalingNV
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_dedicated_allocation.hs
@@ -18,24 +18,17 @@
         --
         -- Extension number: @27@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkBufferCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationBufferCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationImageCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationMemoryAllocateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Enum.Buffer,
+        module Graphics.Vulkan.Types.Struct.Buffer,
+        module Graphics.Vulkan.Types.Struct.DedicatedAllocation,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION,
         pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION,
@@ -45,28 +38,20 @@
         pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV)
        where
-import           GHC.Ptr
-                                                                                         (Ptr (..))
+import           GHC.Ptr                                          (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkBufferCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkDedicatedAllocationBufferCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkDedicatedAllocationImageCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkDedicatedAllocationMemoryAllocateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
+import           Graphics.Vulkan.Types.Enum.Buffer
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Buffer
+import           Graphics.Vulkan.Types.Struct.DedicatedAllocation
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
 
 pattern VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION :: (Num a, Eq a) =>
         a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory.hs
@@ -23,21 +23,17 @@
 
         -- ** Required extensions: 'VK_NV_external_memory_capabilities'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV,
-        module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoNV,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Struct.VkImageCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkImageLayout,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkSharingMode,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Export,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.SharingMode,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_NV_EXTERNAL_MEMORY_SPEC_VERSION,
         pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION,
@@ -46,24 +42,20 @@
         pattern VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV)
        where
-import           GHC.Ptr                                                        (Ptr (..))
+import           GHC.Ptr                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageLayout
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkSharingMode
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.SharingMode
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Export
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.Image
+import           Graphics.Vulkan.Types.Struct.Memory
 
 pattern VK_NV_EXTERNAL_MEMORY_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_capabilities.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_NV_external_memory_capabilities
        (-- * Vulkan extension: @VK_NV_external_memory_capabilities@
@@ -20,45 +23,66 @@
         --
         -- Extension number: @56@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExtent3D,
-        module Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesNV,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagsNV,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV,
-        module Graphics.Vulkan.Types.Struct.VkImageFormatProperties,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
+        module Graphics.Vulkan.Types.Struct.Extent,
+        module Graphics.Vulkan.Types.Struct.External,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.Image,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
         -- > #include "vk_platform.h"
-        vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
-        vkGetPhysicalDeviceExternalImageFormatPropertiesNVSafe,
+        VkGetPhysicalDeviceExternalImageFormatPropertiesNV,
+        pattern VkGetPhysicalDeviceExternalImageFormatPropertiesNV,
+        HS_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
+        PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkFormat,
-        module Graphics.Vulkan.Types.Enum.VkImageCreateFlags,
-        module Graphics.Vulkan.Types.Enum.VkImageTiling,
-        module Graphics.Vulkan.Types.Enum.VkImageType,
-        module Graphics.Vulkan.Types.Enum.VkImageUsageFlags,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Format,
+        module Graphics.Vulkan.Types.Enum.Image,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION,
         VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
         pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)
        where
-import           GHC.Ptr                                                        (Ptr (..))
+import           GHC.Ptr                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagsNV
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV
-import           Graphics.Vulkan.Types.Enum.VkFormat
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-import           Graphics.Vulkan.Types.Enum.VkImageTiling
-import           Graphics.Vulkan.Types.Enum.VkImageType
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Format
+import           Graphics.Vulkan.Types.Enum.Image
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Struct.VkExtent3D
-import           Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesNV
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.External
+import           Graphics.Vulkan.Types.Struct.Image
 
+pattern VkGetPhysicalDeviceExternalImageFormatPropertiesNV ::
+        CString
+
+pattern VkGetPhysicalDeviceExternalImageFormatPropertiesNV <-
+        (is_VkGetPhysicalDeviceExternalImageFormatPropertiesNV -> True)
+  where VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+          = _VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+{-# INLINE _VkGetPhysicalDeviceExternalImageFormatPropertiesNV #-}
+
+_VkGetPhysicalDeviceExternalImageFormatPropertiesNV :: CString
+_VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+  = Ptr "vkGetPhysicalDeviceExternalImageFormatPropertiesNV\NUL"#
+
+{-# INLINE is_VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+           #-}
+
+is_VkGetPhysicalDeviceExternalImageFormatPropertiesNV ::
+                                                      CString -> Bool
+is_VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+  = (EQ ==) .
+      cmpCStrings _VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+type VkGetPhysicalDeviceExternalImageFormatPropertiesNV =
+     "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
@@ -74,62 +98,46 @@
 --   >     , VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html vkGetPhysicalDeviceExternalImageFormatPropertiesNV registry at www.khronos.org>
-foreign import ccall unsafe
-               "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
-               vkGetPhysicalDeviceExternalImageFormatPropertiesNV ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV registry at www.khronos.org>
+type HS_vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
+     VkPhysicalDevice -- ^ physicalDevice
+                      ->
+       VkFormat -- ^ format
+                ->
+         VkImageType -- ^ type
+                     ->
+           VkImageTiling -- ^ tiling
+                         ->
+             VkImageUsageFlags -- ^ usage
                                ->
-                     VkImageTiling -- ^ tiling
-                                   ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageCreateFlags -- ^ flags
-                                            ->
-                           VkExternalMemoryHandleTypeFlagsNV -- ^ externalHandleType
-                                                             ->
-                             Ptr VkExternalImageFormatPropertiesNV -- ^ pExternalImageFormatProperties
-                                                                   -> IO VkResult
+               VkImageCreateFlags -- ^ flags
+                                  ->
+                 VkExternalMemoryHandleTypeFlagsNV -- ^ externalHandleType
+                                                   ->
+                   Ptr VkExternalImageFormatPropertiesNV -- ^ pExternalImageFormatProperties
+                                                         -> IO VkResult
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_OUT_OF_HOST_MEMORY', 'VK_ERROR_OUT_OF_DEVICE_MEMORY', 'VK_ERROR_FORMAT_NOT_SUPPORTED'.
---
---   > VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV
---   >     ( VkPhysicalDevice physicalDevice
---   >     , VkFormat format
---   >     , VkImageType type
---   >     , VkImageTiling tiling
---   >     , VkImageUsageFlags usage
---   >     , VkImageCreateFlags flags
---   >     , VkExternalMemoryHandleTypeFlagsNV externalHandleType
---   >     , VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html vkGetPhysicalDeviceExternalImageFormatPropertiesNV registry at www.khronos.org>
-foreign import ccall safe
+type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
+     FunPtr HS_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+foreign import ccall "dynamic"
+               unwrapVkGetPhysicalDeviceExternalImageFormatPropertiesNV ::
+               PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ->
+                 HS_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+instance VulkanProc
+           "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
+         where
+        type VkProcType
                "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
-               vkGetPhysicalDeviceExternalImageFormatPropertiesNVSafe ::
-               VkPhysicalDevice -- ^ physicalDevice
-                                ->
-                 VkFormat -- ^ format
-                          ->
-                   VkImageType -- ^ type
-                               ->
-                     VkImageTiling -- ^ tiling
-                                   ->
-                       VkImageUsageFlags -- ^ usage
-                                         ->
-                         VkImageCreateFlags -- ^ flags
-                                            ->
-                           VkExternalMemoryHandleTypeFlagsNV -- ^ externalHandleType
-                                                             ->
-                             Ptr VkExternalImageFormatPropertiesNV -- ^ pExternalImageFormatProperties
-                                                                   -> IO VkResult
+             = HS_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
+        vkProcSymbol = _VkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr
+          = unwrapVkGetPhysicalDeviceExternalImageFormatPropertiesNV
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_external_memory_win32.hs
@@ -1,10 +1,13 @@
+{-# OPTIONS_GHC -fno-warn-orphans#-}
 {-# OPTIONS_GHC -fno-warn-unused-imports#-}
 {-# OPTIONS_HADDOCK not-home#-}
 {-# LANGUAGE DataKinds                #-}
+{-# LANGUAGE FlexibleInstances        #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
 {-# LANGUAGE MagicHash                #-}
 {-# LANGUAGE PatternSynonyms          #-}
 {-# LANGUAGE Strict                   #-}
+{-# LANGUAGE TypeFamilies             #-}
 {-# LANGUAGE ViewPatterns             #-}
 module Graphics.Vulkan.Ext.VK_NV_external_memory_win32
        (-- * Vulkan extension: @VK_NV_external_memory_win32@
@@ -27,15 +30,15 @@
 
         -- ** Required extensions: 'VK_NV_external_memory'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoNV,
-        module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV,
-        module Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
+        module Graphics.Vulkan.Types.Enum.External,
+        module Graphics.Vulkan.Types.Struct.Memory,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
-        vkGetMemoryWin32HandleNV, vkGetMemoryWin32HandleNVSafe,
+        VkGetMemoryWin32HandleNV, pattern VkGetMemoryWin32HandleNV,
+        HS_vkGetMemoryWin32HandleNV, PFN_vkGetMemoryWin32HandleNV,
         module Graphics.Vulkan.Marshal,
-        module Graphics.Vulkan.Types.Enum.VkResult,
+        module Graphics.Vulkan.Types.Enum.Result,
         module Graphics.Vulkan.Types.Handles,
         VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
         pattern VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION,
@@ -44,40 +47,37 @@
         pattern VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
         pattern VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV)
        where
-import           GHC.Ptr                                                      (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc                  (VulkanProc (..))
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV
-import           Graphics.Vulkan.Types.Enum.VkResult
-import           Graphics.Vulkan.Types.Enum.VkStructureType
+import           Graphics.Vulkan.Types.Enum.External
+import           Graphics.Vulkan.Types.Enum.Result
+import           Graphics.Vulkan.Types.Enum.StructureType
 import           Graphics.Vulkan.Types.Handles
-import           Graphics.Vulkan.Types.Include                                (HANDLE)
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoNV
-import           Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoNV
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
+import           Graphics.Vulkan.Types.Include                 (HANDLE)
+import           Graphics.Vulkan.Types.Struct.Memory
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
--- | Success codes: 'VK_SUCCESS'.
---
---   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
---
---   > VkResult vkGetMemoryWin32HandleNV
---   >     ( VkDevice device
---   >     , VkDeviceMemory memory
---   >     , VkExternalMemoryHandleTypeFlagsNV handleType
---   >     , HANDLE* pHandle
---   >     )
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandleNV.html vkGetMemoryWin32HandleNV registry at www.khronos.org>
-foreign import ccall unsafe "vkGetMemoryWin32HandleNV"
-               vkGetMemoryWin32HandleNV ::
-               VkDevice -- ^ device
-                        ->
-                 VkDeviceMemory -- ^ memory
-                                ->
-                   VkExternalMemoryHandleTypeFlagsNV -- ^ handleType
-                                                     -> Ptr HANDLE -- ^ pHandle
-                                                                   -> IO VkResult
+pattern VkGetMemoryWin32HandleNV :: CString
 
+pattern VkGetMemoryWin32HandleNV <-
+        (is_VkGetMemoryWin32HandleNV -> True)
+  where VkGetMemoryWin32HandleNV = _VkGetMemoryWin32HandleNV
+
+{-# INLINE _VkGetMemoryWin32HandleNV #-}
+
+_VkGetMemoryWin32HandleNV :: CString
+_VkGetMemoryWin32HandleNV = Ptr "vkGetMemoryWin32HandleNV\NUL"#
+
+{-# INLINE is_VkGetMemoryWin32HandleNV #-}
+
+is_VkGetMemoryWin32HandleNV :: CString -> Bool
+is_VkGetMemoryWin32HandleNV
+  = (EQ ==) . cmpCStrings _VkGetMemoryWin32HandleNV
+
+type VkGetMemoryWin32HandleNV = "vkGetMemoryWin32HandleNV"
+
 -- | Success codes: 'VK_SUCCESS'.
 --
 --   Error codes: 'VK_ERROR_TOO_MANY_OBJECTS', 'VK_ERROR_OUT_OF_HOST_MEMORY'.
@@ -89,16 +89,31 @@
 --   >     , HANDLE* pHandle
 --   >     )
 --
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/vkGetMemoryWin32HandleNV.html vkGetMemoryWin32HandleNV registry at www.khronos.org>
-foreign import ccall safe "vkGetMemoryWin32HandleNV"
-               vkGetMemoryWin32HandleNVSafe ::
-               VkDevice -- ^ device
-                        ->
-                 VkDeviceMemory -- ^ memory
-                                ->
-                   VkExternalMemoryHandleTypeFlagsNV -- ^ handleType
-                                                     -> Ptr HANDLE -- ^ pHandle
-                                                                   -> IO VkResult
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV registry at www.khronos.org>
+type HS_vkGetMemoryWin32HandleNV =
+     VkDevice -- ^ device
+              ->
+       VkDeviceMemory -- ^ memory
+                      ->
+         VkExternalMemoryHandleTypeFlagsNV -- ^ handleType
+                                           -> Ptr HANDLE -- ^ pHandle
+                                                         -> IO VkResult
+
+type PFN_vkGetMemoryWin32HandleNV =
+     FunPtr HS_vkGetMemoryWin32HandleNV
+
+foreign import ccall "dynamic" unwrapVkGetMemoryWin32HandleNV ::
+               PFN_vkGetMemoryWin32HandleNV -> HS_vkGetMemoryWin32HandleNV
+
+instance VulkanProc "vkGetMemoryWin32HandleNV" where
+        type VkProcType "vkGetMemoryWin32HandleNV" =
+             HS_vkGetMemoryWin32HandleNV
+        vkProcSymbol = _VkGetMemoryWin32HandleNV
+
+        {-# INLINE vkProcSymbol #-}
+        unwrapVkProcPtr = unwrapVkGetMemoryWin32HandleNV
+
+        {-# INLINE unwrapVkProcPtr #-}
 
 pattern VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_fill_rectangle.hs
@@ -23,9 +23,9 @@
         pattern VK_NV_FILL_RECTANGLE_EXTENSION_NAME,
         pattern VK_POLYGON_MODE_FILL_RECTANGLE_NV)
        where
-import           GHC.Ptr                                  (Ptr (..))
+import           GHC.Ptr                                (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode (VkPolygonMode (..))
+import           Graphics.Vulkan.Types.Enum.PolygonMode (VkPolygonMode (..))
 
 pattern VK_NV_FILL_RECTANGLE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_fragment_coverage_to_color.hs
@@ -19,10 +19,9 @@
         -- Extension number: @150@
         module Graphics.Vulkan.Types.BaseTypes,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineCoverageToColorStateCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION,
         pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION,
@@ -30,15 +29,13 @@
         pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr
-                                                                                          (Ptr (..))
+import           GHC.Ptr                                     (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkPipelineCoverageToColorStateCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Pipeline
 
 pattern VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_framebuffer_mixed_samples.hs
@@ -18,12 +18,11 @@
         --
         -- Extension number: @153@
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkCoverageModulationModeNV,
+        module Graphics.Vulkan.Types.Enum.CoverageModulationModeNV,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineCoverageModulationStateCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo,
-        module Graphics.Vulkan.Types.Enum.VkSampleCountFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Enum.SampleCountFlags,
+        module Graphics.Vulkan.Types.Enum.StructureType,
         -- > #include "vk_platform.h"
         VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION,
         pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION,
@@ -31,16 +30,14 @@
         pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr
-                                                                                             (Ptr (..))
+import           GHC.Ptr                                             (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkCoverageModulationModeNV
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkPipelineCoverageModulationStateCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
+import           Graphics.Vulkan.Types.Enum.CoverageModulationModeNV
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.Pipeline
 
 pattern VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION ::
         (Num a, Eq a) => a
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_glsl_shader.hs
@@ -23,9 +23,9 @@
         pattern VK_NV_GLSL_SHADER_EXTENSION_NAME,
         pattern VK_ERROR_INVALID_SHADER_NV)
        where
-import           GHC.Ptr                             (Ptr (..))
+import           GHC.Ptr                           (Ptr (..))
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.Enum.VkResult (VkResult (..))
+import           Graphics.Vulkan.Types.Enum.Result (VkResult (..))
 
 pattern VK_NV_GLSL_SHADER_SPEC_VERSION :: (Num a, Eq a) => a
 
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
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_shader_subgroup_partitioned.hs
@@ -0,0 +1,67 @@
+{-# OPTIONS_HADDOCK not-home#-}
+{-# LANGUAGE DataKinds       #-}
+{-# LANGUAGE MagicHash       #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE Strict          #-}
+{-# LANGUAGE ViewPatterns    #-}
+module Graphics.Vulkan.Ext.VK_NV_shader_subgroup_partitioned
+       (-- * Vulkan extension: @VK_NV_shader_subgroup_partitioned@
+        -- |
+        --
+        -- supported: @vulkan@
+        --
+        -- contact: @Jeff Bolz @jbolz@
+        --
+        -- author: @NV@
+        --
+        -- type: @device@
+        --
+        -- Extension number: @199@
+        VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION,
+        pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION,
+        VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME,
+        pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME,
+        pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV)
+       where
+import           GHC.Ptr                                         (Ptr (..))
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags (VkSubgroupFeatureBitmask (..),
+                                                                  VkSubgroupFeatureFlagBits)
+
+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION ::
+        (Num a, Eq a) => a
+
+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION = 1
+
+type VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION = 1
+
+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME :: CString
+
+pattern VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME <-
+        (is_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME -> True)
+  where VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
+          = _VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
+
+{-# INLINE _VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME #-}
+
+_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME :: CString
+_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
+  = Ptr "VK_NV_shader_subgroup_partitioned\NUL"#
+
+{-# INLINE is_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME #-}
+
+is_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME ::
+                                                    CString -> Bool
+is_VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
+  = (EQ ==) .
+      cmpCStrings _VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME
+
+type VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME =
+     "VK_NV_shader_subgroup_partitioned"
+
+-- | bitpos = @8@
+pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV ::
+        VkSubgroupFeatureFlagBits
+
+pattern VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV =
+        VkSubgroupFeatureFlagBits 256
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_viewport_swizzle.hs
@@ -17,17 +17,15 @@
         -- type: @device@
         --
         -- Extension number: @99@
-        module Graphics.Vulkan.Types.Struct.VkExtent2D,
+        module Graphics.Vulkan.Types.Struct.Extent,
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Struct.VkOffset2D,
+        module Graphics.Vulkan.Types.Struct.Offset,
         module Graphics.Vulkan.Types.Bitmasks,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo,
-        module Graphics.Vulkan.Types.Struct.VkPipelineViewportSwizzleStateCreateInfoNV,
-        module Graphics.Vulkan.Types.Struct.VkRect2D,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkViewport,
-        module Graphics.Vulkan.Types.Enum.VkViewportCoordinateSwizzleNV,
-        module Graphics.Vulkan.Types.Struct.VkViewportSwizzleNV,
+        module Graphics.Vulkan.Types.Struct.Pipeline,
+        module Graphics.Vulkan.Types.Struct.Rect,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.Viewport,
+        module Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV,
         -- > #include "vk_platform.h"
         VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION,
         pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION,
@@ -35,20 +33,17 @@
         pattern VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV)
        where
-import           GHC.Ptr
-                                                                                          (Ptr (..))
+import           GHC.Ptr                                                (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
 import           Graphics.Vulkan.Types.Bitmasks
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Enum.VkViewportCoordinateSwizzleNV
-import           Graphics.Vulkan.Types.Struct.VkExtent2D
-import           Graphics.Vulkan.Types.Struct.VkOffset2D
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportSwizzleStateCreateInfoNV
-import           Graphics.Vulkan.Types.Struct.VkRect2D
-import           Graphics.Vulkan.Types.Struct.VkViewport
-import           Graphics.Vulkan.Types.Struct.VkViewportSwizzleNV
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
+import           Graphics.Vulkan.Types.Struct.Extent
+import           Graphics.Vulkan.Types.Struct.Offset
+import           Graphics.Vulkan.Types.Struct.Pipeline
+import           Graphics.Vulkan.Types.Struct.Rect
+import           Graphics.Vulkan.Types.Struct.Viewport
 
 pattern VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs b/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
--- a/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
+++ b/src-gen/Graphics/Vulkan/Ext/VK_NV_win32_keyed_mutex.hs
@@ -25,10 +25,10 @@
 
         -- ** Required extensions: 'VK_NV_external_memory_win32'.
         module Graphics.Vulkan.Types.BaseTypes,
-        module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags,
-        module Graphics.Vulkan.Types.Enum.VkStructureType,
-        module Graphics.Vulkan.Types.Struct.VkSubmitInfo,
-        module Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoNV,
+        module Graphics.Vulkan.Types.Enum.Pipeline,
+        module Graphics.Vulkan.Types.Enum.StructureType,
+        module Graphics.Vulkan.Types.Struct.SubmitInfo,
+        module Graphics.Vulkan.Types.Struct.PlatformWin32Khr,
         -- > #include "vk_platform.h"
         VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION,
         pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION,
@@ -36,14 +36,13 @@
         pattern VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME,
         pattern VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV)
        where
-import           GHC.Ptr
-                                                                                     (Ptr (..))
+import           GHC.Ptr                                       (Ptr (..))
 import           Graphics.Vulkan.Marshal
 import           Graphics.Vulkan.Types.BaseTypes
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo
-import           Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoNV
+import           Graphics.Vulkan.Types.Enum.Pipeline
+import           Graphics.Vulkan.Types.Enum.StructureType
+import           Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+import           Graphics.Vulkan.Types.Struct.SubmitInfo
 
 pattern VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION :: (Num a, Eq a) => a
 
diff --git a/src-gen/Graphics/Vulkan/Types/Defines.hs b/src-gen/Graphics/Vulkan/Types/Defines.hs
--- a/src-gen/Graphics/Vulkan/Types/Defines.hs
+++ b/src-gen/Graphics/Vulkan/Types/Defines.hs
@@ -57,12 +57,12 @@
 type VK_API_VERSION_1_1 = 4198400
 
 -- | > // Version of this file
---   > #define VK_HEADER_VERSION 71
+--   > #define VK_HEADER_VERSION 72
 pattern VK_HEADER_VERSION :: (Num a, Eq a) => a
 
-pattern VK_HEADER_VERSION = 71
+pattern VK_HEADER_VERSION = 72
 
-type VK_HEADER_VERSION = 71
+type VK_HEADER_VERSION = 72
 
 -- | > #define VK_MAKE_VERSION(major, minor, patch) \
 --   >     (((major) << 22) | ((minor) << 12) | (patch))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/AccessFlags.hs
@@ -0,0 +1,260 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.AccessFlags
+       (VkAccessBitmask(VkAccessBitmask, VkAccessFlags, VkAccessFlagBits,
+                        VK_ACCESS_INDIRECT_COMMAND_READ_BIT, VK_ACCESS_INDEX_READ_BIT,
+                        VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, VK_ACCESS_UNIFORM_READ_BIT,
+                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, VK_ACCESS_SHADER_READ_BIT,
+                        VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
+                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+                        VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
+                        VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
+                        VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
+                        VK_ACCESS_HOST_READ_BIT, VK_ACCESS_HOST_WRITE_BIT,
+                        VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_MEMORY_WRITE_BIT),
+        VkAccessFlags, VkAccessFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkAccessBitmask (a :: FlagType) = VkAccessBitmask VkFlags
+                                            deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkAccessFlags = VkAccessBitmask FlagMask
+
+type VkAccessFlagBits = VkAccessBitmask FlagBit
+
+pattern VkAccessFlagBits :: VkFlags -> VkAccessBitmask FlagBit
+
+pattern VkAccessFlagBits n = VkAccessBitmask n
+
+pattern VkAccessFlags :: VkFlags -> VkAccessBitmask FlagMask
+
+pattern VkAccessFlags n = VkAccessBitmask n
+
+deriving instance Bits (VkAccessBitmask FlagMask)
+
+deriving instance FiniteBits (VkAccessBitmask FlagMask)
+
+deriving instance Integral (VkAccessBitmask FlagMask)
+
+deriving instance Num (VkAccessBitmask FlagMask)
+
+deriving instance Bounded (VkAccessBitmask FlagMask)
+
+deriving instance Enum (VkAccessBitmask FlagMask)
+
+deriving instance Real (VkAccessBitmask FlagMask)
+
+instance Show (VkAccessBitmask a) where
+        showsPrec _ VK_ACCESS_INDIRECT_COMMAND_READ_BIT
+          = showString "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"
+        showsPrec _ VK_ACCESS_INDEX_READ_BIT
+          = showString "VK_ACCESS_INDEX_READ_BIT"
+        showsPrec _ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
+          = showString "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"
+        showsPrec _ VK_ACCESS_UNIFORM_READ_BIT
+          = showString "VK_ACCESS_UNIFORM_READ_BIT"
+        showsPrec _ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
+          = showString "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"
+        showsPrec _ VK_ACCESS_SHADER_READ_BIT
+          = showString "VK_ACCESS_SHADER_READ_BIT"
+        showsPrec _ VK_ACCESS_SHADER_WRITE_BIT
+          = showString "VK_ACCESS_SHADER_WRITE_BIT"
+        showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
+          = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"
+        showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
+          = showString "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"
+        showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
+          = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"
+        showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
+          = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"
+        showsPrec _ VK_ACCESS_TRANSFER_READ_BIT
+          = showString "VK_ACCESS_TRANSFER_READ_BIT"
+        showsPrec _ VK_ACCESS_TRANSFER_WRITE_BIT
+          = showString "VK_ACCESS_TRANSFER_WRITE_BIT"
+        showsPrec _ VK_ACCESS_HOST_READ_BIT
+          = showString "VK_ACCESS_HOST_READ_BIT"
+        showsPrec _ VK_ACCESS_HOST_WRITE_BIT
+          = showString "VK_ACCESS_HOST_WRITE_BIT"
+        showsPrec _ VK_ACCESS_MEMORY_READ_BIT
+          = showString "VK_ACCESS_MEMORY_READ_BIT"
+        showsPrec _ VK_ACCESS_MEMORY_WRITE_BIT
+          = showString "VK_ACCESS_MEMORY_WRITE_BIT"
+        showsPrec p (VkAccessBitmask x)
+          = showParen (p >= 11)
+              (showString "VkAccessBitmask " . showsPrec 11 x)
+
+instance Read (VkAccessBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_ACCESS_INDIRECT_COMMAND_READ_BIT",
+                   pure VK_ACCESS_INDIRECT_COMMAND_READ_BIT),
+                  ("VK_ACCESS_INDEX_READ_BIT", pure VK_ACCESS_INDEX_READ_BIT),
+                  ("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT",
+                   pure VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT),
+                  ("VK_ACCESS_UNIFORM_READ_BIT", pure VK_ACCESS_UNIFORM_READ_BIT),
+                  ("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT",
+                   pure VK_ACCESS_INPUT_ATTACHMENT_READ_BIT),
+                  ("VK_ACCESS_SHADER_READ_BIT", pure VK_ACCESS_SHADER_READ_BIT),
+                  ("VK_ACCESS_SHADER_WRITE_BIT", pure VK_ACCESS_SHADER_WRITE_BIT),
+                  ("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT",
+                   pure VK_ACCESS_COLOR_ATTACHMENT_READ_BIT),
+                  ("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT",
+                   pure VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT),
+                  ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT",
+                   pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT),
+                  ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT",
+                   pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT),
+                  ("VK_ACCESS_TRANSFER_READ_BIT", pure VK_ACCESS_TRANSFER_READ_BIT),
+                  ("VK_ACCESS_TRANSFER_WRITE_BIT",
+                   pure VK_ACCESS_TRANSFER_WRITE_BIT),
+                  ("VK_ACCESS_HOST_READ_BIT", pure VK_ACCESS_HOST_READ_BIT),
+                  ("VK_ACCESS_HOST_WRITE_BIT", pure VK_ACCESS_HOST_WRITE_BIT),
+                  ("VK_ACCESS_MEMORY_READ_BIT", pure VK_ACCESS_MEMORY_READ_BIT),
+                  ("VK_ACCESS_MEMORY_WRITE_BIT", pure VK_ACCESS_MEMORY_WRITE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkAccessBitmask") >>
+                      (VkAccessBitmask <$> step readPrec)))
+
+-- | Controls coherency of indirect command reads
+--
+--   bitpos = @0@
+pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessBitmask 1
+
+-- | Controls coherency of index reads
+--
+--   bitpos = @1@
+pattern VK_ACCESS_INDEX_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_INDEX_READ_BIT = VkAccessBitmask 2
+
+-- | Controls coherency of vertex attribute reads
+--
+--   bitpos = @2@
+pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessBitmask 4
+
+-- | Controls coherency of uniform buffer reads
+--
+--   bitpos = @3@
+pattern VK_ACCESS_UNIFORM_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessBitmask 8
+
+-- | Controls coherency of input attachment reads
+--
+--   bitpos = @4@
+pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessBitmask 16
+
+-- | Controls coherency of shader reads
+--
+--   bitpos = @5@
+pattern VK_ACCESS_SHADER_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_SHADER_READ_BIT = VkAccessBitmask 32
+
+-- | Controls coherency of shader writes
+--
+--   bitpos = @6@
+pattern VK_ACCESS_SHADER_WRITE_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessBitmask 64
+
+-- | Controls coherency of color attachment reads
+--
+--   bitpos = @7@
+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessBitmask 128
+
+-- | Controls coherency of color attachment writes
+--
+--   bitpos = @8@
+pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessBitmask 256
+
+-- | Controls coherency of depth/stencil attachment reads
+--
+--   bitpos = @9@
+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT ::
+        VkAccessBitmask a
+
+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT =
+        VkAccessBitmask 512
+
+-- | Controls coherency of depth/stencil attachment writes
+--
+--   bitpos = @10@
+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT ::
+        VkAccessBitmask a
+
+pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT =
+        VkAccessBitmask 1024
+
+-- | Controls coherency of transfer reads
+--
+--   bitpos = @11@
+pattern VK_ACCESS_TRANSFER_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessBitmask 2048
+
+-- | Controls coherency of transfer writes
+--
+--   bitpos = @12@
+pattern VK_ACCESS_TRANSFER_WRITE_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessBitmask 4096
+
+-- | Controls coherency of host reads
+--
+--   bitpos = @13@
+pattern VK_ACCESS_HOST_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_HOST_READ_BIT = VkAccessBitmask 8192
+
+-- | Controls coherency of host writes
+--
+--   bitpos = @14@
+pattern VK_ACCESS_HOST_WRITE_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessBitmask 16384
+
+-- | Controls coherency of memory reads
+--
+--   bitpos = @15@
+pattern VK_ACCESS_MEMORY_READ_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessBitmask 32768
+
+-- | Controls coherency of memory writes
+--
+--   bitpos = @16@
+pattern VK_ACCESS_MEMORY_WRITE_BIT :: VkAccessBitmask a
+
+pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessBitmask 65536
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs b/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Attachment.hs
@@ -0,0 +1,176 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Attachment
+       (VkAttachmentDescriptionBitmask(VkAttachmentDescriptionBitmask,
+                                       VkAttachmentDescriptionFlags,
+                                       VkAttachmentDescriptionFlagBits,
+                                       VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT),
+        VkAttachmentDescriptionFlags, VkAttachmentDescriptionFlagBits,
+        VkAttachmentLoadOp(VkAttachmentLoadOp, VK_ATTACHMENT_LOAD_OP_LOAD,
+                           VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_DONT_CARE),
+        VkAttachmentStoreOp(VkAttachmentStoreOp,
+                            VK_ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_STORE_OP_DONT_CARE))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkAttachmentDescriptionBitmask (a ::
+                                          FlagType) = VkAttachmentDescriptionBitmask VkFlags
+                                                        deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkAttachmentDescriptionFlags =
+     VkAttachmentDescriptionBitmask FlagMask
+
+type VkAttachmentDescriptionFlagBits =
+     VkAttachmentDescriptionBitmask FlagBit
+
+pattern VkAttachmentDescriptionFlagBits ::
+        VkFlags -> VkAttachmentDescriptionBitmask FlagBit
+
+pattern VkAttachmentDescriptionFlagBits n =
+        VkAttachmentDescriptionBitmask n
+
+pattern VkAttachmentDescriptionFlags ::
+        VkFlags -> VkAttachmentDescriptionBitmask FlagMask
+
+pattern VkAttachmentDescriptionFlags n =
+        VkAttachmentDescriptionBitmask n
+
+deriving instance Bits (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance
+         Integral (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance Num (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance Bounded (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance Enum (VkAttachmentDescriptionBitmask FlagMask)
+
+deriving instance Real (VkAttachmentDescriptionBitmask FlagMask)
+
+instance Show (VkAttachmentDescriptionBitmask a) where
+        showsPrec _ VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
+          = showString "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"
+        showsPrec p (VkAttachmentDescriptionBitmask x)
+          = showParen (p >= 11)
+              (showString "VkAttachmentDescriptionBitmask " . showsPrec 11 x)
+
+instance Read (VkAttachmentDescriptionBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT",
+                   pure VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkAttachmentDescriptionBitmask") >>
+                      (VkAttachmentDescriptionBitmask <$> step readPrec)))
+
+-- | The attachment may alias physical memory of another attachment in the same render pass
+--
+--   bitpos = @0@
+pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT ::
+        VkAttachmentDescriptionBitmask a
+
+pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT =
+        VkAttachmentDescriptionBitmask 1
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentLoadOp VkAttachmentLoadOp registry at www.khronos.org>
+newtype VkAttachmentLoadOp = VkAttachmentLoadOp Int32
+                               deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkAttachmentLoadOp where
+        showsPrec _ VK_ATTACHMENT_LOAD_OP_LOAD
+          = showString "VK_ATTACHMENT_LOAD_OP_LOAD"
+        showsPrec _ VK_ATTACHMENT_LOAD_OP_CLEAR
+          = showString "VK_ATTACHMENT_LOAD_OP_CLEAR"
+        showsPrec _ VK_ATTACHMENT_LOAD_OP_DONT_CARE
+          = showString "VK_ATTACHMENT_LOAD_OP_DONT_CARE"
+        showsPrec p (VkAttachmentLoadOp x)
+          = showParen (p >= 11)
+              (showString "VkAttachmentLoadOp " . showsPrec 11 x)
+
+instance Read VkAttachmentLoadOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_ATTACHMENT_LOAD_OP_LOAD", pure VK_ATTACHMENT_LOAD_OP_LOAD),
+                  ("VK_ATTACHMENT_LOAD_OP_CLEAR", pure VK_ATTACHMENT_LOAD_OP_CLEAR),
+                  ("VK_ATTACHMENT_LOAD_OP_DONT_CARE",
+                   pure VK_ATTACHMENT_LOAD_OP_DONT_CARE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkAttachmentLoadOp") >>
+                      (VkAttachmentLoadOp <$> step readPrec)))
+
+pattern VK_ATTACHMENT_LOAD_OP_LOAD :: VkAttachmentLoadOp
+
+pattern VK_ATTACHMENT_LOAD_OP_LOAD = VkAttachmentLoadOp 0
+
+pattern VK_ATTACHMENT_LOAD_OP_CLEAR :: VkAttachmentLoadOp
+
+pattern VK_ATTACHMENT_LOAD_OP_CLEAR = VkAttachmentLoadOp 1
+
+pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE :: VkAttachmentLoadOp
+
+pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp 2
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentStoreOp VkAttachmentStoreOp registry at www.khronos.org>
+newtype VkAttachmentStoreOp = VkAttachmentStoreOp Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkAttachmentStoreOp where
+        showsPrec _ VK_ATTACHMENT_STORE_OP_STORE
+          = showString "VK_ATTACHMENT_STORE_OP_STORE"
+        showsPrec _ VK_ATTACHMENT_STORE_OP_DONT_CARE
+          = showString "VK_ATTACHMENT_STORE_OP_DONT_CARE"
+        showsPrec p (VkAttachmentStoreOp x)
+          = showParen (p >= 11)
+              (showString "VkAttachmentStoreOp " . showsPrec 11 x)
+
+instance Read VkAttachmentStoreOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_ATTACHMENT_STORE_OP_STORE",
+                   pure VK_ATTACHMENT_STORE_OP_STORE),
+                  ("VK_ATTACHMENT_STORE_OP_DONT_CARE",
+                   pure VK_ATTACHMENT_STORE_OP_DONT_CARE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkAttachmentStoreOp") >>
+                      (VkAttachmentStoreOp <$> step readPrec)))
+
+pattern VK_ATTACHMENT_STORE_OP_STORE :: VkAttachmentStoreOp
+
+pattern VK_ATTACHMENT_STORE_OP_STORE = VkAttachmentStoreOp 0
+
+pattern VK_ATTACHMENT_STORE_OP_DONT_CARE :: VkAttachmentStoreOp
+
+pattern VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs b/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Blend.hs
@@ -0,0 +1,293 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.Blend
+       (VkBlendFactor(VkBlendFactor, VK_BLEND_FACTOR_ZERO,
+                      VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR,
+                      VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_DST_COLOR,
+                      VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC_ALPHA,
+                      VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA,
+                      VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
+                      VK_BLEND_FACTOR_CONSTANT_COLOR,
+                      VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
+                      VK_BLEND_FACTOR_CONSTANT_ALPHA,
+                      VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
+                      VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, VK_BLEND_FACTOR_SRC1_COLOR,
+                      VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA,
+                      VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA),
+        VkBlendOp(VkBlendOp, VK_BLEND_OP_ADD, VK_BLEND_OP_SUBTRACT,
+                  VK_BLEND_OP_REVERSE_SUBTRACT, VK_BLEND_OP_MIN, VK_BLEND_OP_MAX),
+        VkBlendOverlapEXT(VkBlendOverlapEXT,
+                          VK_BLEND_OVERLAP_UNCORRELATED_EXT, VK_BLEND_OVERLAP_DISJOINT_EXT,
+                          VK_BLEND_OVERLAP_CONJOINT_EXT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBlendFactor VkBlendFactor registry at www.khronos.org>
+newtype VkBlendFactor = VkBlendFactor Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkBlendFactor where
+        showsPrec _ VK_BLEND_FACTOR_ZERO
+          = showString "VK_BLEND_FACTOR_ZERO"
+        showsPrec _ VK_BLEND_FACTOR_ONE = showString "VK_BLEND_FACTOR_ONE"
+        showsPrec _ VK_BLEND_FACTOR_SRC_COLOR
+          = showString "VK_BLEND_FACTOR_SRC_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_DST_COLOR
+          = showString "VK_BLEND_FACTOR_DST_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA
+          = showString "VK_BLEND_FACTOR_SRC_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_DST_ALPHA
+          = showString "VK_BLEND_FACTOR_DST_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_CONSTANT_COLOR
+          = showString "VK_BLEND_FACTOR_CONSTANT_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_CONSTANT_ALPHA
+          = showString "VK_BLEND_FACTOR_CONSTANT_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
+          = showString "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"
+        showsPrec _ VK_BLEND_FACTOR_SRC1_COLOR
+          = showString "VK_BLEND_FACTOR_SRC1_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"
+        showsPrec _ VK_BLEND_FACTOR_SRC1_ALPHA
+          = showString "VK_BLEND_FACTOR_SRC1_ALPHA"
+        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
+          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"
+        showsPrec p (VkBlendFactor x)
+          = showParen (p >= 11)
+              (showString "VkBlendFactor " . showsPrec 11 x)
+
+instance Read VkBlendFactor where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BLEND_FACTOR_ZERO", pure VK_BLEND_FACTOR_ZERO),
+                  ("VK_BLEND_FACTOR_ONE", pure VK_BLEND_FACTOR_ONE),
+                  ("VK_BLEND_FACTOR_SRC_COLOR", pure VK_BLEND_FACTOR_SRC_COLOR),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR),
+                  ("VK_BLEND_FACTOR_DST_COLOR", pure VK_BLEND_FACTOR_DST_COLOR),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR),
+                  ("VK_BLEND_FACTOR_SRC_ALPHA", pure VK_BLEND_FACTOR_SRC_ALPHA),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA),
+                  ("VK_BLEND_FACTOR_DST_ALPHA", pure VK_BLEND_FACTOR_DST_ALPHA),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA),
+                  ("VK_BLEND_FACTOR_CONSTANT_COLOR",
+                   pure VK_BLEND_FACTOR_CONSTANT_COLOR),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR),
+                  ("VK_BLEND_FACTOR_CONSTANT_ALPHA",
+                   pure VK_BLEND_FACTOR_CONSTANT_ALPHA),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA),
+                  ("VK_BLEND_FACTOR_SRC_ALPHA_SATURATE",
+                   pure VK_BLEND_FACTOR_SRC_ALPHA_SATURATE),
+                  ("VK_BLEND_FACTOR_SRC1_COLOR", pure VK_BLEND_FACTOR_SRC1_COLOR),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR),
+                  ("VK_BLEND_FACTOR_SRC1_ALPHA", pure VK_BLEND_FACTOR_SRC1_ALPHA),
+                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA",
+                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBlendFactor") >>
+                      (VkBlendFactor <$> step readPrec)))
+
+pattern VK_BLEND_FACTOR_ZERO :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ZERO = VkBlendFactor 0
+
+pattern VK_BLEND_FACTOR_ONE :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE = VkBlendFactor 1
+
+pattern VK_BLEND_FACTOR_SRC_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_SRC_COLOR = VkBlendFactor 2
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = VkBlendFactor 3
+
+pattern VK_BLEND_FACTOR_DST_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_DST_COLOR = VkBlendFactor 4
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = VkBlendFactor 5
+
+pattern VK_BLEND_FACTOR_SRC_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_SRC_ALPHA = VkBlendFactor 6
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = VkBlendFactor 7
+
+pattern VK_BLEND_FACTOR_DST_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_DST_ALPHA = VkBlendFactor 8
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = VkBlendFactor 9
+
+pattern VK_BLEND_FACTOR_CONSTANT_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_CONSTANT_COLOR = VkBlendFactor 10
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor 11
+
+pattern VK_BLEND_FACTOR_CONSTANT_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_CONSTANT_ALPHA = VkBlendFactor 12
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor 13
+
+pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = VkBlendFactor 14
+
+pattern VK_BLEND_FACTOR_SRC1_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_SRC1_COLOR = VkBlendFactor 15
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = VkBlendFactor 16
+
+pattern VK_BLEND_FACTOR_SRC1_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_SRC1_ALPHA = VkBlendFactor 17
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: VkBlendFactor
+
+pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = VkBlendFactor 18
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBlendOp VkBlendOp registry at www.khronos.org>
+newtype VkBlendOp = VkBlendOp Int32
+                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkBlendOp where
+        showsPrec _ VK_BLEND_OP_ADD = showString "VK_BLEND_OP_ADD"
+        showsPrec _ VK_BLEND_OP_SUBTRACT
+          = showString "VK_BLEND_OP_SUBTRACT"
+        showsPrec _ VK_BLEND_OP_REVERSE_SUBTRACT
+          = showString "VK_BLEND_OP_REVERSE_SUBTRACT"
+        showsPrec _ VK_BLEND_OP_MIN = showString "VK_BLEND_OP_MIN"
+        showsPrec _ VK_BLEND_OP_MAX = showString "VK_BLEND_OP_MAX"
+        showsPrec p (VkBlendOp x)
+          = showParen (p >= 11) (showString "VkBlendOp " . showsPrec 11 x)
+
+instance Read VkBlendOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BLEND_OP_ADD", pure VK_BLEND_OP_ADD),
+                  ("VK_BLEND_OP_SUBTRACT", pure VK_BLEND_OP_SUBTRACT),
+                  ("VK_BLEND_OP_REVERSE_SUBTRACT",
+                   pure VK_BLEND_OP_REVERSE_SUBTRACT),
+                  ("VK_BLEND_OP_MIN", pure VK_BLEND_OP_MIN),
+                  ("VK_BLEND_OP_MAX", pure VK_BLEND_OP_MAX)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBlendOp") >> (VkBlendOp <$> step readPrec)))
+
+pattern VK_BLEND_OP_ADD :: VkBlendOp
+
+pattern VK_BLEND_OP_ADD = VkBlendOp 0
+
+pattern VK_BLEND_OP_SUBTRACT :: VkBlendOp
+
+pattern VK_BLEND_OP_SUBTRACT = VkBlendOp 1
+
+pattern VK_BLEND_OP_REVERSE_SUBTRACT :: VkBlendOp
+
+pattern VK_BLEND_OP_REVERSE_SUBTRACT = VkBlendOp 2
+
+pattern VK_BLEND_OP_MIN :: VkBlendOp
+
+pattern VK_BLEND_OP_MIN = VkBlendOp 3
+
+pattern VK_BLEND_OP_MAX :: VkBlendOp
+
+pattern VK_BLEND_OP_MAX = VkBlendOp 4
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBlendOverlapEXT VkBlendOverlapEXT registry at www.khronos.org>
+newtype VkBlendOverlapEXT = VkBlendOverlapEXT Int32
+                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkBlendOverlapEXT where
+        showsPrec _ VK_BLEND_OVERLAP_UNCORRELATED_EXT
+          = showString "VK_BLEND_OVERLAP_UNCORRELATED_EXT"
+        showsPrec _ VK_BLEND_OVERLAP_DISJOINT_EXT
+          = showString "VK_BLEND_OVERLAP_DISJOINT_EXT"
+        showsPrec _ VK_BLEND_OVERLAP_CONJOINT_EXT
+          = showString "VK_BLEND_OVERLAP_CONJOINT_EXT"
+        showsPrec p (VkBlendOverlapEXT x)
+          = showParen (p >= 11)
+              (showString "VkBlendOverlapEXT " . showsPrec 11 x)
+
+instance Read VkBlendOverlapEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BLEND_OVERLAP_UNCORRELATED_EXT",
+                   pure VK_BLEND_OVERLAP_UNCORRELATED_EXT),
+                  ("VK_BLEND_OVERLAP_DISJOINT_EXT",
+                   pure VK_BLEND_OVERLAP_DISJOINT_EXT),
+                  ("VK_BLEND_OVERLAP_CONJOINT_EXT",
+                   pure VK_BLEND_OVERLAP_CONJOINT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBlendOverlapEXT") >>
+                      (VkBlendOverlapEXT <$> step readPrec)))
+
+pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT :: VkBlendOverlapEXT
+
+pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT = VkBlendOverlapEXT 0
+
+pattern VK_BLEND_OVERLAP_DISJOINT_EXT :: VkBlendOverlapEXT
+
+pattern VK_BLEND_OVERLAP_DISJOINT_EXT = VkBlendOverlapEXT 1
+
+pattern VK_BLEND_OVERLAP_CONJOINT_EXT :: VkBlendOverlapEXT
+
+pattern VK_BLEND_OVERLAP_CONJOINT_EXT = VkBlendOverlapEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs b/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/BorderColor.hs
@@ -0,0 +1,92 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.BorderColor
+       (VkBorderColor(VkBorderColor,
+                      VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
+                      VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
+                      VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
+                      VK_BORDER_COLOR_INT_OPAQUE_BLACK,
+                      VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
+                      VK_BORDER_COLOR_INT_OPAQUE_WHITE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBorderColor VkBorderColor registry at www.khronos.org>
+newtype VkBorderColor = VkBorderColor Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkBorderColor where
+        showsPrec _ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
+          = showString "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"
+        showsPrec _ VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
+          = showString "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"
+        showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
+          = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"
+        showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_BLACK
+          = showString "VK_BORDER_COLOR_INT_OPAQUE_BLACK"
+        showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
+          = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"
+        showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_WHITE
+          = showString "VK_BORDER_COLOR_INT_OPAQUE_WHITE"
+        showsPrec p (VkBorderColor x)
+          = showParen (p >= 11)
+              (showString "VkBorderColor " . showsPrec 11 x)
+
+instance Read VkBorderColor where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK",
+                   pure VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK),
+                  ("VK_BORDER_COLOR_INT_TRANSPARENT_BLACK",
+                   pure VK_BORDER_COLOR_INT_TRANSPARENT_BLACK),
+                  ("VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK",
+                   pure VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK),
+                  ("VK_BORDER_COLOR_INT_OPAQUE_BLACK",
+                   pure VK_BORDER_COLOR_INT_OPAQUE_BLACK),
+                  ("VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE",
+                   pure VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE),
+                  ("VK_BORDER_COLOR_INT_OPAQUE_WHITE",
+                   pure VK_BORDER_COLOR_INT_OPAQUE_WHITE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBorderColor") >>
+                      (VkBorderColor <$> step readPrec)))
+
+pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK :: VkBorderColor
+
+pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor 0
+
+pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK :: VkBorderColor
+
+pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = VkBorderColor 1
+
+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK :: VkBorderColor
+
+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = VkBorderColor 2
+
+pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK :: VkBorderColor
+
+pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK = VkBorderColor 3
+
+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE :: VkBorderColor
+
+pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = VkBorderColor 4
+
+pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE :: VkBorderColor
+
+pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE = VkBorderColor 5
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs b/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Buffer.hs
@@ -0,0 +1,294 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Buffer
+       (VkBufferCreateBitmask(VkBufferCreateBitmask, VkBufferCreateFlags,
+                              VkBufferCreateFlagBits, VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
+                              VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
+                              VK_BUFFER_CREATE_SPARSE_ALIASED_BIT),
+        VkBufferCreateFlags, VkBufferCreateFlagBits,
+        VkBufferUsageBitmask(VkBufferUsageBitmask, VkBufferUsageFlags,
+                             VkBufferUsageFlagBits, VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
+                             VK_BUFFER_USAGE_TRANSFER_DST_BIT,
+                             VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
+                             VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
+                             VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
+                             VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
+                             VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
+                             VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
+                             VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT),
+        VkBufferUsageFlags, VkBufferUsageFlagBits,
+        VkBufferViewCreateFlagBits(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkBufferCreateBitmask (a ::
+                                 FlagType) = VkBufferCreateBitmask VkFlags
+                                               deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkBufferCreateFlags = VkBufferCreateBitmask FlagMask
+
+type VkBufferCreateFlagBits = VkBufferCreateBitmask FlagBit
+
+pattern VkBufferCreateFlagBits ::
+        VkFlags -> VkBufferCreateBitmask FlagBit
+
+pattern VkBufferCreateFlagBits n = VkBufferCreateBitmask n
+
+pattern VkBufferCreateFlags ::
+        VkFlags -> VkBufferCreateBitmask FlagMask
+
+pattern VkBufferCreateFlags n = VkBufferCreateBitmask n
+
+deriving instance Bits (VkBufferCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkBufferCreateBitmask FlagMask)
+
+deriving instance Integral (VkBufferCreateBitmask FlagMask)
+
+deriving instance Num (VkBufferCreateBitmask FlagMask)
+
+deriving instance Bounded (VkBufferCreateBitmask FlagMask)
+
+deriving instance Enum (VkBufferCreateBitmask FlagMask)
+
+deriving instance Real (VkBufferCreateBitmask FlagMask)
+
+instance Show (VkBufferCreateBitmask a) where
+        showsPrec _ VK_BUFFER_CREATE_SPARSE_BINDING_BIT
+          = showString "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"
+        showsPrec _ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
+          = showString "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"
+        showsPrec _ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
+          = showString "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"
+        showsPrec p (VkBufferCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkBufferCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkBufferCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BUFFER_CREATE_SPARSE_BINDING_BIT",
+                   pure VK_BUFFER_CREATE_SPARSE_BINDING_BIT),
+                  ("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT",
+                   pure VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT),
+                  ("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT",
+                   pure VK_BUFFER_CREATE_SPARSE_ALIASED_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBufferCreateBitmask") >>
+                      (VkBufferCreateBitmask <$> step readPrec)))
+
+-- | Buffer should support sparse backing
+--
+--   bitpos = @0@
+pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT ::
+        VkBufferCreateBitmask a
+
+pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT =
+        VkBufferCreateBitmask 1
+
+-- | Buffer should support sparse backing with partial residency
+--
+--   bitpos = @1@
+pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT ::
+        VkBufferCreateBitmask a
+
+pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT =
+        VkBufferCreateBitmask 2
+
+-- | Buffer should support constent data access to physical memory ranges mapped into multiple locations of sparse buffers
+--
+--   bitpos = @2@
+pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT ::
+        VkBufferCreateBitmask a
+
+pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT =
+        VkBufferCreateBitmask 4
+
+newtype VkBufferUsageBitmask (a ::
+                                FlagType) = VkBufferUsageBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkBufferUsageFlags = VkBufferUsageBitmask FlagMask
+
+type VkBufferUsageFlagBits = VkBufferUsageBitmask FlagBit
+
+pattern VkBufferUsageFlagBits ::
+        VkFlags -> VkBufferUsageBitmask FlagBit
+
+pattern VkBufferUsageFlagBits n = VkBufferUsageBitmask n
+
+pattern VkBufferUsageFlags ::
+        VkFlags -> VkBufferUsageBitmask FlagMask
+
+pattern VkBufferUsageFlags n = VkBufferUsageBitmask n
+
+deriving instance Bits (VkBufferUsageBitmask FlagMask)
+
+deriving instance FiniteBits (VkBufferUsageBitmask FlagMask)
+
+deriving instance Integral (VkBufferUsageBitmask FlagMask)
+
+deriving instance Num (VkBufferUsageBitmask FlagMask)
+
+deriving instance Bounded (VkBufferUsageBitmask FlagMask)
+
+deriving instance Enum (VkBufferUsageBitmask FlagMask)
+
+deriving instance Real (VkBufferUsageBitmask FlagMask)
+
+instance Show (VkBufferUsageBitmask a) where
+        showsPrec _ VK_BUFFER_USAGE_TRANSFER_SRC_BIT
+          = showString "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"
+        showsPrec _ VK_BUFFER_USAGE_TRANSFER_DST_BIT
+          = showString "VK_BUFFER_USAGE_TRANSFER_DST_BIT"
+        showsPrec _ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_INDEX_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"
+        showsPrec _ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
+          = showString "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"
+        showsPrec p (VkBufferUsageBitmask x)
+          = showParen (p >= 11)
+              (showString "VkBufferUsageBitmask " . showsPrec 11 x)
+
+instance Read (VkBufferUsageBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_BUFFER_USAGE_TRANSFER_SRC_BIT",
+                   pure VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
+                  ("VK_BUFFER_USAGE_TRANSFER_DST_BIT",
+                   pure VK_BUFFER_USAGE_TRANSFER_DST_BIT),
+                  ("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_STORAGE_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_INDEX_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_INDEX_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_VERTEX_BUFFER_BIT),
+                  ("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT",
+                   pure VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkBufferUsageBitmask") >>
+                      (VkBufferUsageBitmask <$> step readPrec)))
+
+-- | Can be used as a source of transfer operations
+--
+--   bitpos = @0@
+pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT :: VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageBitmask 1
+
+-- | Can be used as a destination of transfer operations
+--
+--   bitpos = @1@
+pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT :: VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageBitmask 2
+
+-- | Can be used as TBO
+--
+--   bitpos = @2@
+pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT ::
+        VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT =
+        VkBufferUsageBitmask 4
+
+-- | Can be used as IBO
+--
+--   bitpos = @3@
+pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT ::
+        VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT =
+        VkBufferUsageBitmask 8
+
+-- | Can be used as UBO
+--
+--   bitpos = @4@
+pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT ::
+        VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT =
+        VkBufferUsageBitmask 16
+
+-- | Can be used as SSBO
+--
+--   bitpos = @5@
+pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT ::
+        VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT =
+        VkBufferUsageBitmask 32
+
+-- | Can be used as source of fixed-function index fetch (index buffer)
+--
+--   bitpos = @6@
+pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT :: VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageBitmask 64
+
+-- | Can be used as source of fixed-function vertex fetch (VBO)
+--
+--   bitpos = @7@
+pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT :: VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT =
+        VkBufferUsageBitmask 128
+
+-- | Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
+--
+--   bitpos = @8@
+pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT ::
+        VkBufferUsageBitmask a
+
+pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT =
+        VkBufferUsageBitmask 256
+
+newtype VkBufferViewCreateFlagBits = VkBufferViewCreateFlagBits VkFlags
+                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                 FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkBufferViewCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkBufferViewCreateFlagBits x) = show x
+
+instance Read VkBufferViewCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs b/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ChromaLocation.hs
@@ -0,0 +1,70 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.ChromaLocation
+       (VkChromaLocation(VkChromaLocation,
+                         VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT),
+        VkChromaLocationKHR(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkChromaLocation VkChromaLocation registry at www.khronos.org>
+newtype VkChromaLocation = VkChromaLocation Int32
+                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkChromaLocation where
+        showsPrec _ VK_CHROMA_LOCATION_COSITED_EVEN
+          = showString "VK_CHROMA_LOCATION_COSITED_EVEN"
+        showsPrec _ VK_CHROMA_LOCATION_MIDPOINT
+          = showString "VK_CHROMA_LOCATION_MIDPOINT"
+        showsPrec p (VkChromaLocation x)
+          = showParen (p >= 11)
+              (showString "VkChromaLocation " . showsPrec 11 x)
+
+instance Read VkChromaLocation where
+        readPrec
+          = parens
+              (choose
+                 [("VK_CHROMA_LOCATION_COSITED_EVEN",
+                   pure VK_CHROMA_LOCATION_COSITED_EVEN),
+                  ("VK_CHROMA_LOCATION_MIDPOINT", pure VK_CHROMA_LOCATION_MIDPOINT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkChromaLocation") >>
+                      (VkChromaLocation <$> step readPrec)))
+
+pattern VK_CHROMA_LOCATION_COSITED_EVEN :: VkChromaLocation
+
+pattern VK_CHROMA_LOCATION_COSITED_EVEN = VkChromaLocation 0
+
+pattern VK_CHROMA_LOCATION_MIDPOINT :: VkChromaLocation
+
+pattern VK_CHROMA_LOCATION_MIDPOINT = VkChromaLocation 1
+
+newtype VkChromaLocationKHR = VkChromaLocationKHR VkFlags
+                                deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits,
+                                          Storable, Real, Data, Generic)
+
+instance Show VkChromaLocationKHR where
+        {-# INLINE show #-}
+        show (VkChromaLocationKHR x) = show x
+
+instance Read VkChromaLocationKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Color.hs b/src-gen/Graphics/Vulkan/Types/Enum/Color.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Color.hs
@@ -0,0 +1,137 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Color
+       (VkColorComponentBitmask(VkColorComponentBitmask,
+                                VkColorComponentFlags, VkColorComponentFlagBits,
+                                VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT,
+                                VK_COLOR_COMPONENT_B_BIT, VK_COLOR_COMPONENT_A_BIT),
+        VkColorComponentFlags, VkColorComponentFlagBits,
+        VkColorSpaceKHR(VkColorSpaceKHR,
+                        VK_COLOR_SPACE_SRGB_NONLINEAR_KHR))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkColorComponentBitmask (a ::
+                                   FlagType) = VkColorComponentBitmask VkFlags
+                                                 deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkColorComponentFlags = VkColorComponentBitmask FlagMask
+
+type VkColorComponentFlagBits = VkColorComponentBitmask FlagBit
+
+pattern VkColorComponentFlagBits ::
+        VkFlags -> VkColorComponentBitmask FlagBit
+
+pattern VkColorComponentFlagBits n = VkColorComponentBitmask n
+
+pattern VkColorComponentFlags ::
+        VkFlags -> VkColorComponentBitmask FlagMask
+
+pattern VkColorComponentFlags n = VkColorComponentBitmask n
+
+deriving instance Bits (VkColorComponentBitmask FlagMask)
+
+deriving instance FiniteBits (VkColorComponentBitmask FlagMask)
+
+deriving instance Integral (VkColorComponentBitmask FlagMask)
+
+deriving instance Num (VkColorComponentBitmask FlagMask)
+
+deriving instance Bounded (VkColorComponentBitmask FlagMask)
+
+deriving instance Enum (VkColorComponentBitmask FlagMask)
+
+deriving instance Real (VkColorComponentBitmask FlagMask)
+
+instance Show (VkColorComponentBitmask a) where
+        showsPrec _ VK_COLOR_COMPONENT_R_BIT
+          = showString "VK_COLOR_COMPONENT_R_BIT"
+        showsPrec _ VK_COLOR_COMPONENT_G_BIT
+          = showString "VK_COLOR_COMPONENT_G_BIT"
+        showsPrec _ VK_COLOR_COMPONENT_B_BIT
+          = showString "VK_COLOR_COMPONENT_B_BIT"
+        showsPrec _ VK_COLOR_COMPONENT_A_BIT
+          = showString "VK_COLOR_COMPONENT_A_BIT"
+        showsPrec p (VkColorComponentBitmask x)
+          = showParen (p >= 11)
+              (showString "VkColorComponentBitmask " . showsPrec 11 x)
+
+instance Read (VkColorComponentBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COLOR_COMPONENT_R_BIT", pure VK_COLOR_COMPONENT_R_BIT),
+                  ("VK_COLOR_COMPONENT_G_BIT", pure VK_COLOR_COMPONENT_G_BIT),
+                  ("VK_COLOR_COMPONENT_B_BIT", pure VK_COLOR_COMPONENT_B_BIT),
+                  ("VK_COLOR_COMPONENT_A_BIT", pure VK_COLOR_COMPONENT_A_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkColorComponentBitmask") >>
+                      (VkColorComponentBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_COLOR_COMPONENT_R_BIT :: VkColorComponentBitmask a
+
+pattern VK_COLOR_COMPONENT_R_BIT = VkColorComponentBitmask 1
+
+-- | bitpos = @1@
+pattern VK_COLOR_COMPONENT_G_BIT :: VkColorComponentBitmask a
+
+pattern VK_COLOR_COMPONENT_G_BIT = VkColorComponentBitmask 2
+
+-- | bitpos = @2@
+pattern VK_COLOR_COMPONENT_B_BIT :: VkColorComponentBitmask a
+
+pattern VK_COLOR_COMPONENT_B_BIT = VkColorComponentBitmask 4
+
+-- | bitpos = @3@
+pattern VK_COLOR_COMPONENT_A_BIT :: VkColorComponentBitmask a
+
+pattern VK_COLOR_COMPONENT_A_BIT = VkColorComponentBitmask 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkColorSpaceKHR VkColorSpaceKHR registry at www.khronos.org>
+newtype VkColorSpaceKHR = VkColorSpaceKHR Int32
+                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkColorSpaceKHR where
+        showsPrec _ VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
+          = showString "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"
+        showsPrec p (VkColorSpaceKHR x)
+          = showParen (p >= 11)
+              (showString "VkColorSpaceKHR " . showsPrec 11 x)
+
+instance Read VkColorSpaceKHR where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COLOR_SPACE_SRGB_NONLINEAR_KHR",
+                   pure VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkColorSpaceKHR") >>
+                      (VkColorSpaceKHR <$> step readPrec)))
+
+pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR :: VkColorSpaceKHR
+
+pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = VkColorSpaceKHR 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Command.hs b/src-gen/Graphics/Vulkan/Types/Enum/Command.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Command.hs
@@ -0,0 +1,361 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Command
+       (VkCommandBufferLevel(VkCommandBufferLevel,
+                             VK_COMMAND_BUFFER_LEVEL_PRIMARY,
+                             VK_COMMAND_BUFFER_LEVEL_SECONDARY),
+        VkCommandBufferResetBitmask(VkCommandBufferResetBitmask,
+                                    VkCommandBufferResetFlags, VkCommandBufferResetFlagBits,
+                                    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT),
+        VkCommandBufferResetFlags, VkCommandBufferResetFlagBits,
+        VkCommandBufferUsageBitmask(VkCommandBufferUsageBitmask,
+                                    VkCommandBufferUsageFlags, VkCommandBufferUsageFlagBits,
+                                    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
+                                    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
+                                    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT),
+        VkCommandBufferUsageFlags, VkCommandBufferUsageFlagBits,
+        VkCommandPoolCreateBitmask(VkCommandPoolCreateBitmask,
+                                   VkCommandPoolCreateFlags, VkCommandPoolCreateFlagBits,
+                                   VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
+                                   VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT),
+        VkCommandPoolCreateFlags, VkCommandPoolCreateFlagBits,
+        VkCommandPoolResetBitmask(VkCommandPoolResetBitmask,
+                                  VkCommandPoolResetFlags, VkCommandPoolResetFlagBits,
+                                  VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT),
+        VkCommandPoolResetFlags, VkCommandPoolResetFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferLevel VkCommandBufferLevel registry at www.khronos.org>
+newtype VkCommandBufferLevel = VkCommandBufferLevel Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkCommandBufferLevel where
+        showsPrec _ VK_COMMAND_BUFFER_LEVEL_PRIMARY
+          = showString "VK_COMMAND_BUFFER_LEVEL_PRIMARY"
+        showsPrec _ VK_COMMAND_BUFFER_LEVEL_SECONDARY
+          = showString "VK_COMMAND_BUFFER_LEVEL_SECONDARY"
+        showsPrec p (VkCommandBufferLevel x)
+          = showParen (p >= 11)
+              (showString "VkCommandBufferLevel " . showsPrec 11 x)
+
+instance Read VkCommandBufferLevel where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMMAND_BUFFER_LEVEL_PRIMARY",
+                   pure VK_COMMAND_BUFFER_LEVEL_PRIMARY),
+                  ("VK_COMMAND_BUFFER_LEVEL_SECONDARY",
+                   pure VK_COMMAND_BUFFER_LEVEL_SECONDARY)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCommandBufferLevel") >>
+                      (VkCommandBufferLevel <$> step readPrec)))
+
+pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY :: VkCommandBufferLevel
+
+pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY = VkCommandBufferLevel 0
+
+pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY :: VkCommandBufferLevel
+
+pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel 1
+
+newtype VkCommandBufferResetBitmask (a ::
+                                       FlagType) = VkCommandBufferResetBitmask VkFlags
+                                                     deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCommandBufferResetFlags =
+     VkCommandBufferResetBitmask FlagMask
+
+type VkCommandBufferResetFlagBits =
+     VkCommandBufferResetBitmask FlagBit
+
+pattern VkCommandBufferResetFlagBits ::
+        VkFlags -> VkCommandBufferResetBitmask FlagBit
+
+pattern VkCommandBufferResetFlagBits n =
+        VkCommandBufferResetBitmask n
+
+pattern VkCommandBufferResetFlags ::
+        VkFlags -> VkCommandBufferResetBitmask FlagMask
+
+pattern VkCommandBufferResetFlags n = VkCommandBufferResetBitmask n
+
+deriving instance Bits (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance FiniteBits (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance Integral (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance Num (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance Bounded (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance Enum (VkCommandBufferResetBitmask FlagMask)
+
+deriving instance Real (VkCommandBufferResetBitmask FlagMask)
+
+instance Show (VkCommandBufferResetBitmask a) where
+        showsPrec _ VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
+          = showString "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"
+        showsPrec p (VkCommandBufferResetBitmask x)
+          = showParen (p >= 11)
+              (showString "VkCommandBufferResetBitmask " . showsPrec 11 x)
+
+instance Read (VkCommandBufferResetBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT",
+                   pure VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCommandBufferResetBitmask") >>
+                      (VkCommandBufferResetBitmask <$> step readPrec)))
+
+-- | Release resources owned by the buffer
+--
+--   bitpos = @0@
+pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT ::
+        VkCommandBufferResetBitmask a
+
+pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT =
+        VkCommandBufferResetBitmask 1
+
+newtype VkCommandBufferUsageBitmask (a ::
+                                       FlagType) = VkCommandBufferUsageBitmask VkFlags
+                                                     deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCommandBufferUsageFlags =
+     VkCommandBufferUsageBitmask FlagMask
+
+type VkCommandBufferUsageFlagBits =
+     VkCommandBufferUsageBitmask FlagBit
+
+pattern VkCommandBufferUsageFlagBits ::
+        VkFlags -> VkCommandBufferUsageBitmask FlagBit
+
+pattern VkCommandBufferUsageFlagBits n =
+        VkCommandBufferUsageBitmask n
+
+pattern VkCommandBufferUsageFlags ::
+        VkFlags -> VkCommandBufferUsageBitmask FlagMask
+
+pattern VkCommandBufferUsageFlags n = VkCommandBufferUsageBitmask n
+
+deriving instance Bits (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance FiniteBits (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance Integral (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance Num (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance Bounded (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance Enum (VkCommandBufferUsageBitmask FlagMask)
+
+deriving instance Real (VkCommandBufferUsageBitmask FlagMask)
+
+instance Show (VkCommandBufferUsageBitmask a) where
+        showsPrec _ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
+          = showString "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"
+        showsPrec _ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
+          = showString "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"
+        showsPrec _ VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
+          = showString "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"
+        showsPrec p (VkCommandBufferUsageBitmask x)
+          = showParen (p >= 11)
+              (showString "VkCommandBufferUsageBitmask " . showsPrec 11 x)
+
+instance Read (VkCommandBufferUsageBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT",
+                   pure VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT),
+                  ("VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT",
+                   pure VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT),
+                  ("VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT",
+                   pure VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCommandBufferUsageBitmask") >>
+                      (VkCommandBufferUsageBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT ::
+        VkCommandBufferUsageBitmask a
+
+pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT =
+        VkCommandBufferUsageBitmask 1
+
+-- | bitpos = @1@
+pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT ::
+        VkCommandBufferUsageBitmask a
+
+pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT =
+        VkCommandBufferUsageBitmask 2
+
+-- | Command buffer may be submitted/executed more than once simultaneously
+--
+--   bitpos = @2@
+pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT ::
+        VkCommandBufferUsageBitmask a
+
+pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT =
+        VkCommandBufferUsageBitmask 4
+
+newtype VkCommandPoolCreateBitmask (a ::
+                                      FlagType) = VkCommandPoolCreateBitmask VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCommandPoolCreateFlags = VkCommandPoolCreateBitmask FlagMask
+
+type VkCommandPoolCreateFlagBits =
+     VkCommandPoolCreateBitmask FlagBit
+
+pattern VkCommandPoolCreateFlagBits ::
+        VkFlags -> VkCommandPoolCreateBitmask FlagBit
+
+pattern VkCommandPoolCreateFlagBits n =
+        VkCommandPoolCreateBitmask n
+
+pattern VkCommandPoolCreateFlags ::
+        VkFlags -> VkCommandPoolCreateBitmask FlagMask
+
+pattern VkCommandPoolCreateFlags n = VkCommandPoolCreateBitmask n
+
+deriving instance Bits (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance Integral (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance Num (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance Bounded (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance Enum (VkCommandPoolCreateBitmask FlagMask)
+
+deriving instance Real (VkCommandPoolCreateBitmask FlagMask)
+
+instance Show (VkCommandPoolCreateBitmask a) where
+        showsPrec _ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
+          = showString "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"
+        showsPrec _ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
+          = showString "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"
+        showsPrec p (VkCommandPoolCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkCommandPoolCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkCommandPoolCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMMAND_POOL_CREATE_TRANSIENT_BIT",
+                   pure VK_COMMAND_POOL_CREATE_TRANSIENT_BIT),
+                  ("VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT",
+                   pure VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCommandPoolCreateBitmask") >>
+                      (VkCommandPoolCreateBitmask <$> step readPrec)))
+
+-- | Command buffers have a short lifetime
+--
+--   bitpos = @0@
+pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT ::
+        VkCommandPoolCreateBitmask a
+
+pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT =
+        VkCommandPoolCreateBitmask 1
+
+-- | Command buffers may release their memory individually
+--
+--   bitpos = @1@
+pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT ::
+        VkCommandPoolCreateBitmask a
+
+pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT =
+        VkCommandPoolCreateBitmask 2
+
+newtype VkCommandPoolResetBitmask (a ::
+                                     FlagType) = VkCommandPoolResetBitmask VkFlags
+                                                   deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCommandPoolResetFlags = VkCommandPoolResetBitmask FlagMask
+
+type VkCommandPoolResetFlagBits = VkCommandPoolResetBitmask FlagBit
+
+pattern VkCommandPoolResetFlagBits ::
+        VkFlags -> VkCommandPoolResetBitmask FlagBit
+
+pattern VkCommandPoolResetFlagBits n = VkCommandPoolResetBitmask n
+
+pattern VkCommandPoolResetFlags ::
+        VkFlags -> VkCommandPoolResetBitmask FlagMask
+
+pattern VkCommandPoolResetFlags n = VkCommandPoolResetBitmask n
+
+deriving instance Bits (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance FiniteBits (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance Integral (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance Num (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance Bounded (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance Enum (VkCommandPoolResetBitmask FlagMask)
+
+deriving instance Real (VkCommandPoolResetBitmask FlagMask)
+
+instance Show (VkCommandPoolResetBitmask a) where
+        showsPrec _ VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
+          = showString "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"
+        showsPrec p (VkCommandPoolResetBitmask x)
+          = showParen (p >= 11)
+              (showString "VkCommandPoolResetBitmask " . showsPrec 11 x)
+
+instance Read (VkCommandPoolResetBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT",
+                   pure VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCommandPoolResetBitmask") >>
+                      (VkCommandPoolResetBitmask <$> step readPrec)))
+
+-- | Release resources owned by the pool
+--
+--   bitpos = @0@
+pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT ::
+        VkCommandPoolResetBitmask a
+
+pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT =
+        VkCommandPoolResetBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CompareOp.hs
@@ -0,0 +1,93 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.CompareOp
+       (VkCompareOp(VkCompareOp, VK_COMPARE_OP_NEVER, VK_COMPARE_OP_LESS,
+                    VK_COMPARE_OP_EQUAL, VK_COMPARE_OP_LESS_OR_EQUAL,
+                    VK_COMPARE_OP_GREATER, VK_COMPARE_OP_NOT_EQUAL,
+                    VK_COMPARE_OP_GREATER_OR_EQUAL, VK_COMPARE_OP_ALWAYS))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCompareOp VkCompareOp registry at www.khronos.org>
+newtype VkCompareOp = VkCompareOp Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkCompareOp where
+        showsPrec _ VK_COMPARE_OP_NEVER = showString "VK_COMPARE_OP_NEVER"
+        showsPrec _ VK_COMPARE_OP_LESS = showString "VK_COMPARE_OP_LESS"
+        showsPrec _ VK_COMPARE_OP_EQUAL = showString "VK_COMPARE_OP_EQUAL"
+        showsPrec _ VK_COMPARE_OP_LESS_OR_EQUAL
+          = showString "VK_COMPARE_OP_LESS_OR_EQUAL"
+        showsPrec _ VK_COMPARE_OP_GREATER
+          = showString "VK_COMPARE_OP_GREATER"
+        showsPrec _ VK_COMPARE_OP_NOT_EQUAL
+          = showString "VK_COMPARE_OP_NOT_EQUAL"
+        showsPrec _ VK_COMPARE_OP_GREATER_OR_EQUAL
+          = showString "VK_COMPARE_OP_GREATER_OR_EQUAL"
+        showsPrec _ VK_COMPARE_OP_ALWAYS
+          = showString "VK_COMPARE_OP_ALWAYS"
+        showsPrec p (VkCompareOp x)
+          = showParen (p >= 11) (showString "VkCompareOp " . showsPrec 11 x)
+
+instance Read VkCompareOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMPARE_OP_NEVER", pure VK_COMPARE_OP_NEVER),
+                  ("VK_COMPARE_OP_LESS", pure VK_COMPARE_OP_LESS),
+                  ("VK_COMPARE_OP_EQUAL", pure VK_COMPARE_OP_EQUAL),
+                  ("VK_COMPARE_OP_LESS_OR_EQUAL", pure VK_COMPARE_OP_LESS_OR_EQUAL),
+                  ("VK_COMPARE_OP_GREATER", pure VK_COMPARE_OP_GREATER),
+                  ("VK_COMPARE_OP_NOT_EQUAL", pure VK_COMPARE_OP_NOT_EQUAL),
+                  ("VK_COMPARE_OP_GREATER_OR_EQUAL",
+                   pure VK_COMPARE_OP_GREATER_OR_EQUAL),
+                  ("VK_COMPARE_OP_ALWAYS", pure VK_COMPARE_OP_ALWAYS)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCompareOp") >> (VkCompareOp <$> step readPrec)))
+
+pattern VK_COMPARE_OP_NEVER :: VkCompareOp
+
+pattern VK_COMPARE_OP_NEVER = VkCompareOp 0
+
+pattern VK_COMPARE_OP_LESS :: VkCompareOp
+
+pattern VK_COMPARE_OP_LESS = VkCompareOp 1
+
+pattern VK_COMPARE_OP_EQUAL :: VkCompareOp
+
+pattern VK_COMPARE_OP_EQUAL = VkCompareOp 2
+
+pattern VK_COMPARE_OP_LESS_OR_EQUAL :: VkCompareOp
+
+pattern VK_COMPARE_OP_LESS_OR_EQUAL = VkCompareOp 3
+
+pattern VK_COMPARE_OP_GREATER :: VkCompareOp
+
+pattern VK_COMPARE_OP_GREATER = VkCompareOp 4
+
+pattern VK_COMPARE_OP_NOT_EQUAL :: VkCompareOp
+
+pattern VK_COMPARE_OP_NOT_EQUAL = VkCompareOp 5
+
+pattern VK_COMPARE_OP_GREATER_OR_EQUAL :: VkCompareOp
+
+pattern VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp 6
+
+pattern VK_COMPARE_OP_ALWAYS :: VkCompareOp
+
+pattern VK_COMPARE_OP_ALWAYS = VkCompareOp 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs b/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ComponentSwizzle.hs
@@ -0,0 +1,92 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.ComponentSwizzle
+       (VkComponentSwizzle(VkComponentSwizzle,
+                           VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_ZERO,
+                           VK_COMPONENT_SWIZZLE_ONE, VK_COMPONENT_SWIZZLE_R,
+                           VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B,
+                           VK_COMPONENT_SWIZZLE_A))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComponentSwizzle VkComponentSwizzle registry at www.khronos.org>
+newtype VkComponentSwizzle = VkComponentSwizzle Int32
+                               deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkComponentSwizzle where
+        showsPrec _ VK_COMPONENT_SWIZZLE_IDENTITY
+          = showString "VK_COMPONENT_SWIZZLE_IDENTITY"
+        showsPrec _ VK_COMPONENT_SWIZZLE_ZERO
+          = showString "VK_COMPONENT_SWIZZLE_ZERO"
+        showsPrec _ VK_COMPONENT_SWIZZLE_ONE
+          = showString "VK_COMPONENT_SWIZZLE_ONE"
+        showsPrec _ VK_COMPONENT_SWIZZLE_R
+          = showString "VK_COMPONENT_SWIZZLE_R"
+        showsPrec _ VK_COMPONENT_SWIZZLE_G
+          = showString "VK_COMPONENT_SWIZZLE_G"
+        showsPrec _ VK_COMPONENT_SWIZZLE_B
+          = showString "VK_COMPONENT_SWIZZLE_B"
+        showsPrec _ VK_COMPONENT_SWIZZLE_A
+          = showString "VK_COMPONENT_SWIZZLE_A"
+        showsPrec p (VkComponentSwizzle x)
+          = showParen (p >= 11)
+              (showString "VkComponentSwizzle " . showsPrec 11 x)
+
+instance Read VkComponentSwizzle where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMPONENT_SWIZZLE_IDENTITY",
+                   pure VK_COMPONENT_SWIZZLE_IDENTITY),
+                  ("VK_COMPONENT_SWIZZLE_ZERO", pure VK_COMPONENT_SWIZZLE_ZERO),
+                  ("VK_COMPONENT_SWIZZLE_ONE", pure VK_COMPONENT_SWIZZLE_ONE),
+                  ("VK_COMPONENT_SWIZZLE_R", pure VK_COMPONENT_SWIZZLE_R),
+                  ("VK_COMPONENT_SWIZZLE_G", pure VK_COMPONENT_SWIZZLE_G),
+                  ("VK_COMPONENT_SWIZZLE_B", pure VK_COMPONENT_SWIZZLE_B),
+                  ("VK_COMPONENT_SWIZZLE_A", pure VK_COMPONENT_SWIZZLE_A)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkComponentSwizzle") >>
+                      (VkComponentSwizzle <$> step readPrec)))
+
+pattern VK_COMPONENT_SWIZZLE_IDENTITY :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle 0
+
+pattern VK_COMPONENT_SWIZZLE_ZERO :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_ZERO = VkComponentSwizzle 1
+
+pattern VK_COMPONENT_SWIZZLE_ONE :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_ONE = VkComponentSwizzle 2
+
+pattern VK_COMPONENT_SWIZZLE_R :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_R = VkComponentSwizzle 3
+
+pattern VK_COMPONENT_SWIZZLE_G :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_G = VkComponentSwizzle 4
+
+pattern VK_COMPONENT_SWIZZLE_B :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_B = VkComponentSwizzle 5
+
+pattern VK_COMPONENT_SWIZZLE_A :: VkComponentSwizzle
+
+pattern VK_COMPONENT_SWIZZLE_A = VkComponentSwizzle 6
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CompositeAlphaFlagsKHR.hs
@@ -0,0 +1,122 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+       (VkCompositeAlphaBitmaskKHR(VkCompositeAlphaBitmaskKHR,
+                                   VkCompositeAlphaFlagsKHR, VkCompositeAlphaFlagBitsKHR,
+                                   VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
+                                   VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
+                                   VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
+                                   VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR),
+        VkCompositeAlphaFlagsKHR, VkCompositeAlphaFlagBitsKHR)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkCompositeAlphaBitmaskKHR (a ::
+                                      FlagType) = VkCompositeAlphaBitmaskKHR VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCompositeAlphaFlagsKHR = VkCompositeAlphaBitmaskKHR FlagMask
+
+type VkCompositeAlphaFlagBitsKHR =
+     VkCompositeAlphaBitmaskKHR FlagBit
+
+pattern VkCompositeAlphaFlagBitsKHR ::
+        VkFlags -> VkCompositeAlphaBitmaskKHR FlagBit
+
+pattern VkCompositeAlphaFlagBitsKHR n =
+        VkCompositeAlphaBitmaskKHR n
+
+pattern VkCompositeAlphaFlagsKHR ::
+        VkFlags -> VkCompositeAlphaBitmaskKHR FlagMask
+
+pattern VkCompositeAlphaFlagsKHR n = VkCompositeAlphaBitmaskKHR n
+
+deriving instance Bits (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance FiniteBits (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance Integral (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance Num (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance Bounded (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance Enum (VkCompositeAlphaBitmaskKHR FlagMask)
+
+deriving instance Real (VkCompositeAlphaBitmaskKHR FlagMask)
+
+instance Show (VkCompositeAlphaBitmaskKHR a) where
+        showsPrec _ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
+          = showString "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"
+        showsPrec _ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
+          = showString "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"
+        showsPrec _ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
+          = showString "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"
+        showsPrec _ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
+          = showString "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"
+        showsPrec p (VkCompositeAlphaBitmaskKHR x)
+          = showParen (p >= 11)
+              (showString "VkCompositeAlphaBitmaskKHR " . showsPrec 11 x)
+
+instance Read (VkCompositeAlphaBitmaskKHR a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR",
+                   pure VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR),
+                  ("VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR",
+                   pure VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR),
+                  ("VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR",
+                   pure VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR),
+                  ("VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR",
+                   pure VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCompositeAlphaBitmaskKHR") >>
+                      (VkCompositeAlphaBitmaskKHR <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR ::
+        VkCompositeAlphaBitmaskKHR a
+
+pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR =
+        VkCompositeAlphaBitmaskKHR 1
+
+-- | bitpos = @1@
+pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR ::
+        VkCompositeAlphaBitmaskKHR a
+
+pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR =
+        VkCompositeAlphaBitmaskKHR 2
+
+-- | bitpos = @2@
+pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR ::
+        VkCompositeAlphaBitmaskKHR a
+
+pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR =
+        VkCompositeAlphaBitmaskKHR 4
+
+-- | bitpos = @3@
+pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR ::
+        VkCompositeAlphaBitmaskKHR a
+
+pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR =
+        VkCompositeAlphaBitmaskKHR 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ConservativeRasterizationModeEXT.hs
@@ -0,0 +1,72 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
+       (VkConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT,
+                                           VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
+                                           VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
+                                           VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkConservativeRasterizationModeEXT VkConservativeRasterizationModeEXT registry at www.khronos.org>
+newtype VkConservativeRasterizationModeEXT = VkConservativeRasterizationModeEXT Int32
+                                               deriving (Eq, Ord, Num, Bounded, Storable, Enum,
+                                                         Data, Generic)
+
+instance Show VkConservativeRasterizationModeEXT where
+        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
+          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"
+        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
+          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"
+        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
+          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"
+        showsPrec p (VkConservativeRasterizationModeEXT x)
+          = showParen (p >= 11)
+              (showString "VkConservativeRasterizationModeEXT " . showsPrec 11 x)
+
+instance Read VkConservativeRasterizationModeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT",
+                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT),
+                  ("VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT",
+                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT),
+                  ("VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT",
+                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkConservativeRasterizationModeEXT") >>
+                      (VkConservativeRasterizationModeEXT <$> step readPrec)))
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT ::
+        VkConservativeRasterizationModeEXT
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT =
+        VkConservativeRasterizationModeEXT 0
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT ::
+        VkConservativeRasterizationModeEXT
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT =
+        VkConservativeRasterizationModeEXT 1
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT ::
+        VkConservativeRasterizationModeEXT
+
+pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT =
+        VkConservativeRasterizationModeEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CoverageModulationModeNV.hs
@@ -0,0 +1,83 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.CoverageModulationModeNV
+       (VkCoverageModulationModeNV(VkCoverageModulationModeNV,
+                                   VK_COVERAGE_MODULATION_MODE_NONE_NV,
+                                   VK_COVERAGE_MODULATION_MODE_RGB_NV,
+                                   VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
+                                   VK_COVERAGE_MODULATION_MODE_RGBA_NV))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCoverageModulationModeNV VkCoverageModulationModeNV registry at www.khronos.org>
+newtype VkCoverageModulationModeNV = VkCoverageModulationModeNV Int32
+                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                 Generic)
+
+instance Show VkCoverageModulationModeNV where
+        showsPrec _ VK_COVERAGE_MODULATION_MODE_NONE_NV
+          = showString "VK_COVERAGE_MODULATION_MODE_NONE_NV"
+        showsPrec _ VK_COVERAGE_MODULATION_MODE_RGB_NV
+          = showString "VK_COVERAGE_MODULATION_MODE_RGB_NV"
+        showsPrec _ VK_COVERAGE_MODULATION_MODE_ALPHA_NV
+          = showString "VK_COVERAGE_MODULATION_MODE_ALPHA_NV"
+        showsPrec _ VK_COVERAGE_MODULATION_MODE_RGBA_NV
+          = showString "VK_COVERAGE_MODULATION_MODE_RGBA_NV"
+        showsPrec p (VkCoverageModulationModeNV x)
+          = showParen (p >= 11)
+              (showString "VkCoverageModulationModeNV " . showsPrec 11 x)
+
+instance Read VkCoverageModulationModeNV where
+        readPrec
+          = parens
+              (choose
+                 [("VK_COVERAGE_MODULATION_MODE_NONE_NV",
+                   pure VK_COVERAGE_MODULATION_MODE_NONE_NV),
+                  ("VK_COVERAGE_MODULATION_MODE_RGB_NV",
+                   pure VK_COVERAGE_MODULATION_MODE_RGB_NV),
+                  ("VK_COVERAGE_MODULATION_MODE_ALPHA_NV",
+                   pure VK_COVERAGE_MODULATION_MODE_ALPHA_NV),
+                  ("VK_COVERAGE_MODULATION_MODE_RGBA_NV",
+                   pure VK_COVERAGE_MODULATION_MODE_RGBA_NV)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCoverageModulationModeNV") >>
+                      (VkCoverageModulationModeNV <$> step readPrec)))
+
+pattern VK_COVERAGE_MODULATION_MODE_NONE_NV ::
+        VkCoverageModulationModeNV
+
+pattern VK_COVERAGE_MODULATION_MODE_NONE_NV =
+        VkCoverageModulationModeNV 0
+
+pattern VK_COVERAGE_MODULATION_MODE_RGB_NV ::
+        VkCoverageModulationModeNV
+
+pattern VK_COVERAGE_MODULATION_MODE_RGB_NV =
+        VkCoverageModulationModeNV 1
+
+pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV ::
+        VkCoverageModulationModeNV
+
+pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV =
+        VkCoverageModulationModeNV 2
+
+pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV ::
+        VkCoverageModulationModeNV
+
+pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV =
+        VkCoverageModulationModeNV 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/CullModeFlags.hs
@@ -0,0 +1,100 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.CullModeFlags
+       (VkCullModeBitmask(VkCullModeBitmask, VkCullModeFlags,
+                          VkCullModeFlagBits, VK_CULL_MODE_NONE, VK_CULL_MODE_FRONT_BIT,
+                          VK_CULL_MODE_BACK_BIT, VK_CULL_MODE_FRONT_AND_BACK),
+        VkCullModeFlags, VkCullModeFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkCullModeBitmask (a ::
+                             FlagType) = VkCullModeBitmask VkFlags
+                                           deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkCullModeFlags = VkCullModeBitmask FlagMask
+
+type VkCullModeFlagBits = VkCullModeBitmask FlagBit
+
+pattern VkCullModeFlagBits :: VkFlags -> VkCullModeBitmask FlagBit
+
+pattern VkCullModeFlagBits n = VkCullModeBitmask n
+
+pattern VkCullModeFlags :: VkFlags -> VkCullModeBitmask FlagMask
+
+pattern VkCullModeFlags n = VkCullModeBitmask n
+
+deriving instance Bits (VkCullModeBitmask FlagMask)
+
+deriving instance FiniteBits (VkCullModeBitmask FlagMask)
+
+deriving instance Integral (VkCullModeBitmask FlagMask)
+
+deriving instance Num (VkCullModeBitmask FlagMask)
+
+deriving instance Bounded (VkCullModeBitmask FlagMask)
+
+deriving instance Enum (VkCullModeBitmask FlagMask)
+
+deriving instance Real (VkCullModeBitmask FlagMask)
+
+instance Show (VkCullModeBitmask a) where
+        showsPrec _ VK_CULL_MODE_NONE = showString "VK_CULL_MODE_NONE"
+        showsPrec _ VK_CULL_MODE_FRONT_BIT
+          = showString "VK_CULL_MODE_FRONT_BIT"
+        showsPrec _ VK_CULL_MODE_BACK_BIT
+          = showString "VK_CULL_MODE_BACK_BIT"
+        showsPrec _ VK_CULL_MODE_FRONT_AND_BACK
+          = showString "VK_CULL_MODE_FRONT_AND_BACK"
+        showsPrec p (VkCullModeBitmask x)
+          = showParen (p >= 11)
+              (showString "VkCullModeBitmask " . showsPrec 11 x)
+
+instance Read (VkCullModeBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_CULL_MODE_NONE", pure VK_CULL_MODE_NONE),
+                  ("VK_CULL_MODE_FRONT_BIT", pure VK_CULL_MODE_FRONT_BIT),
+                  ("VK_CULL_MODE_BACK_BIT", pure VK_CULL_MODE_BACK_BIT),
+                  ("VK_CULL_MODE_FRONT_AND_BACK", pure VK_CULL_MODE_FRONT_AND_BACK)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkCullModeBitmask") >>
+                      (VkCullModeBitmask <$> step readPrec)))
+
+pattern VK_CULL_MODE_NONE :: VkCullModeBitmask a
+
+pattern VK_CULL_MODE_NONE = VkCullModeBitmask 0
+
+-- | bitpos = @0@
+pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeBitmask a
+
+pattern VK_CULL_MODE_FRONT_BIT = VkCullModeBitmask 1
+
+-- | bitpos = @1@
+pattern VK_CULL_MODE_BACK_BIT :: VkCullModeBitmask a
+
+pattern VK_CULL_MODE_BACK_BIT = VkCullModeBitmask 2
+
+pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeBitmask a
+
+pattern VK_CULL_MODE_FRONT_AND_BACK = VkCullModeBitmask 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs b/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Debug.hs
@@ -0,0 +1,735 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Debug
+       (VkDebugReportBitmaskEXT(VkDebugReportBitmaskEXT,
+                                VkDebugReportFlagsEXT, VkDebugReportFlagBitsEXT,
+                                VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
+                                VK_DEBUG_REPORT_WARNING_BIT_EXT,
+                                VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
+                                VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_DEBUG_BIT_EXT),
+        VkDebugReportFlagsEXT, VkDebugReportFlagBitsEXT,
+        VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
+                                   VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT),
+        VkDebugUtilsMessageSeverityBitmaskEXT(VkDebugUtilsMessageSeverityBitmaskEXT,
+                                              VkDebugUtilsMessageSeverityFlagsEXT,
+                                              VkDebugUtilsMessageSeverityFlagBitsEXT,
+                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
+                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
+                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
+                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT),
+        VkDebugUtilsMessageSeverityFlagsEXT,
+        VkDebugUtilsMessageSeverityFlagBitsEXT,
+        VkDebugUtilsMessageTypeBitmaskEXT(VkDebugUtilsMessageTypeBitmaskEXT,
+                                          VkDebugUtilsMessageTypeFlagsEXT,
+                                          VkDebugUtilsMessageTypeFlagBitsEXT,
+                                          VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
+                                          VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
+                                          VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT),
+        VkDebugUtilsMessageTypeFlagsEXT,
+        VkDebugUtilsMessageTypeFlagBitsEXT)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkDebugReportBitmaskEXT (a ::
+                                   FlagType) = VkDebugReportBitmaskEXT VkFlags
+                                                 deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDebugReportFlagsEXT = VkDebugReportBitmaskEXT FlagMask
+
+type VkDebugReportFlagBitsEXT = VkDebugReportBitmaskEXT FlagBit
+
+pattern VkDebugReportFlagBitsEXT ::
+        VkFlags -> VkDebugReportBitmaskEXT FlagBit
+
+pattern VkDebugReportFlagBitsEXT n = VkDebugReportBitmaskEXT n
+
+pattern VkDebugReportFlagsEXT ::
+        VkFlags -> VkDebugReportBitmaskEXT FlagMask
+
+pattern VkDebugReportFlagsEXT n = VkDebugReportBitmaskEXT n
+
+deriving instance Bits (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance FiniteBits (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance Integral (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance Num (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance Bounded (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance Enum (VkDebugReportBitmaskEXT FlagMask)
+
+deriving instance Real (VkDebugReportBitmaskEXT FlagMask)
+
+instance Show (VkDebugReportBitmaskEXT a) where
+        showsPrec _ VK_DEBUG_REPORT_INFORMATION_BIT_EXT
+          = showString "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_WARNING_BIT_EXT
+          = showString "VK_DEBUG_REPORT_WARNING_BIT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT
+          = showString "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_ERROR_BIT_EXT
+          = showString "VK_DEBUG_REPORT_ERROR_BIT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_DEBUG_BIT_EXT
+          = showString "VK_DEBUG_REPORT_DEBUG_BIT_EXT"
+        showsPrec p (VkDebugReportBitmaskEXT x)
+          = showParen (p >= 11)
+              (showString "VkDebugReportBitmaskEXT " . showsPrec 11 x)
+
+instance Read (VkDebugReportBitmaskEXT a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEBUG_REPORT_INFORMATION_BIT_EXT",
+                   pure VK_DEBUG_REPORT_INFORMATION_BIT_EXT),
+                  ("VK_DEBUG_REPORT_WARNING_BIT_EXT",
+                   pure VK_DEBUG_REPORT_WARNING_BIT_EXT),
+                  ("VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT",
+                   pure VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT),
+                  ("VK_DEBUG_REPORT_ERROR_BIT_EXT",
+                   pure VK_DEBUG_REPORT_ERROR_BIT_EXT),
+                  ("VK_DEBUG_REPORT_DEBUG_BIT_EXT",
+                   pure VK_DEBUG_REPORT_DEBUG_BIT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDebugReportBitmaskEXT") >>
+                      (VkDebugReportBitmaskEXT <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT ::
+        VkDebugReportBitmaskEXT a
+
+pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT =
+        VkDebugReportBitmaskEXT 1
+
+-- | bitpos = @1@
+pattern VK_DEBUG_REPORT_WARNING_BIT_EXT ::
+        VkDebugReportBitmaskEXT a
+
+pattern VK_DEBUG_REPORT_WARNING_BIT_EXT = VkDebugReportBitmaskEXT 2
+
+-- | bitpos = @2@
+pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT ::
+        VkDebugReportBitmaskEXT a
+
+pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT =
+        VkDebugReportBitmaskEXT 4
+
+-- | bitpos = @3@
+pattern VK_DEBUG_REPORT_ERROR_BIT_EXT :: VkDebugReportBitmaskEXT a
+
+pattern VK_DEBUG_REPORT_ERROR_BIT_EXT = VkDebugReportBitmaskEXT 8
+
+-- | bitpos = @4@
+pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT :: VkDebugReportBitmaskEXT a
+
+pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT = VkDebugReportBitmaskEXT 16
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugReportObjectTypeEXT VkDebugReportObjectTypeEXT registry at www.khronos.org>
+newtype VkDebugReportObjectTypeEXT = VkDebugReportObjectTypeEXT Int32
+                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                 Generic)
+
+instance Show VkDebugReportObjectTypeEXT where
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT
+          = showString
+              "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"
+        showsPrec _
+          VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
+          = showString
+              "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"
+        showsPrec _
+          VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
+          = showString
+              "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"
+        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT
+          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"
+        showsPrec p (VkDebugReportObjectTypeEXT x)
+          = showParen (p >= 11)
+              (showString "VkDebugReportObjectTypeEXT " . showsPrec 11 x)
+
+instance Read VkDebugReportObjectTypeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT),
+                  ("VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT",
+                   pure VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDebugReportObjectTypeEXT") >>
+                      (VkDebugReportObjectTypeEXT <$> step readPrec)))
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT =
+        VkDebugReportObjectTypeEXT 0
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT =
+        VkDebugReportObjectTypeEXT 1
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT =
+        VkDebugReportObjectTypeEXT 2
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT =
+        VkDebugReportObjectTypeEXT 3
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT =
+        VkDebugReportObjectTypeEXT 4
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT =
+        VkDebugReportObjectTypeEXT 5
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT =
+        VkDebugReportObjectTypeEXT 6
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT =
+        VkDebugReportObjectTypeEXT 7
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT =
+        VkDebugReportObjectTypeEXT 8
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT =
+        VkDebugReportObjectTypeEXT 9
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT =
+        VkDebugReportObjectTypeEXT 10
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT =
+        VkDebugReportObjectTypeEXT 11
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT =
+        VkDebugReportObjectTypeEXT 12
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT =
+        VkDebugReportObjectTypeEXT 13
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT =
+        VkDebugReportObjectTypeEXT 14
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT =
+        VkDebugReportObjectTypeEXT 15
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT =
+        VkDebugReportObjectTypeEXT 16
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT =
+        VkDebugReportObjectTypeEXT 17
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT =
+        VkDebugReportObjectTypeEXT 18
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT =
+        VkDebugReportObjectTypeEXT 19
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT =
+        VkDebugReportObjectTypeEXT 20
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT =
+        VkDebugReportObjectTypeEXT 21
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT =
+        VkDebugReportObjectTypeEXT 22
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT =
+        VkDebugReportObjectTypeEXT 23
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT =
+        VkDebugReportObjectTypeEXT 24
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT =
+        VkDebugReportObjectTypeEXT 25
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT =
+        VkDebugReportObjectTypeEXT 26
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT =
+        VkDebugReportObjectTypeEXT 27
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
+        :: VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT =
+        VkDebugReportObjectTypeEXT 28
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT =
+        VkDebugReportObjectTypeEXT 29
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT =
+        VkDebugReportObjectTypeEXT 30
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT =
+        VkDebugReportObjectTypeEXT 31
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
+        :: VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
+        = VkDebugReportObjectTypeEXT 32
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT ::
+        VkDebugReportObjectTypeEXT
+
+pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT =
+        VkDebugReportObjectTypeEXT 33
+
+newtype VkDebugUtilsMessageSeverityBitmaskEXT (a ::
+                                                 FlagType) = VkDebugUtilsMessageSeverityBitmaskEXT VkFlags
+                                                               deriving (Eq, Ord, Storable, Data,
+                                                                         Generic)
+
+type VkDebugUtilsMessageSeverityFlagsEXT =
+     VkDebugUtilsMessageSeverityBitmaskEXT FlagMask
+
+type VkDebugUtilsMessageSeverityFlagBitsEXT =
+     VkDebugUtilsMessageSeverityBitmaskEXT FlagBit
+
+pattern VkDebugUtilsMessageSeverityFlagBitsEXT ::
+        VkFlags -> VkDebugUtilsMessageSeverityBitmaskEXT FlagBit
+
+pattern VkDebugUtilsMessageSeverityFlagBitsEXT n =
+        VkDebugUtilsMessageSeverityBitmaskEXT n
+
+pattern VkDebugUtilsMessageSeverityFlagsEXT ::
+        VkFlags -> VkDebugUtilsMessageSeverityBitmaskEXT FlagMask
+
+pattern VkDebugUtilsMessageSeverityFlagsEXT n =
+        VkDebugUtilsMessageSeverityBitmaskEXT n
+
+deriving instance
+         Bits (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         FiniteBits (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         Integral (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         Num (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         Bounded (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         Enum (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+deriving instance
+         Real (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
+
+instance Show (VkDebugUtilsMessageSeverityBitmaskEXT a) where
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"
+        showsPrec p (VkDebugUtilsMessageSeverityBitmaskEXT x)
+          = showParen (p >= 11)
+              (showString "VkDebugUtilsMessageSeverityBitmaskEXT " .
+                 showsPrec 11 x)
+
+instance Read (VkDebugUtilsMessageSeverityBitmaskEXT a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT),
+                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT),
+                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT),
+                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDebugUtilsMessageSeverityBitmaskEXT") >>
+                      (VkDebugUtilsMessageSeverityBitmaskEXT <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT ::
+        VkDebugUtilsMessageSeverityBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT =
+        VkDebugUtilsMessageSeverityBitmaskEXT 1
+
+-- | bitpos = @4@
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT ::
+        VkDebugUtilsMessageSeverityBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT =
+        VkDebugUtilsMessageSeverityBitmaskEXT 16
+
+-- | bitpos = @8@
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT ::
+        VkDebugUtilsMessageSeverityBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT =
+        VkDebugUtilsMessageSeverityBitmaskEXT 256
+
+-- | bitpos = @12@
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT ::
+        VkDebugUtilsMessageSeverityBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT =
+        VkDebugUtilsMessageSeverityBitmaskEXT 4096
+
+newtype VkDebugUtilsMessageTypeBitmaskEXT (a ::
+                                             FlagType) = VkDebugUtilsMessageTypeBitmaskEXT VkFlags
+                                                           deriving (Eq, Ord, Storable, Data,
+                                                                     Generic)
+
+type VkDebugUtilsMessageTypeFlagsEXT =
+     VkDebugUtilsMessageTypeBitmaskEXT FlagMask
+
+type VkDebugUtilsMessageTypeFlagBitsEXT =
+     VkDebugUtilsMessageTypeBitmaskEXT FlagBit
+
+pattern VkDebugUtilsMessageTypeFlagBitsEXT ::
+        VkFlags -> VkDebugUtilsMessageTypeBitmaskEXT FlagBit
+
+pattern VkDebugUtilsMessageTypeFlagBitsEXT n =
+        VkDebugUtilsMessageTypeBitmaskEXT n
+
+pattern VkDebugUtilsMessageTypeFlagsEXT ::
+        VkFlags -> VkDebugUtilsMessageTypeBitmaskEXT FlagMask
+
+pattern VkDebugUtilsMessageTypeFlagsEXT n =
+        VkDebugUtilsMessageTypeBitmaskEXT n
+
+deriving instance Bits (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance
+         FiniteBits (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance
+         Integral (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance Num (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance
+         Bounded (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance Enum (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+deriving instance Real (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
+
+instance Show (VkDebugUtilsMessageTypeBitmaskEXT a) where
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"
+        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
+          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"
+        showsPrec p (VkDebugUtilsMessageTypeBitmaskEXT x)
+          = showParen (p >= 11)
+              (showString "VkDebugUtilsMessageTypeBitmaskEXT " . showsPrec 11 x)
+
+instance Read (VkDebugUtilsMessageTypeBitmaskEXT a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT),
+                  ("VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT),
+                  ("VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT",
+                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDebugUtilsMessageTypeBitmaskEXT") >>
+                      (VkDebugUtilsMessageTypeBitmaskEXT <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT ::
+        VkDebugUtilsMessageTypeBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT =
+        VkDebugUtilsMessageTypeBitmaskEXT 1
+
+-- | bitpos = @1@
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT ::
+        VkDebugUtilsMessageTypeBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT =
+        VkDebugUtilsMessageTypeBitmaskEXT 2
+
+-- | bitpos = @2@
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT ::
+        VkDebugUtilsMessageTypeBitmaskEXT a
+
+pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT =
+        VkDebugUtilsMessageTypeBitmaskEXT 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DependencyFlags.hs
@@ -0,0 +1,82 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.DependencyFlags
+       (VkDependencyBitmask(VkDependencyBitmask, VkDependencyFlags,
+                            VkDependencyFlagBits, VK_DEPENDENCY_BY_REGION_BIT),
+        VkDependencyFlags, VkDependencyFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkDependencyBitmask (a ::
+                               FlagType) = VkDependencyBitmask VkFlags
+                                             deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDependencyFlags = VkDependencyBitmask FlagMask
+
+type VkDependencyFlagBits = VkDependencyBitmask FlagBit
+
+pattern VkDependencyFlagBits ::
+        VkFlags -> VkDependencyBitmask FlagBit
+
+pattern VkDependencyFlagBits n = VkDependencyBitmask n
+
+pattern VkDependencyFlags ::
+        VkFlags -> VkDependencyBitmask FlagMask
+
+pattern VkDependencyFlags n = VkDependencyBitmask n
+
+deriving instance Bits (VkDependencyBitmask FlagMask)
+
+deriving instance FiniteBits (VkDependencyBitmask FlagMask)
+
+deriving instance Integral (VkDependencyBitmask FlagMask)
+
+deriving instance Num (VkDependencyBitmask FlagMask)
+
+deriving instance Bounded (VkDependencyBitmask FlagMask)
+
+deriving instance Enum (VkDependencyBitmask FlagMask)
+
+deriving instance Real (VkDependencyBitmask FlagMask)
+
+instance Show (VkDependencyBitmask a) where
+        showsPrec _ VK_DEPENDENCY_BY_REGION_BIT
+          = showString "VK_DEPENDENCY_BY_REGION_BIT"
+        showsPrec p (VkDependencyBitmask x)
+          = showParen (p >= 11)
+              (showString "VkDependencyBitmask " . showsPrec 11 x)
+
+instance Read (VkDependencyBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEPENDENCY_BY_REGION_BIT", pure VK_DEPENDENCY_BY_REGION_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDependencyBitmask") >>
+                      (VkDependencyBitmask <$> step readPrec)))
+
+-- | Dependency is per pixel region
+--
+--   bitpos = @0@
+pattern VK_DEPENDENCY_BY_REGION_BIT :: VkDependencyBitmask a
+
+pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs b/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Descriptor.hs
@@ -0,0 +1,431 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Descriptor
+       (VkDescriptorBindingBitmaskEXT(VkDescriptorBindingBitmaskEXT,
+                                      VkDescriptorBindingFlagsEXT, VkDescriptorBindingFlagBitsEXT,
+                                      VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,
+                                      VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,
+                                      VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,
+                                      VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT),
+        VkDescriptorBindingFlagsEXT, VkDescriptorBindingFlagBitsEXT,
+        VkDescriptorPoolCreateBitmask(VkDescriptorPoolCreateBitmask,
+                                      VkDescriptorPoolCreateFlags, VkDescriptorPoolCreateFlagBits,
+                                      VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT),
+        VkDescriptorPoolCreateFlags, VkDescriptorPoolCreateFlagBits,
+        VkDescriptorSetLayoutCreateBitmask(VkDescriptorSetLayoutCreateBitmask,
+                                           VkDescriptorSetLayoutCreateFlags,
+                                           VkDescriptorSetLayoutCreateFlagBits),
+        VkDescriptorSetLayoutCreateFlags,
+        VkDescriptorSetLayoutCreateFlagBits,
+        VkDescriptorType(VkDescriptorType, VK_DESCRIPTOR_TYPE_SAMPLER,
+                         VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+                         VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
+                         VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
+                         VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
+                         VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
+                         VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
+                         VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
+                         VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
+                         VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT),
+        VkDescriptorUpdateTemplateType(VkDescriptorUpdateTemplateType,
+                                       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET),
+        VkDescriptorUpdateTemplateTypeKHR(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkDescriptorBindingBitmaskEXT (a ::
+                                         FlagType) = VkDescriptorBindingBitmaskEXT VkFlags
+                                                       deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDescriptorBindingFlagsEXT =
+     VkDescriptorBindingBitmaskEXT FlagMask
+
+type VkDescriptorBindingFlagBitsEXT =
+     VkDescriptorBindingBitmaskEXT FlagBit
+
+pattern VkDescriptorBindingFlagBitsEXT ::
+        VkFlags -> VkDescriptorBindingBitmaskEXT FlagBit
+
+pattern VkDescriptorBindingFlagBitsEXT n =
+        VkDescriptorBindingBitmaskEXT n
+
+pattern VkDescriptorBindingFlagsEXT ::
+        VkFlags -> VkDescriptorBindingBitmaskEXT FlagMask
+
+pattern VkDescriptorBindingFlagsEXT n =
+        VkDescriptorBindingBitmaskEXT n
+
+deriving instance Bits (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance
+         FiniteBits (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance Integral (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance Num (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance Bounded (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance Enum (VkDescriptorBindingBitmaskEXT FlagMask)
+
+deriving instance Real (VkDescriptorBindingBitmaskEXT FlagMask)
+
+instance Show (VkDescriptorBindingBitmaskEXT a) where
+        showsPrec _ VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT
+          = showString "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT"
+        showsPrec _
+          VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT
+          = showString
+              "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT"
+        showsPrec _ VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT
+          = showString "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"
+        showsPrec _ VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT
+          = showString
+              "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"
+        showsPrec p (VkDescriptorBindingBitmaskEXT x)
+          = showParen (p >= 11)
+              (showString "VkDescriptorBindingBitmaskEXT " . showsPrec 11 x)
+
+instance Read (VkDescriptorBindingBitmaskEXT a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT",
+                   pure VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT),
+                  ("VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT",
+                   pure VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT),
+                  ("VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT",
+                   pure VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT),
+                  ("VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT",
+                   pure VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDescriptorBindingBitmaskEXT") >>
+                      (VkDescriptorBindingBitmaskEXT <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT ::
+        VkDescriptorBindingBitmaskEXT a
+
+pattern VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT =
+        VkDescriptorBindingBitmaskEXT 1
+
+-- | bitpos = @1@
+pattern VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT
+        :: VkDescriptorBindingBitmaskEXT a
+
+pattern VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT =
+        VkDescriptorBindingBitmaskEXT 2
+
+-- | bitpos = @2@
+pattern VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT ::
+        VkDescriptorBindingBitmaskEXT a
+
+pattern VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT =
+        VkDescriptorBindingBitmaskEXT 4
+
+-- | bitpos = @3@
+pattern VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT ::
+        VkDescriptorBindingBitmaskEXT a
+
+pattern VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT =
+        VkDescriptorBindingBitmaskEXT 8
+
+newtype VkDescriptorPoolCreateBitmask (a ::
+                                         FlagType) = VkDescriptorPoolCreateBitmask VkFlags
+                                                       deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDescriptorPoolCreateFlags =
+     VkDescriptorPoolCreateBitmask FlagMask
+
+type VkDescriptorPoolCreateFlagBits =
+     VkDescriptorPoolCreateBitmask FlagBit
+
+pattern VkDescriptorPoolCreateFlagBits ::
+        VkFlags -> VkDescriptorPoolCreateBitmask FlagBit
+
+pattern VkDescriptorPoolCreateFlagBits n =
+        VkDescriptorPoolCreateBitmask n
+
+pattern VkDescriptorPoolCreateFlags ::
+        VkFlags -> VkDescriptorPoolCreateBitmask FlagMask
+
+pattern VkDescriptorPoolCreateFlags n =
+        VkDescriptorPoolCreateBitmask n
+
+deriving instance Bits (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance Integral (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance Num (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance Bounded (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance Enum (VkDescriptorPoolCreateBitmask FlagMask)
+
+deriving instance Real (VkDescriptorPoolCreateBitmask FlagMask)
+
+instance Show (VkDescriptorPoolCreateBitmask a) where
+        showsPrec _ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
+          = showString "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"
+        showsPrec p (VkDescriptorPoolCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkDescriptorPoolCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkDescriptorPoolCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT",
+                   pure VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDescriptorPoolCreateBitmask") >>
+                      (VkDescriptorPoolCreateBitmask <$> step readPrec)))
+
+-- | Descriptor sets may be freed individually
+--
+--   bitpos = @0@
+pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT ::
+        VkDescriptorPoolCreateBitmask a
+
+pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT =
+        VkDescriptorPoolCreateBitmask 1
+
+newtype VkDescriptorSetLayoutCreateBitmask (a ::
+                                              FlagType) = VkDescriptorSetLayoutCreateBitmask VkFlags
+                                                            deriving (Eq, Ord, Storable, Data,
+                                                                      Generic)
+
+type VkDescriptorSetLayoutCreateFlags =
+     VkDescriptorSetLayoutCreateBitmask FlagMask
+
+type VkDescriptorSetLayoutCreateFlagBits =
+     VkDescriptorSetLayoutCreateBitmask FlagBit
+
+pattern VkDescriptorSetLayoutCreateFlagBits ::
+        VkFlags -> VkDescriptorSetLayoutCreateBitmask FlagBit
+
+pattern VkDescriptorSetLayoutCreateFlagBits n =
+        VkDescriptorSetLayoutCreateBitmask n
+
+pattern VkDescriptorSetLayoutCreateFlags ::
+        VkFlags -> VkDescriptorSetLayoutCreateBitmask FlagMask
+
+pattern VkDescriptorSetLayoutCreateFlags n =
+        VkDescriptorSetLayoutCreateBitmask n
+
+deriving instance
+         Bits (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance
+         Integral (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance Num (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance
+         Bounded (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance
+         Enum (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+deriving instance
+         Real (VkDescriptorSetLayoutCreateBitmask FlagMask)
+
+instance Show (VkDescriptorSetLayoutCreateBitmask a) where
+        showsPrec p (VkDescriptorSetLayoutCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkDescriptorSetLayoutCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkDescriptorSetLayoutCreateBitmask a) where
+        readPrec
+          = parens
+              (choose [] +++
+                 prec 10
+                   (expectP (Ident "VkDescriptorSetLayoutCreateBitmask") >>
+                      (VkDescriptorSetLayoutCreateBitmask <$> step readPrec)))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorType VkDescriptorType registry at www.khronos.org>
+newtype VkDescriptorType = VkDescriptorType Int32
+                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkDescriptorType where
+        showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLER
+          = showString "VK_DESCRIPTOR_TYPE_SAMPLER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
+          = showString "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
+          = showString "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"
+        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
+          = showString "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"
+        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
+          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
+          = showString "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
+          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
+          = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"
+        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
+          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"
+        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
+          = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"
+        showsPrec _ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
+          = showString "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"
+        showsPrec p (VkDescriptorType x)
+          = showParen (p >= 11)
+              (showString "VkDescriptorType " . showsPrec 11 x)
+
+instance Read VkDescriptorType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DESCRIPTOR_TYPE_SAMPLER", pure VK_DESCRIPTOR_TYPE_SAMPLER),
+                  ("VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER",
+                   pure VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER),
+                  ("VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE",
+                   pure VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE),
+                  ("VK_DESCRIPTOR_TYPE_STORAGE_IMAGE",
+                   pure VK_DESCRIPTOR_TYPE_STORAGE_IMAGE),
+                  ("VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER",
+                   pure VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER),
+                  ("VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER",
+                   pure VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER),
+                  ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER",
+                   pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER),
+                  ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER",
+                   pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER),
+                  ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC",
+                   pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC),
+                  ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC",
+                   pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC),
+                  ("VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT",
+                   pure VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDescriptorType") >>
+                      (VkDescriptorType <$> step readPrec)))
+
+pattern VK_DESCRIPTOR_TYPE_SAMPLER :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_SAMPLER = VkDescriptorType 0
+
+pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ::
+        VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER =
+        VkDescriptorType 1
+
+pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VkDescriptorType 2
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = VkDescriptorType 3
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER =
+        VkDescriptorType 4
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER =
+        VkDescriptorType 5
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VkDescriptorType 6
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = VkDescriptorType 7
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ::
+        VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC =
+        VkDescriptorType 8
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC ::
+        VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC =
+        VkDescriptorType 9
+
+pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT :: VkDescriptorType
+
+pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = VkDescriptorType 10
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateType registry at www.khronos.org>
+newtype VkDescriptorUpdateTemplateType = VkDescriptorUpdateTemplateType Int32
+                                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                     Generic)
+
+instance Show VkDescriptorUpdateTemplateType where
+        showsPrec _ VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
+          = showString "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"
+        showsPrec p (VkDescriptorUpdateTemplateType x)
+          = showParen (p >= 11)
+              (showString "VkDescriptorUpdateTemplateType " . showsPrec 11 x)
+
+instance Read VkDescriptorUpdateTemplateType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET",
+                   pure VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDescriptorUpdateTemplateType") >>
+                      (VkDescriptorUpdateTemplateType <$> step readPrec)))
+
+-- | Create descriptor update template for descriptor set updates
+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET ::
+        VkDescriptorUpdateTemplateType
+
+pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET =
+        VkDescriptorUpdateTemplateType 0
+
+newtype VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateTypeKHR VkFlags
+                                              deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                        FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkDescriptorUpdateTemplateTypeKHR where
+        {-# INLINE show #-}
+        show (VkDescriptorUpdateTemplateTypeKHR x) = show x
+
+instance Read VkDescriptorUpdateTemplateTypeKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Device.hs b/src-gen/Graphics/Vulkan/Types/Enum/Device.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Device.hs
@@ -0,0 +1,239 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Device
+       (VkDeviceCreateFlagBits(..),
+        VkDeviceEventTypeEXT(VkDeviceEventTypeEXT,
+                             VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT),
+        VkDeviceGroupPresentModeBitmaskKHR(VkDeviceGroupPresentModeBitmaskKHR,
+                                           VkDeviceGroupPresentModeFlagsKHR,
+                                           VkDeviceGroupPresentModeFlagBitsKHR,
+                                           VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
+                                           VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
+                                           VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
+                                           VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR),
+        VkDeviceGroupPresentModeFlagsKHR,
+        VkDeviceGroupPresentModeFlagBitsKHR,
+        VkDeviceQueueCreateBitmask(VkDeviceQueueCreateBitmask,
+                                   VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits),
+        VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkDeviceCreateFlagBits = VkDeviceCreateFlagBits VkFlags
+                                   deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                             FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkDeviceCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkDeviceCreateFlagBits x) = show x
+
+instance Read VkDeviceCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceEventTypeEXT VkDeviceEventTypeEXT registry at www.khronos.org>
+newtype VkDeviceEventTypeEXT = VkDeviceEventTypeEXT Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkDeviceEventTypeEXT where
+        showsPrec _ VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
+          = showString "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"
+        showsPrec p (VkDeviceEventTypeEXT x)
+          = showParen (p >= 11)
+              (showString "VkDeviceEventTypeEXT " . showsPrec 11 x)
+
+instance Read VkDeviceEventTypeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT",
+                   pure VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDeviceEventTypeEXT") >>
+                      (VkDeviceEventTypeEXT <$> step readPrec)))
+
+pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT ::
+        VkDeviceEventTypeEXT
+
+pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT =
+        VkDeviceEventTypeEXT 0
+
+newtype VkDeviceGroupPresentModeBitmaskKHR (a ::
+                                              FlagType) = VkDeviceGroupPresentModeBitmaskKHR VkFlags
+                                                            deriving (Eq, Ord, Storable, Data,
+                                                                      Generic)
+
+type VkDeviceGroupPresentModeFlagsKHR =
+     VkDeviceGroupPresentModeBitmaskKHR FlagMask
+
+type VkDeviceGroupPresentModeFlagBitsKHR =
+     VkDeviceGroupPresentModeBitmaskKHR FlagBit
+
+pattern VkDeviceGroupPresentModeFlagBitsKHR ::
+        VkFlags -> VkDeviceGroupPresentModeBitmaskKHR FlagBit
+
+pattern VkDeviceGroupPresentModeFlagBitsKHR n =
+        VkDeviceGroupPresentModeBitmaskKHR n
+
+pattern VkDeviceGroupPresentModeFlagsKHR ::
+        VkFlags -> VkDeviceGroupPresentModeBitmaskKHR FlagMask
+
+pattern VkDeviceGroupPresentModeFlagsKHR n =
+        VkDeviceGroupPresentModeBitmaskKHR n
+
+deriving instance
+         Bits (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance
+         FiniteBits (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance
+         Integral (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance Num (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance
+         Bounded (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance
+         Enum (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+deriving instance
+         Real (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
+
+instance Show (VkDeviceGroupPresentModeBitmaskKHR a) where
+        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
+          = showString "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"
+        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR
+          = showString "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"
+        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR
+          = showString "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"
+        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
+          = showString
+              "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"
+        showsPrec p (VkDeviceGroupPresentModeBitmaskKHR x)
+          = showParen (p >= 11)
+              (showString "VkDeviceGroupPresentModeBitmaskKHR " . showsPrec 11 x)
+
+instance Read (VkDeviceGroupPresentModeBitmaskKHR a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR",
+                   pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR),
+                  ("VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR",
+                   pure VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR),
+                  ("VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR",
+                   pure VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR),
+                  ("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR",
+                   pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDeviceGroupPresentModeBitmaskKHR") >>
+                      (VkDeviceGroupPresentModeBitmaskKHR <$> step readPrec)))
+
+-- | Present from local memory
+--
+--   bitpos = @0@
+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR ::
+        VkDeviceGroupPresentModeBitmaskKHR a
+
+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR =
+        VkDeviceGroupPresentModeBitmaskKHR 1
+
+-- | Present from remote memory
+--
+--   bitpos = @1@
+pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR ::
+        VkDeviceGroupPresentModeBitmaskKHR a
+
+pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR =
+        VkDeviceGroupPresentModeBitmaskKHR 2
+
+-- | Present sum of local and/or remote memory
+--
+--   bitpos = @2@
+pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR ::
+        VkDeviceGroupPresentModeBitmaskKHR a
+
+pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR =
+        VkDeviceGroupPresentModeBitmaskKHR 4
+
+-- | Each physical device presents from local memory
+--
+--   bitpos = @3@
+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR ::
+        VkDeviceGroupPresentModeBitmaskKHR a
+
+pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR =
+        VkDeviceGroupPresentModeBitmaskKHR 8
+
+newtype VkDeviceQueueCreateBitmask (a ::
+                                      FlagType) = VkDeviceQueueCreateBitmask VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDeviceQueueCreateFlags = VkDeviceQueueCreateBitmask FlagMask
+
+type VkDeviceQueueCreateFlagBits =
+     VkDeviceQueueCreateBitmask FlagBit
+
+pattern VkDeviceQueueCreateFlagBits ::
+        VkFlags -> VkDeviceQueueCreateBitmask FlagBit
+
+pattern VkDeviceQueueCreateFlagBits n =
+        VkDeviceQueueCreateBitmask n
+
+pattern VkDeviceQueueCreateFlags ::
+        VkFlags -> VkDeviceQueueCreateBitmask FlagMask
+
+pattern VkDeviceQueueCreateFlags n = VkDeviceQueueCreateBitmask n
+
+deriving instance Bits (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance Integral (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance Num (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance Bounded (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance Enum (VkDeviceQueueCreateBitmask FlagMask)
+
+deriving instance Real (VkDeviceQueueCreateBitmask FlagMask)
+
+instance Show (VkDeviceQueueCreateBitmask a) where
+        showsPrec p (VkDeviceQueueCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkDeviceQueueCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkDeviceQueueCreateBitmask a) where
+        readPrec
+          = parens
+              (choose [] +++
+                 prec 10
+                   (expectP (Ident "VkDeviceQueueCreateBitmask") >>
+                      (VkDeviceQueueCreateBitmask <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DiscardRectangleModeEXT.hs
@@ -0,0 +1,61 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
+       (VkDiscardRectangleModeEXT(VkDiscardRectangleModeEXT,
+                                  VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
+                                  VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDiscardRectangleModeEXT VkDiscardRectangleModeEXT registry at www.khronos.org>
+newtype VkDiscardRectangleModeEXT = VkDiscardRectangleModeEXT Int32
+                                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                Generic)
+
+instance Show VkDiscardRectangleModeEXT where
+        showsPrec _ VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT
+          = showString "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"
+        showsPrec _ VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
+          = showString "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"
+        showsPrec p (VkDiscardRectangleModeEXT x)
+          = showParen (p >= 11)
+              (showString "VkDiscardRectangleModeEXT " . showsPrec 11 x)
+
+instance Read VkDiscardRectangleModeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT",
+                   pure VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT),
+                  ("VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT",
+                   pure VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDiscardRectangleModeEXT") >>
+                      (VkDiscardRectangleModeEXT <$> step readPrec)))
+
+pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT ::
+        VkDiscardRectangleModeEXT
+
+pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT =
+        VkDiscardRectangleModeEXT 0
+
+pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT ::
+        VkDiscardRectangleModeEXT
+
+pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT =
+        VkDiscardRectangleModeEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Display.hs b/src-gen/Graphics/Vulkan/Types/Enum/Display.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Display.hs
@@ -0,0 +1,208 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Display
+       (VkDisplayEventTypeEXT(VkDisplayEventTypeEXT,
+                              VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT),
+        VkDisplayPlaneAlphaBitmaskKHR(VkDisplayPlaneAlphaBitmaskKHR,
+                                      VkDisplayPlaneAlphaFlagsKHR, VkDisplayPlaneAlphaFlagBitsKHR,
+                                      VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
+                                      VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
+                                      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
+                                      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR),
+        VkDisplayPlaneAlphaFlagsKHR, VkDisplayPlaneAlphaFlagBitsKHR,
+        VkDisplayPowerStateEXT(VkDisplayPowerStateEXT,
+                               VK_DISPLAY_POWER_STATE_OFF_EXT, VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
+                               VK_DISPLAY_POWER_STATE_ON_EXT))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayEventTypeEXT VkDisplayEventTypeEXT registry at www.khronos.org>
+newtype VkDisplayEventTypeEXT = VkDisplayEventTypeEXT Int32
+                                  deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkDisplayEventTypeEXT where
+        showsPrec _ VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
+          = showString "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"
+        showsPrec p (VkDisplayEventTypeEXT x)
+          = showParen (p >= 11)
+              (showString "VkDisplayEventTypeEXT " . showsPrec 11 x)
+
+instance Read VkDisplayEventTypeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT",
+                   pure VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDisplayEventTypeEXT") >>
+                      (VkDisplayEventTypeEXT <$> step readPrec)))
+
+pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT ::
+        VkDisplayEventTypeEXT
+
+pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT =
+        VkDisplayEventTypeEXT 0
+
+newtype VkDisplayPlaneAlphaBitmaskKHR (a ::
+                                         FlagType) = VkDisplayPlaneAlphaBitmaskKHR VkFlags
+                                                       deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkDisplayPlaneAlphaFlagsKHR =
+     VkDisplayPlaneAlphaBitmaskKHR FlagMask
+
+type VkDisplayPlaneAlphaFlagBitsKHR =
+     VkDisplayPlaneAlphaBitmaskKHR FlagBit
+
+pattern VkDisplayPlaneAlphaFlagBitsKHR ::
+        VkFlags -> VkDisplayPlaneAlphaBitmaskKHR FlagBit
+
+pattern VkDisplayPlaneAlphaFlagBitsKHR n =
+        VkDisplayPlaneAlphaBitmaskKHR n
+
+pattern VkDisplayPlaneAlphaFlagsKHR ::
+        VkFlags -> VkDisplayPlaneAlphaBitmaskKHR FlagMask
+
+pattern VkDisplayPlaneAlphaFlagsKHR n =
+        VkDisplayPlaneAlphaBitmaskKHR n
+
+deriving instance Bits (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance
+         FiniteBits (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance Integral (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance Num (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance Bounded (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance Enum (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+deriving instance Real (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
+
+instance Show (VkDisplayPlaneAlphaBitmaskKHR a) where
+        showsPrec _ VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR
+          = showString "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"
+        showsPrec _ VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR
+          = showString "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"
+        showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR
+          = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"
+        showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
+          = showString
+              "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"
+        showsPrec p (VkDisplayPlaneAlphaBitmaskKHR x)
+          = showParen (p >= 11)
+              (showString "VkDisplayPlaneAlphaBitmaskKHR " . showsPrec 11 x)
+
+instance Read (VkDisplayPlaneAlphaBitmaskKHR a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR",
+                   pure VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR),
+                  ("VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR",
+                   pure VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR),
+                  ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR",
+                   pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR),
+                  ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR",
+                   pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDisplayPlaneAlphaBitmaskKHR") >>
+                      (VkDisplayPlaneAlphaBitmaskKHR <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR ::
+        VkDisplayPlaneAlphaBitmaskKHR a
+
+pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR =
+        VkDisplayPlaneAlphaBitmaskKHR 1
+
+-- | bitpos = @1@
+pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR ::
+        VkDisplayPlaneAlphaBitmaskKHR a
+
+pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR =
+        VkDisplayPlaneAlphaBitmaskKHR 2
+
+-- | bitpos = @2@
+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR ::
+        VkDisplayPlaneAlphaBitmaskKHR a
+
+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR =
+        VkDisplayPlaneAlphaBitmaskKHR 4
+
+-- | bitpos = @3@
+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR ::
+        VkDisplayPlaneAlphaBitmaskKHR a
+
+pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR =
+        VkDisplayPlaneAlphaBitmaskKHR 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPowerStateEXT VkDisplayPowerStateEXT registry at www.khronos.org>
+newtype VkDisplayPowerStateEXT = VkDisplayPowerStateEXT Int32
+                                   deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkDisplayPowerStateEXT where
+        showsPrec _ VK_DISPLAY_POWER_STATE_OFF_EXT
+          = showString "VK_DISPLAY_POWER_STATE_OFF_EXT"
+        showsPrec _ VK_DISPLAY_POWER_STATE_SUSPEND_EXT
+          = showString "VK_DISPLAY_POWER_STATE_SUSPEND_EXT"
+        showsPrec _ VK_DISPLAY_POWER_STATE_ON_EXT
+          = showString "VK_DISPLAY_POWER_STATE_ON_EXT"
+        showsPrec p (VkDisplayPowerStateEXT x)
+          = showParen (p >= 11)
+              (showString "VkDisplayPowerStateEXT " . showsPrec 11 x)
+
+instance Read VkDisplayPowerStateEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DISPLAY_POWER_STATE_OFF_EXT",
+                   pure VK_DISPLAY_POWER_STATE_OFF_EXT),
+                  ("VK_DISPLAY_POWER_STATE_SUSPEND_EXT",
+                   pure VK_DISPLAY_POWER_STATE_SUSPEND_EXT),
+                  ("VK_DISPLAY_POWER_STATE_ON_EXT",
+                   pure VK_DISPLAY_POWER_STATE_ON_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDisplayPowerStateEXT") >>
+                      (VkDisplayPowerStateEXT <$> step readPrec)))
+
+pattern VK_DISPLAY_POWER_STATE_OFF_EXT :: VkDisplayPowerStateEXT
+
+pattern VK_DISPLAY_POWER_STATE_OFF_EXT = VkDisplayPowerStateEXT 0
+
+pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT ::
+        VkDisplayPowerStateEXT
+
+pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT =
+        VkDisplayPowerStateEXT 1
+
+pattern VK_DISPLAY_POWER_STATE_ON_EXT :: VkDisplayPowerStateEXT
+
+pattern VK_DISPLAY_POWER_STATE_ON_EXT = VkDisplayPowerStateEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs b/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/DynamicState.hs
@@ -0,0 +1,112 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.DynamicState
+       (VkDynamicState(VkDynamicState, VK_DYNAMIC_STATE_VIEWPORT,
+                       VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_LINE_WIDTH,
+                       VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_BLEND_CONSTANTS,
+                       VK_DYNAMIC_STATE_DEPTH_BOUNDS,
+                       VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
+                       VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
+                       VK_DYNAMIC_STATE_STENCIL_REFERENCE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDynamicState VkDynamicState registry at www.khronos.org>
+newtype VkDynamicState = VkDynamicState Int32
+                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkDynamicState where
+        showsPrec _ VK_DYNAMIC_STATE_VIEWPORT
+          = showString "VK_DYNAMIC_STATE_VIEWPORT"
+        showsPrec _ VK_DYNAMIC_STATE_SCISSOR
+          = showString "VK_DYNAMIC_STATE_SCISSOR"
+        showsPrec _ VK_DYNAMIC_STATE_LINE_WIDTH
+          = showString "VK_DYNAMIC_STATE_LINE_WIDTH"
+        showsPrec _ VK_DYNAMIC_STATE_DEPTH_BIAS
+          = showString "VK_DYNAMIC_STATE_DEPTH_BIAS"
+        showsPrec _ VK_DYNAMIC_STATE_BLEND_CONSTANTS
+          = showString "VK_DYNAMIC_STATE_BLEND_CONSTANTS"
+        showsPrec _ VK_DYNAMIC_STATE_DEPTH_BOUNDS
+          = showString "VK_DYNAMIC_STATE_DEPTH_BOUNDS"
+        showsPrec _ VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
+          = showString "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"
+        showsPrec _ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
+          = showString "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"
+        showsPrec _ VK_DYNAMIC_STATE_STENCIL_REFERENCE
+          = showString "VK_DYNAMIC_STATE_STENCIL_REFERENCE"
+        showsPrec p (VkDynamicState x)
+          = showParen (p >= 11)
+              (showString "VkDynamicState " . showsPrec 11 x)
+
+instance Read VkDynamicState where
+        readPrec
+          = parens
+              (choose
+                 [("VK_DYNAMIC_STATE_VIEWPORT", pure VK_DYNAMIC_STATE_VIEWPORT),
+                  ("VK_DYNAMIC_STATE_SCISSOR", pure VK_DYNAMIC_STATE_SCISSOR),
+                  ("VK_DYNAMIC_STATE_LINE_WIDTH", pure VK_DYNAMIC_STATE_LINE_WIDTH),
+                  ("VK_DYNAMIC_STATE_DEPTH_BIAS", pure VK_DYNAMIC_STATE_DEPTH_BIAS),
+                  ("VK_DYNAMIC_STATE_BLEND_CONSTANTS",
+                   pure VK_DYNAMIC_STATE_BLEND_CONSTANTS),
+                  ("VK_DYNAMIC_STATE_DEPTH_BOUNDS",
+                   pure VK_DYNAMIC_STATE_DEPTH_BOUNDS),
+                  ("VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK",
+                   pure VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK),
+                  ("VK_DYNAMIC_STATE_STENCIL_WRITE_MASK",
+                   pure VK_DYNAMIC_STATE_STENCIL_WRITE_MASK),
+                  ("VK_DYNAMIC_STATE_STENCIL_REFERENCE",
+                   pure VK_DYNAMIC_STATE_STENCIL_REFERENCE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkDynamicState") >>
+                      (VkDynamicState <$> step readPrec)))
+
+pattern VK_DYNAMIC_STATE_VIEWPORT :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_VIEWPORT = VkDynamicState 0
+
+pattern VK_DYNAMIC_STATE_SCISSOR :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_SCISSOR = VkDynamicState 1
+
+pattern VK_DYNAMIC_STATE_LINE_WIDTH :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_LINE_WIDTH = VkDynamicState 2
+
+pattern VK_DYNAMIC_STATE_DEPTH_BIAS :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_DEPTH_BIAS = VkDynamicState 3
+
+pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS = VkDynamicState 4
+
+pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS = VkDynamicState 5
+
+pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = VkDynamicState 6
+
+pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = VkDynamicState 7
+
+pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE :: VkDynamicState
+
+pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE = VkDynamicState 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/External.hs b/src-gen/Graphics/Vulkan/Types/Enum/External.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/External.hs
@@ -0,0 +1,942 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.External
+       (VkExternalFenceFeatureFlagBitsKHR(..),
+        VkExternalFenceFeatureBitmask(VkExternalFenceFeatureBitmask,
+                                      VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits,
+                                      VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
+                                      VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT),
+        VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits,
+        VkExternalFenceHandleTypeFlagBitsKHR(..),
+        VkExternalFenceHandleTypeBitmask(VkExternalFenceHandleTypeBitmask,
+                                         VkExternalFenceHandleTypeFlags,
+                                         VkExternalFenceHandleTypeFlagBits,
+                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
+                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
+                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
+                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT),
+        VkExternalFenceHandleTypeFlags, VkExternalFenceHandleTypeFlagBits,
+        VkExternalMemoryFeatureFlagBitsKHR(..),
+        VkExternalMemoryFeatureBitmask(VkExternalMemoryFeatureBitmask,
+                                       VkExternalMemoryFeatureFlags,
+                                       VkExternalMemoryFeatureFlagBits,
+                                       VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
+                                       VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
+                                       VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT),
+        VkExternalMemoryFeatureFlags, VkExternalMemoryFeatureFlagBits,
+        VkExternalMemoryFeatureBitmaskNV(VkExternalMemoryFeatureBitmaskNV,
+                                         VkExternalMemoryFeatureFlagsNV,
+                                         VkExternalMemoryFeatureFlagBitsNV,
+                                         VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
+                                         VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
+                                         VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV),
+        VkExternalMemoryFeatureFlagsNV, VkExternalMemoryFeatureFlagBitsNV,
+        VkExternalMemoryHandleTypeFlagBitsKHR(..),
+        VkExternalMemoryHandleTypeBitmask(VkExternalMemoryHandleTypeBitmask,
+                                          VkExternalMemoryHandleTypeFlags,
+                                          VkExternalMemoryHandleTypeFlagBits,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
+                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT),
+        VkExternalMemoryHandleTypeFlags,
+        VkExternalMemoryHandleTypeFlagBits,
+        VkExternalMemoryHandleTypeBitmaskNV(VkExternalMemoryHandleTypeBitmaskNV,
+                                            VkExternalMemoryHandleTypeFlagsNV,
+                                            VkExternalMemoryHandleTypeFlagBitsNV,
+                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
+                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
+                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
+                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV),
+        VkExternalMemoryHandleTypeFlagsNV,
+        VkExternalMemoryHandleTypeFlagBitsNV,
+        VkExternalSemaphoreFeatureFlagBitsKHR(..),
+        VkExternalSemaphoreFeatureBitmask(VkExternalSemaphoreFeatureBitmask,
+                                          VkExternalSemaphoreFeatureFlags,
+                                          VkExternalSemaphoreFeatureFlagBits,
+                                          VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
+                                          VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT),
+        VkExternalSemaphoreFeatureFlags,
+        VkExternalSemaphoreFeatureFlagBits,
+        VkExternalSemaphoreHandleTypeFlagBitsKHR(..),
+        VkExternalSemaphoreHandleTypeBitmask(VkExternalSemaphoreHandleTypeBitmask,
+                                             VkExternalSemaphoreHandleTypeFlags,
+                                             VkExternalSemaphoreHandleTypeFlagBits,
+                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
+                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
+                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
+                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
+                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT),
+        VkExternalSemaphoreHandleTypeFlags,
+        VkExternalSemaphoreHandleTypeFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBitsKHR VkFlags
+                                              deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                        FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkExternalFenceFeatureFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalFenceFeatureFlagBitsKHR x) = show x
+
+instance Read VkExternalFenceFeatureFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalFenceFeatureBitmask (a ::
+                                         FlagType) = VkExternalFenceFeatureBitmask VkFlags
+                                                       deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkExternalFenceFeatureFlags =
+     VkExternalFenceFeatureBitmask FlagMask
+
+type VkExternalFenceFeatureFlagBits =
+     VkExternalFenceFeatureBitmask FlagBit
+
+pattern VkExternalFenceFeatureFlagBits ::
+        VkFlags -> VkExternalFenceFeatureBitmask FlagBit
+
+pattern VkExternalFenceFeatureFlagBits n =
+        VkExternalFenceFeatureBitmask n
+
+pattern VkExternalFenceFeatureFlags ::
+        VkFlags -> VkExternalFenceFeatureBitmask FlagMask
+
+pattern VkExternalFenceFeatureFlags n =
+        VkExternalFenceFeatureBitmask n
+
+deriving instance Bits (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance Integral (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance Num (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance Bounded (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance Enum (VkExternalFenceFeatureBitmask FlagMask)
+
+deriving instance Real (VkExternalFenceFeatureBitmask FlagMask)
+
+instance Show (VkExternalFenceFeatureBitmask a) where
+        showsPrec _ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT
+          = showString "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"
+        showsPrec _ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
+          = showString "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"
+        showsPrec p (VkExternalFenceFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalFenceFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkExternalFenceFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT",
+                   pure VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT),
+                  ("VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT",
+                   pure VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalFenceFeatureBitmask") >>
+                      (VkExternalFenceFeatureBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT ::
+        VkExternalFenceFeatureBitmask a
+
+pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT =
+        VkExternalFenceFeatureBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT ::
+        VkExternalFenceFeatureBitmask a
+
+pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT =
+        VkExternalFenceFeatureBitmask 2
+
+newtype VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBitsKHR VkFlags
+                                                 deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                           Bits, FiniteBits, Storable, Real, Data,
+                                                           Generic)
+
+instance Show VkExternalFenceHandleTypeFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalFenceHandleTypeFlagBitsKHR x) = show x
+
+instance Read VkExternalFenceHandleTypeFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalFenceHandleTypeBitmask (a ::
+                                            FlagType) = VkExternalFenceHandleTypeBitmask VkFlags
+                                                          deriving (Eq, Ord, Storable, Data,
+                                                                    Generic)
+
+type VkExternalFenceHandleTypeFlags =
+     VkExternalFenceHandleTypeBitmask FlagMask
+
+type VkExternalFenceHandleTypeFlagBits =
+     VkExternalFenceHandleTypeBitmask FlagBit
+
+pattern VkExternalFenceHandleTypeFlagBits ::
+        VkFlags -> VkExternalFenceHandleTypeBitmask FlagBit
+
+pattern VkExternalFenceHandleTypeFlagBits n =
+        VkExternalFenceHandleTypeBitmask n
+
+pattern VkExternalFenceHandleTypeFlags ::
+        VkFlags -> VkExternalFenceHandleTypeBitmask FlagMask
+
+pattern VkExternalFenceHandleTypeFlags n =
+        VkExternalFenceHandleTypeBitmask n
+
+deriving instance Bits (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance
+         Integral (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance Num (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance
+         Bounded (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance Enum (VkExternalFenceHandleTypeBitmask FlagMask)
+
+deriving instance Real (VkExternalFenceHandleTypeBitmask FlagMask)
+
+instance Show (VkExternalFenceHandleTypeBitmask a) where
+        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT
+          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"
+        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
+          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
+        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
+          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
+        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
+          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"
+        showsPrec p (VkExternalFenceHandleTypeBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalFenceHandleTypeBitmask " . showsPrec 11 x)
+
+instance Read (VkExternalFenceHandleTypeBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT",
+                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT),
+                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
+                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
+                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
+                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
+                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT",
+                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalFenceHandleTypeBitmask") >>
+                      (VkExternalFenceHandleTypeBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT ::
+        VkExternalFenceHandleTypeBitmask a
+
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT =
+        VkExternalFenceHandleTypeBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
+        VkExternalFenceHandleTypeBitmask a
+
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
+        VkExternalFenceHandleTypeBitmask 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
+        VkExternalFenceHandleTypeBitmask a
+
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
+        VkExternalFenceHandleTypeBitmask 4
+
+-- | bitpos = @3@
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT ::
+        VkExternalFenceHandleTypeBitmask a
+
+pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT =
+        VkExternalFenceHandleTypeBitmask 8
+
+newtype VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBitsKHR VkFlags
+                                               deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                         Bits, FiniteBits, Storable, Real, Data,
+                                                         Generic)
+
+instance Show VkExternalMemoryFeatureFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalMemoryFeatureFlagBitsKHR x) = show x
+
+instance Read VkExternalMemoryFeatureFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalMemoryFeatureBitmask (a ::
+                                          FlagType) = VkExternalMemoryFeatureBitmask VkFlags
+                                                        deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkExternalMemoryFeatureFlags =
+     VkExternalMemoryFeatureBitmask FlagMask
+
+type VkExternalMemoryFeatureFlagBits =
+     VkExternalMemoryFeatureBitmask FlagBit
+
+pattern VkExternalMemoryFeatureFlagBits ::
+        VkFlags -> VkExternalMemoryFeatureBitmask FlagBit
+
+pattern VkExternalMemoryFeatureFlagBits n =
+        VkExternalMemoryFeatureBitmask n
+
+pattern VkExternalMemoryFeatureFlags ::
+        VkFlags -> VkExternalMemoryFeatureBitmask FlagMask
+
+pattern VkExternalMemoryFeatureFlags n =
+        VkExternalMemoryFeatureBitmask n
+
+deriving instance Bits (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance
+         Integral (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance Num (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance Bounded (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance Enum (VkExternalMemoryFeatureBitmask FlagMask)
+
+deriving instance Real (VkExternalMemoryFeatureBitmask FlagMask)
+
+instance Show (VkExternalMemoryFeatureBitmask a) where
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"
+        showsPrec p (VkExternalMemoryFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalMemoryFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkExternalMemoryFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT),
+                  ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT),
+                  ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalMemoryFeatureBitmask") >>
+                      (VkExternalMemoryFeatureBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT ::
+        VkExternalMemoryFeatureBitmask a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT =
+        VkExternalMemoryFeatureBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT ::
+        VkExternalMemoryFeatureBitmask a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT =
+        VkExternalMemoryFeatureBitmask 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT ::
+        VkExternalMemoryFeatureBitmask a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT =
+        VkExternalMemoryFeatureBitmask 4
+
+newtype VkExternalMemoryFeatureBitmaskNV (a ::
+                                            FlagType) = VkExternalMemoryFeatureBitmaskNV VkFlags
+                                                          deriving (Eq, Ord, Storable, Data,
+                                                                    Generic)
+
+type VkExternalMemoryFeatureFlagsNV =
+     VkExternalMemoryFeatureBitmaskNV FlagMask
+
+type VkExternalMemoryFeatureFlagBitsNV =
+     VkExternalMemoryFeatureBitmaskNV FlagBit
+
+pattern VkExternalMemoryFeatureFlagBitsNV ::
+        VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagBit
+
+pattern VkExternalMemoryFeatureFlagBitsNV n =
+        VkExternalMemoryFeatureBitmaskNV n
+
+pattern VkExternalMemoryFeatureFlagsNV ::
+        VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagMask
+
+pattern VkExternalMemoryFeatureFlagsNV n =
+        VkExternalMemoryFeatureBitmaskNV n
+
+deriving instance Bits (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance
+         Integral (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance Num (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance
+         Bounded (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance Enum (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+deriving instance Real (VkExternalMemoryFeatureBitmaskNV FlagMask)
+
+instance Show (VkExternalMemoryFeatureBitmaskNV a) where
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"
+        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
+          = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"
+        showsPrec p (VkExternalMemoryFeatureBitmaskNV x)
+          = showParen (p >= 11)
+              (showString "VkExternalMemoryFeatureBitmaskNV " . showsPrec 11 x)
+
+instance Read (VkExternalMemoryFeatureBitmaskNV a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV),
+                  ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV),
+                  ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalMemoryFeatureBitmaskNV") >>
+                      (VkExternalMemoryFeatureBitmaskNV <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV ::
+        VkExternalMemoryFeatureBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV =
+        VkExternalMemoryFeatureBitmaskNV 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV ::
+        VkExternalMemoryFeatureBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV =
+        VkExternalMemoryFeatureBitmaskNV 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV ::
+        VkExternalMemoryFeatureBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV =
+        VkExternalMemoryFeatureBitmaskNV 4
+
+newtype VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBitsKHR VkFlags
+                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                            Bits, FiniteBits, Storable, Real, Data,
+                                                            Generic)
+
+instance Show VkExternalMemoryHandleTypeFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalMemoryHandleTypeFlagBitsKHR x) = show x
+
+instance Read VkExternalMemoryHandleTypeFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalMemoryHandleTypeBitmask (a ::
+                                             FlagType) = VkExternalMemoryHandleTypeBitmask VkFlags
+                                                           deriving (Eq, Ord, Storable, Data,
+                                                                     Generic)
+
+type VkExternalMemoryHandleTypeFlags =
+     VkExternalMemoryHandleTypeBitmask FlagMask
+
+type VkExternalMemoryHandleTypeFlagBits =
+     VkExternalMemoryHandleTypeBitmask FlagBit
+
+pattern VkExternalMemoryHandleTypeFlagBits ::
+        VkFlags -> VkExternalMemoryHandleTypeBitmask FlagBit
+
+pattern VkExternalMemoryHandleTypeFlagBits n =
+        VkExternalMemoryHandleTypeBitmask n
+
+pattern VkExternalMemoryHandleTypeFlags ::
+        VkFlags -> VkExternalMemoryHandleTypeBitmask FlagMask
+
+pattern VkExternalMemoryHandleTypeFlags n =
+        VkExternalMemoryHandleTypeBitmask n
+
+deriving instance Bits (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance
+         Integral (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance Num (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance
+         Bounded (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance Enum (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+deriving instance Real (VkExternalMemoryHandleTypeBitmask FlagMask)
+
+instance Show (VkExternalMemoryHandleTypeBitmask a) where
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"
+        showsPrec p (VkExternalMemoryHandleTypeBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalMemoryHandleTypeBitmask " . showsPrec 11 x)
+
+instance Read (VkExternalMemoryHandleTypeBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalMemoryHandleTypeBitmask") >>
+                      (VkExternalMemoryHandleTypeBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT =
+        VkExternalMemoryHandleTypeBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT =
+        VkExternalMemoryHandleTypeBitmask 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
+        VkExternalMemoryHandleTypeBitmask 4
+
+-- | bitpos = @3@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT =
+        VkExternalMemoryHandleTypeBitmask 8
+
+-- | bitpos = @4@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT =
+        VkExternalMemoryHandleTypeBitmask 16
+
+-- | bitpos = @5@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT =
+        VkExternalMemoryHandleTypeBitmask 32
+
+-- | bitpos = @6@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT ::
+        VkExternalMemoryHandleTypeBitmask a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT =
+        VkExternalMemoryHandleTypeBitmask 64
+
+newtype VkExternalMemoryHandleTypeBitmaskNV (a ::
+                                               FlagType) = VkExternalMemoryHandleTypeBitmaskNV VkFlags
+                                                             deriving (Eq, Ord, Storable, Data,
+                                                                       Generic)
+
+type VkExternalMemoryHandleTypeFlagsNV =
+     VkExternalMemoryHandleTypeBitmaskNV FlagMask
+
+type VkExternalMemoryHandleTypeFlagBitsNV =
+     VkExternalMemoryHandleTypeBitmaskNV FlagBit
+
+pattern VkExternalMemoryHandleTypeFlagBitsNV ::
+        VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagBit
+
+pattern VkExternalMemoryHandleTypeFlagBitsNV n =
+        VkExternalMemoryHandleTypeBitmaskNV n
+
+pattern VkExternalMemoryHandleTypeFlagsNV ::
+        VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagMask
+
+pattern VkExternalMemoryHandleTypeFlagsNV n =
+        VkExternalMemoryHandleTypeBitmaskNV n
+
+deriving instance
+         Bits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         Integral (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         Num (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         Bounded (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         Enum (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+deriving instance
+         Real (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
+
+instance Show (VkExternalMemoryHandleTypeBitmaskNV a) where
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV
+          = showString
+              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV
+          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"
+        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
+          = showString
+              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"
+        showsPrec p (VkExternalMemoryHandleTypeBitmaskNV x)
+          = showParen (p >= 11)
+              (showString "VkExternalMemoryHandleTypeBitmaskNV " .
+                 showsPrec 11 x)
+
+instance Read (VkExternalMemoryHandleTypeBitmaskNV a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV),
+                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV",
+                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalMemoryHandleTypeBitmaskNV") >>
+                      (VkExternalMemoryHandleTypeBitmaskNV <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV ::
+        VkExternalMemoryHandleTypeBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV =
+        VkExternalMemoryHandleTypeBitmaskNV 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV ::
+        VkExternalMemoryHandleTypeBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV =
+        VkExternalMemoryHandleTypeBitmaskNV 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV ::
+        VkExternalMemoryHandleTypeBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV =
+        VkExternalMemoryHandleTypeBitmaskNV 4
+
+-- | bitpos = @3@
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV ::
+        VkExternalMemoryHandleTypeBitmaskNV a
+
+pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV =
+        VkExternalMemoryHandleTypeBitmaskNV 8
+
+newtype VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBitsKHR VkFlags
+                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                            Bits, FiniteBits, Storable, Real, Data,
+                                                            Generic)
+
+instance Show VkExternalSemaphoreFeatureFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalSemaphoreFeatureFlagBitsKHR x) = show x
+
+instance Read VkExternalSemaphoreFeatureFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalSemaphoreFeatureBitmask (a ::
+                                             FlagType) = VkExternalSemaphoreFeatureBitmask VkFlags
+                                                           deriving (Eq, Ord, Storable, Data,
+                                                                     Generic)
+
+type VkExternalSemaphoreFeatureFlags =
+     VkExternalSemaphoreFeatureBitmask FlagMask
+
+type VkExternalSemaphoreFeatureFlagBits =
+     VkExternalSemaphoreFeatureBitmask FlagBit
+
+pattern VkExternalSemaphoreFeatureFlagBits ::
+        VkFlags -> VkExternalSemaphoreFeatureBitmask FlagBit
+
+pattern VkExternalSemaphoreFeatureFlagBits n =
+        VkExternalSemaphoreFeatureBitmask n
+
+pattern VkExternalSemaphoreFeatureFlags ::
+        VkFlags -> VkExternalSemaphoreFeatureBitmask FlagMask
+
+pattern VkExternalSemaphoreFeatureFlags n =
+        VkExternalSemaphoreFeatureBitmask n
+
+deriving instance Bits (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance
+         Integral (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance Num (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance
+         Bounded (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance Enum (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+deriving instance Real (VkExternalSemaphoreFeatureBitmask FlagMask)
+
+instance Show (VkExternalSemaphoreFeatureBitmask a) where
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"
+        showsPrec p (VkExternalSemaphoreFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalSemaphoreFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkExternalSemaphoreFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT),
+                  ("VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalSemaphoreFeatureBitmask") >>
+                      (VkExternalSemaphoreFeatureBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT ::
+        VkExternalSemaphoreFeatureBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT =
+        VkExternalSemaphoreFeatureBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT ::
+        VkExternalSemaphoreFeatureBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT =
+        VkExternalSemaphoreFeatureBitmask 2
+
+newtype VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBitsKHR VkFlags
+                                                     deriving (Eq, Ord, Num, Bounded, Enum,
+                                                               Integral, Bits, FiniteBits, Storable,
+                                                               Real, Data, Generic)
+
+instance Show VkExternalSemaphoreHandleTypeFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkExternalSemaphoreHandleTypeFlagBitsKHR x) = show x
+
+instance Read VkExternalSemaphoreHandleTypeFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkExternalSemaphoreHandleTypeBitmask (a ::
+                                                FlagType) = VkExternalSemaphoreHandleTypeBitmask VkFlags
+                                                              deriving (Eq, Ord, Storable, Data,
+                                                                        Generic)
+
+type VkExternalSemaphoreHandleTypeFlags =
+     VkExternalSemaphoreHandleTypeBitmask FlagMask
+
+type VkExternalSemaphoreHandleTypeFlagBits =
+     VkExternalSemaphoreHandleTypeBitmask FlagBit
+
+pattern VkExternalSemaphoreHandleTypeFlagBits ::
+        VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagBit
+
+pattern VkExternalSemaphoreHandleTypeFlagBits n =
+        VkExternalSemaphoreHandleTypeBitmask n
+
+pattern VkExternalSemaphoreHandleTypeFlags ::
+        VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagMask
+
+pattern VkExternalSemaphoreHandleTypeFlags n =
+        VkExternalSemaphoreHandleTypeBitmask n
+
+deriving instance
+         Bits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         Integral (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         Num (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         Bounded (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         Enum (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+deriving instance
+         Real (VkExternalSemaphoreHandleTypeBitmask FlagMask)
+
+instance Show (VkExternalSemaphoreHandleTypeBitmask a) where
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
+          = showString
+              "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"
+        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
+          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"
+        showsPrec p (VkExternalSemaphoreHandleTypeBitmask x)
+          = showParen (p >= 11)
+              (showString "VkExternalSemaphoreHandleTypeBitmask " .
+                 showsPrec 11 x)
+
+instance Read (VkExternalSemaphoreHandleTypeBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT),
+                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
+                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
+                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT),
+                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT",
+                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkExternalSemaphoreHandleTypeBitmask") >>
+                      (VkExternalSemaphoreHandleTypeBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT ::
+        VkExternalSemaphoreHandleTypeBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT =
+        VkExternalSemaphoreHandleTypeBitmask 1
+
+-- | bitpos = @1@
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
+        VkExternalSemaphoreHandleTypeBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
+        VkExternalSemaphoreHandleTypeBitmask 2
+
+-- | bitpos = @2@
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
+        VkExternalSemaphoreHandleTypeBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
+        VkExternalSemaphoreHandleTypeBitmask 4
+
+-- | bitpos = @3@
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT ::
+        VkExternalSemaphoreHandleTypeBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT =
+        VkExternalSemaphoreHandleTypeBitmask 8
+
+-- | bitpos = @4@
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT ::
+        VkExternalSemaphoreHandleTypeBitmask a
+
+pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT =
+        VkExternalSemaphoreHandleTypeBitmask 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs b/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Fence.hs
@@ -0,0 +1,153 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Fence
+       (VkFenceCreateBitmask(VkFenceCreateBitmask, VkFenceCreateFlags,
+                             VkFenceCreateFlagBits, VK_FENCE_CREATE_SIGNALED_BIT),
+        VkFenceCreateFlags, VkFenceCreateFlagBits,
+        VkFenceImportFlagBitsKHR(..),
+        VkFenceImportBitmask(VkFenceImportBitmask, VkFenceImportFlags,
+                             VkFenceImportFlagBits, VK_FENCE_IMPORT_TEMPORARY_BIT),
+        VkFenceImportFlags, VkFenceImportFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkFenceCreateBitmask (a ::
+                                FlagType) = VkFenceCreateBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkFenceCreateFlags = VkFenceCreateBitmask FlagMask
+
+type VkFenceCreateFlagBits = VkFenceCreateBitmask FlagBit
+
+pattern VkFenceCreateFlagBits ::
+        VkFlags -> VkFenceCreateBitmask FlagBit
+
+pattern VkFenceCreateFlagBits n = VkFenceCreateBitmask n
+
+pattern VkFenceCreateFlags ::
+        VkFlags -> VkFenceCreateBitmask FlagMask
+
+pattern VkFenceCreateFlags n = VkFenceCreateBitmask n
+
+deriving instance Bits (VkFenceCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkFenceCreateBitmask FlagMask)
+
+deriving instance Integral (VkFenceCreateBitmask FlagMask)
+
+deriving instance Num (VkFenceCreateBitmask FlagMask)
+
+deriving instance Bounded (VkFenceCreateBitmask FlagMask)
+
+deriving instance Enum (VkFenceCreateBitmask FlagMask)
+
+deriving instance Real (VkFenceCreateBitmask FlagMask)
+
+instance Show (VkFenceCreateBitmask a) where
+        showsPrec _ VK_FENCE_CREATE_SIGNALED_BIT
+          = showString "VK_FENCE_CREATE_SIGNALED_BIT"
+        showsPrec p (VkFenceCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkFenceCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkFenceCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FENCE_CREATE_SIGNALED_BIT",
+                   pure VK_FENCE_CREATE_SIGNALED_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFenceCreateBitmask") >>
+                      (VkFenceCreateBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_FENCE_CREATE_SIGNALED_BIT :: VkFenceCreateBitmask a
+
+pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateBitmask 1
+
+newtype VkFenceImportFlagBitsKHR = VkFenceImportFlagBitsKHR VkFlags
+                                     deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                               FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkFenceImportFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkFenceImportFlagBitsKHR x) = show x
+
+instance Read VkFenceImportFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkFenceImportBitmask (a ::
+                                FlagType) = VkFenceImportBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkFenceImportFlags = VkFenceImportBitmask FlagMask
+
+type VkFenceImportFlagBits = VkFenceImportBitmask FlagBit
+
+pattern VkFenceImportFlagBits ::
+        VkFlags -> VkFenceImportBitmask FlagBit
+
+pattern VkFenceImportFlagBits n = VkFenceImportBitmask n
+
+pattern VkFenceImportFlags ::
+        VkFlags -> VkFenceImportBitmask FlagMask
+
+pattern VkFenceImportFlags n = VkFenceImportBitmask n
+
+deriving instance Bits (VkFenceImportBitmask FlagMask)
+
+deriving instance FiniteBits (VkFenceImportBitmask FlagMask)
+
+deriving instance Integral (VkFenceImportBitmask FlagMask)
+
+deriving instance Num (VkFenceImportBitmask FlagMask)
+
+deriving instance Bounded (VkFenceImportBitmask FlagMask)
+
+deriving instance Enum (VkFenceImportBitmask FlagMask)
+
+deriving instance Real (VkFenceImportBitmask FlagMask)
+
+instance Show (VkFenceImportBitmask a) where
+        showsPrec _ VK_FENCE_IMPORT_TEMPORARY_BIT
+          = showString "VK_FENCE_IMPORT_TEMPORARY_BIT"
+        showsPrec p (VkFenceImportBitmask x)
+          = showParen (p >= 11)
+              (showString "VkFenceImportBitmask " . showsPrec 11 x)
+
+instance Read (VkFenceImportBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FENCE_IMPORT_TEMPORARY_BIT",
+                   pure VK_FENCE_IMPORT_TEMPORARY_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFenceImportBitmask") >>
+                      (VkFenceImportBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_FENCE_IMPORT_TEMPORARY_BIT :: VkFenceImportBitmask a
+
+pattern VK_FENCE_IMPORT_TEMPORARY_BIT = VkFenceImportBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs b/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Filter.hs
@@ -0,0 +1,47 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.Filter
+       (VkFilter(VkFilter, VK_FILTER_NEAREST, VK_FILTER_LINEAR)) where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFilter VkFilter registry at www.khronos.org>
+newtype VkFilter = VkFilter Int32
+                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkFilter where
+        showsPrec _ VK_FILTER_NEAREST = showString "VK_FILTER_NEAREST"
+        showsPrec _ VK_FILTER_LINEAR = showString "VK_FILTER_LINEAR"
+        showsPrec p (VkFilter x)
+          = showParen (p >= 11) (showString "VkFilter " . showsPrec 11 x)
+
+instance Read VkFilter where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FILTER_NEAREST", pure VK_FILTER_NEAREST),
+                  ("VK_FILTER_LINEAR", pure VK_FILTER_LINEAR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFilter") >> (VkFilter <$> step readPrec)))
+
+pattern VK_FILTER_NEAREST :: VkFilter
+
+pattern VK_FILTER_NEAREST = VkFilter 0
+
+pattern VK_FILTER_LINEAR :: VkFilter
+
+pattern VK_FILTER_LINEAR = VkFilter 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Format.hs b/src-gen/Graphics/Vulkan/Types/Enum/Format.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Format.hs
@@ -0,0 +1,1726 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Format
+       (VkFormat(VkFormat, VK_FORMAT_UNDEFINED,
+                 VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R4G4B4A4_UNORM_PACK16,
+                 VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16,
+                 VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_R5G5B5A1_UNORM_PACK16,
+                 VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16,
+                 VK_FORMAT_R8_UNORM, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_USCALED,
+                 VK_FORMAT_R8_SSCALED, VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT,
+                 VK_FORMAT_R8_SRGB, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8G8_SNORM,
+                 VK_FORMAT_R8G8_USCALED, VK_FORMAT_R8G8_SSCALED,
+                 VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SRGB,
+                 VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8B8_SNORM,
+                 VK_FORMAT_R8G8B8_USCALED, VK_FORMAT_R8G8B8_SSCALED,
+                 VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_SINT,
+                 VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_B8G8R8_UNORM,
+                 VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_USCALED,
+                 VK_FORMAT_B8G8R8_SSCALED, VK_FORMAT_B8G8R8_UINT,
+                 VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SRGB,
+                 VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8A8_SNORM,
+                 VK_FORMAT_R8G8B8A8_USCALED, VK_FORMAT_R8G8B8A8_SSCALED,
+                 VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_SINT,
+                 VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_B8G8R8A8_UNORM,
+                 VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_USCALED,
+                 VK_FORMAT_B8G8R8A8_SSCALED, VK_FORMAT_B8G8R8A8_UINT,
+                 VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SRGB,
+                 VK_FORMAT_A8B8G8R8_UNORM_PACK32, VK_FORMAT_A8B8G8R8_SNORM_PACK32,
+                 VK_FORMAT_A8B8G8R8_USCALED_PACK32,
+                 VK_FORMAT_A8B8G8R8_SSCALED_PACK32, VK_FORMAT_A8B8G8R8_UINT_PACK32,
+                 VK_FORMAT_A8B8G8R8_SINT_PACK32, VK_FORMAT_A8B8G8R8_SRGB_PACK32,
+                 VK_FORMAT_A2R10G10B10_UNORM_PACK32,
+                 VK_FORMAT_A2R10G10B10_SNORM_PACK32,
+                 VK_FORMAT_A2R10G10B10_USCALED_PACK32,
+                 VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
+                 VK_FORMAT_A2R10G10B10_UINT_PACK32,
+                 VK_FORMAT_A2R10G10B10_SINT_PACK32,
+                 VK_FORMAT_A2B10G10R10_UNORM_PACK32,
+                 VK_FORMAT_A2B10G10R10_SNORM_PACK32,
+                 VK_FORMAT_A2B10G10R10_USCALED_PACK32,
+                 VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
+                 VK_FORMAT_A2B10G10R10_UINT_PACK32,
+                 VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_R16_UNORM,
+                 VK_FORMAT_R16_SNORM, VK_FORMAT_R16_USCALED, VK_FORMAT_R16_SSCALED,
+                 VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SFLOAT,
+                 VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16G16_SNORM,
+                 VK_FORMAT_R16G16_USCALED, VK_FORMAT_R16G16_SSCALED,
+                 VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_SINT,
+                 VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16B16_UNORM,
+                 VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_USCALED,
+                 VK_FORMAT_R16G16B16_SSCALED, VK_FORMAT_R16G16B16_UINT,
+                 VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SFLOAT,
+                 VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16A16_SNORM,
+                 VK_FORMAT_R16G16B16A16_USCALED, VK_FORMAT_R16G16B16A16_SSCALED,
+                 VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_SINT,
+                 VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R32_UINT,
+                 VK_FORMAT_R32_SINT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32G32_UINT,
+                 VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_SFLOAT,
+                 VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32B32_SINT,
+                 VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32A32_UINT,
+                 VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SFLOAT,
+                 VK_FORMAT_R64_UINT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_SFLOAT,
+                 VK_FORMAT_R64G64_UINT, VK_FORMAT_R64G64_SINT,
+                 VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64B64_UINT,
+                 VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_SFLOAT,
+                 VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R64G64B64A64_SINT,
+                 VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_B10G11R11_UFLOAT_PACK32,
+                 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_D16_UNORM,
+                 VK_FORMAT_X8_D24_UNORM_PACK32, VK_FORMAT_D32_SFLOAT,
+                 VK_FORMAT_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT,
+                 VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
+                 VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK,
+                 VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
+                 VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK,
+                 VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK,
+                 VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK,
+                 VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK,
+                 VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK,
+                 VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
+                 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK,
+                 VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
+                 VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
+                 VK_FORMAT_ASTC_12x12_SRGB_BLOCK),
+        VkFormatFeatureBitmask(VkFormatFeatureBitmask,
+                               VkFormatFeatureFlags, VkFormatFeatureFlagBits,
+                               VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
+                               VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
+                               VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
+                               VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
+                               VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
+                               VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
+                               VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
+                               VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
+                               VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
+                               VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
+                               VK_FORMAT_FEATURE_BLIT_SRC_BIT, VK_FORMAT_FEATURE_BLIT_DST_BIT,
+                               VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT),
+        VkFormatFeatureFlags, VkFormatFeatureFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | Vulkan format definitions
+--
+--   type = @enum@
+--
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormat VkFormat registry at www.khronos.org>
+newtype VkFormat = VkFormat Int32
+                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkFormat where
+        showsPrec _ VK_FORMAT_UNDEFINED = showString "VK_FORMAT_UNDEFINED"
+        showsPrec _ VK_FORMAT_R4G4_UNORM_PACK8
+          = showString "VK_FORMAT_R4G4_UNORM_PACK8"
+        showsPrec _ VK_FORMAT_R4G4B4A4_UNORM_PACK16
+          = showString "VK_FORMAT_R4G4B4A4_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_B4G4R4A4_UNORM_PACK16
+          = showString "VK_FORMAT_B4G4R4A4_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_R5G6B5_UNORM_PACK16
+          = showString "VK_FORMAT_R5G6B5_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_B5G6R5_UNORM_PACK16
+          = showString "VK_FORMAT_B5G6R5_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_R5G5B5A1_UNORM_PACK16
+          = showString "VK_FORMAT_R5G5B5A1_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_B5G5R5A1_UNORM_PACK16
+          = showString "VK_FORMAT_B5G5R5A1_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_A1R5G5B5_UNORM_PACK16
+          = showString "VK_FORMAT_A1R5G5B5_UNORM_PACK16"
+        showsPrec _ VK_FORMAT_R8_UNORM = showString "VK_FORMAT_R8_UNORM"
+        showsPrec _ VK_FORMAT_R8_SNORM = showString "VK_FORMAT_R8_SNORM"
+        showsPrec _ VK_FORMAT_R8_USCALED
+          = showString "VK_FORMAT_R8_USCALED"
+        showsPrec _ VK_FORMAT_R8_SSCALED
+          = showString "VK_FORMAT_R8_SSCALED"
+        showsPrec _ VK_FORMAT_R8_UINT = showString "VK_FORMAT_R8_UINT"
+        showsPrec _ VK_FORMAT_R8_SINT = showString "VK_FORMAT_R8_SINT"
+        showsPrec _ VK_FORMAT_R8_SRGB = showString "VK_FORMAT_R8_SRGB"
+        showsPrec _ VK_FORMAT_R8G8_UNORM
+          = showString "VK_FORMAT_R8G8_UNORM"
+        showsPrec _ VK_FORMAT_R8G8_SNORM
+          = showString "VK_FORMAT_R8G8_SNORM"
+        showsPrec _ VK_FORMAT_R8G8_USCALED
+          = showString "VK_FORMAT_R8G8_USCALED"
+        showsPrec _ VK_FORMAT_R8G8_SSCALED
+          = showString "VK_FORMAT_R8G8_SSCALED"
+        showsPrec _ VK_FORMAT_R8G8_UINT = showString "VK_FORMAT_R8G8_UINT"
+        showsPrec _ VK_FORMAT_R8G8_SINT = showString "VK_FORMAT_R8G8_SINT"
+        showsPrec _ VK_FORMAT_R8G8_SRGB = showString "VK_FORMAT_R8G8_SRGB"
+        showsPrec _ VK_FORMAT_R8G8B8_UNORM
+          = showString "VK_FORMAT_R8G8B8_UNORM"
+        showsPrec _ VK_FORMAT_R8G8B8_SNORM
+          = showString "VK_FORMAT_R8G8B8_SNORM"
+        showsPrec _ VK_FORMAT_R8G8B8_USCALED
+          = showString "VK_FORMAT_R8G8B8_USCALED"
+        showsPrec _ VK_FORMAT_R8G8B8_SSCALED
+          = showString "VK_FORMAT_R8G8B8_SSCALED"
+        showsPrec _ VK_FORMAT_R8G8B8_UINT
+          = showString "VK_FORMAT_R8G8B8_UINT"
+        showsPrec _ VK_FORMAT_R8G8B8_SINT
+          = showString "VK_FORMAT_R8G8B8_SINT"
+        showsPrec _ VK_FORMAT_R8G8B8_SRGB
+          = showString "VK_FORMAT_R8G8B8_SRGB"
+        showsPrec _ VK_FORMAT_B8G8R8_UNORM
+          = showString "VK_FORMAT_B8G8R8_UNORM"
+        showsPrec _ VK_FORMAT_B8G8R8_SNORM
+          = showString "VK_FORMAT_B8G8R8_SNORM"
+        showsPrec _ VK_FORMAT_B8G8R8_USCALED
+          = showString "VK_FORMAT_B8G8R8_USCALED"
+        showsPrec _ VK_FORMAT_B8G8R8_SSCALED
+          = showString "VK_FORMAT_B8G8R8_SSCALED"
+        showsPrec _ VK_FORMAT_B8G8R8_UINT
+          = showString "VK_FORMAT_B8G8R8_UINT"
+        showsPrec _ VK_FORMAT_B8G8R8_SINT
+          = showString "VK_FORMAT_B8G8R8_SINT"
+        showsPrec _ VK_FORMAT_B8G8R8_SRGB
+          = showString "VK_FORMAT_B8G8R8_SRGB"
+        showsPrec _ VK_FORMAT_R8G8B8A8_UNORM
+          = showString "VK_FORMAT_R8G8B8A8_UNORM"
+        showsPrec _ VK_FORMAT_R8G8B8A8_SNORM
+          = showString "VK_FORMAT_R8G8B8A8_SNORM"
+        showsPrec _ VK_FORMAT_R8G8B8A8_USCALED
+          = showString "VK_FORMAT_R8G8B8A8_USCALED"
+        showsPrec _ VK_FORMAT_R8G8B8A8_SSCALED
+          = showString "VK_FORMAT_R8G8B8A8_SSCALED"
+        showsPrec _ VK_FORMAT_R8G8B8A8_UINT
+          = showString "VK_FORMAT_R8G8B8A8_UINT"
+        showsPrec _ VK_FORMAT_R8G8B8A8_SINT
+          = showString "VK_FORMAT_R8G8B8A8_SINT"
+        showsPrec _ VK_FORMAT_R8G8B8A8_SRGB
+          = showString "VK_FORMAT_R8G8B8A8_SRGB"
+        showsPrec _ VK_FORMAT_B8G8R8A8_UNORM
+          = showString "VK_FORMAT_B8G8R8A8_UNORM"
+        showsPrec _ VK_FORMAT_B8G8R8A8_SNORM
+          = showString "VK_FORMAT_B8G8R8A8_SNORM"
+        showsPrec _ VK_FORMAT_B8G8R8A8_USCALED
+          = showString "VK_FORMAT_B8G8R8A8_USCALED"
+        showsPrec _ VK_FORMAT_B8G8R8A8_SSCALED
+          = showString "VK_FORMAT_B8G8R8A8_SSCALED"
+        showsPrec _ VK_FORMAT_B8G8R8A8_UINT
+          = showString "VK_FORMAT_B8G8R8A8_UINT"
+        showsPrec _ VK_FORMAT_B8G8R8A8_SINT
+          = showString "VK_FORMAT_B8G8R8A8_SINT"
+        showsPrec _ VK_FORMAT_B8G8R8A8_SRGB
+          = showString "VK_FORMAT_B8G8R8A8_SRGB"
+        showsPrec _ VK_FORMAT_A8B8G8R8_UNORM_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_UNORM_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_SNORM_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_SNORM_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_USCALED_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_USCALED_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_SSCALED_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_UINT_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_UINT_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_SINT_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_SINT_PACK32"
+        showsPrec _ VK_FORMAT_A8B8G8R8_SRGB_PACK32
+          = showString "VK_FORMAT_A8B8G8R8_SRGB_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_UNORM_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_UNORM_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_SNORM_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_SNORM_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_USCALED_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_USCALED_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_SSCALED_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_UINT_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_UINT_PACK32"
+        showsPrec _ VK_FORMAT_A2R10G10B10_SINT_PACK32
+          = showString "VK_FORMAT_A2R10G10B10_SINT_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_UNORM_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_UNORM_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_SNORM_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_SNORM_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_USCALED_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_USCALED_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_SSCALED_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_UINT_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_UINT_PACK32"
+        showsPrec _ VK_FORMAT_A2B10G10R10_SINT_PACK32
+          = showString "VK_FORMAT_A2B10G10R10_SINT_PACK32"
+        showsPrec _ VK_FORMAT_R16_UNORM = showString "VK_FORMAT_R16_UNORM"
+        showsPrec _ VK_FORMAT_R16_SNORM = showString "VK_FORMAT_R16_SNORM"
+        showsPrec _ VK_FORMAT_R16_USCALED
+          = showString "VK_FORMAT_R16_USCALED"
+        showsPrec _ VK_FORMAT_R16_SSCALED
+          = showString "VK_FORMAT_R16_SSCALED"
+        showsPrec _ VK_FORMAT_R16_UINT = showString "VK_FORMAT_R16_UINT"
+        showsPrec _ VK_FORMAT_R16_SINT = showString "VK_FORMAT_R16_SINT"
+        showsPrec _ VK_FORMAT_R16_SFLOAT
+          = showString "VK_FORMAT_R16_SFLOAT"
+        showsPrec _ VK_FORMAT_R16G16_UNORM
+          = showString "VK_FORMAT_R16G16_UNORM"
+        showsPrec _ VK_FORMAT_R16G16_SNORM
+          = showString "VK_FORMAT_R16G16_SNORM"
+        showsPrec _ VK_FORMAT_R16G16_USCALED
+          = showString "VK_FORMAT_R16G16_USCALED"
+        showsPrec _ VK_FORMAT_R16G16_SSCALED
+          = showString "VK_FORMAT_R16G16_SSCALED"
+        showsPrec _ VK_FORMAT_R16G16_UINT
+          = showString "VK_FORMAT_R16G16_UINT"
+        showsPrec _ VK_FORMAT_R16G16_SINT
+          = showString "VK_FORMAT_R16G16_SINT"
+        showsPrec _ VK_FORMAT_R16G16_SFLOAT
+          = showString "VK_FORMAT_R16G16_SFLOAT"
+        showsPrec _ VK_FORMAT_R16G16B16_UNORM
+          = showString "VK_FORMAT_R16G16B16_UNORM"
+        showsPrec _ VK_FORMAT_R16G16B16_SNORM
+          = showString "VK_FORMAT_R16G16B16_SNORM"
+        showsPrec _ VK_FORMAT_R16G16B16_USCALED
+          = showString "VK_FORMAT_R16G16B16_USCALED"
+        showsPrec _ VK_FORMAT_R16G16B16_SSCALED
+          = showString "VK_FORMAT_R16G16B16_SSCALED"
+        showsPrec _ VK_FORMAT_R16G16B16_UINT
+          = showString "VK_FORMAT_R16G16B16_UINT"
+        showsPrec _ VK_FORMAT_R16G16B16_SINT
+          = showString "VK_FORMAT_R16G16B16_SINT"
+        showsPrec _ VK_FORMAT_R16G16B16_SFLOAT
+          = showString "VK_FORMAT_R16G16B16_SFLOAT"
+        showsPrec _ VK_FORMAT_R16G16B16A16_UNORM
+          = showString "VK_FORMAT_R16G16B16A16_UNORM"
+        showsPrec _ VK_FORMAT_R16G16B16A16_SNORM
+          = showString "VK_FORMAT_R16G16B16A16_SNORM"
+        showsPrec _ VK_FORMAT_R16G16B16A16_USCALED
+          = showString "VK_FORMAT_R16G16B16A16_USCALED"
+        showsPrec _ VK_FORMAT_R16G16B16A16_SSCALED
+          = showString "VK_FORMAT_R16G16B16A16_SSCALED"
+        showsPrec _ VK_FORMAT_R16G16B16A16_UINT
+          = showString "VK_FORMAT_R16G16B16A16_UINT"
+        showsPrec _ VK_FORMAT_R16G16B16A16_SINT
+          = showString "VK_FORMAT_R16G16B16A16_SINT"
+        showsPrec _ VK_FORMAT_R16G16B16A16_SFLOAT
+          = showString "VK_FORMAT_R16G16B16A16_SFLOAT"
+        showsPrec _ VK_FORMAT_R32_UINT = showString "VK_FORMAT_R32_UINT"
+        showsPrec _ VK_FORMAT_R32_SINT = showString "VK_FORMAT_R32_SINT"
+        showsPrec _ VK_FORMAT_R32_SFLOAT
+          = showString "VK_FORMAT_R32_SFLOAT"
+        showsPrec _ VK_FORMAT_R32G32_UINT
+          = showString "VK_FORMAT_R32G32_UINT"
+        showsPrec _ VK_FORMAT_R32G32_SINT
+          = showString "VK_FORMAT_R32G32_SINT"
+        showsPrec _ VK_FORMAT_R32G32_SFLOAT
+          = showString "VK_FORMAT_R32G32_SFLOAT"
+        showsPrec _ VK_FORMAT_R32G32B32_UINT
+          = showString "VK_FORMAT_R32G32B32_UINT"
+        showsPrec _ VK_FORMAT_R32G32B32_SINT
+          = showString "VK_FORMAT_R32G32B32_SINT"
+        showsPrec _ VK_FORMAT_R32G32B32_SFLOAT
+          = showString "VK_FORMAT_R32G32B32_SFLOAT"
+        showsPrec _ VK_FORMAT_R32G32B32A32_UINT
+          = showString "VK_FORMAT_R32G32B32A32_UINT"
+        showsPrec _ VK_FORMAT_R32G32B32A32_SINT
+          = showString "VK_FORMAT_R32G32B32A32_SINT"
+        showsPrec _ VK_FORMAT_R32G32B32A32_SFLOAT
+          = showString "VK_FORMAT_R32G32B32A32_SFLOAT"
+        showsPrec _ VK_FORMAT_R64_UINT = showString "VK_FORMAT_R64_UINT"
+        showsPrec _ VK_FORMAT_R64_SINT = showString "VK_FORMAT_R64_SINT"
+        showsPrec _ VK_FORMAT_R64_SFLOAT
+          = showString "VK_FORMAT_R64_SFLOAT"
+        showsPrec _ VK_FORMAT_R64G64_UINT
+          = showString "VK_FORMAT_R64G64_UINT"
+        showsPrec _ VK_FORMAT_R64G64_SINT
+          = showString "VK_FORMAT_R64G64_SINT"
+        showsPrec _ VK_FORMAT_R64G64_SFLOAT
+          = showString "VK_FORMAT_R64G64_SFLOAT"
+        showsPrec _ VK_FORMAT_R64G64B64_UINT
+          = showString "VK_FORMAT_R64G64B64_UINT"
+        showsPrec _ VK_FORMAT_R64G64B64_SINT
+          = showString "VK_FORMAT_R64G64B64_SINT"
+        showsPrec _ VK_FORMAT_R64G64B64_SFLOAT
+          = showString "VK_FORMAT_R64G64B64_SFLOAT"
+        showsPrec _ VK_FORMAT_R64G64B64A64_UINT
+          = showString "VK_FORMAT_R64G64B64A64_UINT"
+        showsPrec _ VK_FORMAT_R64G64B64A64_SINT
+          = showString "VK_FORMAT_R64G64B64A64_SINT"
+        showsPrec _ VK_FORMAT_R64G64B64A64_SFLOAT
+          = showString "VK_FORMAT_R64G64B64A64_SFLOAT"
+        showsPrec _ VK_FORMAT_B10G11R11_UFLOAT_PACK32
+          = showString "VK_FORMAT_B10G11R11_UFLOAT_PACK32"
+        showsPrec _ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
+          = showString "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"
+        showsPrec _ VK_FORMAT_D16_UNORM = showString "VK_FORMAT_D16_UNORM"
+        showsPrec _ VK_FORMAT_X8_D24_UNORM_PACK32
+          = showString "VK_FORMAT_X8_D24_UNORM_PACK32"
+        showsPrec _ VK_FORMAT_D32_SFLOAT
+          = showString "VK_FORMAT_D32_SFLOAT"
+        showsPrec _ VK_FORMAT_S8_UINT = showString "VK_FORMAT_S8_UINT"
+        showsPrec _ VK_FORMAT_D16_UNORM_S8_UINT
+          = showString "VK_FORMAT_D16_UNORM_S8_UINT"
+        showsPrec _ VK_FORMAT_D24_UNORM_S8_UINT
+          = showString "VK_FORMAT_D24_UNORM_S8_UINT"
+        showsPrec _ VK_FORMAT_D32_SFLOAT_S8_UINT
+          = showString "VK_FORMAT_D32_SFLOAT_S8_UINT"
+        showsPrec _ VK_FORMAT_BC1_RGB_UNORM_BLOCK
+          = showString "VK_FORMAT_BC1_RGB_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC1_RGB_SRGB_BLOCK
+          = showString "VK_FORMAT_BC1_RGB_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_BC1_RGBA_UNORM_BLOCK
+          = showString "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC1_RGBA_SRGB_BLOCK
+          = showString "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_BC2_UNORM_BLOCK
+          = showString "VK_FORMAT_BC2_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC2_SRGB_BLOCK
+          = showString "VK_FORMAT_BC2_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_BC3_UNORM_BLOCK
+          = showString "VK_FORMAT_BC3_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC3_SRGB_BLOCK
+          = showString "VK_FORMAT_BC3_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_BC4_UNORM_BLOCK
+          = showString "VK_FORMAT_BC4_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC4_SNORM_BLOCK
+          = showString "VK_FORMAT_BC4_SNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC5_UNORM_BLOCK
+          = showString "VK_FORMAT_BC5_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC5_SNORM_BLOCK
+          = showString "VK_FORMAT_BC5_SNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC6H_UFLOAT_BLOCK
+          = showString "VK_FORMAT_BC6H_UFLOAT_BLOCK"
+        showsPrec _ VK_FORMAT_BC6H_SFLOAT_BLOCK
+          = showString "VK_FORMAT_BC6H_SFLOAT_BLOCK"
+        showsPrec _ VK_FORMAT_BC7_UNORM_BLOCK
+          = showString "VK_FORMAT_BC7_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_BC7_SRGB_BLOCK
+          = showString "VK_FORMAT_BC7_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
+          = showString "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_EAC_R11_UNORM_BLOCK
+          = showString "VK_FORMAT_EAC_R11_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_EAC_R11_SNORM_BLOCK
+          = showString "VK_FORMAT_EAC_R11_SNORM_BLOCK"
+        showsPrec _ VK_FORMAT_EAC_R11G11_UNORM_BLOCK
+          = showString "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_EAC_R11G11_SNORM_BLOCK
+          = showString "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_4x4_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_4x4_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_5x4_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_5x4_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_5x5_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_5x5_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_6x5_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_6x5_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_6x6_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_6x6_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x5_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x5_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x6_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x6_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x8_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_8x8_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x5_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x5_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x6_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x6_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x8_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x8_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x10_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_10x10_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_12x10_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_12x10_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_12x12_UNORM_BLOCK
+          = showString "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"
+        showsPrec _ VK_FORMAT_ASTC_12x12_SRGB_BLOCK
+          = showString "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"
+        showsPrec p (VkFormat x)
+          = showParen (p >= 11) (showString "VkFormat " . showsPrec 11 x)
+
+instance Read VkFormat where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FORMAT_UNDEFINED", pure VK_FORMAT_UNDEFINED),
+                  ("VK_FORMAT_R4G4_UNORM_PACK8", pure VK_FORMAT_R4G4_UNORM_PACK8),
+                  ("VK_FORMAT_R4G4B4A4_UNORM_PACK16",
+                   pure VK_FORMAT_R4G4B4A4_UNORM_PACK16),
+                  ("VK_FORMAT_B4G4R4A4_UNORM_PACK16",
+                   pure VK_FORMAT_B4G4R4A4_UNORM_PACK16),
+                  ("VK_FORMAT_R5G6B5_UNORM_PACK16",
+                   pure VK_FORMAT_R5G6B5_UNORM_PACK16),
+                  ("VK_FORMAT_B5G6R5_UNORM_PACK16",
+                   pure VK_FORMAT_B5G6R5_UNORM_PACK16),
+                  ("VK_FORMAT_R5G5B5A1_UNORM_PACK16",
+                   pure VK_FORMAT_R5G5B5A1_UNORM_PACK16),
+                  ("VK_FORMAT_B5G5R5A1_UNORM_PACK16",
+                   pure VK_FORMAT_B5G5R5A1_UNORM_PACK16),
+                  ("VK_FORMAT_A1R5G5B5_UNORM_PACK16",
+                   pure VK_FORMAT_A1R5G5B5_UNORM_PACK16),
+                  ("VK_FORMAT_R8_UNORM", pure VK_FORMAT_R8_UNORM),
+                  ("VK_FORMAT_R8_SNORM", pure VK_FORMAT_R8_SNORM),
+                  ("VK_FORMAT_R8_USCALED", pure VK_FORMAT_R8_USCALED),
+                  ("VK_FORMAT_R8_SSCALED", pure VK_FORMAT_R8_SSCALED),
+                  ("VK_FORMAT_R8_UINT", pure VK_FORMAT_R8_UINT),
+                  ("VK_FORMAT_R8_SINT", pure VK_FORMAT_R8_SINT),
+                  ("VK_FORMAT_R8_SRGB", pure VK_FORMAT_R8_SRGB),
+                  ("VK_FORMAT_R8G8_UNORM", pure VK_FORMAT_R8G8_UNORM),
+                  ("VK_FORMAT_R8G8_SNORM", pure VK_FORMAT_R8G8_SNORM),
+                  ("VK_FORMAT_R8G8_USCALED", pure VK_FORMAT_R8G8_USCALED),
+                  ("VK_FORMAT_R8G8_SSCALED", pure VK_FORMAT_R8G8_SSCALED),
+                  ("VK_FORMAT_R8G8_UINT", pure VK_FORMAT_R8G8_UINT),
+                  ("VK_FORMAT_R8G8_SINT", pure VK_FORMAT_R8G8_SINT),
+                  ("VK_FORMAT_R8G8_SRGB", pure VK_FORMAT_R8G8_SRGB),
+                  ("VK_FORMAT_R8G8B8_UNORM", pure VK_FORMAT_R8G8B8_UNORM),
+                  ("VK_FORMAT_R8G8B8_SNORM", pure VK_FORMAT_R8G8B8_SNORM),
+                  ("VK_FORMAT_R8G8B8_USCALED", pure VK_FORMAT_R8G8B8_USCALED),
+                  ("VK_FORMAT_R8G8B8_SSCALED", pure VK_FORMAT_R8G8B8_SSCALED),
+                  ("VK_FORMAT_R8G8B8_UINT", pure VK_FORMAT_R8G8B8_UINT),
+                  ("VK_FORMAT_R8G8B8_SINT", pure VK_FORMAT_R8G8B8_SINT),
+                  ("VK_FORMAT_R8G8B8_SRGB", pure VK_FORMAT_R8G8B8_SRGB),
+                  ("VK_FORMAT_B8G8R8_UNORM", pure VK_FORMAT_B8G8R8_UNORM),
+                  ("VK_FORMAT_B8G8R8_SNORM", pure VK_FORMAT_B8G8R8_SNORM),
+                  ("VK_FORMAT_B8G8R8_USCALED", pure VK_FORMAT_B8G8R8_USCALED),
+                  ("VK_FORMAT_B8G8R8_SSCALED", pure VK_FORMAT_B8G8R8_SSCALED),
+                  ("VK_FORMAT_B8G8R8_UINT", pure VK_FORMAT_B8G8R8_UINT),
+                  ("VK_FORMAT_B8G8R8_SINT", pure VK_FORMAT_B8G8R8_SINT),
+                  ("VK_FORMAT_B8G8R8_SRGB", pure VK_FORMAT_B8G8R8_SRGB),
+                  ("VK_FORMAT_R8G8B8A8_UNORM", pure VK_FORMAT_R8G8B8A8_UNORM),
+                  ("VK_FORMAT_R8G8B8A8_SNORM", pure VK_FORMAT_R8G8B8A8_SNORM),
+                  ("VK_FORMAT_R8G8B8A8_USCALED", pure VK_FORMAT_R8G8B8A8_USCALED),
+                  ("VK_FORMAT_R8G8B8A8_SSCALED", pure VK_FORMAT_R8G8B8A8_SSCALED),
+                  ("VK_FORMAT_R8G8B8A8_UINT", pure VK_FORMAT_R8G8B8A8_UINT),
+                  ("VK_FORMAT_R8G8B8A8_SINT", pure VK_FORMAT_R8G8B8A8_SINT),
+                  ("VK_FORMAT_R8G8B8A8_SRGB", pure VK_FORMAT_R8G8B8A8_SRGB),
+                  ("VK_FORMAT_B8G8R8A8_UNORM", pure VK_FORMAT_B8G8R8A8_UNORM),
+                  ("VK_FORMAT_B8G8R8A8_SNORM", pure VK_FORMAT_B8G8R8A8_SNORM),
+                  ("VK_FORMAT_B8G8R8A8_USCALED", pure VK_FORMAT_B8G8R8A8_USCALED),
+                  ("VK_FORMAT_B8G8R8A8_SSCALED", pure VK_FORMAT_B8G8R8A8_SSCALED),
+                  ("VK_FORMAT_B8G8R8A8_UINT", pure VK_FORMAT_B8G8R8A8_UINT),
+                  ("VK_FORMAT_B8G8R8A8_SINT", pure VK_FORMAT_B8G8R8A8_SINT),
+                  ("VK_FORMAT_B8G8R8A8_SRGB", pure VK_FORMAT_B8G8R8A8_SRGB),
+                  ("VK_FORMAT_A8B8G8R8_UNORM_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_UNORM_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_SNORM_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_SNORM_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_USCALED_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_USCALED_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_SSCALED_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_SSCALED_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_UINT_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_UINT_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_SINT_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_SINT_PACK32),
+                  ("VK_FORMAT_A8B8G8R8_SRGB_PACK32",
+                   pure VK_FORMAT_A8B8G8R8_SRGB_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_UNORM_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_UNORM_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_SNORM_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_SNORM_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_USCALED_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_USCALED_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_SSCALED_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_SSCALED_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_UINT_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_UINT_PACK32),
+                  ("VK_FORMAT_A2R10G10B10_SINT_PACK32",
+                   pure VK_FORMAT_A2R10G10B10_SINT_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_UNORM_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_UNORM_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_SNORM_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_SNORM_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_USCALED_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_USCALED_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_SSCALED_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_SSCALED_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_UINT_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_UINT_PACK32),
+                  ("VK_FORMAT_A2B10G10R10_SINT_PACK32",
+                   pure VK_FORMAT_A2B10G10R10_SINT_PACK32),
+                  ("VK_FORMAT_R16_UNORM", pure VK_FORMAT_R16_UNORM),
+                  ("VK_FORMAT_R16_SNORM", pure VK_FORMAT_R16_SNORM),
+                  ("VK_FORMAT_R16_USCALED", pure VK_FORMAT_R16_USCALED),
+                  ("VK_FORMAT_R16_SSCALED", pure VK_FORMAT_R16_SSCALED),
+                  ("VK_FORMAT_R16_UINT", pure VK_FORMAT_R16_UINT),
+                  ("VK_FORMAT_R16_SINT", pure VK_FORMAT_R16_SINT),
+                  ("VK_FORMAT_R16_SFLOAT", pure VK_FORMAT_R16_SFLOAT),
+                  ("VK_FORMAT_R16G16_UNORM", pure VK_FORMAT_R16G16_UNORM),
+                  ("VK_FORMAT_R16G16_SNORM", pure VK_FORMAT_R16G16_SNORM),
+                  ("VK_FORMAT_R16G16_USCALED", pure VK_FORMAT_R16G16_USCALED),
+                  ("VK_FORMAT_R16G16_SSCALED", pure VK_FORMAT_R16G16_SSCALED),
+                  ("VK_FORMAT_R16G16_UINT", pure VK_FORMAT_R16G16_UINT),
+                  ("VK_FORMAT_R16G16_SINT", pure VK_FORMAT_R16G16_SINT),
+                  ("VK_FORMAT_R16G16_SFLOAT", pure VK_FORMAT_R16G16_SFLOAT),
+                  ("VK_FORMAT_R16G16B16_UNORM", pure VK_FORMAT_R16G16B16_UNORM),
+                  ("VK_FORMAT_R16G16B16_SNORM", pure VK_FORMAT_R16G16B16_SNORM),
+                  ("VK_FORMAT_R16G16B16_USCALED", pure VK_FORMAT_R16G16B16_USCALED),
+                  ("VK_FORMAT_R16G16B16_SSCALED", pure VK_FORMAT_R16G16B16_SSCALED),
+                  ("VK_FORMAT_R16G16B16_UINT", pure VK_FORMAT_R16G16B16_UINT),
+                  ("VK_FORMAT_R16G16B16_SINT", pure VK_FORMAT_R16G16B16_SINT),
+                  ("VK_FORMAT_R16G16B16_SFLOAT", pure VK_FORMAT_R16G16B16_SFLOAT),
+                  ("VK_FORMAT_R16G16B16A16_UNORM",
+                   pure VK_FORMAT_R16G16B16A16_UNORM),
+                  ("VK_FORMAT_R16G16B16A16_SNORM",
+                   pure VK_FORMAT_R16G16B16A16_SNORM),
+                  ("VK_FORMAT_R16G16B16A16_USCALED",
+                   pure VK_FORMAT_R16G16B16A16_USCALED),
+                  ("VK_FORMAT_R16G16B16A16_SSCALED",
+                   pure VK_FORMAT_R16G16B16A16_SSCALED),
+                  ("VK_FORMAT_R16G16B16A16_UINT", pure VK_FORMAT_R16G16B16A16_UINT),
+                  ("VK_FORMAT_R16G16B16A16_SINT", pure VK_FORMAT_R16G16B16A16_SINT),
+                  ("VK_FORMAT_R16G16B16A16_SFLOAT",
+                   pure VK_FORMAT_R16G16B16A16_SFLOAT),
+                  ("VK_FORMAT_R32_UINT", pure VK_FORMAT_R32_UINT),
+                  ("VK_FORMAT_R32_SINT", pure VK_FORMAT_R32_SINT),
+                  ("VK_FORMAT_R32_SFLOAT", pure VK_FORMAT_R32_SFLOAT),
+                  ("VK_FORMAT_R32G32_UINT", pure VK_FORMAT_R32G32_UINT),
+                  ("VK_FORMAT_R32G32_SINT", pure VK_FORMAT_R32G32_SINT),
+                  ("VK_FORMAT_R32G32_SFLOAT", pure VK_FORMAT_R32G32_SFLOAT),
+                  ("VK_FORMAT_R32G32B32_UINT", pure VK_FORMAT_R32G32B32_UINT),
+                  ("VK_FORMAT_R32G32B32_SINT", pure VK_FORMAT_R32G32B32_SINT),
+                  ("VK_FORMAT_R32G32B32_SFLOAT", pure VK_FORMAT_R32G32B32_SFLOAT),
+                  ("VK_FORMAT_R32G32B32A32_UINT", pure VK_FORMAT_R32G32B32A32_UINT),
+                  ("VK_FORMAT_R32G32B32A32_SINT", pure VK_FORMAT_R32G32B32A32_SINT),
+                  ("VK_FORMAT_R32G32B32A32_SFLOAT",
+                   pure VK_FORMAT_R32G32B32A32_SFLOAT),
+                  ("VK_FORMAT_R64_UINT", pure VK_FORMAT_R64_UINT),
+                  ("VK_FORMAT_R64_SINT", pure VK_FORMAT_R64_SINT),
+                  ("VK_FORMAT_R64_SFLOAT", pure VK_FORMAT_R64_SFLOAT),
+                  ("VK_FORMAT_R64G64_UINT", pure VK_FORMAT_R64G64_UINT),
+                  ("VK_FORMAT_R64G64_SINT", pure VK_FORMAT_R64G64_SINT),
+                  ("VK_FORMAT_R64G64_SFLOAT", pure VK_FORMAT_R64G64_SFLOAT),
+                  ("VK_FORMAT_R64G64B64_UINT", pure VK_FORMAT_R64G64B64_UINT),
+                  ("VK_FORMAT_R64G64B64_SINT", pure VK_FORMAT_R64G64B64_SINT),
+                  ("VK_FORMAT_R64G64B64_SFLOAT", pure VK_FORMAT_R64G64B64_SFLOAT),
+                  ("VK_FORMAT_R64G64B64A64_UINT", pure VK_FORMAT_R64G64B64A64_UINT),
+                  ("VK_FORMAT_R64G64B64A64_SINT", pure VK_FORMAT_R64G64B64A64_SINT),
+                  ("VK_FORMAT_R64G64B64A64_SFLOAT",
+                   pure VK_FORMAT_R64G64B64A64_SFLOAT),
+                  ("VK_FORMAT_B10G11R11_UFLOAT_PACK32",
+                   pure VK_FORMAT_B10G11R11_UFLOAT_PACK32),
+                  ("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",
+                   pure VK_FORMAT_E5B9G9R9_UFLOAT_PACK32),
+                  ("VK_FORMAT_D16_UNORM", pure VK_FORMAT_D16_UNORM),
+                  ("VK_FORMAT_X8_D24_UNORM_PACK32",
+                   pure VK_FORMAT_X8_D24_UNORM_PACK32),
+                  ("VK_FORMAT_D32_SFLOAT", pure VK_FORMAT_D32_SFLOAT),
+                  ("VK_FORMAT_S8_UINT", pure VK_FORMAT_S8_UINT),
+                  ("VK_FORMAT_D16_UNORM_S8_UINT", pure VK_FORMAT_D16_UNORM_S8_UINT),
+                  ("VK_FORMAT_D24_UNORM_S8_UINT", pure VK_FORMAT_D24_UNORM_S8_UINT),
+                  ("VK_FORMAT_D32_SFLOAT_S8_UINT",
+                   pure VK_FORMAT_D32_SFLOAT_S8_UINT),
+                  ("VK_FORMAT_BC1_RGB_UNORM_BLOCK",
+                   pure VK_FORMAT_BC1_RGB_UNORM_BLOCK),
+                  ("VK_FORMAT_BC1_RGB_SRGB_BLOCK",
+                   pure VK_FORMAT_BC1_RGB_SRGB_BLOCK),
+                  ("VK_FORMAT_BC1_RGBA_UNORM_BLOCK",
+                   pure VK_FORMAT_BC1_RGBA_UNORM_BLOCK),
+                  ("VK_FORMAT_BC1_RGBA_SRGB_BLOCK",
+                   pure VK_FORMAT_BC1_RGBA_SRGB_BLOCK),
+                  ("VK_FORMAT_BC2_UNORM_BLOCK", pure VK_FORMAT_BC2_UNORM_BLOCK),
+                  ("VK_FORMAT_BC2_SRGB_BLOCK", pure VK_FORMAT_BC2_SRGB_BLOCK),
+                  ("VK_FORMAT_BC3_UNORM_BLOCK", pure VK_FORMAT_BC3_UNORM_BLOCK),
+                  ("VK_FORMAT_BC3_SRGB_BLOCK", pure VK_FORMAT_BC3_SRGB_BLOCK),
+                  ("VK_FORMAT_BC4_UNORM_BLOCK", pure VK_FORMAT_BC4_UNORM_BLOCK),
+                  ("VK_FORMAT_BC4_SNORM_BLOCK", pure VK_FORMAT_BC4_SNORM_BLOCK),
+                  ("VK_FORMAT_BC5_UNORM_BLOCK", pure VK_FORMAT_BC5_UNORM_BLOCK),
+                  ("VK_FORMAT_BC5_SNORM_BLOCK", pure VK_FORMAT_BC5_SNORM_BLOCK),
+                  ("VK_FORMAT_BC6H_UFLOAT_BLOCK", pure VK_FORMAT_BC6H_UFLOAT_BLOCK),
+                  ("VK_FORMAT_BC6H_SFLOAT_BLOCK", pure VK_FORMAT_BC6H_SFLOAT_BLOCK),
+                  ("VK_FORMAT_BC7_UNORM_BLOCK", pure VK_FORMAT_BC7_UNORM_BLOCK),
+                  ("VK_FORMAT_BC7_SRGB_BLOCK", pure VK_FORMAT_BC7_SRGB_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK),
+                  ("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",
+                   pure VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK),
+                  ("VK_FORMAT_EAC_R11_UNORM_BLOCK",
+                   pure VK_FORMAT_EAC_R11_UNORM_BLOCK),
+                  ("VK_FORMAT_EAC_R11_SNORM_BLOCK",
+                   pure VK_FORMAT_EAC_R11_SNORM_BLOCK),
+                  ("VK_FORMAT_EAC_R11G11_UNORM_BLOCK",
+                   pure VK_FORMAT_EAC_R11G11_UNORM_BLOCK),
+                  ("VK_FORMAT_EAC_R11G11_SNORM_BLOCK",
+                   pure VK_FORMAT_EAC_R11G11_SNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_4x4_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_4x4_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_4x4_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_4x4_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_5x4_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_5x4_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_5x4_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_5x4_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_5x5_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_5x5_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_5x5_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_5x5_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_6x5_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_6x5_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_6x5_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_6x5_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_6x6_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_6x6_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_6x6_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_6x6_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_8x5_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_8x5_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_8x5_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_8x5_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_8x6_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_8x6_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_8x6_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_8x6_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_8x8_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_8x8_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_8x8_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_8x8_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_10x5_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_10x5_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_10x5_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_10x5_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_10x6_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_10x6_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_10x6_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_10x6_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_10x8_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_10x8_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_10x8_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_10x8_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_10x10_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_10x10_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_10x10_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_10x10_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_12x10_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_12x10_SRGB_BLOCK),
+                  ("VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
+                   pure VK_FORMAT_ASTC_12x12_UNORM_BLOCK),
+                  ("VK_FORMAT_ASTC_12x12_SRGB_BLOCK",
+                   pure VK_FORMAT_ASTC_12x12_SRGB_BLOCK)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFormat") >> (VkFormat <$> step readPrec)))
+
+pattern VK_FORMAT_UNDEFINED :: VkFormat
+
+pattern VK_FORMAT_UNDEFINED = VkFormat 0
+
+pattern VK_FORMAT_R4G4_UNORM_PACK8 :: VkFormat
+
+pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1
+
+pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2
+
+pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3
+
+pattern VK_FORMAT_R5G6B5_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4
+
+pattern VK_FORMAT_B5G6R5_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5
+
+pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6
+
+pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7
+
+pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 :: VkFormat
+
+pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8
+
+pattern VK_FORMAT_R8_UNORM :: VkFormat
+
+pattern VK_FORMAT_R8_UNORM = VkFormat 9
+
+pattern VK_FORMAT_R8_SNORM :: VkFormat
+
+pattern VK_FORMAT_R8_SNORM = VkFormat 10
+
+pattern VK_FORMAT_R8_USCALED :: VkFormat
+
+pattern VK_FORMAT_R8_USCALED = VkFormat 11
+
+pattern VK_FORMAT_R8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R8_SSCALED = VkFormat 12
+
+pattern VK_FORMAT_R8_UINT :: VkFormat
+
+pattern VK_FORMAT_R8_UINT = VkFormat 13
+
+pattern VK_FORMAT_R8_SINT :: VkFormat
+
+pattern VK_FORMAT_R8_SINT = VkFormat 14
+
+pattern VK_FORMAT_R8_SRGB :: VkFormat
+
+pattern VK_FORMAT_R8_SRGB = VkFormat 15
+
+pattern VK_FORMAT_R8G8_UNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8_UNORM = VkFormat 16
+
+pattern VK_FORMAT_R8G8_SNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8_SNORM = VkFormat 17
+
+pattern VK_FORMAT_R8G8_USCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8_USCALED = VkFormat 18
+
+pattern VK_FORMAT_R8G8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19
+
+pattern VK_FORMAT_R8G8_UINT :: VkFormat
+
+pattern VK_FORMAT_R8G8_UINT = VkFormat 20
+
+pattern VK_FORMAT_R8G8_SINT :: VkFormat
+
+pattern VK_FORMAT_R8G8_SINT = VkFormat 21
+
+pattern VK_FORMAT_R8G8_SRGB :: VkFormat
+
+pattern VK_FORMAT_R8G8_SRGB = VkFormat 22
+
+pattern VK_FORMAT_R8G8B8_UNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23
+
+pattern VK_FORMAT_R8G8B8_SNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24
+
+pattern VK_FORMAT_R8G8B8_USCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25
+
+pattern VK_FORMAT_R8G8B8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26
+
+pattern VK_FORMAT_R8G8B8_UINT :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27
+
+pattern VK_FORMAT_R8G8B8_SINT :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28
+
+pattern VK_FORMAT_R8G8B8_SRGB :: VkFormat
+
+pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29
+
+pattern VK_FORMAT_B8G8R8_UNORM :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30
+
+pattern VK_FORMAT_B8G8R8_SNORM :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31
+
+pattern VK_FORMAT_B8G8R8_USCALED :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32
+
+pattern VK_FORMAT_B8G8R8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33
+
+pattern VK_FORMAT_B8G8R8_UINT :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34
+
+pattern VK_FORMAT_B8G8R8_SINT :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35
+
+pattern VK_FORMAT_B8G8R8_SRGB :: VkFormat
+
+pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36
+
+pattern VK_FORMAT_R8G8B8A8_UNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37
+
+pattern VK_FORMAT_R8G8B8A8_SNORM :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38
+
+pattern VK_FORMAT_R8G8B8A8_USCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39
+
+pattern VK_FORMAT_R8G8B8A8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40
+
+pattern VK_FORMAT_R8G8B8A8_UINT :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41
+
+pattern VK_FORMAT_R8G8B8A8_SINT :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42
+
+pattern VK_FORMAT_R8G8B8A8_SRGB :: VkFormat
+
+pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43
+
+pattern VK_FORMAT_B8G8R8A8_UNORM :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44
+
+pattern VK_FORMAT_B8G8R8A8_SNORM :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45
+
+pattern VK_FORMAT_B8G8R8A8_USCALED :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46
+
+pattern VK_FORMAT_B8G8R8A8_SSCALED :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47
+
+pattern VK_FORMAT_B8G8R8A8_UINT :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48
+
+pattern VK_FORMAT_B8G8R8A8_SINT :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49
+
+pattern VK_FORMAT_B8G8R8A8_SRGB :: VkFormat
+
+pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50
+
+pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51
+
+pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52
+
+pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53
+
+pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54
+
+pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55
+
+pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56
+
+pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57
+
+pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58
+
+pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59
+
+pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60
+
+pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61
+
+pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62
+
+pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63
+
+pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64
+
+pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65
+
+pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66
+
+pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67
+
+pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68
+
+pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69
+
+pattern VK_FORMAT_R16_UNORM :: VkFormat
+
+pattern VK_FORMAT_R16_UNORM = VkFormat 70
+
+pattern VK_FORMAT_R16_SNORM :: VkFormat
+
+pattern VK_FORMAT_R16_SNORM = VkFormat 71
+
+pattern VK_FORMAT_R16_USCALED :: VkFormat
+
+pattern VK_FORMAT_R16_USCALED = VkFormat 72
+
+pattern VK_FORMAT_R16_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R16_SSCALED = VkFormat 73
+
+pattern VK_FORMAT_R16_UINT :: VkFormat
+
+pattern VK_FORMAT_R16_UINT = VkFormat 74
+
+pattern VK_FORMAT_R16_SINT :: VkFormat
+
+pattern VK_FORMAT_R16_SINT = VkFormat 75
+
+pattern VK_FORMAT_R16_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R16_SFLOAT = VkFormat 76
+
+pattern VK_FORMAT_R16G16_UNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16_UNORM = VkFormat 77
+
+pattern VK_FORMAT_R16G16_SNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16_SNORM = VkFormat 78
+
+pattern VK_FORMAT_R16G16_USCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16_USCALED = VkFormat 79
+
+pattern VK_FORMAT_R16G16_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80
+
+pattern VK_FORMAT_R16G16_UINT :: VkFormat
+
+pattern VK_FORMAT_R16G16_UINT = VkFormat 81
+
+pattern VK_FORMAT_R16G16_SINT :: VkFormat
+
+pattern VK_FORMAT_R16G16_SINT = VkFormat 82
+
+pattern VK_FORMAT_R16G16_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83
+
+pattern VK_FORMAT_R16G16B16_UNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84
+
+pattern VK_FORMAT_R16G16B16_SNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85
+
+pattern VK_FORMAT_R16G16B16_USCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86
+
+pattern VK_FORMAT_R16G16B16_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87
+
+pattern VK_FORMAT_R16G16B16_UINT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88
+
+pattern VK_FORMAT_R16G16B16_SINT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89
+
+pattern VK_FORMAT_R16G16B16_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90
+
+pattern VK_FORMAT_R16G16B16A16_UNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91
+
+pattern VK_FORMAT_R16G16B16A16_SNORM :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92
+
+pattern VK_FORMAT_R16G16B16A16_USCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93
+
+pattern VK_FORMAT_R16G16B16A16_SSCALED :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94
+
+pattern VK_FORMAT_R16G16B16A16_UINT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95
+
+pattern VK_FORMAT_R16G16B16A16_SINT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96
+
+pattern VK_FORMAT_R16G16B16A16_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97
+
+pattern VK_FORMAT_R32_UINT :: VkFormat
+
+pattern VK_FORMAT_R32_UINT = VkFormat 98
+
+pattern VK_FORMAT_R32_SINT :: VkFormat
+
+pattern VK_FORMAT_R32_SINT = VkFormat 99
+
+pattern VK_FORMAT_R32_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R32_SFLOAT = VkFormat 100
+
+pattern VK_FORMAT_R32G32_UINT :: VkFormat
+
+pattern VK_FORMAT_R32G32_UINT = VkFormat 101
+
+pattern VK_FORMAT_R32G32_SINT :: VkFormat
+
+pattern VK_FORMAT_R32G32_SINT = VkFormat 102
+
+pattern VK_FORMAT_R32G32_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103
+
+pattern VK_FORMAT_R32G32B32_UINT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104
+
+pattern VK_FORMAT_R32G32B32_SINT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105
+
+pattern VK_FORMAT_R32G32B32_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106
+
+pattern VK_FORMAT_R32G32B32A32_UINT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107
+
+pattern VK_FORMAT_R32G32B32A32_SINT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108
+
+pattern VK_FORMAT_R32G32B32A32_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109
+
+pattern VK_FORMAT_R64_UINT :: VkFormat
+
+pattern VK_FORMAT_R64_UINT = VkFormat 110
+
+pattern VK_FORMAT_R64_SINT :: VkFormat
+
+pattern VK_FORMAT_R64_SINT = VkFormat 111
+
+pattern VK_FORMAT_R64_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R64_SFLOAT = VkFormat 112
+
+pattern VK_FORMAT_R64G64_UINT :: VkFormat
+
+pattern VK_FORMAT_R64G64_UINT = VkFormat 113
+
+pattern VK_FORMAT_R64G64_SINT :: VkFormat
+
+pattern VK_FORMAT_R64G64_SINT = VkFormat 114
+
+pattern VK_FORMAT_R64G64_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115
+
+pattern VK_FORMAT_R64G64B64_UINT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116
+
+pattern VK_FORMAT_R64G64B64_SINT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117
+
+pattern VK_FORMAT_R64G64B64_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118
+
+pattern VK_FORMAT_R64G64B64A64_UINT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119
+
+pattern VK_FORMAT_R64G64B64A64_SINT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120
+
+pattern VK_FORMAT_R64G64B64A64_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121
+
+pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122
+
+pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 :: VkFormat
+
+pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123
+
+pattern VK_FORMAT_D16_UNORM :: VkFormat
+
+pattern VK_FORMAT_D16_UNORM = VkFormat 124
+
+pattern VK_FORMAT_X8_D24_UNORM_PACK32 :: VkFormat
+
+pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125
+
+pattern VK_FORMAT_D32_SFLOAT :: VkFormat
+
+pattern VK_FORMAT_D32_SFLOAT = VkFormat 126
+
+pattern VK_FORMAT_S8_UINT :: VkFormat
+
+pattern VK_FORMAT_S8_UINT = VkFormat 127
+
+pattern VK_FORMAT_D16_UNORM_S8_UINT :: VkFormat
+
+pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128
+
+pattern VK_FORMAT_D24_UNORM_S8_UINT :: VkFormat
+
+pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129
+
+pattern VK_FORMAT_D32_SFLOAT_S8_UINT :: VkFormat
+
+pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130
+
+pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131
+
+pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132
+
+pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133
+
+pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134
+
+pattern VK_FORMAT_BC2_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135
+
+pattern VK_FORMAT_BC2_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136
+
+pattern VK_FORMAT_BC3_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137
+
+pattern VK_FORMAT_BC3_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138
+
+pattern VK_FORMAT_BC4_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139
+
+pattern VK_FORMAT_BC4_SNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140
+
+pattern VK_FORMAT_BC5_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141
+
+pattern VK_FORMAT_BC5_SNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142
+
+pattern VK_FORMAT_BC6H_UFLOAT_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143
+
+pattern VK_FORMAT_BC6H_SFLOAT_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144
+
+pattern VK_FORMAT_BC7_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145
+
+pattern VK_FORMAT_BC7_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146
+
+pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147
+
+pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148
+
+pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149
+
+pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150
+
+pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151
+
+pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152
+
+pattern VK_FORMAT_EAC_R11_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153
+
+pattern VK_FORMAT_EAC_R11_SNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154
+
+pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155
+
+pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156
+
+pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157
+
+pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158
+
+pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159
+
+pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160
+
+pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161
+
+pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162
+
+pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163
+
+pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164
+
+pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165
+
+pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166
+
+pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167
+
+pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168
+
+pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169
+
+pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170
+
+pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171
+
+pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172
+
+pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173
+
+pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174
+
+pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175
+
+pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176
+
+pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177
+
+pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178
+
+pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179
+
+pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180
+
+pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181
+
+pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182
+
+pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183
+
+pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK :: VkFormat
+
+pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184
+
+newtype VkFormatFeatureBitmask (a ::
+                                  FlagType) = VkFormatFeatureBitmask VkFlags
+                                                deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkFormatFeatureFlags = VkFormatFeatureBitmask FlagMask
+
+type VkFormatFeatureFlagBits = VkFormatFeatureBitmask FlagBit
+
+pattern VkFormatFeatureFlagBits ::
+        VkFlags -> VkFormatFeatureBitmask FlagBit
+
+pattern VkFormatFeatureFlagBits n = VkFormatFeatureBitmask n
+
+pattern VkFormatFeatureFlags ::
+        VkFlags -> VkFormatFeatureBitmask FlagMask
+
+pattern VkFormatFeatureFlags n = VkFormatFeatureBitmask n
+
+deriving instance Bits (VkFormatFeatureBitmask FlagMask)
+
+deriving instance FiniteBits (VkFormatFeatureBitmask FlagMask)
+
+deriving instance Integral (VkFormatFeatureBitmask FlagMask)
+
+deriving instance Num (VkFormatFeatureBitmask FlagMask)
+
+deriving instance Bounded (VkFormatFeatureBitmask FlagMask)
+
+deriving instance Enum (VkFormatFeatureBitmask FlagMask)
+
+deriving instance Real (VkFormatFeatureBitmask FlagMask)
+
+instance Show (VkFormatFeatureBitmask a) where
+        showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
+          = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
+          = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
+          = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
+          = showString "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
+          = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
+          = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
+          = showString "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
+          = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
+          = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
+          = showString "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_BLIT_SRC_BIT
+          = showString "VK_FORMAT_FEATURE_BLIT_SRC_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_BLIT_DST_BIT
+          = showString "VK_FORMAT_FEATURE_BLIT_DST_BIT"
+        showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
+          = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"
+        showsPrec p (VkFormatFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkFormatFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkFormatFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT",
+                   pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT),
+                  ("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT",
+                   pure VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT),
+                  ("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT",
+                   pure VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT),
+                  ("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT",
+                   pure VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT),
+                  ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT",
+                   pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT),
+                  ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT",
+                   pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT),
+                  ("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT",
+                   pure VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT),
+                  ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT",
+                   pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT),
+                  ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT",
+                   pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT),
+                  ("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT",
+                   pure VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT),
+                  ("VK_FORMAT_FEATURE_BLIT_SRC_BIT",
+                   pure VK_FORMAT_FEATURE_BLIT_SRC_BIT),
+                  ("VK_FORMAT_FEATURE_BLIT_DST_BIT",
+                   pure VK_FORMAT_FEATURE_BLIT_DST_BIT),
+                  ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT",
+                   pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFormatFeatureBitmask") >>
+                      (VkFormatFeatureBitmask <$> step readPrec)))
+
+-- | Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
+--
+--   bitpos = @0@
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT =
+        VkFormatFeatureBitmask 1
+
+-- | Format can be used for storage images (STORAGE_IMAGE descriptor type)
+--
+--   bitpos = @1@
+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT =
+        VkFormatFeatureBitmask 2
+
+-- | Format supports atomic operations in case it is used for storage images
+--
+--   bitpos = @2@
+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT =
+        VkFormatFeatureBitmask 4
+
+-- | Format can be used for uniform texel buffers (TBOs)
+--
+--   bitpos = @3@
+pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT =
+        VkFormatFeatureBitmask 8
+
+-- | Format can be used for storage texel buffers (IBOs)
+--
+--   bitpos = @4@
+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT =
+        VkFormatFeatureBitmask 16
+
+-- | Format supports atomic operations in case it is used for storage texel buffers
+--
+--   bitpos = @5@
+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT =
+        VkFormatFeatureBitmask 32
+
+-- | Format can be used for vertex buffers (VBOs)
+--
+--   bitpos = @6@
+pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT =
+        VkFormatFeatureBitmask 64
+
+-- | Format can be used for color attachment images
+--
+--   bitpos = @7@
+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT =
+        VkFormatFeatureBitmask 128
+
+-- | Format supports blending in case it is used for color attachment images
+--
+--   bitpos = @8@
+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT =
+        VkFormatFeatureBitmask 256
+
+-- | Format can be used for depth/stencil attachment images
+--
+--   bitpos = @9@
+pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT =
+        VkFormatFeatureBitmask 512
+
+-- | Format can be used as the source image of blits with vkCmdBlitImage
+--
+--   bitpos = @10@
+pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT :: VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT =
+        VkFormatFeatureBitmask 1024
+
+-- | Format can be used as the destination image of blits with vkCmdBlitImage
+--
+--   bitpos = @11@
+pattern VK_FORMAT_FEATURE_BLIT_DST_BIT :: VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_BLIT_DST_BIT =
+        VkFormatFeatureBitmask 2048
+
+-- | Format can be filtered with VK_FILTER_LINEAR when being sampled
+--
+--   bitpos = @12@
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT ::
+        VkFormatFeatureBitmask a
+
+pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT =
+        VkFormatFeatureBitmask 4096
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/FramebufferCreateFlagBits.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.FramebufferCreateFlagBits
+       (VkFramebufferCreateFlagBits(..)) where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+
+newtype VkFramebufferCreateFlagBits = VkFramebufferCreateFlagBits VkFlags
+                                        deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                  FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkFramebufferCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkFramebufferCreateFlagBits x) = show x
+
+instance Read VkFramebufferCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs b/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/FrontFace.hs
@@ -0,0 +1,52 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.FrontFace
+       (VkFrontFace(VkFrontFace, VK_FRONT_FACE_COUNTER_CLOCKWISE,
+                    VK_FRONT_FACE_CLOCKWISE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFrontFace VkFrontFace registry at www.khronos.org>
+newtype VkFrontFace = VkFrontFace Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkFrontFace where
+        showsPrec _ VK_FRONT_FACE_COUNTER_CLOCKWISE
+          = showString "VK_FRONT_FACE_COUNTER_CLOCKWISE"
+        showsPrec _ VK_FRONT_FACE_CLOCKWISE
+          = showString "VK_FRONT_FACE_CLOCKWISE"
+        showsPrec p (VkFrontFace x)
+          = showParen (p >= 11) (showString "VkFrontFace " . showsPrec 11 x)
+
+instance Read VkFrontFace where
+        readPrec
+          = parens
+              (choose
+                 [("VK_FRONT_FACE_COUNTER_CLOCKWISE",
+                   pure VK_FRONT_FACE_COUNTER_CLOCKWISE),
+                  ("VK_FRONT_FACE_CLOCKWISE", pure VK_FRONT_FACE_CLOCKWISE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkFrontFace") >> (VkFrontFace <$> step readPrec)))
+
+pattern VK_FRONT_FACE_COUNTER_CLOCKWISE :: VkFrontFace
+
+pattern VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace 0
+
+pattern VK_FRONT_FACE_CLOCKWISE :: VkFrontFace
+
+pattern VK_FRONT_FACE_CLOCKWISE = VkFrontFace 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Image.hs b/src-gen/Graphics/Vulkan/Types/Enum/Image.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Image.hs
@@ -0,0 +1,630 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Image
+       (VkImageAspectBitmask(VkImageAspectBitmask, VkImageAspectFlags,
+                             VkImageAspectFlagBits, VK_IMAGE_ASPECT_COLOR_BIT,
+                             VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_ASPECT_STENCIL_BIT,
+                             VK_IMAGE_ASPECT_METADATA_BIT),
+        VkImageAspectFlags, VkImageAspectFlagBits,
+        VkImageCreateBitmask(VkImageCreateBitmask, VkImageCreateFlags,
+                             VkImageCreateFlagBits, VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
+                             VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
+                             VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
+                             VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
+                             VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT),
+        VkImageCreateFlags, VkImageCreateFlagBits,
+        VkImageLayout(VkImageLayout, VK_IMAGE_LAYOUT_UNDEFINED,
+                      VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+                      VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
+                      VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
+                      VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+                      VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+                      VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
+                      VK_IMAGE_LAYOUT_PREINITIALIZED),
+        VkImageTiling(VkImageTiling, VK_IMAGE_TILING_OPTIMAL,
+                      VK_IMAGE_TILING_LINEAR),
+        VkImageType(VkImageType, VK_IMAGE_TYPE_1D, VK_IMAGE_TYPE_2D,
+                    VK_IMAGE_TYPE_3D),
+        VkImageUsageBitmask(VkImageUsageBitmask, VkImageUsageFlags,
+                            VkImageUsageFlagBits, VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
+                            VK_IMAGE_USAGE_TRANSFER_DST_BIT, VK_IMAGE_USAGE_SAMPLED_BIT,
+                            VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
+                            VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
+                            VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
+                            VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT),
+        VkImageUsageFlags, VkImageUsageFlagBits,
+        VkImageViewType(VkImageViewType, VK_IMAGE_VIEW_TYPE_1D,
+                        VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_VIEW_TYPE_3D,
+                        VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY,
+                        VK_IMAGE_VIEW_TYPE_2D_ARRAY, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkImageAspectBitmask (a ::
+                                FlagType) = VkImageAspectBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkImageAspectFlags = VkImageAspectBitmask FlagMask
+
+type VkImageAspectFlagBits = VkImageAspectBitmask FlagBit
+
+pattern VkImageAspectFlagBits ::
+        VkFlags -> VkImageAspectBitmask FlagBit
+
+pattern VkImageAspectFlagBits n = VkImageAspectBitmask n
+
+pattern VkImageAspectFlags ::
+        VkFlags -> VkImageAspectBitmask FlagMask
+
+pattern VkImageAspectFlags n = VkImageAspectBitmask n
+
+deriving instance Bits (VkImageAspectBitmask FlagMask)
+
+deriving instance FiniteBits (VkImageAspectBitmask FlagMask)
+
+deriving instance Integral (VkImageAspectBitmask FlagMask)
+
+deriving instance Num (VkImageAspectBitmask FlagMask)
+
+deriving instance Bounded (VkImageAspectBitmask FlagMask)
+
+deriving instance Enum (VkImageAspectBitmask FlagMask)
+
+deriving instance Real (VkImageAspectBitmask FlagMask)
+
+instance Show (VkImageAspectBitmask a) where
+        showsPrec _ VK_IMAGE_ASPECT_COLOR_BIT
+          = showString "VK_IMAGE_ASPECT_COLOR_BIT"
+        showsPrec _ VK_IMAGE_ASPECT_DEPTH_BIT
+          = showString "VK_IMAGE_ASPECT_DEPTH_BIT"
+        showsPrec _ VK_IMAGE_ASPECT_STENCIL_BIT
+          = showString "VK_IMAGE_ASPECT_STENCIL_BIT"
+        showsPrec _ VK_IMAGE_ASPECT_METADATA_BIT
+          = showString "VK_IMAGE_ASPECT_METADATA_BIT"
+        showsPrec p (VkImageAspectBitmask x)
+          = showParen (p >= 11)
+              (showString "VkImageAspectBitmask " . showsPrec 11 x)
+
+instance Read (VkImageAspectBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_ASPECT_COLOR_BIT", pure VK_IMAGE_ASPECT_COLOR_BIT),
+                  ("VK_IMAGE_ASPECT_DEPTH_BIT", pure VK_IMAGE_ASPECT_DEPTH_BIT),
+                  ("VK_IMAGE_ASPECT_STENCIL_BIT", pure VK_IMAGE_ASPECT_STENCIL_BIT),
+                  ("VK_IMAGE_ASPECT_METADATA_BIT",
+                   pure VK_IMAGE_ASPECT_METADATA_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageAspectBitmask") >>
+                      (VkImageAspectBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_IMAGE_ASPECT_COLOR_BIT :: VkImageAspectBitmask a
+
+pattern VK_IMAGE_ASPECT_COLOR_BIT = VkImageAspectBitmask 1
+
+-- | bitpos = @1@
+pattern VK_IMAGE_ASPECT_DEPTH_BIT :: VkImageAspectBitmask a
+
+pattern VK_IMAGE_ASPECT_DEPTH_BIT = VkImageAspectBitmask 2
+
+-- | bitpos = @2@
+pattern VK_IMAGE_ASPECT_STENCIL_BIT :: VkImageAspectBitmask a
+
+pattern VK_IMAGE_ASPECT_STENCIL_BIT = VkImageAspectBitmask 4
+
+-- | bitpos = @3@
+pattern VK_IMAGE_ASPECT_METADATA_BIT :: VkImageAspectBitmask a
+
+pattern VK_IMAGE_ASPECT_METADATA_BIT = VkImageAspectBitmask 8
+
+newtype VkImageCreateBitmask (a ::
+                                FlagType) = VkImageCreateBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkImageCreateFlags = VkImageCreateBitmask FlagMask
+
+type VkImageCreateFlagBits = VkImageCreateBitmask FlagBit
+
+pattern VkImageCreateFlagBits ::
+        VkFlags -> VkImageCreateBitmask FlagBit
+
+pattern VkImageCreateFlagBits n = VkImageCreateBitmask n
+
+pattern VkImageCreateFlags ::
+        VkFlags -> VkImageCreateBitmask FlagMask
+
+pattern VkImageCreateFlags n = VkImageCreateBitmask n
+
+deriving instance Bits (VkImageCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkImageCreateBitmask FlagMask)
+
+deriving instance Integral (VkImageCreateBitmask FlagMask)
+
+deriving instance Num (VkImageCreateBitmask FlagMask)
+
+deriving instance Bounded (VkImageCreateBitmask FlagMask)
+
+deriving instance Enum (VkImageCreateBitmask FlagMask)
+
+deriving instance Real (VkImageCreateBitmask FlagMask)
+
+instance Show (VkImageCreateBitmask a) where
+        showsPrec _ VK_IMAGE_CREATE_SPARSE_BINDING_BIT
+          = showString "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"
+        showsPrec _ VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
+          = showString "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"
+        showsPrec _ VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
+          = showString "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"
+        showsPrec _ VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
+          = showString "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"
+        showsPrec _ VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
+          = showString "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"
+        showsPrec p (VkImageCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkImageCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkImageCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_CREATE_SPARSE_BINDING_BIT",
+                   pure VK_IMAGE_CREATE_SPARSE_BINDING_BIT),
+                  ("VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT",
+                   pure VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT),
+                  ("VK_IMAGE_CREATE_SPARSE_ALIASED_BIT",
+                   pure VK_IMAGE_CREATE_SPARSE_ALIASED_BIT),
+                  ("VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT",
+                   pure VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT),
+                  ("VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT",
+                   pure VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageCreateBitmask") >>
+                      (VkImageCreateBitmask <$> step readPrec)))
+
+-- | Image should support sparse backing
+--
+--   bitpos = @0@
+pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT ::
+        VkImageCreateBitmask a
+
+pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT = VkImageCreateBitmask 1
+
+-- | Image should support sparse backing with partial residency
+--
+--   bitpos = @1@
+pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT ::
+        VkImageCreateBitmask a
+
+pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT =
+        VkImageCreateBitmask 2
+
+-- | Image should support constent data access to physical memory ranges mapped into multiple locations of sparse images
+--
+--   bitpos = @2@
+pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT ::
+        VkImageCreateBitmask a
+
+pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = VkImageCreateBitmask 4
+
+-- | Allows image views to have different format than the base image
+--
+--   bitpos = @3@
+pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT ::
+        VkImageCreateBitmask a
+
+pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = VkImageCreateBitmask 8
+
+-- | Allows creating image views with cube type from the created image
+--
+--   bitpos = @4@
+pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT ::
+        VkImageCreateBitmask a
+
+pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT =
+        VkImageCreateBitmask 16
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageLayout VkImageLayout registry at www.khronos.org>
+newtype VkImageLayout = VkImageLayout Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkImageLayout where
+        showsPrec _ VK_IMAGE_LAYOUT_UNDEFINED
+          = showString "VK_IMAGE_LAYOUT_UNDEFINED"
+        showsPrec _ VK_IMAGE_LAYOUT_GENERAL
+          = showString "VK_IMAGE_LAYOUT_GENERAL"
+        showsPrec _ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
+          = showString "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"
+        showsPrec _ VK_IMAGE_LAYOUT_PREINITIALIZED
+          = showString "VK_IMAGE_LAYOUT_PREINITIALIZED"
+        showsPrec p (VkImageLayout x)
+          = showParen (p >= 11)
+              (showString "VkImageLayout " . showsPrec 11 x)
+
+instance Read VkImageLayout where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_LAYOUT_UNDEFINED", pure VK_IMAGE_LAYOUT_UNDEFINED),
+                  ("VK_IMAGE_LAYOUT_GENERAL", pure VK_IMAGE_LAYOUT_GENERAL),
+                  ("VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL",
+                   pure VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL),
+                  ("VK_IMAGE_LAYOUT_PREINITIALIZED",
+                   pure VK_IMAGE_LAYOUT_PREINITIALIZED)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageLayout") >>
+                      (VkImageLayout <$> step readPrec)))
+
+-- | Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
+pattern VK_IMAGE_LAYOUT_UNDEFINED :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_UNDEFINED = VkImageLayout 0
+
+-- | General layout when image can be used for any kind of access
+pattern VK_IMAGE_LAYOUT_GENERAL :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_GENERAL = VkImageLayout 1
+
+-- | Optimal layout when image is only used for color attachment read/write
+pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = VkImageLayout 2
+
+-- | Optimal layout when image is only used for depth/stencil attachment read/write
+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL ::
+        VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL =
+        VkImageLayout 3
+
+-- | Optimal layout when image is used for read only depth/stencil attachment and shader access
+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL ::
+        VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL =
+        VkImageLayout 4
+
+-- | Optimal layout when image is used for read only shader access
+pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = VkImageLayout 5
+
+-- | Optimal layout when image is used only as source of transfer operations
+pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = VkImageLayout 6
+
+-- | Optimal layout when image is used only as destination of transfer operations
+pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = VkImageLayout 7
+
+-- | Initial layout used when the data is populated by the CPU
+pattern VK_IMAGE_LAYOUT_PREINITIALIZED :: VkImageLayout
+
+pattern VK_IMAGE_LAYOUT_PREINITIALIZED = VkImageLayout 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageTiling VkImageTiling registry at www.khronos.org>
+newtype VkImageTiling = VkImageTiling Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkImageTiling where
+        showsPrec _ VK_IMAGE_TILING_OPTIMAL
+          = showString "VK_IMAGE_TILING_OPTIMAL"
+        showsPrec _ VK_IMAGE_TILING_LINEAR
+          = showString "VK_IMAGE_TILING_LINEAR"
+        showsPrec p (VkImageTiling x)
+          = showParen (p >= 11)
+              (showString "VkImageTiling " . showsPrec 11 x)
+
+instance Read VkImageTiling where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_TILING_OPTIMAL", pure VK_IMAGE_TILING_OPTIMAL),
+                  ("VK_IMAGE_TILING_LINEAR", pure VK_IMAGE_TILING_LINEAR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageTiling") >>
+                      (VkImageTiling <$> step readPrec)))
+
+pattern VK_IMAGE_TILING_OPTIMAL :: VkImageTiling
+
+pattern VK_IMAGE_TILING_OPTIMAL = VkImageTiling 0
+
+pattern VK_IMAGE_TILING_LINEAR :: VkImageTiling
+
+pattern VK_IMAGE_TILING_LINEAR = VkImageTiling 1
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageType VkImageType registry at www.khronos.org>
+newtype VkImageType = VkImageType Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkImageType where
+        showsPrec _ VK_IMAGE_TYPE_1D = showString "VK_IMAGE_TYPE_1D"
+        showsPrec _ VK_IMAGE_TYPE_2D = showString "VK_IMAGE_TYPE_2D"
+        showsPrec _ VK_IMAGE_TYPE_3D = showString "VK_IMAGE_TYPE_3D"
+        showsPrec p (VkImageType x)
+          = showParen (p >= 11) (showString "VkImageType " . showsPrec 11 x)
+
+instance Read VkImageType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_TYPE_1D", pure VK_IMAGE_TYPE_1D),
+                  ("VK_IMAGE_TYPE_2D", pure VK_IMAGE_TYPE_2D),
+                  ("VK_IMAGE_TYPE_3D", pure VK_IMAGE_TYPE_3D)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageType") >> (VkImageType <$> step readPrec)))
+
+pattern VK_IMAGE_TYPE_1D :: VkImageType
+
+pattern VK_IMAGE_TYPE_1D = VkImageType 0
+
+pattern VK_IMAGE_TYPE_2D :: VkImageType
+
+pattern VK_IMAGE_TYPE_2D = VkImageType 1
+
+pattern VK_IMAGE_TYPE_3D :: VkImageType
+
+pattern VK_IMAGE_TYPE_3D = VkImageType 2
+
+newtype VkImageUsageBitmask (a ::
+                               FlagType) = VkImageUsageBitmask VkFlags
+                                             deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkImageUsageFlags = VkImageUsageBitmask FlagMask
+
+type VkImageUsageFlagBits = VkImageUsageBitmask FlagBit
+
+pattern VkImageUsageFlagBits ::
+        VkFlags -> VkImageUsageBitmask FlagBit
+
+pattern VkImageUsageFlagBits n = VkImageUsageBitmask n
+
+pattern VkImageUsageFlags ::
+        VkFlags -> VkImageUsageBitmask FlagMask
+
+pattern VkImageUsageFlags n = VkImageUsageBitmask n
+
+deriving instance Bits (VkImageUsageBitmask FlagMask)
+
+deriving instance FiniteBits (VkImageUsageBitmask FlagMask)
+
+deriving instance Integral (VkImageUsageBitmask FlagMask)
+
+deriving instance Num (VkImageUsageBitmask FlagMask)
+
+deriving instance Bounded (VkImageUsageBitmask FlagMask)
+
+deriving instance Enum (VkImageUsageBitmask FlagMask)
+
+deriving instance Real (VkImageUsageBitmask FlagMask)
+
+instance Show (VkImageUsageBitmask a) where
+        showsPrec _ VK_IMAGE_USAGE_TRANSFER_SRC_BIT
+          = showString "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"
+        showsPrec _ VK_IMAGE_USAGE_TRANSFER_DST_BIT
+          = showString "VK_IMAGE_USAGE_TRANSFER_DST_BIT"
+        showsPrec _ VK_IMAGE_USAGE_SAMPLED_BIT
+          = showString "VK_IMAGE_USAGE_SAMPLED_BIT"
+        showsPrec _ VK_IMAGE_USAGE_STORAGE_BIT
+          = showString "VK_IMAGE_USAGE_STORAGE_BIT"
+        showsPrec _ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
+          = showString "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"
+        showsPrec _ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
+          = showString "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"
+        showsPrec _ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
+          = showString "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"
+        showsPrec _ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
+          = showString "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"
+        showsPrec p (VkImageUsageBitmask x)
+          = showParen (p >= 11)
+              (showString "VkImageUsageBitmask " . showsPrec 11 x)
+
+instance Read (VkImageUsageBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_USAGE_TRANSFER_SRC_BIT",
+                   pure VK_IMAGE_USAGE_TRANSFER_SRC_BIT),
+                  ("VK_IMAGE_USAGE_TRANSFER_DST_BIT",
+                   pure VK_IMAGE_USAGE_TRANSFER_DST_BIT),
+                  ("VK_IMAGE_USAGE_SAMPLED_BIT", pure VK_IMAGE_USAGE_SAMPLED_BIT),
+                  ("VK_IMAGE_USAGE_STORAGE_BIT", pure VK_IMAGE_USAGE_STORAGE_BIT),
+                  ("VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT",
+                   pure VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT),
+                  ("VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT",
+                   pure VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT),
+                  ("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT",
+                   pure VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT),
+                  ("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT",
+                   pure VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageUsageBitmask") >>
+                      (VkImageUsageBitmask <$> step readPrec)))
+
+-- | Can be used as a source of transfer operations
+--
+--   bitpos = @0@
+pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT :: VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT = VkImageUsageBitmask 1
+
+-- | Can be used as a destination of transfer operations
+--
+--   bitpos = @1@
+pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT :: VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT = VkImageUsageBitmask 2
+
+-- | Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
+--
+--   bitpos = @2@
+pattern VK_IMAGE_USAGE_SAMPLED_BIT :: VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_SAMPLED_BIT = VkImageUsageBitmask 4
+
+-- | Can be used as storage image (STORAGE_IMAGE descriptor type)
+--
+--   bitpos = @3@
+pattern VK_IMAGE_USAGE_STORAGE_BIT :: VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_STORAGE_BIT = VkImageUsageBitmask 8
+
+-- | Can be used as framebuffer color attachment
+--
+--   bitpos = @4@
+pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT ::
+        VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT =
+        VkImageUsageBitmask 16
+
+-- | Can be used as framebuffer depth/stencil attachment
+--
+--   bitpos = @5@
+pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT ::
+        VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT =
+        VkImageUsageBitmask 32
+
+-- | Image data not needed outside of rendering
+--
+--   bitpos = @6@
+pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT ::
+        VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT =
+        VkImageUsageBitmask 64
+
+-- | Can be used as framebuffer input attachment
+--
+--   bitpos = @7@
+pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT ::
+        VkImageUsageBitmask a
+
+pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT =
+        VkImageUsageBitmask 128
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewType VkImageViewType registry at www.khronos.org>
+newtype VkImageViewType = VkImageViewType Int32
+                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkImageViewType where
+        showsPrec _ VK_IMAGE_VIEW_TYPE_1D
+          = showString "VK_IMAGE_VIEW_TYPE_1D"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_2D
+          = showString "VK_IMAGE_VIEW_TYPE_2D"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_3D
+          = showString "VK_IMAGE_VIEW_TYPE_3D"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE
+          = showString "VK_IMAGE_VIEW_TYPE_CUBE"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_1D_ARRAY
+          = showString "VK_IMAGE_VIEW_TYPE_1D_ARRAY"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_2D_ARRAY
+          = showString "VK_IMAGE_VIEW_TYPE_2D_ARRAY"
+        showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
+          = showString "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"
+        showsPrec p (VkImageViewType x)
+          = showParen (p >= 11)
+              (showString "VkImageViewType " . showsPrec 11 x)
+
+instance Read VkImageViewType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_IMAGE_VIEW_TYPE_1D", pure VK_IMAGE_VIEW_TYPE_1D),
+                  ("VK_IMAGE_VIEW_TYPE_2D", pure VK_IMAGE_VIEW_TYPE_2D),
+                  ("VK_IMAGE_VIEW_TYPE_3D", pure VK_IMAGE_VIEW_TYPE_3D),
+                  ("VK_IMAGE_VIEW_TYPE_CUBE", pure VK_IMAGE_VIEW_TYPE_CUBE),
+                  ("VK_IMAGE_VIEW_TYPE_1D_ARRAY", pure VK_IMAGE_VIEW_TYPE_1D_ARRAY),
+                  ("VK_IMAGE_VIEW_TYPE_2D_ARRAY", pure VK_IMAGE_VIEW_TYPE_2D_ARRAY),
+                  ("VK_IMAGE_VIEW_TYPE_CUBE_ARRAY",
+                   pure VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkImageViewType") >>
+                      (VkImageViewType <$> step readPrec)))
+
+pattern VK_IMAGE_VIEW_TYPE_1D :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_1D = VkImageViewType 0
+
+pattern VK_IMAGE_VIEW_TYPE_2D :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_2D = VkImageViewType 1
+
+pattern VK_IMAGE_VIEW_TYPE_3D :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_3D = VkImageViewType 2
+
+pattern VK_IMAGE_VIEW_TYPE_CUBE :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_CUBE = VkImageViewType 3
+
+pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY = VkImageViewType 4
+
+pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY = VkImageViewType 5
+
+pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY :: VkImageViewType
+
+pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType 6
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs b/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/IndexType.hs
@@ -0,0 +1,51 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.IndexType
+       (VkIndexType(VkIndexType, VK_INDEX_TYPE_UINT16,
+                    VK_INDEX_TYPE_UINT32))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndexType VkIndexType registry at www.khronos.org>
+newtype VkIndexType = VkIndexType Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkIndexType where
+        showsPrec _ VK_INDEX_TYPE_UINT16
+          = showString "VK_INDEX_TYPE_UINT16"
+        showsPrec _ VK_INDEX_TYPE_UINT32
+          = showString "VK_INDEX_TYPE_UINT32"
+        showsPrec p (VkIndexType x)
+          = showParen (p >= 11) (showString "VkIndexType " . showsPrec 11 x)
+
+instance Read VkIndexType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_INDEX_TYPE_UINT16", pure VK_INDEX_TYPE_UINT16),
+                  ("VK_INDEX_TYPE_UINT32", pure VK_INDEX_TYPE_UINT32)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkIndexType") >> (VkIndexType <$> step readPrec)))
+
+pattern VK_INDEX_TYPE_UINT16 :: VkIndexType
+
+pattern VK_INDEX_TYPE_UINT16 = VkIndexType 0
+
+pattern VK_INDEX_TYPE_UINT32 :: VkIndexType
+
+pattern VK_INDEX_TYPE_UINT32 = VkIndexType 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs b/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/IndirectCommands.hs
@@ -0,0 +1,255 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.IndirectCommands
+       (VkIndirectCommandsLayoutUsageBitmaskNVX(VkIndirectCommandsLayoutUsageBitmaskNVX,
+                                                VkIndirectCommandsLayoutUsageFlagsNVX,
+                                                VkIndirectCommandsLayoutUsageFlagBitsNVX,
+                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX,
+                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX,
+                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX,
+                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX),
+        VkIndirectCommandsLayoutUsageFlagsNVX,
+        VkIndirectCommandsLayoutUsageFlagBitsNVX,
+        VkIndirectCommandsTokenTypeNVX(VkIndirectCommandsTokenTypeNVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX,
+                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkIndirectCommandsLayoutUsageBitmaskNVX (a ::
+                                                   FlagType) = VkIndirectCommandsLayoutUsageBitmaskNVX VkFlags
+                                                                 deriving (Eq, Ord, Storable, Data,
+                                                                           Generic)
+
+type VkIndirectCommandsLayoutUsageFlagsNVX =
+     VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask
+
+type VkIndirectCommandsLayoutUsageFlagBitsNVX =
+     VkIndirectCommandsLayoutUsageBitmaskNVX FlagBit
+
+pattern VkIndirectCommandsLayoutUsageFlagBitsNVX ::
+        VkFlags -> VkIndirectCommandsLayoutUsageBitmaskNVX FlagBit
+
+pattern VkIndirectCommandsLayoutUsageFlagBitsNVX n =
+        VkIndirectCommandsLayoutUsageBitmaskNVX n
+
+pattern VkIndirectCommandsLayoutUsageFlagsNVX ::
+        VkFlags -> VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask
+
+pattern VkIndirectCommandsLayoutUsageFlagsNVX n =
+        VkIndirectCommandsLayoutUsageBitmaskNVX n
+
+deriving instance
+         Bits (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         FiniteBits (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         Integral (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         Num (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         Bounded (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         Enum (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+deriving instance
+         Real (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
+
+instance Show (VkIndirectCommandsLayoutUsageBitmaskNVX a) where
+        showsPrec _
+          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
+          = showString
+              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX"
+        showsPrec _
+          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
+          = showString
+              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX"
+        showsPrec _
+          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
+          = showString
+              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX"
+        showsPrec _
+          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
+          = showString
+              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX"
+        showsPrec p (VkIndirectCommandsLayoutUsageBitmaskNVX x)
+          = showParen (p >= 11)
+              (showString "VkIndirectCommandsLayoutUsageBitmaskNVX " .
+                 showsPrec 11 x)
+
+instance Read (VkIndirectCommandsLayoutUsageBitmaskNVX a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX",
+                   pure
+                     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX),
+                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX",
+                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX),
+                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX",
+                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX),
+                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX",
+                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkIndirectCommandsLayoutUsageBitmaskNVX") >>
+                      (VkIndirectCommandsLayoutUsageBitmaskNVX <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
+        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
+
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
+        = VkIndirectCommandsLayoutUsageBitmaskNVX 1
+
+-- | bitpos = @1@
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
+        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
+
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
+        = VkIndirectCommandsLayoutUsageBitmaskNVX 2
+
+-- | bitpos = @2@
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
+        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
+
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
+        = VkIndirectCommandsLayoutUsageBitmaskNVX 4
+
+-- | bitpos = @3@
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
+        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
+
+pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
+        = VkIndirectCommandsLayoutUsageBitmaskNVX 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsTokenTypeNVX VkIndirectCommandsTokenTypeNVX registry at www.khronos.org>
+newtype VkIndirectCommandsTokenTypeNVX = VkIndirectCommandsTokenTypeNVX Int32
+                                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                     Generic)
+
+instance Show VkIndirectCommandsTokenTypeNVX where
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX"
+        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX
+          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX"
+        showsPrec p (VkIndirectCommandsTokenTypeNVX x)
+          = showParen (p >= 11)
+              (showString "VkIndirectCommandsTokenTypeNVX " . showsPrec 11 x)
+
+instance Read VkIndirectCommandsTokenTypeNVX where
+        readPrec
+          = parens
+              (choose
+                 [("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX),
+                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX",
+                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkIndirectCommandsTokenTypeNVX") >>
+                      (VkIndirectCommandsTokenTypeNVX <$> step readPrec)))
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX =
+        VkIndirectCommandsTokenTypeNVX 0
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX =
+        VkIndirectCommandsTokenTypeNVX 1
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX =
+        VkIndirectCommandsTokenTypeNVX 2
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX =
+        VkIndirectCommandsTokenTypeNVX 3
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX =
+        VkIndirectCommandsTokenTypeNVX 4
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX =
+        VkIndirectCommandsTokenTypeNVX 5
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX =
+        VkIndirectCommandsTokenTypeNVX 6
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX ::
+        VkIndirectCommandsTokenTypeNVX
+
+pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX =
+        VkIndirectCommandsTokenTypeNVX 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/InstanceCreateFlagBits.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.InstanceCreateFlagBits
+       (VkInstanceCreateFlagBits(..)) where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+
+newtype VkInstanceCreateFlagBits = VkInstanceCreateFlagBits VkFlags
+                                     deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                               FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkInstanceCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkInstanceCreateFlagBits x) = show x
+
+instance Read VkInstanceCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs b/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/InternalAllocationType.hs
@@ -0,0 +1,49 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.InternalAllocationType
+       (VkInternalAllocationType(VkInternalAllocationType,
+                                 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkInternalAllocationType VkInternalAllocationType registry at www.khronos.org>
+newtype VkInternalAllocationType = VkInternalAllocationType Int32
+                                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkInternalAllocationType where
+        showsPrec _ VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
+          = showString "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"
+        showsPrec p (VkInternalAllocationType x)
+          = showParen (p >= 11)
+              (showString "VkInternalAllocationType " . showsPrec 11 x)
+
+instance Read VkInternalAllocationType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE",
+                   pure VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkInternalAllocationType") >>
+                      (VkInternalAllocationType <$> step readPrec)))
+
+pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE ::
+        VkInternalAllocationType
+
+pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE =
+        VkInternalAllocationType 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/LogicOp.hs
@@ -0,0 +1,144 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.LogicOp
+       (VkLogicOp(VkLogicOp, VK_LOGIC_OP_CLEAR, VK_LOGIC_OP_AND,
+                  VK_LOGIC_OP_AND_REVERSE, VK_LOGIC_OP_COPY,
+                  VK_LOGIC_OP_AND_INVERTED, VK_LOGIC_OP_NO_OP, VK_LOGIC_OP_XOR,
+                  VK_LOGIC_OP_OR, VK_LOGIC_OP_NOR, VK_LOGIC_OP_EQUIVALENT,
+                  VK_LOGIC_OP_INVERT, VK_LOGIC_OP_OR_REVERSE,
+                  VK_LOGIC_OP_COPY_INVERTED, VK_LOGIC_OP_OR_INVERTED,
+                  VK_LOGIC_OP_NAND, VK_LOGIC_OP_SET))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkLogicOp VkLogicOp registry at www.khronos.org>
+newtype VkLogicOp = VkLogicOp Int32
+                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkLogicOp where
+        showsPrec _ VK_LOGIC_OP_CLEAR = showString "VK_LOGIC_OP_CLEAR"
+        showsPrec _ VK_LOGIC_OP_AND = showString "VK_LOGIC_OP_AND"
+        showsPrec _ VK_LOGIC_OP_AND_REVERSE
+          = showString "VK_LOGIC_OP_AND_REVERSE"
+        showsPrec _ VK_LOGIC_OP_COPY = showString "VK_LOGIC_OP_COPY"
+        showsPrec _ VK_LOGIC_OP_AND_INVERTED
+          = showString "VK_LOGIC_OP_AND_INVERTED"
+        showsPrec _ VK_LOGIC_OP_NO_OP = showString "VK_LOGIC_OP_NO_OP"
+        showsPrec _ VK_LOGIC_OP_XOR = showString "VK_LOGIC_OP_XOR"
+        showsPrec _ VK_LOGIC_OP_OR = showString "VK_LOGIC_OP_OR"
+        showsPrec _ VK_LOGIC_OP_NOR = showString "VK_LOGIC_OP_NOR"
+        showsPrec _ VK_LOGIC_OP_EQUIVALENT
+          = showString "VK_LOGIC_OP_EQUIVALENT"
+        showsPrec _ VK_LOGIC_OP_INVERT = showString "VK_LOGIC_OP_INVERT"
+        showsPrec _ VK_LOGIC_OP_OR_REVERSE
+          = showString "VK_LOGIC_OP_OR_REVERSE"
+        showsPrec _ VK_LOGIC_OP_COPY_INVERTED
+          = showString "VK_LOGIC_OP_COPY_INVERTED"
+        showsPrec _ VK_LOGIC_OP_OR_INVERTED
+          = showString "VK_LOGIC_OP_OR_INVERTED"
+        showsPrec _ VK_LOGIC_OP_NAND = showString "VK_LOGIC_OP_NAND"
+        showsPrec _ VK_LOGIC_OP_SET = showString "VK_LOGIC_OP_SET"
+        showsPrec p (VkLogicOp x)
+          = showParen (p >= 11) (showString "VkLogicOp " . showsPrec 11 x)
+
+instance Read VkLogicOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_LOGIC_OP_CLEAR", pure VK_LOGIC_OP_CLEAR),
+                  ("VK_LOGIC_OP_AND", pure VK_LOGIC_OP_AND),
+                  ("VK_LOGIC_OP_AND_REVERSE", pure VK_LOGIC_OP_AND_REVERSE),
+                  ("VK_LOGIC_OP_COPY", pure VK_LOGIC_OP_COPY),
+                  ("VK_LOGIC_OP_AND_INVERTED", pure VK_LOGIC_OP_AND_INVERTED),
+                  ("VK_LOGIC_OP_NO_OP", pure VK_LOGIC_OP_NO_OP),
+                  ("VK_LOGIC_OP_XOR", pure VK_LOGIC_OP_XOR),
+                  ("VK_LOGIC_OP_OR", pure VK_LOGIC_OP_OR),
+                  ("VK_LOGIC_OP_NOR", pure VK_LOGIC_OP_NOR),
+                  ("VK_LOGIC_OP_EQUIVALENT", pure VK_LOGIC_OP_EQUIVALENT),
+                  ("VK_LOGIC_OP_INVERT", pure VK_LOGIC_OP_INVERT),
+                  ("VK_LOGIC_OP_OR_REVERSE", pure VK_LOGIC_OP_OR_REVERSE),
+                  ("VK_LOGIC_OP_COPY_INVERTED", pure VK_LOGIC_OP_COPY_INVERTED),
+                  ("VK_LOGIC_OP_OR_INVERTED", pure VK_LOGIC_OP_OR_INVERTED),
+                  ("VK_LOGIC_OP_NAND", pure VK_LOGIC_OP_NAND),
+                  ("VK_LOGIC_OP_SET", pure VK_LOGIC_OP_SET)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkLogicOp") >> (VkLogicOp <$> step readPrec)))
+
+pattern VK_LOGIC_OP_CLEAR :: VkLogicOp
+
+pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0
+
+pattern VK_LOGIC_OP_AND :: VkLogicOp
+
+pattern VK_LOGIC_OP_AND = VkLogicOp 1
+
+pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp
+
+pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2
+
+pattern VK_LOGIC_OP_COPY :: VkLogicOp
+
+pattern VK_LOGIC_OP_COPY = VkLogicOp 3
+
+pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp
+
+pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4
+
+pattern VK_LOGIC_OP_NO_OP :: VkLogicOp
+
+pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5
+
+pattern VK_LOGIC_OP_XOR :: VkLogicOp
+
+pattern VK_LOGIC_OP_XOR = VkLogicOp 6
+
+pattern VK_LOGIC_OP_OR :: VkLogicOp
+
+pattern VK_LOGIC_OP_OR = VkLogicOp 7
+
+pattern VK_LOGIC_OP_NOR :: VkLogicOp
+
+pattern VK_LOGIC_OP_NOR = VkLogicOp 8
+
+pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp
+
+pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9
+
+pattern VK_LOGIC_OP_INVERT :: VkLogicOp
+
+pattern VK_LOGIC_OP_INVERT = VkLogicOp 10
+
+pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp
+
+pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11
+
+pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp
+
+pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12
+
+pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp
+
+pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13
+
+pattern VK_LOGIC_OP_NAND :: VkLogicOp
+
+pattern VK_LOGIC_OP_NAND = VkLogicOp 14
+
+pattern VK_LOGIC_OP_SET :: VkLogicOp
+
+pattern VK_LOGIC_OP_SET = VkLogicOp 15
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs b/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Memory.hs
@@ -0,0 +1,279 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Memory
+       (VkMemoryAllocateFlagBitsKHR(..),
+        VkMemoryAllocateBitmask(VkMemoryAllocateBitmask,
+                                VkMemoryAllocateFlags, VkMemoryAllocateFlagBits,
+                                VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT),
+        VkMemoryAllocateFlags, VkMemoryAllocateFlagBits,
+        VkMemoryHeapBitmask(VkMemoryHeapBitmask, VkMemoryHeapFlags,
+                            VkMemoryHeapFlagBits, VK_MEMORY_HEAP_DEVICE_LOCAL_BIT),
+        VkMemoryHeapFlags, VkMemoryHeapFlagBits,
+        VkMemoryPropertyBitmask(VkMemoryPropertyBitmask,
+                                VkMemoryPropertyFlags, VkMemoryPropertyFlagBits,
+                                VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
+                                VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
+                                VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
+                                VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
+                                VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT),
+        VkMemoryPropertyFlags, VkMemoryPropertyFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBitsKHR VkFlags
+                                        deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                  FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkMemoryAllocateFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkMemoryAllocateFlagBitsKHR x) = show x
+
+instance Read VkMemoryAllocateFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkMemoryAllocateBitmask (a ::
+                                   FlagType) = VkMemoryAllocateBitmask VkFlags
+                                                 deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkMemoryAllocateFlags = VkMemoryAllocateBitmask FlagMask
+
+type VkMemoryAllocateFlagBits = VkMemoryAllocateBitmask FlagBit
+
+pattern VkMemoryAllocateFlagBits ::
+        VkFlags -> VkMemoryAllocateBitmask FlagBit
+
+pattern VkMemoryAllocateFlagBits n = VkMemoryAllocateBitmask n
+
+pattern VkMemoryAllocateFlags ::
+        VkFlags -> VkMemoryAllocateBitmask FlagMask
+
+pattern VkMemoryAllocateFlags n = VkMemoryAllocateBitmask n
+
+deriving instance Bits (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance FiniteBits (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance Integral (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance Num (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance Bounded (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance Enum (VkMemoryAllocateBitmask FlagMask)
+
+deriving instance Real (VkMemoryAllocateBitmask FlagMask)
+
+instance Show (VkMemoryAllocateBitmask a) where
+        showsPrec _ VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT
+          = showString "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"
+        showsPrec p (VkMemoryAllocateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkMemoryAllocateBitmask " . showsPrec 11 x)
+
+instance Read (VkMemoryAllocateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT",
+                   pure VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkMemoryAllocateBitmask") >>
+                      (VkMemoryAllocateBitmask <$> step readPrec)))
+
+-- | Force allocation on specific devices
+--
+--   bitpos = @0@
+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT ::
+        VkMemoryAllocateBitmask a
+
+pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT =
+        VkMemoryAllocateBitmask 1
+
+newtype VkMemoryHeapBitmask (a ::
+                               FlagType) = VkMemoryHeapBitmask VkFlags
+                                             deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkMemoryHeapFlags = VkMemoryHeapBitmask FlagMask
+
+type VkMemoryHeapFlagBits = VkMemoryHeapBitmask FlagBit
+
+pattern VkMemoryHeapFlagBits ::
+        VkFlags -> VkMemoryHeapBitmask FlagBit
+
+pattern VkMemoryHeapFlagBits n = VkMemoryHeapBitmask n
+
+pattern VkMemoryHeapFlags ::
+        VkFlags -> VkMemoryHeapBitmask FlagMask
+
+pattern VkMemoryHeapFlags n = VkMemoryHeapBitmask n
+
+deriving instance Bits (VkMemoryHeapBitmask FlagMask)
+
+deriving instance FiniteBits (VkMemoryHeapBitmask FlagMask)
+
+deriving instance Integral (VkMemoryHeapBitmask FlagMask)
+
+deriving instance Num (VkMemoryHeapBitmask FlagMask)
+
+deriving instance Bounded (VkMemoryHeapBitmask FlagMask)
+
+deriving instance Enum (VkMemoryHeapBitmask FlagMask)
+
+deriving instance Real (VkMemoryHeapBitmask FlagMask)
+
+instance Show (VkMemoryHeapBitmask a) where
+        showsPrec _ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
+          = showString "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"
+        showsPrec p (VkMemoryHeapBitmask x)
+          = showParen (p >= 11)
+              (showString "VkMemoryHeapBitmask " . showsPrec 11 x)
+
+instance Read (VkMemoryHeapBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_MEMORY_HEAP_DEVICE_LOCAL_BIT",
+                   pure VK_MEMORY_HEAP_DEVICE_LOCAL_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkMemoryHeapBitmask") >>
+                      (VkMemoryHeapBitmask <$> step readPrec)))
+
+-- | If set, heap represents device memory
+--
+--   bitpos = @0@
+pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT :: VkMemoryHeapBitmask a
+
+pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = VkMemoryHeapBitmask 1
+
+newtype VkMemoryPropertyBitmask (a ::
+                                   FlagType) = VkMemoryPropertyBitmask VkFlags
+                                                 deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkMemoryPropertyFlags = VkMemoryPropertyBitmask FlagMask
+
+type VkMemoryPropertyFlagBits = VkMemoryPropertyBitmask FlagBit
+
+pattern VkMemoryPropertyFlagBits ::
+        VkFlags -> VkMemoryPropertyBitmask FlagBit
+
+pattern VkMemoryPropertyFlagBits n = VkMemoryPropertyBitmask n
+
+pattern VkMemoryPropertyFlags ::
+        VkFlags -> VkMemoryPropertyBitmask FlagMask
+
+pattern VkMemoryPropertyFlags n = VkMemoryPropertyBitmask n
+
+deriving instance Bits (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance FiniteBits (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance Integral (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance Num (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance Bounded (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance Enum (VkMemoryPropertyBitmask FlagMask)
+
+deriving instance Real (VkMemoryPropertyBitmask FlagMask)
+
+instance Show (VkMemoryPropertyBitmask a) where
+        showsPrec _ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
+          = showString "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"
+        showsPrec _ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
+          = showString "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"
+        showsPrec _ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
+          = showString "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"
+        showsPrec _ VK_MEMORY_PROPERTY_HOST_CACHED_BIT
+          = showString "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"
+        showsPrec _ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
+          = showString "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"
+        showsPrec p (VkMemoryPropertyBitmask x)
+          = showParen (p >= 11)
+              (showString "VkMemoryPropertyBitmask " . showsPrec 11 x)
+
+instance Read (VkMemoryPropertyBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT",
+                   pure VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT),
+                  ("VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT",
+                   pure VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT),
+                  ("VK_MEMORY_PROPERTY_HOST_COHERENT_BIT",
+                   pure VK_MEMORY_PROPERTY_HOST_COHERENT_BIT),
+                  ("VK_MEMORY_PROPERTY_HOST_CACHED_BIT",
+                   pure VK_MEMORY_PROPERTY_HOST_CACHED_BIT),
+                  ("VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT",
+                   pure VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkMemoryPropertyBitmask") >>
+                      (VkMemoryPropertyBitmask <$> step readPrec)))
+
+-- | If otherwise stated, then allocate memory on device
+--
+--   bitpos = @0@
+pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT ::
+        VkMemoryPropertyBitmask a
+
+pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT =
+        VkMemoryPropertyBitmask 1
+
+-- | Memory is mappable by host
+--
+--   bitpos = @1@
+pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT ::
+        VkMemoryPropertyBitmask a
+
+pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT =
+        VkMemoryPropertyBitmask 2
+
+-- | Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache
+--
+--   bitpos = @2@
+pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT ::
+        VkMemoryPropertyBitmask a
+
+pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT =
+        VkMemoryPropertyBitmask 4
+
+-- | Memory will be cached by the host
+--
+--   bitpos = @3@
+pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT ::
+        VkMemoryPropertyBitmask a
+
+pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT =
+        VkMemoryPropertyBitmask 8
+
+-- | Memory may be allocated by the driver when it is required
+--
+--   bitpos = @4@
+pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT ::
+        VkMemoryPropertyBitmask a
+
+pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT =
+        VkMemoryPropertyBitmask 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Object.hs b/src-gen/Graphics/Vulkan/Types/Enum/Object.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Object.hs
@@ -0,0 +1,427 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Object
+       (VkObjectEntryTypeNVX(VkObjectEntryTypeNVX,
+                             VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
+                             VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX,
+                             VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX,
+                             VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX,
+                             VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX),
+        VkObjectEntryUsageBitmaskNVX(VkObjectEntryUsageBitmaskNVX,
+                                     VkObjectEntryUsageFlagsNVX, VkObjectEntryUsageFlagBitsNVX,
+                                     VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX,
+                                     VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX),
+        VkObjectEntryUsageFlagsNVX, VkObjectEntryUsageFlagBitsNVX,
+        VkObjectType(VkObjectType, VK_OBJECT_TYPE_UNKNOWN,
+                     VK_OBJECT_TYPE_INSTANCE, VK_OBJECT_TYPE_PHYSICAL_DEVICE,
+                     VK_OBJECT_TYPE_DEVICE, VK_OBJECT_TYPE_QUEUE,
+                     VK_OBJECT_TYPE_SEMAPHORE, VK_OBJECT_TYPE_COMMAND_BUFFER,
+                     VK_OBJECT_TYPE_FENCE, VK_OBJECT_TYPE_DEVICE_MEMORY,
+                     VK_OBJECT_TYPE_BUFFER, VK_OBJECT_TYPE_IMAGE, VK_OBJECT_TYPE_EVENT,
+                     VK_OBJECT_TYPE_QUERY_POOL, VK_OBJECT_TYPE_BUFFER_VIEW,
+                     VK_OBJECT_TYPE_IMAGE_VIEW, VK_OBJECT_TYPE_SHADER_MODULE,
+                     VK_OBJECT_TYPE_PIPELINE_CACHE, VK_OBJECT_TYPE_PIPELINE_LAYOUT,
+                     VK_OBJECT_TYPE_RENDER_PASS, VK_OBJECT_TYPE_PIPELINE,
+                     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, VK_OBJECT_TYPE_SAMPLER,
+                     VK_OBJECT_TYPE_DESCRIPTOR_POOL, VK_OBJECT_TYPE_DESCRIPTOR_SET,
+                     VK_OBJECT_TYPE_FRAMEBUFFER, VK_OBJECT_TYPE_COMMAND_POOL))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectEntryTypeNVX VkObjectEntryTypeNVX registry at www.khronos.org>
+newtype VkObjectEntryTypeNVX = VkObjectEntryTypeNVX Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkObjectEntryTypeNVX where
+        showsPrec _ VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX
+          = showString "VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX"
+        showsPrec _ VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX
+          = showString "VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX"
+        showsPrec _ VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX
+          = showString "VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX"
+        showsPrec _ VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX
+          = showString "VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX"
+        showsPrec _ VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX
+          = showString "VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX"
+        showsPrec p (VkObjectEntryTypeNVX x)
+          = showParen (p >= 11)
+              (showString "VkObjectEntryTypeNVX " . showsPrec 11 x)
+
+instance Read VkObjectEntryTypeNVX where
+        readPrec
+          = parens
+              (choose
+                 [("VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX",
+                   pure VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX),
+                  ("VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX",
+                   pure VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX),
+                  ("VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX",
+                   pure VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX),
+                  ("VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX",
+                   pure VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX),
+                  ("VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX",
+                   pure VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkObjectEntryTypeNVX") >>
+                      (VkObjectEntryTypeNVX <$> step readPrec)))
+
+pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX ::
+        VkObjectEntryTypeNVX
+
+pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX =
+        VkObjectEntryTypeNVX 0
+
+pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX :: VkObjectEntryTypeNVX
+
+pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = VkObjectEntryTypeNVX 1
+
+pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX ::
+        VkObjectEntryTypeNVX
+
+pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX =
+        VkObjectEntryTypeNVX 2
+
+pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX ::
+        VkObjectEntryTypeNVX
+
+pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX =
+        VkObjectEntryTypeNVX 3
+
+pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX ::
+        VkObjectEntryTypeNVX
+
+pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX =
+        VkObjectEntryTypeNVX 4
+
+newtype VkObjectEntryUsageBitmaskNVX (a ::
+                                        FlagType) = VkObjectEntryUsageBitmaskNVX VkFlags
+                                                      deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkObjectEntryUsageFlagsNVX =
+     VkObjectEntryUsageBitmaskNVX FlagMask
+
+type VkObjectEntryUsageFlagBitsNVX =
+     VkObjectEntryUsageBitmaskNVX FlagBit
+
+pattern VkObjectEntryUsageFlagBitsNVX ::
+        VkFlags -> VkObjectEntryUsageBitmaskNVX FlagBit
+
+pattern VkObjectEntryUsageFlagBitsNVX n =
+        VkObjectEntryUsageBitmaskNVX n
+
+pattern VkObjectEntryUsageFlagsNVX ::
+        VkFlags -> VkObjectEntryUsageBitmaskNVX FlagMask
+
+pattern VkObjectEntryUsageFlagsNVX n =
+        VkObjectEntryUsageBitmaskNVX n
+
+deriving instance Bits (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance
+         FiniteBits (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance Integral (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance Num (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance Bounded (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance Enum (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+deriving instance Real (VkObjectEntryUsageBitmaskNVX FlagMask)
+
+instance Show (VkObjectEntryUsageBitmaskNVX a) where
+        showsPrec _ VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX
+          = showString "VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX"
+        showsPrec _ VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX
+          = showString "VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX"
+        showsPrec p (VkObjectEntryUsageBitmaskNVX x)
+          = showParen (p >= 11)
+              (showString "VkObjectEntryUsageBitmaskNVX " . showsPrec 11 x)
+
+instance Read (VkObjectEntryUsageBitmaskNVX a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX",
+                   pure VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX),
+                  ("VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX",
+                   pure VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkObjectEntryUsageBitmaskNVX") >>
+                      (VkObjectEntryUsageBitmaskNVX <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX ::
+        VkObjectEntryUsageBitmaskNVX a
+
+pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX =
+        VkObjectEntryUsageBitmaskNVX 1
+
+-- | bitpos = @1@
+pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX ::
+        VkObjectEntryUsageBitmaskNVX a
+
+pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX =
+        VkObjectEntryUsageBitmaskNVX 2
+
+-- | Enums to track objects of various types
+--
+--   type = @enum@
+--
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectType VkObjectType registry at www.khronos.org>
+newtype VkObjectType = VkObjectType Int32
+                         deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkObjectType where
+        showsPrec _ VK_OBJECT_TYPE_UNKNOWN
+          = showString "VK_OBJECT_TYPE_UNKNOWN"
+        showsPrec _ VK_OBJECT_TYPE_INSTANCE
+          = showString "VK_OBJECT_TYPE_INSTANCE"
+        showsPrec _ VK_OBJECT_TYPE_PHYSICAL_DEVICE
+          = showString "VK_OBJECT_TYPE_PHYSICAL_DEVICE"
+        showsPrec _ VK_OBJECT_TYPE_DEVICE
+          = showString "VK_OBJECT_TYPE_DEVICE"
+        showsPrec _ VK_OBJECT_TYPE_QUEUE
+          = showString "VK_OBJECT_TYPE_QUEUE"
+        showsPrec _ VK_OBJECT_TYPE_SEMAPHORE
+          = showString "VK_OBJECT_TYPE_SEMAPHORE"
+        showsPrec _ VK_OBJECT_TYPE_COMMAND_BUFFER
+          = showString "VK_OBJECT_TYPE_COMMAND_BUFFER"
+        showsPrec _ VK_OBJECT_TYPE_FENCE
+          = showString "VK_OBJECT_TYPE_FENCE"
+        showsPrec _ VK_OBJECT_TYPE_DEVICE_MEMORY
+          = showString "VK_OBJECT_TYPE_DEVICE_MEMORY"
+        showsPrec _ VK_OBJECT_TYPE_BUFFER
+          = showString "VK_OBJECT_TYPE_BUFFER"
+        showsPrec _ VK_OBJECT_TYPE_IMAGE
+          = showString "VK_OBJECT_TYPE_IMAGE"
+        showsPrec _ VK_OBJECT_TYPE_EVENT
+          = showString "VK_OBJECT_TYPE_EVENT"
+        showsPrec _ VK_OBJECT_TYPE_QUERY_POOL
+          = showString "VK_OBJECT_TYPE_QUERY_POOL"
+        showsPrec _ VK_OBJECT_TYPE_BUFFER_VIEW
+          = showString "VK_OBJECT_TYPE_BUFFER_VIEW"
+        showsPrec _ VK_OBJECT_TYPE_IMAGE_VIEW
+          = showString "VK_OBJECT_TYPE_IMAGE_VIEW"
+        showsPrec _ VK_OBJECT_TYPE_SHADER_MODULE
+          = showString "VK_OBJECT_TYPE_SHADER_MODULE"
+        showsPrec _ VK_OBJECT_TYPE_PIPELINE_CACHE
+          = showString "VK_OBJECT_TYPE_PIPELINE_CACHE"
+        showsPrec _ VK_OBJECT_TYPE_PIPELINE_LAYOUT
+          = showString "VK_OBJECT_TYPE_PIPELINE_LAYOUT"
+        showsPrec _ VK_OBJECT_TYPE_RENDER_PASS
+          = showString "VK_OBJECT_TYPE_RENDER_PASS"
+        showsPrec _ VK_OBJECT_TYPE_PIPELINE
+          = showString "VK_OBJECT_TYPE_PIPELINE"
+        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT
+          = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"
+        showsPrec _ VK_OBJECT_TYPE_SAMPLER
+          = showString "VK_OBJECT_TYPE_SAMPLER"
+        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_POOL
+          = showString "VK_OBJECT_TYPE_DESCRIPTOR_POOL"
+        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET
+          = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET"
+        showsPrec _ VK_OBJECT_TYPE_FRAMEBUFFER
+          = showString "VK_OBJECT_TYPE_FRAMEBUFFER"
+        showsPrec _ VK_OBJECT_TYPE_COMMAND_POOL
+          = showString "VK_OBJECT_TYPE_COMMAND_POOL"
+        showsPrec p (VkObjectType x)
+          = showParen (p >= 11) (showString "VkObjectType " . showsPrec 11 x)
+
+instance Read VkObjectType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_OBJECT_TYPE_UNKNOWN", pure VK_OBJECT_TYPE_UNKNOWN),
+                  ("VK_OBJECT_TYPE_INSTANCE", pure VK_OBJECT_TYPE_INSTANCE),
+                  ("VK_OBJECT_TYPE_PHYSICAL_DEVICE",
+                   pure VK_OBJECT_TYPE_PHYSICAL_DEVICE),
+                  ("VK_OBJECT_TYPE_DEVICE", pure VK_OBJECT_TYPE_DEVICE),
+                  ("VK_OBJECT_TYPE_QUEUE", pure VK_OBJECT_TYPE_QUEUE),
+                  ("VK_OBJECT_TYPE_SEMAPHORE", pure VK_OBJECT_TYPE_SEMAPHORE),
+                  ("VK_OBJECT_TYPE_COMMAND_BUFFER",
+                   pure VK_OBJECT_TYPE_COMMAND_BUFFER),
+                  ("VK_OBJECT_TYPE_FENCE", pure VK_OBJECT_TYPE_FENCE),
+                  ("VK_OBJECT_TYPE_DEVICE_MEMORY",
+                   pure VK_OBJECT_TYPE_DEVICE_MEMORY),
+                  ("VK_OBJECT_TYPE_BUFFER", pure VK_OBJECT_TYPE_BUFFER),
+                  ("VK_OBJECT_TYPE_IMAGE", pure VK_OBJECT_TYPE_IMAGE),
+                  ("VK_OBJECT_TYPE_EVENT", pure VK_OBJECT_TYPE_EVENT),
+                  ("VK_OBJECT_TYPE_QUERY_POOL", pure VK_OBJECT_TYPE_QUERY_POOL),
+                  ("VK_OBJECT_TYPE_BUFFER_VIEW", pure VK_OBJECT_TYPE_BUFFER_VIEW),
+                  ("VK_OBJECT_TYPE_IMAGE_VIEW", pure VK_OBJECT_TYPE_IMAGE_VIEW),
+                  ("VK_OBJECT_TYPE_SHADER_MODULE",
+                   pure VK_OBJECT_TYPE_SHADER_MODULE),
+                  ("VK_OBJECT_TYPE_PIPELINE_CACHE",
+                   pure VK_OBJECT_TYPE_PIPELINE_CACHE),
+                  ("VK_OBJECT_TYPE_PIPELINE_LAYOUT",
+                   pure VK_OBJECT_TYPE_PIPELINE_LAYOUT),
+                  ("VK_OBJECT_TYPE_RENDER_PASS", pure VK_OBJECT_TYPE_RENDER_PASS),
+                  ("VK_OBJECT_TYPE_PIPELINE", pure VK_OBJECT_TYPE_PIPELINE),
+                  ("VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT",
+                   pure VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT),
+                  ("VK_OBJECT_TYPE_SAMPLER", pure VK_OBJECT_TYPE_SAMPLER),
+                  ("VK_OBJECT_TYPE_DESCRIPTOR_POOL",
+                   pure VK_OBJECT_TYPE_DESCRIPTOR_POOL),
+                  ("VK_OBJECT_TYPE_DESCRIPTOR_SET",
+                   pure VK_OBJECT_TYPE_DESCRIPTOR_SET),
+                  ("VK_OBJECT_TYPE_FRAMEBUFFER", pure VK_OBJECT_TYPE_FRAMEBUFFER),
+                  ("VK_OBJECT_TYPE_COMMAND_POOL", pure VK_OBJECT_TYPE_COMMAND_POOL)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkObjectType") >>
+                      (VkObjectType <$> step readPrec)))
+
+pattern VK_OBJECT_TYPE_UNKNOWN :: VkObjectType
+
+pattern VK_OBJECT_TYPE_UNKNOWN = VkObjectType 0
+
+-- | VkInstance
+pattern VK_OBJECT_TYPE_INSTANCE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_INSTANCE = VkObjectType 1
+
+-- | VkPhysicalDevice
+pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE = VkObjectType 2
+
+-- | VkDevice
+pattern VK_OBJECT_TYPE_DEVICE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DEVICE = VkObjectType 3
+
+-- | VkQueue
+pattern VK_OBJECT_TYPE_QUEUE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_QUEUE = VkObjectType 4
+
+-- | VkSemaphore
+pattern VK_OBJECT_TYPE_SEMAPHORE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_SEMAPHORE = VkObjectType 5
+
+-- | VkCommandBuffer
+pattern VK_OBJECT_TYPE_COMMAND_BUFFER :: VkObjectType
+
+pattern VK_OBJECT_TYPE_COMMAND_BUFFER = VkObjectType 6
+
+-- | VkFence
+pattern VK_OBJECT_TYPE_FENCE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_FENCE = VkObjectType 7
+
+-- | VkDeviceMemory
+pattern VK_OBJECT_TYPE_DEVICE_MEMORY :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DEVICE_MEMORY = VkObjectType 8
+
+-- | VkBuffer
+pattern VK_OBJECT_TYPE_BUFFER :: VkObjectType
+
+pattern VK_OBJECT_TYPE_BUFFER = VkObjectType 9
+
+-- | VkImage
+pattern VK_OBJECT_TYPE_IMAGE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_IMAGE = VkObjectType 10
+
+-- | VkEvent
+pattern VK_OBJECT_TYPE_EVENT :: VkObjectType
+
+pattern VK_OBJECT_TYPE_EVENT = VkObjectType 11
+
+-- | VkQueryPool
+pattern VK_OBJECT_TYPE_QUERY_POOL :: VkObjectType
+
+pattern VK_OBJECT_TYPE_QUERY_POOL = VkObjectType 12
+
+-- | VkBufferView
+pattern VK_OBJECT_TYPE_BUFFER_VIEW :: VkObjectType
+
+pattern VK_OBJECT_TYPE_BUFFER_VIEW = VkObjectType 13
+
+-- | VkImageView
+pattern VK_OBJECT_TYPE_IMAGE_VIEW :: VkObjectType
+
+pattern VK_OBJECT_TYPE_IMAGE_VIEW = VkObjectType 14
+
+-- | VkShaderModule
+pattern VK_OBJECT_TYPE_SHADER_MODULE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_SHADER_MODULE = VkObjectType 15
+
+-- | VkPipelineCache
+pattern VK_OBJECT_TYPE_PIPELINE_CACHE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_PIPELINE_CACHE = VkObjectType 16
+
+-- | VkPipelineLayout
+pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT :: VkObjectType
+
+pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT = VkObjectType 17
+
+-- | VkRenderPass
+pattern VK_OBJECT_TYPE_RENDER_PASS :: VkObjectType
+
+pattern VK_OBJECT_TYPE_RENDER_PASS = VkObjectType 18
+
+-- | VkPipeline
+pattern VK_OBJECT_TYPE_PIPELINE :: VkObjectType
+
+pattern VK_OBJECT_TYPE_PIPELINE = VkObjectType 19
+
+-- | VkDescriptorSetLayout
+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = VkObjectType 20
+
+-- | VkSampler
+pattern VK_OBJECT_TYPE_SAMPLER :: VkObjectType
+
+pattern VK_OBJECT_TYPE_SAMPLER = VkObjectType 21
+
+-- | VkDescriptorPool
+pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL = VkObjectType 22
+
+-- | VkDescriptorSet
+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET :: VkObjectType
+
+pattern VK_OBJECT_TYPE_DESCRIPTOR_SET = VkObjectType 23
+
+-- | VkFramebuffer
+pattern VK_OBJECT_TYPE_FRAMEBUFFER :: VkObjectType
+
+pattern VK_OBJECT_TYPE_FRAMEBUFFER = VkObjectType 24
+
+-- | VkCommandPool
+pattern VK_OBJECT_TYPE_COMMAND_POOL :: VkObjectType
+
+pattern VK_OBJECT_TYPE_COMMAND_POOL = VkObjectType 25
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs b/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PeerMemoryFeatureFlag.hs
@@ -0,0 +1,144 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+       (VkPeerMemoryFeatureFlagBitsKHR(..),
+        VkPeerMemoryFeatureBitmask(VkPeerMemoryFeatureBitmask,
+                                   VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits,
+                                   VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
+                                   VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
+                                   VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
+                                   VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT),
+        VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags
+                                           deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                     FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkPeerMemoryFeatureFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkPeerMemoryFeatureFlagBitsKHR x) = show x
+
+instance Read VkPeerMemoryFeatureFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPeerMemoryFeatureBitmask (a ::
+                                      FlagType) = VkPeerMemoryFeatureBitmask VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureBitmask FlagMask
+
+type VkPeerMemoryFeatureFlagBits =
+     VkPeerMemoryFeatureBitmask FlagBit
+
+pattern VkPeerMemoryFeatureFlagBits ::
+        VkFlags -> VkPeerMemoryFeatureBitmask FlagBit
+
+pattern VkPeerMemoryFeatureFlagBits n =
+        VkPeerMemoryFeatureBitmask n
+
+pattern VkPeerMemoryFeatureFlags ::
+        VkFlags -> VkPeerMemoryFeatureBitmask FlagMask
+
+pattern VkPeerMemoryFeatureFlags n = VkPeerMemoryFeatureBitmask n
+
+deriving instance Bits (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance FiniteBits (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance Integral (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance Num (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance Bounded (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance Enum (VkPeerMemoryFeatureBitmask FlagMask)
+
+deriving instance Real (VkPeerMemoryFeatureBitmask FlagMask)
+
+instance Show (VkPeerMemoryFeatureBitmask a) where
+        showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
+          = showString "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"
+        showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT
+          = showString "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"
+        showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
+          = showString "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"
+        showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
+          = showString "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"
+        showsPrec p (VkPeerMemoryFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkPeerMemoryFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkPeerMemoryFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT",
+                   pure VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT),
+                  ("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT",
+                   pure VK_PEER_MEMORY_FEATURE_COPY_DST_BIT),
+                  ("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT",
+                   pure VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT),
+                  ("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT",
+                   pure VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPeerMemoryFeatureBitmask") >>
+                      (VkPeerMemoryFeatureBitmask <$> step readPrec)))
+
+-- | Can read with vkCmdCopy commands
+--
+--   bitpos = @0@
+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT ::
+        VkPeerMemoryFeatureBitmask a
+
+pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT =
+        VkPeerMemoryFeatureBitmask 1
+
+-- | Can write with vkCmdCopy commands
+--
+--   bitpos = @1@
+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT ::
+        VkPeerMemoryFeatureBitmask a
+
+pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT =
+        VkPeerMemoryFeatureBitmask 2
+
+-- | Can read with any access type/command
+--
+--   bitpos = @2@
+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT ::
+        VkPeerMemoryFeatureBitmask a
+
+pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT =
+        VkPeerMemoryFeatureBitmask 4
+
+-- | Can write with and access type/command
+--
+--   bitpos = @3@
+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT ::
+        VkPeerMemoryFeatureBitmask a
+
+pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT =
+        VkPeerMemoryFeatureBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs b/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PhysicalDeviceType.hs
@@ -0,0 +1,86 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+       (VkPhysicalDeviceType(VkPhysicalDeviceType,
+                             VK_PHYSICAL_DEVICE_TYPE_OTHER,
+                             VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
+                             VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
+                             VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, VK_PHYSICAL_DEVICE_TYPE_CPU))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceType VkPhysicalDeviceType registry at www.khronos.org>
+newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPhysicalDeviceType where
+        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_OTHER
+          = showString "VK_PHYSICAL_DEVICE_TYPE_OTHER"
+        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
+          = showString "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"
+        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
+          = showString "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"
+        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
+          = showString "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"
+        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_CPU
+          = showString "VK_PHYSICAL_DEVICE_TYPE_CPU"
+        showsPrec p (VkPhysicalDeviceType x)
+          = showParen (p >= 11)
+              (showString "VkPhysicalDeviceType " . showsPrec 11 x)
+
+instance Read VkPhysicalDeviceType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PHYSICAL_DEVICE_TYPE_OTHER",
+                   pure VK_PHYSICAL_DEVICE_TYPE_OTHER),
+                  ("VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU",
+                   pure VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU),
+                  ("VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU",
+                   pure VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU),
+                  ("VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU",
+                   pure VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU),
+                  ("VK_PHYSICAL_DEVICE_TYPE_CPU", pure VK_PHYSICAL_DEVICE_TYPE_CPU)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPhysicalDeviceType") >>
+                      (VkPhysicalDeviceType <$> step readPrec)))
+
+pattern VK_PHYSICAL_DEVICE_TYPE_OTHER :: VkPhysicalDeviceType
+
+pattern VK_PHYSICAL_DEVICE_TYPE_OTHER = VkPhysicalDeviceType 0
+
+pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU ::
+        VkPhysicalDeviceType
+
+pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU =
+        VkPhysicalDeviceType 1
+
+pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU ::
+        VkPhysicalDeviceType
+
+pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU =
+        VkPhysicalDeviceType 2
+
+pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: VkPhysicalDeviceType
+
+pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU =
+        VkPhysicalDeviceType 3
+
+pattern VK_PHYSICAL_DEVICE_TYPE_CPU :: VkPhysicalDeviceType
+
+pattern VK_PHYSICAL_DEVICE_TYPE_CPU = VkPhysicalDeviceType 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs b/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Pipeline.hs
@@ -0,0 +1,629 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Pipeline
+       (VkPipelineBindPoint(VkPipelineBindPoint,
+                            VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_BIND_POINT_COMPUTE),
+        VkPipelineCacheCreateFlagBits(..),
+        VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion,
+                                     VK_PIPELINE_CACHE_HEADER_VERSION_ONE),
+        VkPipelineColorBlendStateCreateFlagBits(..),
+        VkPipelineCreateBitmask(VkPipelineCreateBitmask,
+                                VkPipelineCreateFlags, VkPipelineCreateFlagBits,
+                                VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
+                                VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
+                                VK_PIPELINE_CREATE_DERIVATIVE_BIT),
+        VkPipelineCreateFlags, VkPipelineCreateFlagBits,
+        VkPipelineDepthStencilStateCreateFlagBits(..),
+        VkPipelineDynamicStateCreateFlagBits(..),
+        VkPipelineInputAssemblyStateCreateFlagBits(..),
+        VkPipelineLayoutCreateFlagBits(..),
+        VkPipelineMultisampleStateCreateFlagBits(..),
+        VkPipelineRasterizationStateCreateFlagBits(..),
+        VkPipelineShaderStageCreateFlagBits(..),
+        VkPipelineStageBitmask(VkPipelineStageBitmask,
+                               VkPipelineStageFlags, VkPipelineStageFlagBits,
+                               VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
+                               VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
+                               VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
+                               VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
+                               VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
+                               VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
+                               VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
+                               VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
+                               VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
+                               VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
+                               VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+                               VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
+                               VK_PIPELINE_STAGE_TRANSFER_BIT,
+                               VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_HOST_BIT,
+                               VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
+                               VK_PIPELINE_STAGE_ALL_COMMANDS_BIT),
+        VkPipelineStageFlags, VkPipelineStageFlagBits,
+        VkPipelineTessellationStateCreateFlagBits(..),
+        VkPipelineVertexInputStateCreateFlagBits(..),
+        VkPipelineViewportStateCreateFlagBits(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineBindPoint VkPipelineBindPoint registry at www.khronos.org>
+newtype VkPipelineBindPoint = VkPipelineBindPoint Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPipelineBindPoint where
+        showsPrec _ VK_PIPELINE_BIND_POINT_GRAPHICS
+          = showString "VK_PIPELINE_BIND_POINT_GRAPHICS"
+        showsPrec _ VK_PIPELINE_BIND_POINT_COMPUTE
+          = showString "VK_PIPELINE_BIND_POINT_COMPUTE"
+        showsPrec p (VkPipelineBindPoint x)
+          = showParen (p >= 11)
+              (showString "VkPipelineBindPoint " . showsPrec 11 x)
+
+instance Read VkPipelineBindPoint where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PIPELINE_BIND_POINT_GRAPHICS",
+                   pure VK_PIPELINE_BIND_POINT_GRAPHICS),
+                  ("VK_PIPELINE_BIND_POINT_COMPUTE",
+                   pure VK_PIPELINE_BIND_POINT_COMPUTE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPipelineBindPoint") >>
+                      (VkPipelineBindPoint <$> step readPrec)))
+
+pattern VK_PIPELINE_BIND_POINT_GRAPHICS :: VkPipelineBindPoint
+
+pattern VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint 0
+
+pattern VK_PIPELINE_BIND_POINT_COMPUTE :: VkPipelineBindPoint
+
+pattern VK_PIPELINE_BIND_POINT_COMPUTE = VkPipelineBindPoint 1
+
+newtype VkPipelineCacheCreateFlagBits = VkPipelineCacheCreateFlagBits VkFlags
+                                          deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                    FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkPipelineCacheCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineCacheCreateFlagBits x) = show x
+
+instance Read VkPipelineCacheCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCacheHeaderVersion VkPipelineCacheHeaderVersion registry at www.khronos.org>
+newtype VkPipelineCacheHeaderVersion = VkPipelineCacheHeaderVersion Int32
+                                         deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                   Generic)
+
+instance Show VkPipelineCacheHeaderVersion where
+        showsPrec _ VK_PIPELINE_CACHE_HEADER_VERSION_ONE
+          = showString "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"
+        showsPrec p (VkPipelineCacheHeaderVersion x)
+          = showParen (p >= 11)
+              (showString "VkPipelineCacheHeaderVersion " . showsPrec 11 x)
+
+instance Read VkPipelineCacheHeaderVersion where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PIPELINE_CACHE_HEADER_VERSION_ONE",
+                   pure VK_PIPELINE_CACHE_HEADER_VERSION_ONE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPipelineCacheHeaderVersion") >>
+                      (VkPipelineCacheHeaderVersion <$> step readPrec)))
+
+pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE ::
+        VkPipelineCacheHeaderVersion
+
+pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE =
+        VkPipelineCacheHeaderVersion 1
+
+newtype VkPipelineColorBlendStateCreateFlagBits = VkPipelineColorBlendStateCreateFlagBits VkFlags
+                                                    deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                              Bits, FiniteBits, Storable, Real,
+                                                              Data, Generic)
+
+instance Show VkPipelineColorBlendStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineColorBlendStateCreateFlagBits x) = show x
+
+instance Read VkPipelineColorBlendStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineCreateBitmask (a ::
+                                   FlagType) = VkPipelineCreateBitmask VkFlags
+                                                 deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkPipelineCreateFlags = VkPipelineCreateBitmask FlagMask
+
+type VkPipelineCreateFlagBits = VkPipelineCreateBitmask FlagBit
+
+pattern VkPipelineCreateFlagBits ::
+        VkFlags -> VkPipelineCreateBitmask FlagBit
+
+pattern VkPipelineCreateFlagBits n = VkPipelineCreateBitmask n
+
+pattern VkPipelineCreateFlags ::
+        VkFlags -> VkPipelineCreateBitmask FlagMask
+
+pattern VkPipelineCreateFlags n = VkPipelineCreateBitmask n
+
+deriving instance Bits (VkPipelineCreateBitmask FlagMask)
+
+deriving instance FiniteBits (VkPipelineCreateBitmask FlagMask)
+
+deriving instance Integral (VkPipelineCreateBitmask FlagMask)
+
+deriving instance Num (VkPipelineCreateBitmask FlagMask)
+
+deriving instance Bounded (VkPipelineCreateBitmask FlagMask)
+
+deriving instance Enum (VkPipelineCreateBitmask FlagMask)
+
+deriving instance Real (VkPipelineCreateBitmask FlagMask)
+
+instance Show (VkPipelineCreateBitmask a) where
+        showsPrec _ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
+          = showString "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"
+        showsPrec _ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
+          = showString "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"
+        showsPrec _ VK_PIPELINE_CREATE_DERIVATIVE_BIT
+          = showString "VK_PIPELINE_CREATE_DERIVATIVE_BIT"
+        showsPrec p (VkPipelineCreateBitmask x)
+          = showParen (p >= 11)
+              (showString "VkPipelineCreateBitmask " . showsPrec 11 x)
+
+instance Read (VkPipelineCreateBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT",
+                   pure VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT),
+                  ("VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT",
+                   pure VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT),
+                  ("VK_PIPELINE_CREATE_DERIVATIVE_BIT",
+                   pure VK_PIPELINE_CREATE_DERIVATIVE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPipelineCreateBitmask") >>
+                      (VkPipelineCreateBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT ::
+        VkPipelineCreateBitmask a
+
+pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT =
+        VkPipelineCreateBitmask 1
+
+-- | bitpos = @1@
+pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT ::
+        VkPipelineCreateBitmask a
+
+pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT =
+        VkPipelineCreateBitmask 2
+
+-- | bitpos = @2@
+pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT ::
+        VkPipelineCreateBitmask a
+
+pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT =
+        VkPipelineCreateBitmask 4
+
+newtype VkPipelineDepthStencilStateCreateFlagBits = VkPipelineDepthStencilStateCreateFlagBits VkFlags
+                                                      deriving (Eq, Ord, Num, Bounded, Enum,
+                                                                Integral, Bits, FiniteBits,
+                                                                Storable, Real, Data, Generic)
+
+instance Show VkPipelineDepthStencilStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineDepthStencilStateCreateFlagBits x) = show x
+
+instance Read VkPipelineDepthStencilStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineDynamicStateCreateFlagBits = VkPipelineDynamicStateCreateFlagBits VkFlags
+                                                 deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                           Bits, FiniteBits, Storable, Real, Data,
+                                                           Generic)
+
+instance Show VkPipelineDynamicStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineDynamicStateCreateFlagBits x) = show x
+
+instance Read VkPipelineDynamicStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineInputAssemblyStateCreateFlagBits = VkPipelineInputAssemblyStateCreateFlagBits VkFlags
+                                                       deriving (Eq, Ord, Num, Bounded, Enum,
+                                                                 Integral, Bits, FiniteBits,
+                                                                 Storable, Real, Data, Generic)
+
+instance Show VkPipelineInputAssemblyStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineInputAssemblyStateCreateFlagBits x) = show x
+
+instance Read VkPipelineInputAssemblyStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineLayoutCreateFlagBits = VkPipelineLayoutCreateFlagBits VkFlags
+                                           deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                     FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkPipelineLayoutCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineLayoutCreateFlagBits x) = show x
+
+instance Read VkPipelineLayoutCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineMultisampleStateCreateFlagBits = VkPipelineMultisampleStateCreateFlagBits VkFlags
+                                                     deriving (Eq, Ord, Num, Bounded, Enum,
+                                                               Integral, Bits, FiniteBits, Storable,
+                                                               Real, Data, Generic)
+
+instance Show VkPipelineMultisampleStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineMultisampleStateCreateFlagBits x) = show x
+
+instance Read VkPipelineMultisampleStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineRasterizationStateCreateFlagBits = VkPipelineRasterizationStateCreateFlagBits VkFlags
+                                                       deriving (Eq, Ord, Num, Bounded, Enum,
+                                                                 Integral, Bits, FiniteBits,
+                                                                 Storable, Real, Data, Generic)
+
+instance Show VkPipelineRasterizationStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineRasterizationStateCreateFlagBits x) = show x
+
+instance Read VkPipelineRasterizationStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineShaderStageCreateFlagBits = VkPipelineShaderStageCreateFlagBits VkFlags
+                                                deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                          Bits, FiniteBits, Storable, Real, Data,
+                                                          Generic)
+
+instance Show VkPipelineShaderStageCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineShaderStageCreateFlagBits x) = show x
+
+instance Read VkPipelineShaderStageCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineStageBitmask (a ::
+                                  FlagType) = VkPipelineStageBitmask VkFlags
+                                                deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkPipelineStageFlags = VkPipelineStageBitmask FlagMask
+
+type VkPipelineStageFlagBits = VkPipelineStageBitmask FlagBit
+
+pattern VkPipelineStageFlagBits ::
+        VkFlags -> VkPipelineStageBitmask FlagBit
+
+pattern VkPipelineStageFlagBits n = VkPipelineStageBitmask n
+
+pattern VkPipelineStageFlags ::
+        VkFlags -> VkPipelineStageBitmask FlagMask
+
+pattern VkPipelineStageFlags n = VkPipelineStageBitmask n
+
+deriving instance Bits (VkPipelineStageBitmask FlagMask)
+
+deriving instance FiniteBits (VkPipelineStageBitmask FlagMask)
+
+deriving instance Integral (VkPipelineStageBitmask FlagMask)
+
+deriving instance Num (VkPipelineStageBitmask FlagMask)
+
+deriving instance Bounded (VkPipelineStageBitmask FlagMask)
+
+deriving instance Enum (VkPipelineStageBitmask FlagMask)
+
+deriving instance Real (VkPipelineStageBitmask FlagMask)
+
+instance Show (VkPipelineStageBitmask a) where
+        showsPrec _ VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
+          = showString "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
+          = showString "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
+          = showString "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
+          = showString "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
+          = showString "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
+          = showString "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
+          = showString "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_TRANSFER_BIT
+          = showString "VK_PIPELINE_STAGE_TRANSFER_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
+          = showString "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_HOST_BIT
+          = showString "VK_PIPELINE_STAGE_HOST_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
+          = showString "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"
+        showsPrec _ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
+          = showString "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"
+        showsPrec p (VkPipelineStageBitmask x)
+          = showParen (p >= 11)
+              (showString "VkPipelineStageBitmask " . showsPrec 11 x)
+
+instance Read (VkPipelineStageBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT",
+                   pure VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT),
+                  ("VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT",
+                   pure VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT),
+                  ("VK_PIPELINE_STAGE_VERTEX_INPUT_BIT",
+                   pure VK_PIPELINE_STAGE_VERTEX_INPUT_BIT),
+                  ("VK_PIPELINE_STAGE_VERTEX_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_VERTEX_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT",
+                   pure VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT),
+                  ("VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT",
+                   pure VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT),
+                  ("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT",
+                   pure VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT),
+                  ("VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT",
+                   pure VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT),
+                  ("VK_PIPELINE_STAGE_TRANSFER_BIT",
+                   pure VK_PIPELINE_STAGE_TRANSFER_BIT),
+                  ("VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT",
+                   pure VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT),
+                  ("VK_PIPELINE_STAGE_HOST_BIT", pure VK_PIPELINE_STAGE_HOST_BIT),
+                  ("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT",
+                   pure VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT),
+                  ("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT",
+                   pure VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPipelineStageBitmask") >>
+                      (VkPipelineStageBitmask <$> step readPrec)))
+
+-- | Before subsequent commands are processed
+--
+--   bitpos = @0@
+pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT =
+        VkPipelineStageBitmask 1
+
+-- | Draw/DispatchIndirect command fetch
+--
+--   bitpos = @1@
+pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT =
+        VkPipelineStageBitmask 2
+
+-- | Vertex/index fetch
+--
+--   bitpos = @2@
+pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT =
+        VkPipelineStageBitmask 4
+
+-- | Vertex shading
+--
+--   bitpos = @3@
+pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT =
+        VkPipelineStageBitmask 8
+
+-- | Tessellation control shading
+--
+--   bitpos = @4@
+pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT =
+        VkPipelineStageBitmask 16
+
+-- | Tessellation evaluation shading
+--
+--   bitpos = @5@
+pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT =
+        VkPipelineStageBitmask 32
+
+-- | Geometry shading
+--
+--   bitpos = @6@
+pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT =
+        VkPipelineStageBitmask 64
+
+-- | Fragment shading
+--
+--   bitpos = @7@
+pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT =
+        VkPipelineStageBitmask 128
+
+-- | Early fragment (depth and stencil) tests
+--
+--   bitpos = @8@
+pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT =
+        VkPipelineStageBitmask 256
+
+-- | Late fragment (depth and stencil) tests
+--
+--   bitpos = @9@
+pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT =
+        VkPipelineStageBitmask 512
+
+-- | Color attachment writes
+--
+--   bitpos = @10@
+pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT =
+        VkPipelineStageBitmask 1024
+
+-- | Compute shading
+--
+--   bitpos = @11@
+pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT =
+        VkPipelineStageBitmask 2048
+
+-- | Transfer/copy operations
+--
+--   bitpos = @12@
+pattern VK_PIPELINE_STAGE_TRANSFER_BIT :: VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_TRANSFER_BIT =
+        VkPipelineStageBitmask 4096
+
+-- | After previous commands have completed
+--
+--   bitpos = @13@
+pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT =
+        VkPipelineStageBitmask 8192
+
+-- | Indicates host (CPU) is a source/sink of the dependency
+--
+--   bitpos = @14@
+pattern VK_PIPELINE_STAGE_HOST_BIT :: VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_HOST_BIT = VkPipelineStageBitmask 16384
+
+-- | All stages of the graphics pipeline
+--
+--   bitpos = @15@
+pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT =
+        VkPipelineStageBitmask 32768
+
+-- | All stages supported on the queue
+--
+--   bitpos = @16@
+pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT ::
+        VkPipelineStageBitmask a
+
+pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT =
+        VkPipelineStageBitmask 65536
+
+newtype VkPipelineTessellationStateCreateFlagBits = VkPipelineTessellationStateCreateFlagBits VkFlags
+                                                      deriving (Eq, Ord, Num, Bounded, Enum,
+                                                                Integral, Bits, FiniteBits,
+                                                                Storable, Real, Data, Generic)
+
+instance Show VkPipelineTessellationStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineTessellationStateCreateFlagBits x) = show x
+
+instance Read VkPipelineTessellationStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineVertexInputStateCreateFlagBits = VkPipelineVertexInputStateCreateFlagBits VkFlags
+                                                     deriving (Eq, Ord, Num, Bounded, Enum,
+                                                               Integral, Bits, FiniteBits, Storable,
+                                                               Real, Data, Generic)
+
+instance Show VkPipelineVertexInputStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineVertexInputStateCreateFlagBits x) = show x
+
+instance Read VkPipelineVertexInputStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkPipelineViewportStateCreateFlagBits = VkPipelineViewportStateCreateFlagBits VkFlags
+                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
+                                                            Bits, FiniteBits, Storable, Real, Data,
+                                                            Generic)
+
+instance Show VkPipelineViewportStateCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkPipelineViewportStateCreateFlagBits x) = show x
+
+instance Read VkPipelineViewportStateCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs b/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PointClippingBehavior.hs
@@ -0,0 +1,76 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.PointClippingBehavior
+       (VkPointClippingBehavior(VkPointClippingBehavior,
+                                VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
+                                VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY),
+        VkPointClippingBehaviorKHR(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPointClippingBehavior VkPointClippingBehavior registry at www.khronos.org>
+newtype VkPointClippingBehavior = VkPointClippingBehavior Int32
+                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPointClippingBehavior where
+        showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
+          = showString "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"
+        showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
+          = showString "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"
+        showsPrec p (VkPointClippingBehavior x)
+          = showParen (p >= 11)
+              (showString "VkPointClippingBehavior " . showsPrec 11 x)
+
+instance Read VkPointClippingBehavior where
+        readPrec
+          = parens
+              (choose
+                 [("VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES",
+                   pure VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES),
+                  ("VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY",
+                   pure VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPointClippingBehavior") >>
+                      (VkPointClippingBehavior <$> step readPrec)))
+
+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES ::
+        VkPointClippingBehavior
+
+pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES =
+        VkPointClippingBehavior 0
+
+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY ::
+        VkPointClippingBehavior
+
+pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY =
+        VkPointClippingBehavior 1
+
+newtype VkPointClippingBehaviorKHR = VkPointClippingBehaviorKHR VkFlags
+                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                 FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkPointClippingBehaviorKHR where
+        {-# INLINE show #-}
+        show (VkPointClippingBehaviorKHR x) = show x
+
+instance Read VkPointClippingBehaviorKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PolygonMode.hs
@@ -0,0 +1,60 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.PolygonMode
+       (VkPolygonMode(VkPolygonMode, VK_POLYGON_MODE_FILL,
+                      VK_POLYGON_MODE_LINE, VK_POLYGON_MODE_POINT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPolygonMode VkPolygonMode registry at www.khronos.org>
+newtype VkPolygonMode = VkPolygonMode Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPolygonMode where
+        showsPrec _ VK_POLYGON_MODE_FILL
+          = showString "VK_POLYGON_MODE_FILL"
+        showsPrec _ VK_POLYGON_MODE_LINE
+          = showString "VK_POLYGON_MODE_LINE"
+        showsPrec _ VK_POLYGON_MODE_POINT
+          = showString "VK_POLYGON_MODE_POINT"
+        showsPrec p (VkPolygonMode x)
+          = showParen (p >= 11)
+              (showString "VkPolygonMode " . showsPrec 11 x)
+
+instance Read VkPolygonMode where
+        readPrec
+          = parens
+              (choose
+                 [("VK_POLYGON_MODE_FILL", pure VK_POLYGON_MODE_FILL),
+                  ("VK_POLYGON_MODE_LINE", pure VK_POLYGON_MODE_LINE),
+                  ("VK_POLYGON_MODE_POINT", pure VK_POLYGON_MODE_POINT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPolygonMode") >>
+                      (VkPolygonMode <$> step readPrec)))
+
+pattern VK_POLYGON_MODE_FILL :: VkPolygonMode
+
+pattern VK_POLYGON_MODE_FILL = VkPolygonMode 0
+
+pattern VK_POLYGON_MODE_LINE :: VkPolygonMode
+
+pattern VK_POLYGON_MODE_LINE = VkPolygonMode 1
+
+pattern VK_POLYGON_MODE_POINT :: VkPolygonMode
+
+pattern VK_POLYGON_MODE_POINT = VkPolygonMode 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PresentModeKHR.hs
@@ -0,0 +1,70 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.PresentModeKHR
+       (VkPresentModeKHR(VkPresentModeKHR, VK_PRESENT_MODE_IMMEDIATE_KHR,
+                         VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR,
+                         VK_PRESENT_MODE_FIFO_RELAXED_KHR))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentModeKHR VkPresentModeKHR registry at www.khronos.org>
+newtype VkPresentModeKHR = VkPresentModeKHR Int32
+                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPresentModeKHR where
+        showsPrec _ VK_PRESENT_MODE_IMMEDIATE_KHR
+          = showString "VK_PRESENT_MODE_IMMEDIATE_KHR"
+        showsPrec _ VK_PRESENT_MODE_MAILBOX_KHR
+          = showString "VK_PRESENT_MODE_MAILBOX_KHR"
+        showsPrec _ VK_PRESENT_MODE_FIFO_KHR
+          = showString "VK_PRESENT_MODE_FIFO_KHR"
+        showsPrec _ VK_PRESENT_MODE_FIFO_RELAXED_KHR
+          = showString "VK_PRESENT_MODE_FIFO_RELAXED_KHR"
+        showsPrec p (VkPresentModeKHR x)
+          = showParen (p >= 11)
+              (showString "VkPresentModeKHR " . showsPrec 11 x)
+
+instance Read VkPresentModeKHR where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PRESENT_MODE_IMMEDIATE_KHR",
+                   pure VK_PRESENT_MODE_IMMEDIATE_KHR),
+                  ("VK_PRESENT_MODE_MAILBOX_KHR", pure VK_PRESENT_MODE_MAILBOX_KHR),
+                  ("VK_PRESENT_MODE_FIFO_KHR", pure VK_PRESENT_MODE_FIFO_KHR),
+                  ("VK_PRESENT_MODE_FIFO_RELAXED_KHR",
+                   pure VK_PRESENT_MODE_FIFO_RELAXED_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPresentModeKHR") >>
+                      (VkPresentModeKHR <$> step readPrec)))
+
+pattern VK_PRESENT_MODE_IMMEDIATE_KHR :: VkPresentModeKHR
+
+pattern VK_PRESENT_MODE_IMMEDIATE_KHR = VkPresentModeKHR 0
+
+pattern VK_PRESENT_MODE_MAILBOX_KHR :: VkPresentModeKHR
+
+pattern VK_PRESENT_MODE_MAILBOX_KHR = VkPresentModeKHR 1
+
+pattern VK_PRESENT_MODE_FIFO_KHR :: VkPresentModeKHR
+
+pattern VK_PRESENT_MODE_FIFO_KHR = VkPresentModeKHR 2
+
+pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR :: VkPresentModeKHR
+
+pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR = VkPresentModeKHR 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs b/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/PrimitiveTopology.hs
@@ -0,0 +1,145 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.PrimitiveTopology
+       (VkPrimitiveTopology(VkPrimitiveTopology,
+                            VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
+                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
+                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
+                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
+                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
+                            VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
+                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
+                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
+                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
+                            VK_PRIMITIVE_TOPOLOGY_PATCH_LIST))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPrimitiveTopology VkPrimitiveTopology registry at www.khronos.org>
+newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkPrimitiveTopology where
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_POINT_LIST
+          = showString "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST
+          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
+          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
+          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
+          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
+          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
+          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
+          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
+          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
+          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"
+        showsPrec _ VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
+          = showString "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"
+        showsPrec p (VkPrimitiveTopology x)
+          = showParen (p >= 11)
+              (showString "VkPrimitiveTopology " . showsPrec 11 x)
+
+instance Read VkPrimitiveTopology where
+        readPrec
+          = parens
+              (choose
+                 [("VK_PRIMITIVE_TOPOLOGY_POINT_LIST",
+                   pure VK_PRIMITIVE_TOPOLOGY_POINT_LIST),
+                  ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST",
+                   pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST),
+                  ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP",
+                   pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP),
+                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
+                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST),
+                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP",
+                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP),
+                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN",
+                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN),
+                  ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY",
+                   pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY),
+                  ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY",
+                   pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY),
+                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY",
+                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY),
+                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY",
+                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY),
+                  ("VK_PRIMITIVE_TOPOLOGY_PATCH_LIST",
+                   pure VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkPrimitiveTopology") >>
+                      (VkPrimitiveTopology <$> step readPrec)))
+
+pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP =
+        VkPrimitiveTopology 4
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY ::
+        VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY =
+        VkPrimitiveTopology 6
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY ::
+        VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY =
+        VkPrimitiveTopology 7
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY ::
+        VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY =
+        VkPrimitiveTopology 8
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY ::
+        VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY =
+        VkPrimitiveTopology 9
+
+pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology
+
+pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Query.hs b/src-gen/Graphics/Vulkan/Types/Enum/Query.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Query.hs
@@ -0,0 +1,465 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Query
+       (VkQueryControlBitmask(VkQueryControlBitmask, VkQueryControlFlags,
+                              VkQueryControlFlagBits, VK_QUERY_CONTROL_PRECISE_BIT),
+        VkQueryControlFlags, VkQueryControlFlagBits,
+        VkQueryPipelineStatisticBitmask(VkQueryPipelineStatisticBitmask,
+                                        VkQueryPipelineStatisticFlags,
+                                        VkQueryPipelineStatisticFlagBits,
+                                        VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
+                                        VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT),
+        VkQueryPipelineStatisticFlags, VkQueryPipelineStatisticFlagBits,
+        VkQueryPoolCreateFlagBits(..),
+        VkQueryResultBitmask(VkQueryResultBitmask, VkQueryResultFlags,
+                             VkQueryResultFlagBits, VK_QUERY_RESULT_64_BIT,
+                             VK_QUERY_RESULT_WAIT_BIT, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
+                             VK_QUERY_RESULT_PARTIAL_BIT),
+        VkQueryResultFlags, VkQueryResultFlagBits,
+        VkQueryType(VkQueryType, VK_QUERY_TYPE_OCCLUSION,
+                    VK_QUERY_TYPE_PIPELINE_STATISTICS, VK_QUERY_TYPE_TIMESTAMP))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkQueryControlBitmask (a ::
+                                 FlagType) = VkQueryControlBitmask VkFlags
+                                               deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkQueryControlFlags = VkQueryControlBitmask FlagMask
+
+type VkQueryControlFlagBits = VkQueryControlBitmask FlagBit
+
+pattern VkQueryControlFlagBits ::
+        VkFlags -> VkQueryControlBitmask FlagBit
+
+pattern VkQueryControlFlagBits n = VkQueryControlBitmask n
+
+pattern VkQueryControlFlags ::
+        VkFlags -> VkQueryControlBitmask FlagMask
+
+pattern VkQueryControlFlags n = VkQueryControlBitmask n
+
+deriving instance Bits (VkQueryControlBitmask FlagMask)
+
+deriving instance FiniteBits (VkQueryControlBitmask FlagMask)
+
+deriving instance Integral (VkQueryControlBitmask FlagMask)
+
+deriving instance Num (VkQueryControlBitmask FlagMask)
+
+deriving instance Bounded (VkQueryControlBitmask FlagMask)
+
+deriving instance Enum (VkQueryControlBitmask FlagMask)
+
+deriving instance Real (VkQueryControlBitmask FlagMask)
+
+instance Show (VkQueryControlBitmask a) where
+        showsPrec _ VK_QUERY_CONTROL_PRECISE_BIT
+          = showString "VK_QUERY_CONTROL_PRECISE_BIT"
+        showsPrec p (VkQueryControlBitmask x)
+          = showParen (p >= 11)
+              (showString "VkQueryControlBitmask " . showsPrec 11 x)
+
+instance Read (VkQueryControlBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUERY_CONTROL_PRECISE_BIT",
+                   pure VK_QUERY_CONTROL_PRECISE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueryControlBitmask") >>
+                      (VkQueryControlBitmask <$> step readPrec)))
+
+-- | Require precise results to be collected by the query
+--
+--   bitpos = @0@
+pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlBitmask a
+
+pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlBitmask 1
+
+newtype VkQueryPipelineStatisticBitmask (a ::
+                                           FlagType) = VkQueryPipelineStatisticBitmask VkFlags
+                                                         deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkQueryPipelineStatisticFlags =
+     VkQueryPipelineStatisticBitmask FlagMask
+
+type VkQueryPipelineStatisticFlagBits =
+     VkQueryPipelineStatisticBitmask FlagBit
+
+pattern VkQueryPipelineStatisticFlagBits ::
+        VkFlags -> VkQueryPipelineStatisticBitmask FlagBit
+
+pattern VkQueryPipelineStatisticFlagBits n =
+        VkQueryPipelineStatisticBitmask n
+
+pattern VkQueryPipelineStatisticFlags ::
+        VkFlags -> VkQueryPipelineStatisticBitmask FlagMask
+
+pattern VkQueryPipelineStatisticFlags n =
+        VkQueryPipelineStatisticBitmask n
+
+deriving instance Bits (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance
+         FiniteBits (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance
+         Integral (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance Num (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance
+         Bounded (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance Enum (VkQueryPipelineStatisticBitmask FlagMask)
+
+deriving instance Real (VkQueryPipelineStatisticBitmask FlagMask)
+
+instance Show (VkQueryPipelineStatisticBitmask a) where
+        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"
+        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
+          = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"
+        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
+          = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"
+        showsPrec _
+          VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
+          = showString
+              "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"
+        showsPrec p (VkQueryPipelineStatisticBitmask x)
+          = showParen (p >= 11)
+              (showString "VkQueryPipelineStatisticBitmask " . showsPrec 11 x)
+
+instance Read (VkQueryPipelineStatisticBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT",
+                   pure
+                     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT",
+                   pure
+                     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT),
+                  ("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT",
+                   pure VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueryPipelineStatisticBitmask") >>
+                      (VkQueryPipelineStatisticBitmask <$> step readPrec)))
+
+-- | Optional
+--
+--   bitpos = @0@
+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT ::
+        VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT =
+        VkQueryPipelineStatisticBitmask 1
+
+-- | Optional
+--
+--   bitpos = @1@
+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT =
+        VkQueryPipelineStatisticBitmask 2
+
+-- | Optional
+--
+--   bitpos = @2@
+pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT =
+        VkQueryPipelineStatisticBitmask 4
+
+-- | Optional
+--
+--   bitpos = @3@
+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
+        = VkQueryPipelineStatisticBitmask 8
+
+-- | Optional
+--
+--   bitpos = @4@
+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
+        = VkQueryPipelineStatisticBitmask 16
+
+-- | Optional
+--
+--   bitpos = @5@
+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT ::
+        VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT =
+        VkQueryPipelineStatisticBitmask 32
+
+-- | Optional
+--
+--   bitpos = @6@
+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT ::
+        VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT =
+        VkQueryPipelineStatisticBitmask 64
+
+-- | Optional
+--
+--   bitpos = @7@
+pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
+        = VkQueryPipelineStatisticBitmask 128
+
+-- | Optional
+--
+--   bitpos = @8@
+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
+        = VkQueryPipelineStatisticBitmask 256
+
+-- | Optional
+--
+--   bitpos = @9@
+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
+        = VkQueryPipelineStatisticBitmask 512
+
+-- | Optional
+--
+--   bitpos = @10@
+pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
+        :: VkQueryPipelineStatisticBitmask a
+
+pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
+        = VkQueryPipelineStatisticBitmask 1024
+
+newtype VkQueryPoolCreateFlagBits = VkQueryPoolCreateFlagBits VkFlags
+                                      deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkQueryPoolCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkQueryPoolCreateFlagBits x) = show x
+
+instance Read VkQueryPoolCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkQueryResultBitmask (a ::
+                                FlagType) = VkQueryResultBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkQueryResultFlags = VkQueryResultBitmask FlagMask
+
+type VkQueryResultFlagBits = VkQueryResultBitmask FlagBit
+
+pattern VkQueryResultFlagBits ::
+        VkFlags -> VkQueryResultBitmask FlagBit
+
+pattern VkQueryResultFlagBits n = VkQueryResultBitmask n
+
+pattern VkQueryResultFlags ::
+        VkFlags -> VkQueryResultBitmask FlagMask
+
+pattern VkQueryResultFlags n = VkQueryResultBitmask n
+
+deriving instance Bits (VkQueryResultBitmask FlagMask)
+
+deriving instance FiniteBits (VkQueryResultBitmask FlagMask)
+
+deriving instance Integral (VkQueryResultBitmask FlagMask)
+
+deriving instance Num (VkQueryResultBitmask FlagMask)
+
+deriving instance Bounded (VkQueryResultBitmask FlagMask)
+
+deriving instance Enum (VkQueryResultBitmask FlagMask)
+
+deriving instance Real (VkQueryResultBitmask FlagMask)
+
+instance Show (VkQueryResultBitmask a) where
+        showsPrec _ VK_QUERY_RESULT_64_BIT
+          = showString "VK_QUERY_RESULT_64_BIT"
+        showsPrec _ VK_QUERY_RESULT_WAIT_BIT
+          = showString "VK_QUERY_RESULT_WAIT_BIT"
+        showsPrec _ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
+          = showString "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"
+        showsPrec _ VK_QUERY_RESULT_PARTIAL_BIT
+          = showString "VK_QUERY_RESULT_PARTIAL_BIT"
+        showsPrec p (VkQueryResultBitmask x)
+          = showParen (p >= 11)
+              (showString "VkQueryResultBitmask " . showsPrec 11 x)
+
+instance Read (VkQueryResultBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUERY_RESULT_64_BIT", pure VK_QUERY_RESULT_64_BIT),
+                  ("VK_QUERY_RESULT_WAIT_BIT", pure VK_QUERY_RESULT_WAIT_BIT),
+                  ("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT",
+                   pure VK_QUERY_RESULT_WITH_AVAILABILITY_BIT),
+                  ("VK_QUERY_RESULT_PARTIAL_BIT", pure VK_QUERY_RESULT_PARTIAL_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueryResultBitmask") >>
+                      (VkQueryResultBitmask <$> step readPrec)))
+
+-- | Results of the queries are written to the destination buffer as 64-bit values
+--
+--   bitpos = @0@
+pattern VK_QUERY_RESULT_64_BIT :: VkQueryResultBitmask a
+
+pattern VK_QUERY_RESULT_64_BIT = VkQueryResultBitmask 1
+
+-- | Results of the queries are waited on before proceeding with the result copy
+--
+--   bitpos = @1@
+pattern VK_QUERY_RESULT_WAIT_BIT :: VkQueryResultBitmask a
+
+pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultBitmask 2
+
+-- | Besides the results of the query, the availability of the results is also written
+--
+--   bitpos = @2@
+pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT ::
+        VkQueryResultBitmask a
+
+pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT =
+        VkQueryResultBitmask 4
+
+-- | Copy the partial results of the query even if the final results are not available
+--
+--   bitpos = @3@
+pattern VK_QUERY_RESULT_PARTIAL_BIT :: VkQueryResultBitmask a
+
+pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultBitmask 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueryType VkQueryType registry at www.khronos.org>
+newtype VkQueryType = VkQueryType Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkQueryType where
+        showsPrec _ VK_QUERY_TYPE_OCCLUSION
+          = showString "VK_QUERY_TYPE_OCCLUSION"
+        showsPrec _ VK_QUERY_TYPE_PIPELINE_STATISTICS
+          = showString "VK_QUERY_TYPE_PIPELINE_STATISTICS"
+        showsPrec _ VK_QUERY_TYPE_TIMESTAMP
+          = showString "VK_QUERY_TYPE_TIMESTAMP"
+        showsPrec p (VkQueryType x)
+          = showParen (p >= 11) (showString "VkQueryType " . showsPrec 11 x)
+
+instance Read VkQueryType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUERY_TYPE_OCCLUSION", pure VK_QUERY_TYPE_OCCLUSION),
+                  ("VK_QUERY_TYPE_PIPELINE_STATISTICS",
+                   pure VK_QUERY_TYPE_PIPELINE_STATISTICS),
+                  ("VK_QUERY_TYPE_TIMESTAMP", pure VK_QUERY_TYPE_TIMESTAMP)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueryType") >> (VkQueryType <$> step readPrec)))
+
+pattern VK_QUERY_TYPE_OCCLUSION :: VkQueryType
+
+pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0
+
+-- | Optional
+pattern VK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType
+
+pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1
+
+pattern VK_QUERY_TYPE_TIMESTAMP :: VkQueryType
+
+pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs b/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Queue.hs
@@ -0,0 +1,176 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Queue
+       (VkQueueBitmask(VkQueueBitmask, VkQueueFlags, VkQueueFlagBits,
+                       VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT, VK_QUEUE_TRANSFER_BIT,
+                       VK_QUEUE_SPARSE_BINDING_BIT),
+        VkQueueFlags, VkQueueFlagBits,
+        VkQueueGlobalPriorityEXT(VkQueueGlobalPriorityEXT,
+                                 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
+                                 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
+                                 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
+                                 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkQueueBitmask (a :: FlagType) = VkQueueBitmask VkFlags
+                                           deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkQueueFlags = VkQueueBitmask FlagMask
+
+type VkQueueFlagBits = VkQueueBitmask FlagBit
+
+pattern VkQueueFlagBits :: VkFlags -> VkQueueBitmask FlagBit
+
+pattern VkQueueFlagBits n = VkQueueBitmask n
+
+pattern VkQueueFlags :: VkFlags -> VkQueueBitmask FlagMask
+
+pattern VkQueueFlags n = VkQueueBitmask n
+
+deriving instance Bits (VkQueueBitmask FlagMask)
+
+deriving instance FiniteBits (VkQueueBitmask FlagMask)
+
+deriving instance Integral (VkQueueBitmask FlagMask)
+
+deriving instance Num (VkQueueBitmask FlagMask)
+
+deriving instance Bounded (VkQueueBitmask FlagMask)
+
+deriving instance Enum (VkQueueBitmask FlagMask)
+
+deriving instance Real (VkQueueBitmask FlagMask)
+
+instance Show (VkQueueBitmask a) where
+        showsPrec _ VK_QUEUE_GRAPHICS_BIT
+          = showString "VK_QUEUE_GRAPHICS_BIT"
+        showsPrec _ VK_QUEUE_COMPUTE_BIT
+          = showString "VK_QUEUE_COMPUTE_BIT"
+        showsPrec _ VK_QUEUE_TRANSFER_BIT
+          = showString "VK_QUEUE_TRANSFER_BIT"
+        showsPrec _ VK_QUEUE_SPARSE_BINDING_BIT
+          = showString "VK_QUEUE_SPARSE_BINDING_BIT"
+        showsPrec p (VkQueueBitmask x)
+          = showParen (p >= 11)
+              (showString "VkQueueBitmask " . showsPrec 11 x)
+
+instance Read (VkQueueBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUEUE_GRAPHICS_BIT", pure VK_QUEUE_GRAPHICS_BIT),
+                  ("VK_QUEUE_COMPUTE_BIT", pure VK_QUEUE_COMPUTE_BIT),
+                  ("VK_QUEUE_TRANSFER_BIT", pure VK_QUEUE_TRANSFER_BIT),
+                  ("VK_QUEUE_SPARSE_BINDING_BIT", pure VK_QUEUE_SPARSE_BINDING_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueueBitmask") >>
+                      (VkQueueBitmask <$> step readPrec)))
+
+-- | Queue supports graphics operations
+--
+--   bitpos = @0@
+pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueBitmask a
+
+pattern VK_QUEUE_GRAPHICS_BIT = VkQueueBitmask 1
+
+-- | Queue supports compute operations
+--
+--   bitpos = @1@
+pattern VK_QUEUE_COMPUTE_BIT :: VkQueueBitmask a
+
+pattern VK_QUEUE_COMPUTE_BIT = VkQueueBitmask 2
+
+-- | Queue supports transfer operations
+--
+--   bitpos = @2@
+pattern VK_QUEUE_TRANSFER_BIT :: VkQueueBitmask a
+
+pattern VK_QUEUE_TRANSFER_BIT = VkQueueBitmask 4
+
+-- | Queue supports sparse resource memory management operations
+--
+--   bitpos = @3@
+pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueBitmask a
+
+pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueBitmask 8
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueueGlobalPriorityEXT VkQueueGlobalPriorityEXT registry at www.khronos.org>
+newtype VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityEXT Int32
+                                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkQueueGlobalPriorityEXT where
+        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT
+          = showString "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"
+        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
+          = showString "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"
+        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT
+          = showString "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"
+        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
+          = showString "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"
+        showsPrec p (VkQueueGlobalPriorityEXT x)
+          = showParen (p >= 11)
+              (showString "VkQueueGlobalPriorityEXT " . showsPrec 11 x)
+
+instance Read VkQueueGlobalPriorityEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT",
+                   pure VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT),
+                  ("VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT",
+                   pure VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT),
+                  ("VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT",
+                   pure VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT),
+                  ("VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT",
+                   pure VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkQueueGlobalPriorityEXT") >>
+                      (VkQueueGlobalPriorityEXT <$> step readPrec)))
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT ::
+        VkQueueGlobalPriorityEXT
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT =
+        VkQueueGlobalPriorityEXT 128
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT ::
+        VkQueueGlobalPriorityEXT
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT =
+        VkQueueGlobalPriorityEXT 256
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT ::
+        VkQueueGlobalPriorityEXT
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT =
+        VkQueueGlobalPriorityEXT 512
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT ::
+        VkQueueGlobalPriorityEXT
+
+pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT =
+        VkQueueGlobalPriorityEXT 1024
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs b/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/RasterizationOrderAMD.hs
@@ -0,0 +1,60 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
+       (VkRasterizationOrderAMD(VkRasterizationOrderAMD,
+                                VK_RASTERIZATION_ORDER_STRICT_AMD,
+                                VK_RASTERIZATION_ORDER_RELAXED_AMD))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRasterizationOrderAMD VkRasterizationOrderAMD registry at www.khronos.org>
+newtype VkRasterizationOrderAMD = VkRasterizationOrderAMD Int32
+                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkRasterizationOrderAMD where
+        showsPrec _ VK_RASTERIZATION_ORDER_STRICT_AMD
+          = showString "VK_RASTERIZATION_ORDER_STRICT_AMD"
+        showsPrec _ VK_RASTERIZATION_ORDER_RELAXED_AMD
+          = showString "VK_RASTERIZATION_ORDER_RELAXED_AMD"
+        showsPrec p (VkRasterizationOrderAMD x)
+          = showParen (p >= 11)
+              (showString "VkRasterizationOrderAMD " . showsPrec 11 x)
+
+instance Read VkRasterizationOrderAMD where
+        readPrec
+          = parens
+              (choose
+                 [("VK_RASTERIZATION_ORDER_STRICT_AMD",
+                   pure VK_RASTERIZATION_ORDER_STRICT_AMD),
+                  ("VK_RASTERIZATION_ORDER_RELAXED_AMD",
+                   pure VK_RASTERIZATION_ORDER_RELAXED_AMD)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkRasterizationOrderAMD") >>
+                      (VkRasterizationOrderAMD <$> step readPrec)))
+
+pattern VK_RASTERIZATION_ORDER_STRICT_AMD ::
+        VkRasterizationOrderAMD
+
+pattern VK_RASTERIZATION_ORDER_STRICT_AMD =
+        VkRasterizationOrderAMD 0
+
+pattern VK_RASTERIZATION_ORDER_RELAXED_AMD ::
+        VkRasterizationOrderAMD
+
+pattern VK_RASTERIZATION_ORDER_RELAXED_AMD =
+        VkRasterizationOrderAMD 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/RenderPassCreateFlagBits.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.RenderPassCreateFlagBits
+       (VkRenderPassCreateFlagBits(..)) where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+
+newtype VkRenderPassCreateFlagBits = VkRenderPassCreateFlagBits VkFlags
+                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                 FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkRenderPassCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkRenderPassCreateFlagBits x) = show x
+
+instance Read VkRenderPassCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Result.hs b/src-gen/Graphics/Vulkan/Types/Enum/Result.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Result.hs
@@ -0,0 +1,190 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.Result
+       (VkResult(VkResult, VK_SUCCESS, VK_NOT_READY, VK_TIMEOUT,
+                 VK_EVENT_SET, VK_EVENT_RESET, VK_INCOMPLETE,
+                 VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY,
+                 VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_DEVICE_LOST,
+                 VK_ERROR_MEMORY_MAP_FAILED, VK_ERROR_LAYER_NOT_PRESENT,
+                 VK_ERROR_EXTENSION_NOT_PRESENT, VK_ERROR_FEATURE_NOT_PRESENT,
+                 VK_ERROR_INCOMPATIBLE_DRIVER, VK_ERROR_TOO_MANY_OBJECTS,
+                 VK_ERROR_FORMAT_NOT_SUPPORTED, VK_ERROR_FRAGMENTED_POOL))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | API result codes
+--
+--   type = @enum@
+--
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkResult VkResult registry at www.khronos.org>
+newtype VkResult = VkResult Int32
+                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkResult where
+        showsPrec _ VK_SUCCESS = showString "VK_SUCCESS"
+        showsPrec _ VK_NOT_READY = showString "VK_NOT_READY"
+        showsPrec _ VK_TIMEOUT = showString "VK_TIMEOUT"
+        showsPrec _ VK_EVENT_SET = showString "VK_EVENT_SET"
+        showsPrec _ VK_EVENT_RESET = showString "VK_EVENT_RESET"
+        showsPrec _ VK_INCOMPLETE = showString "VK_INCOMPLETE"
+        showsPrec _ VK_ERROR_OUT_OF_HOST_MEMORY
+          = showString "VK_ERROR_OUT_OF_HOST_MEMORY"
+        showsPrec _ VK_ERROR_OUT_OF_DEVICE_MEMORY
+          = showString "VK_ERROR_OUT_OF_DEVICE_MEMORY"
+        showsPrec _ VK_ERROR_INITIALIZATION_FAILED
+          = showString "VK_ERROR_INITIALIZATION_FAILED"
+        showsPrec _ VK_ERROR_DEVICE_LOST
+          = showString "VK_ERROR_DEVICE_LOST"
+        showsPrec _ VK_ERROR_MEMORY_MAP_FAILED
+          = showString "VK_ERROR_MEMORY_MAP_FAILED"
+        showsPrec _ VK_ERROR_LAYER_NOT_PRESENT
+          = showString "VK_ERROR_LAYER_NOT_PRESENT"
+        showsPrec _ VK_ERROR_EXTENSION_NOT_PRESENT
+          = showString "VK_ERROR_EXTENSION_NOT_PRESENT"
+        showsPrec _ VK_ERROR_FEATURE_NOT_PRESENT
+          = showString "VK_ERROR_FEATURE_NOT_PRESENT"
+        showsPrec _ VK_ERROR_INCOMPATIBLE_DRIVER
+          = showString "VK_ERROR_INCOMPATIBLE_DRIVER"
+        showsPrec _ VK_ERROR_TOO_MANY_OBJECTS
+          = showString "VK_ERROR_TOO_MANY_OBJECTS"
+        showsPrec _ VK_ERROR_FORMAT_NOT_SUPPORTED
+          = showString "VK_ERROR_FORMAT_NOT_SUPPORTED"
+        showsPrec _ VK_ERROR_FRAGMENTED_POOL
+          = showString "VK_ERROR_FRAGMENTED_POOL"
+        showsPrec p (VkResult x)
+          = showParen (p >= 11) (showString "VkResult " . showsPrec 11 x)
+
+instance Read VkResult where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SUCCESS", pure VK_SUCCESS),
+                  ("VK_NOT_READY", pure VK_NOT_READY),
+                  ("VK_TIMEOUT", pure VK_TIMEOUT),
+                  ("VK_EVENT_SET", pure VK_EVENT_SET),
+                  ("VK_EVENT_RESET", pure VK_EVENT_RESET),
+                  ("VK_INCOMPLETE", pure VK_INCOMPLETE),
+                  ("VK_ERROR_OUT_OF_HOST_MEMORY", pure VK_ERROR_OUT_OF_HOST_MEMORY),
+                  ("VK_ERROR_OUT_OF_DEVICE_MEMORY",
+                   pure VK_ERROR_OUT_OF_DEVICE_MEMORY),
+                  ("VK_ERROR_INITIALIZATION_FAILED",
+                   pure VK_ERROR_INITIALIZATION_FAILED),
+                  ("VK_ERROR_DEVICE_LOST", pure VK_ERROR_DEVICE_LOST),
+                  ("VK_ERROR_MEMORY_MAP_FAILED", pure VK_ERROR_MEMORY_MAP_FAILED),
+                  ("VK_ERROR_LAYER_NOT_PRESENT", pure VK_ERROR_LAYER_NOT_PRESENT),
+                  ("VK_ERROR_EXTENSION_NOT_PRESENT",
+                   pure VK_ERROR_EXTENSION_NOT_PRESENT),
+                  ("VK_ERROR_FEATURE_NOT_PRESENT",
+                   pure VK_ERROR_FEATURE_NOT_PRESENT),
+                  ("VK_ERROR_INCOMPATIBLE_DRIVER",
+                   pure VK_ERROR_INCOMPATIBLE_DRIVER),
+                  ("VK_ERROR_TOO_MANY_OBJECTS", pure VK_ERROR_TOO_MANY_OBJECTS),
+                  ("VK_ERROR_FORMAT_NOT_SUPPORTED",
+                   pure VK_ERROR_FORMAT_NOT_SUPPORTED),
+                  ("VK_ERROR_FRAGMENTED_POOL", pure VK_ERROR_FRAGMENTED_POOL)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkResult") >> (VkResult <$> step readPrec)))
+
+-- | Command completed successfully
+pattern VK_SUCCESS :: VkResult
+
+pattern VK_SUCCESS = VkResult 0
+
+-- | A fence or query has not yet completed
+pattern VK_NOT_READY :: VkResult
+
+pattern VK_NOT_READY = VkResult 1
+
+-- | A wait operation has not completed in the specified time
+pattern VK_TIMEOUT :: VkResult
+
+pattern VK_TIMEOUT = VkResult 2
+
+-- | An event is signaled
+pattern VK_EVENT_SET :: VkResult
+
+pattern VK_EVENT_SET = VkResult 3
+
+-- | An event is unsignaled
+pattern VK_EVENT_RESET :: VkResult
+
+pattern VK_EVENT_RESET = VkResult 4
+
+-- | A return array was too small for the result
+pattern VK_INCOMPLETE :: VkResult
+
+pattern VK_INCOMPLETE = VkResult 5
+
+-- | A host memory allocation has failed
+pattern VK_ERROR_OUT_OF_HOST_MEMORY :: VkResult
+
+pattern VK_ERROR_OUT_OF_HOST_MEMORY = VkResult (-1)
+
+-- | A device memory allocation has failed
+pattern VK_ERROR_OUT_OF_DEVICE_MEMORY :: VkResult
+
+pattern VK_ERROR_OUT_OF_DEVICE_MEMORY = VkResult (-2)
+
+-- | Initialization of a object has failed
+pattern VK_ERROR_INITIALIZATION_FAILED :: VkResult
+
+pattern VK_ERROR_INITIALIZATION_FAILED = VkResult (-3)
+
+-- | The logical device has been lost. See <<devsandqueues-lost-device>>
+pattern VK_ERROR_DEVICE_LOST :: VkResult
+
+pattern VK_ERROR_DEVICE_LOST = VkResult (-4)
+
+-- | Mapping of a memory object has failed
+pattern VK_ERROR_MEMORY_MAP_FAILED :: VkResult
+
+pattern VK_ERROR_MEMORY_MAP_FAILED = VkResult (-5)
+
+-- | Layer specified does not exist
+pattern VK_ERROR_LAYER_NOT_PRESENT :: VkResult
+
+pattern VK_ERROR_LAYER_NOT_PRESENT = VkResult (-6)
+
+-- | Extension specified does not exist
+pattern VK_ERROR_EXTENSION_NOT_PRESENT :: VkResult
+
+pattern VK_ERROR_EXTENSION_NOT_PRESENT = VkResult (-7)
+
+-- | Requested feature is not available on this device
+pattern VK_ERROR_FEATURE_NOT_PRESENT :: VkResult
+
+pattern VK_ERROR_FEATURE_NOT_PRESENT = VkResult (-8)
+
+-- | Unable to find a Vulkan driver
+pattern VK_ERROR_INCOMPATIBLE_DRIVER :: VkResult
+
+pattern VK_ERROR_INCOMPATIBLE_DRIVER = VkResult (-9)
+
+-- | Too many objects of the type have already been created
+pattern VK_ERROR_TOO_MANY_OBJECTS :: VkResult
+
+pattern VK_ERROR_TOO_MANY_OBJECTS = VkResult (-10)
+
+-- | Requested format is not supported on this device
+pattern VK_ERROR_FORMAT_NOT_SUPPORTED :: VkResult
+
+pattern VK_ERROR_FORMAT_NOT_SUPPORTED = VkResult (-11)
+
+-- | A requested pool allocation has failed due to fragmentation of the pool's memory
+pattern VK_ERROR_FRAGMENTED_POOL :: VkResult
+
+pattern VK_ERROR_FRAGMENTED_POOL = VkResult (-12)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SampleCountFlags.hs
@@ -0,0 +1,145 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.SampleCountFlags
+       (VkSampleCountBitmask(VkSampleCountBitmask, VkSampleCountFlags,
+                             VkSampleCountFlagBits, VK_SAMPLE_COUNT_1_BIT,
+                             VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_4_BIT,
+                             VK_SAMPLE_COUNT_8_BIT, VK_SAMPLE_COUNT_16_BIT,
+                             VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT),
+        VkSampleCountFlags, VkSampleCountFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSampleCountBitmask (a ::
+                                FlagType) = VkSampleCountBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSampleCountFlags = VkSampleCountBitmask FlagMask
+
+type VkSampleCountFlagBits = VkSampleCountBitmask FlagBit
+
+pattern VkSampleCountFlagBits ::
+        VkFlags -> VkSampleCountBitmask FlagBit
+
+pattern VkSampleCountFlagBits n = VkSampleCountBitmask n
+
+pattern VkSampleCountFlags ::
+        VkFlags -> VkSampleCountBitmask FlagMask
+
+pattern VkSampleCountFlags n = VkSampleCountBitmask n
+
+deriving instance Bits (VkSampleCountBitmask FlagMask)
+
+deriving instance FiniteBits (VkSampleCountBitmask FlagMask)
+
+deriving instance Integral (VkSampleCountBitmask FlagMask)
+
+deriving instance Num (VkSampleCountBitmask FlagMask)
+
+deriving instance Bounded (VkSampleCountBitmask FlagMask)
+
+deriving instance Enum (VkSampleCountBitmask FlagMask)
+
+deriving instance Real (VkSampleCountBitmask FlagMask)
+
+instance Show (VkSampleCountBitmask a) where
+        showsPrec _ VK_SAMPLE_COUNT_1_BIT
+          = showString "VK_SAMPLE_COUNT_1_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_2_BIT
+          = showString "VK_SAMPLE_COUNT_2_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_4_BIT
+          = showString "VK_SAMPLE_COUNT_4_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_8_BIT
+          = showString "VK_SAMPLE_COUNT_8_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_16_BIT
+          = showString "VK_SAMPLE_COUNT_16_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_32_BIT
+          = showString "VK_SAMPLE_COUNT_32_BIT"
+        showsPrec _ VK_SAMPLE_COUNT_64_BIT
+          = showString "VK_SAMPLE_COUNT_64_BIT"
+        showsPrec p (VkSampleCountBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSampleCountBitmask " . showsPrec 11 x)
+
+instance Read (VkSampleCountBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLE_COUNT_1_BIT", pure VK_SAMPLE_COUNT_1_BIT),
+                  ("VK_SAMPLE_COUNT_2_BIT", pure VK_SAMPLE_COUNT_2_BIT),
+                  ("VK_SAMPLE_COUNT_4_BIT", pure VK_SAMPLE_COUNT_4_BIT),
+                  ("VK_SAMPLE_COUNT_8_BIT", pure VK_SAMPLE_COUNT_8_BIT),
+                  ("VK_SAMPLE_COUNT_16_BIT", pure VK_SAMPLE_COUNT_16_BIT),
+                  ("VK_SAMPLE_COUNT_32_BIT", pure VK_SAMPLE_COUNT_32_BIT),
+                  ("VK_SAMPLE_COUNT_64_BIT", pure VK_SAMPLE_COUNT_64_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSampleCountBitmask") >>
+                      (VkSampleCountBitmask <$> step readPrec)))
+
+-- | Sample count 1 supported
+--
+--   bitpos = @0@
+pattern VK_SAMPLE_COUNT_1_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_1_BIT = VkSampleCountBitmask 1
+
+-- | Sample count 2 supported
+--
+--   bitpos = @1@
+pattern VK_SAMPLE_COUNT_2_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_2_BIT = VkSampleCountBitmask 2
+
+-- | Sample count 4 supported
+--
+--   bitpos = @2@
+pattern VK_SAMPLE_COUNT_4_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_4_BIT = VkSampleCountBitmask 4
+
+-- | Sample count 8 supported
+--
+--   bitpos = @3@
+pattern VK_SAMPLE_COUNT_8_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_8_BIT = VkSampleCountBitmask 8
+
+-- | Sample count 16 supported
+--
+--   bitpos = @4@
+pattern VK_SAMPLE_COUNT_16_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_16_BIT = VkSampleCountBitmask 16
+
+-- | Sample count 32 supported
+--
+--   bitpos = @5@
+pattern VK_SAMPLE_COUNT_32_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_32_BIT = VkSampleCountBitmask 32
+
+-- | Sample count 64 supported
+--
+--   bitpos = @6@
+pattern VK_SAMPLE_COUNT_64_BIT :: VkSampleCountBitmask a
+
+pattern VK_SAMPLE_COUNT_64_BIT = VkSampleCountBitmask 64
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs b/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Sampler.hs
@@ -0,0 +1,339 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.Sampler
+       (VkSamplerAddressMode(VkSamplerAddressMode,
+                             VK_SAMPLER_ADDRESS_MODE_REPEAT,
+                             VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
+                             VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
+                             VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER),
+        VkSamplerCreateFlagBits(..),
+        VkSamplerMipmapMode(VkSamplerMipmapMode,
+                            VK_SAMPLER_MIPMAP_MODE_NEAREST, VK_SAMPLER_MIPMAP_MODE_LINEAR),
+        VkSamplerReductionModeEXT(VkSamplerReductionModeEXT,
+                                  VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
+                                  VK_SAMPLER_REDUCTION_MODE_MIN_EXT,
+                                  VK_SAMPLER_REDUCTION_MODE_MAX_EXT),
+        VkSamplerYcbcrModelConversion(VkSamplerYcbcrModelConversion,
+                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
+                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
+                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
+                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
+                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020),
+        VkSamplerYcbcrModelConversionKHR(..),
+        VkSamplerYcbcrRange(VkSamplerYcbcrRange,
+                            VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
+                            VK_SAMPLER_YCBCR_RANGE_ITU_NARROW),
+        VkSamplerYcbcrRangeKHR(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerAddressMode VkSamplerAddressMode registry at www.khronos.org>
+newtype VkSamplerAddressMode = VkSamplerAddressMode Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSamplerAddressMode where
+        showsPrec _ VK_SAMPLER_ADDRESS_MODE_REPEAT
+          = showString "VK_SAMPLER_ADDRESS_MODE_REPEAT"
+        showsPrec _ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
+          = showString "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"
+        showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
+          = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"
+        showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
+          = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"
+        showsPrec p (VkSamplerAddressMode x)
+          = showParen (p >= 11)
+              (showString "VkSamplerAddressMode " . showsPrec 11 x)
+
+instance Read VkSamplerAddressMode where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLER_ADDRESS_MODE_REPEAT",
+                   pure VK_SAMPLER_ADDRESS_MODE_REPEAT),
+                  ("VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT",
+                   pure VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT),
+                  ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE",
+                   pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE),
+                  ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER",
+                   pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSamplerAddressMode") >>
+                      (VkSamplerAddressMode <$> step readPrec)))
+
+pattern VK_SAMPLER_ADDRESS_MODE_REPEAT :: VkSamplerAddressMode
+
+pattern VK_SAMPLER_ADDRESS_MODE_REPEAT = VkSamplerAddressMode 0
+
+pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT ::
+        VkSamplerAddressMode
+
+pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT =
+        VkSamplerAddressMode 1
+
+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE ::
+        VkSamplerAddressMode
+
+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE =
+        VkSamplerAddressMode 2
+
+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER ::
+        VkSamplerAddressMode
+
+pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER =
+        VkSamplerAddressMode 3
+
+newtype VkSamplerCreateFlagBits = VkSamplerCreateFlagBits VkFlags
+                                    deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                              FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkSamplerCreateFlagBits where
+        {-# INLINE show #-}
+        show (VkSamplerCreateFlagBits x) = show x
+
+instance Read VkSamplerCreateFlagBits where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerMipmapMode VkSamplerMipmapMode registry at www.khronos.org>
+newtype VkSamplerMipmapMode = VkSamplerMipmapMode Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSamplerMipmapMode where
+        showsPrec _ VK_SAMPLER_MIPMAP_MODE_NEAREST
+          = showString "VK_SAMPLER_MIPMAP_MODE_NEAREST"
+        showsPrec _ VK_SAMPLER_MIPMAP_MODE_LINEAR
+          = showString "VK_SAMPLER_MIPMAP_MODE_LINEAR"
+        showsPrec p (VkSamplerMipmapMode x)
+          = showParen (p >= 11)
+              (showString "VkSamplerMipmapMode " . showsPrec 11 x)
+
+instance Read VkSamplerMipmapMode where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLER_MIPMAP_MODE_NEAREST",
+                   pure VK_SAMPLER_MIPMAP_MODE_NEAREST),
+                  ("VK_SAMPLER_MIPMAP_MODE_LINEAR",
+                   pure VK_SAMPLER_MIPMAP_MODE_LINEAR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSamplerMipmapMode") >>
+                      (VkSamplerMipmapMode <$> step readPrec)))
+
+-- | Choose nearest mip level
+pattern VK_SAMPLER_MIPMAP_MODE_NEAREST :: VkSamplerMipmapMode
+
+pattern VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode 0
+
+-- | Linear filter between mip levels
+pattern VK_SAMPLER_MIPMAP_MODE_LINEAR :: VkSamplerMipmapMode
+
+pattern VK_SAMPLER_MIPMAP_MODE_LINEAR = VkSamplerMipmapMode 1
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerReductionModeEXT VkSamplerReductionModeEXT registry at www.khronos.org>
+newtype VkSamplerReductionModeEXT = VkSamplerReductionModeEXT Int32
+                                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                Generic)
+
+instance Show VkSamplerReductionModeEXT where
+        showsPrec _ VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT
+          = showString "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT"
+        showsPrec _ VK_SAMPLER_REDUCTION_MODE_MIN_EXT
+          = showString "VK_SAMPLER_REDUCTION_MODE_MIN_EXT"
+        showsPrec _ VK_SAMPLER_REDUCTION_MODE_MAX_EXT
+          = showString "VK_SAMPLER_REDUCTION_MODE_MAX_EXT"
+        showsPrec p (VkSamplerReductionModeEXT x)
+          = showParen (p >= 11)
+              (showString "VkSamplerReductionModeEXT " . showsPrec 11 x)
+
+instance Read VkSamplerReductionModeEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT",
+                   pure VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT),
+                  ("VK_SAMPLER_REDUCTION_MODE_MIN_EXT",
+                   pure VK_SAMPLER_REDUCTION_MODE_MIN_EXT),
+                  ("VK_SAMPLER_REDUCTION_MODE_MAX_EXT",
+                   pure VK_SAMPLER_REDUCTION_MODE_MAX_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSamplerReductionModeEXT") >>
+                      (VkSamplerReductionModeEXT <$> step readPrec)))
+
+pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT ::
+        VkSamplerReductionModeEXT
+
+pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT =
+        VkSamplerReductionModeEXT 0
+
+pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT ::
+        VkSamplerReductionModeEXT
+
+pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT =
+        VkSamplerReductionModeEXT 1
+
+pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT ::
+        VkSamplerReductionModeEXT
+
+pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT =
+        VkSamplerReductionModeEXT 2
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversion registry at www.khronos.org>
+newtype VkSamplerYcbcrModelConversion = VkSamplerYcbcrModelConversion Int32
+                                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                    Generic)
+
+instance Show VkSamplerYcbcrModelConversion where
+        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY
+          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"
+        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY
+          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"
+        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
+          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"
+        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
+          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"
+        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
+          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"
+        showsPrec p (VkSamplerYcbcrModelConversion x)
+          = showParen (p >= 11)
+              (showString "VkSamplerYcbcrModelConversion " . showsPrec 11 x)
+
+instance Read VkSamplerYcbcrModelConversion where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY",
+                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY),
+                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY",
+                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY),
+                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709",
+                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709),
+                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601",
+                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601),
+                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020",
+                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSamplerYcbcrModelConversion") >>
+                      (VkSamplerYcbcrModelConversion <$> step readPrec)))
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY ::
+        VkSamplerYcbcrModelConversion
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY =
+        VkSamplerYcbcrModelConversion 0
+
+-- | just range expansion
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY ::
+        VkSamplerYcbcrModelConversion
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY =
+        VkSamplerYcbcrModelConversion 1
+
+-- | aka HD YUV
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 ::
+        VkSamplerYcbcrModelConversion
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 =
+        VkSamplerYcbcrModelConversion 2
+
+-- | aka SD YUV
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 ::
+        VkSamplerYcbcrModelConversion
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 =
+        VkSamplerYcbcrModelConversion 3
+
+-- | aka UHD YUV
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 ::
+        VkSamplerYcbcrModelConversion
+
+pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 =
+        VkSamplerYcbcrModelConversion 4
+
+newtype VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversionKHR VkFlags
+                                             deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                       FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkSamplerYcbcrModelConversionKHR where
+        {-# INLINE show #-}
+        show (VkSamplerYcbcrModelConversionKHR x) = show x
+
+instance Read VkSamplerYcbcrModelConversionKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrRange VkSamplerYcbcrRange registry at www.khronos.org>
+newtype VkSamplerYcbcrRange = VkSamplerYcbcrRange Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSamplerYcbcrRange where
+        showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_FULL
+          = showString "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"
+        showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
+          = showString "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"
+        showsPrec p (VkSamplerYcbcrRange x)
+          = showParen (p >= 11)
+              (showString "VkSamplerYcbcrRange " . showsPrec 11 x)
+
+instance Read VkSamplerYcbcrRange where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SAMPLER_YCBCR_RANGE_ITU_FULL",
+                   pure VK_SAMPLER_YCBCR_RANGE_ITU_FULL),
+                  ("VK_SAMPLER_YCBCR_RANGE_ITU_NARROW",
+                   pure VK_SAMPLER_YCBCR_RANGE_ITU_NARROW)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSamplerYcbcrRange") >>
+                      (VkSamplerYcbcrRange <$> step readPrec)))
+
+-- | Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)
+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL :: VkSamplerYcbcrRange
+
+pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL = VkSamplerYcbcrRange 0
+
+-- | Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240
+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW :: VkSamplerYcbcrRange
+
+pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = VkSamplerYcbcrRange 1
+
+newtype VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRangeKHR VkFlags
+                                   deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                             FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkSamplerYcbcrRangeKHR where
+        {-# INLINE show #-}
+        show (VkSamplerYcbcrRangeKHR x) = show x
+
+instance Read VkSamplerYcbcrRangeKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs b/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SemaphoreImportFlag.hs
@@ -0,0 +1,98 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+       (VkSemaphoreImportFlagBitsKHR(..),
+        VkSemaphoreImportBitmask(VkSemaphoreImportBitmask,
+                                 VkSemaphoreImportFlags, VkSemaphoreImportFlagBits,
+                                 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT),
+        VkSemaphoreImportFlags, VkSemaphoreImportFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBitsKHR VkFlags
+                                         deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                   FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkSemaphoreImportFlagBitsKHR where
+        {-# INLINE show #-}
+        show (VkSemaphoreImportFlagBitsKHR x) = show x
+
+instance Read VkSemaphoreImportFlagBitsKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
+
+newtype VkSemaphoreImportBitmask (a ::
+                                    FlagType) = VkSemaphoreImportBitmask VkFlags
+                                                  deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSemaphoreImportFlags = VkSemaphoreImportBitmask FlagMask
+
+type VkSemaphoreImportFlagBits = VkSemaphoreImportBitmask FlagBit
+
+pattern VkSemaphoreImportFlagBits ::
+        VkFlags -> VkSemaphoreImportBitmask FlagBit
+
+pattern VkSemaphoreImportFlagBits n = VkSemaphoreImportBitmask n
+
+pattern VkSemaphoreImportFlags ::
+        VkFlags -> VkSemaphoreImportBitmask FlagMask
+
+pattern VkSemaphoreImportFlags n = VkSemaphoreImportBitmask n
+
+deriving instance Bits (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance FiniteBits (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance Integral (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance Num (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance Bounded (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance Enum (VkSemaphoreImportBitmask FlagMask)
+
+deriving instance Real (VkSemaphoreImportBitmask FlagMask)
+
+instance Show (VkSemaphoreImportBitmask a) where
+        showsPrec _ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
+          = showString "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"
+        showsPrec p (VkSemaphoreImportBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSemaphoreImportBitmask " . showsPrec 11 x)
+
+instance Read (VkSemaphoreImportBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SEMAPHORE_IMPORT_TEMPORARY_BIT",
+                   pure VK_SEMAPHORE_IMPORT_TEMPORARY_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSemaphoreImportBitmask") >>
+                      (VkSemaphoreImportBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT ::
+        VkSemaphoreImportBitmask a
+
+pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT =
+        VkSemaphoreImportBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs b/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Shader.hs
@@ -0,0 +1,195 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Shader
+       (VkShaderInfoTypeAMD(VkShaderInfoTypeAMD,
+                            VK_SHADER_INFO_TYPE_STATISTICS_AMD, VK_SHADER_INFO_TYPE_BINARY_AMD,
+                            VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD),
+        VkShaderStageBitmask(VkShaderStageBitmask, VkShaderStageFlags,
+                             VkShaderStageFlagBits, VK_SHADER_STAGE_VERTEX_BIT,
+                             VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
+                             VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
+                             VK_SHADER_STAGE_GEOMETRY_BIT, VK_SHADER_STAGE_FRAGMENT_BIT,
+                             VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_ALL_GRAPHICS,
+                             VK_SHADER_STAGE_ALL),
+        VkShaderStageFlags, VkShaderStageFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderInfoTypeAMD VkShaderInfoTypeAMD registry at www.khronos.org>
+newtype VkShaderInfoTypeAMD = VkShaderInfoTypeAMD Int32
+                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkShaderInfoTypeAMD where
+        showsPrec _ VK_SHADER_INFO_TYPE_STATISTICS_AMD
+          = showString "VK_SHADER_INFO_TYPE_STATISTICS_AMD"
+        showsPrec _ VK_SHADER_INFO_TYPE_BINARY_AMD
+          = showString "VK_SHADER_INFO_TYPE_BINARY_AMD"
+        showsPrec _ VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
+          = showString "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"
+        showsPrec p (VkShaderInfoTypeAMD x)
+          = showParen (p >= 11)
+              (showString "VkShaderInfoTypeAMD " . showsPrec 11 x)
+
+instance Read VkShaderInfoTypeAMD where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SHADER_INFO_TYPE_STATISTICS_AMD",
+                   pure VK_SHADER_INFO_TYPE_STATISTICS_AMD),
+                  ("VK_SHADER_INFO_TYPE_BINARY_AMD",
+                   pure VK_SHADER_INFO_TYPE_BINARY_AMD),
+                  ("VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD",
+                   pure VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkShaderInfoTypeAMD") >>
+                      (VkShaderInfoTypeAMD <$> step readPrec)))
+
+pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD :: VkShaderInfoTypeAMD
+
+pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD = VkShaderInfoTypeAMD 0
+
+pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD
+
+pattern VK_SHADER_INFO_TYPE_BINARY_AMD = VkShaderInfoTypeAMD 1
+
+pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD :: VkShaderInfoTypeAMD
+
+pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = VkShaderInfoTypeAMD 2
+
+newtype VkShaderStageBitmask (a ::
+                                FlagType) = VkShaderStageBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkShaderStageFlags = VkShaderStageBitmask FlagMask
+
+type VkShaderStageFlagBits = VkShaderStageBitmask FlagBit
+
+pattern VkShaderStageFlagBits ::
+        VkFlags -> VkShaderStageBitmask FlagBit
+
+pattern VkShaderStageFlagBits n = VkShaderStageBitmask n
+
+pattern VkShaderStageFlags ::
+        VkFlags -> VkShaderStageBitmask FlagMask
+
+pattern VkShaderStageFlags n = VkShaderStageBitmask n
+
+deriving instance Bits (VkShaderStageBitmask FlagMask)
+
+deriving instance FiniteBits (VkShaderStageBitmask FlagMask)
+
+deriving instance Integral (VkShaderStageBitmask FlagMask)
+
+deriving instance Num (VkShaderStageBitmask FlagMask)
+
+deriving instance Bounded (VkShaderStageBitmask FlagMask)
+
+deriving instance Enum (VkShaderStageBitmask FlagMask)
+
+deriving instance Real (VkShaderStageBitmask FlagMask)
+
+instance Show (VkShaderStageBitmask a) where
+        showsPrec _ VK_SHADER_STAGE_VERTEX_BIT
+          = showString "VK_SHADER_STAGE_VERTEX_BIT"
+        showsPrec _ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
+          = showString "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"
+        showsPrec _ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
+          = showString "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"
+        showsPrec _ VK_SHADER_STAGE_GEOMETRY_BIT
+          = showString "VK_SHADER_STAGE_GEOMETRY_BIT"
+        showsPrec _ VK_SHADER_STAGE_FRAGMENT_BIT
+          = showString "VK_SHADER_STAGE_FRAGMENT_BIT"
+        showsPrec _ VK_SHADER_STAGE_COMPUTE_BIT
+          = showString "VK_SHADER_STAGE_COMPUTE_BIT"
+        showsPrec _ VK_SHADER_STAGE_ALL_GRAPHICS
+          = showString "VK_SHADER_STAGE_ALL_GRAPHICS"
+        showsPrec _ VK_SHADER_STAGE_ALL = showString "VK_SHADER_STAGE_ALL"
+        showsPrec p (VkShaderStageBitmask x)
+          = showParen (p >= 11)
+              (showString "VkShaderStageBitmask " . showsPrec 11 x)
+
+instance Read (VkShaderStageBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SHADER_STAGE_VERTEX_BIT", pure VK_SHADER_STAGE_VERTEX_BIT),
+                  ("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT",
+                   pure VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT),
+                  ("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT",
+                   pure VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT),
+                  ("VK_SHADER_STAGE_GEOMETRY_BIT",
+                   pure VK_SHADER_STAGE_GEOMETRY_BIT),
+                  ("VK_SHADER_STAGE_FRAGMENT_BIT",
+                   pure VK_SHADER_STAGE_FRAGMENT_BIT),
+                  ("VK_SHADER_STAGE_COMPUTE_BIT", pure VK_SHADER_STAGE_COMPUTE_BIT),
+                  ("VK_SHADER_STAGE_ALL_GRAPHICS",
+                   pure VK_SHADER_STAGE_ALL_GRAPHICS),
+                  ("VK_SHADER_STAGE_ALL", pure VK_SHADER_STAGE_ALL)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkShaderStageBitmask") >>
+                      (VkShaderStageBitmask <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageBitmask 1
+
+-- | bitpos = @1@
+pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT ::
+        VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT =
+        VkShaderStageBitmask 2
+
+-- | bitpos = @2@
+pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT ::
+        VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT =
+        VkShaderStageBitmask 4
+
+-- | bitpos = @3@
+pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageBitmask 8
+
+-- | bitpos = @4@
+pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageBitmask 16
+
+-- | bitpos = @5@
+pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageBitmask 32
+
+pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageBitmask 31
+
+pattern VK_SHADER_STAGE_ALL :: VkShaderStageBitmask a
+
+pattern VK_SHADER_STAGE_ALL = VkShaderStageBitmask 2147483647
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SharingMode.hs
@@ -0,0 +1,53 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.SharingMode
+       (VkSharingMode(VkSharingMode, VK_SHARING_MODE_EXCLUSIVE,
+                      VK_SHARING_MODE_CONCURRENT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSharingMode VkSharingMode registry at www.khronos.org>
+newtype VkSharingMode = VkSharingMode Int32
+                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSharingMode where
+        showsPrec _ VK_SHARING_MODE_EXCLUSIVE
+          = showString "VK_SHARING_MODE_EXCLUSIVE"
+        showsPrec _ VK_SHARING_MODE_CONCURRENT
+          = showString "VK_SHARING_MODE_CONCURRENT"
+        showsPrec p (VkSharingMode x)
+          = showParen (p >= 11)
+              (showString "VkSharingMode " . showsPrec 11 x)
+
+instance Read VkSharingMode where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SHARING_MODE_EXCLUSIVE", pure VK_SHARING_MODE_EXCLUSIVE),
+                  ("VK_SHARING_MODE_CONCURRENT", pure VK_SHARING_MODE_CONCURRENT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSharingMode") >>
+                      (VkSharingMode <$> step readPrec)))
+
+pattern VK_SHARING_MODE_EXCLUSIVE :: VkSharingMode
+
+pattern VK_SHARING_MODE_EXCLUSIVE = VkSharingMode 0
+
+pattern VK_SHARING_MODE_CONCURRENT :: VkSharingMode
+
+pattern VK_SHARING_MODE_CONCURRENT = VkSharingMode 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs b/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Sparse.hs
@@ -0,0 +1,179 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Sparse
+       (VkSparseImageFormatBitmask(VkSparseImageFormatBitmask,
+                                   VkSparseImageFormatFlags, VkSparseImageFormatFlagBits,
+                                   VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
+                                   VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
+                                   VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT),
+        VkSparseImageFormatFlags, VkSparseImageFormatFlagBits,
+        VkSparseMemoryBindBitmask(VkSparseMemoryBindBitmask,
+                                  VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits,
+                                  VK_SPARSE_MEMORY_BIND_METADATA_BIT),
+        VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSparseImageFormatBitmask (a ::
+                                      FlagType) = VkSparseImageFormatBitmask VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSparseImageFormatFlags = VkSparseImageFormatBitmask FlagMask
+
+type VkSparseImageFormatFlagBits =
+     VkSparseImageFormatBitmask FlagBit
+
+pattern VkSparseImageFormatFlagBits ::
+        VkFlags -> VkSparseImageFormatBitmask FlagBit
+
+pattern VkSparseImageFormatFlagBits n =
+        VkSparseImageFormatBitmask n
+
+pattern VkSparseImageFormatFlags ::
+        VkFlags -> VkSparseImageFormatBitmask FlagMask
+
+pattern VkSparseImageFormatFlags n = VkSparseImageFormatBitmask n
+
+deriving instance Bits (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance FiniteBits (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance Integral (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance Num (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance Bounded (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance Enum (VkSparseImageFormatBitmask FlagMask)
+
+deriving instance Real (VkSparseImageFormatBitmask FlagMask)
+
+instance Show (VkSparseImageFormatBitmask a) where
+        showsPrec _ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
+          = showString "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"
+        showsPrec _ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
+          = showString "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"
+        showsPrec _ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
+          = showString "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"
+        showsPrec p (VkSparseImageFormatBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSparseImageFormatBitmask " . showsPrec 11 x)
+
+instance Read (VkSparseImageFormatBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT",
+                   pure VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT),
+                  ("VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT",
+                   pure VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT),
+                  ("VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT",
+                   pure VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSparseImageFormatBitmask") >>
+                      (VkSparseImageFormatBitmask <$> step readPrec)))
+
+-- | Image uses a single mip tail region for all array layers
+--
+--   bitpos = @0@
+pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT ::
+        VkSparseImageFormatBitmask a
+
+pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT =
+        VkSparseImageFormatBitmask 1
+
+-- | Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels.
+--
+--   bitpos = @1@
+pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT ::
+        VkSparseImageFormatBitmask a
+
+pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT =
+        VkSparseImageFormatBitmask 2
+
+-- | Image uses a non-standard sparse image block dimensions
+--
+--   bitpos = @2@
+pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT ::
+        VkSparseImageFormatBitmask a
+
+pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT =
+        VkSparseImageFormatBitmask 4
+
+newtype VkSparseMemoryBindBitmask (a ::
+                                     FlagType) = VkSparseMemoryBindBitmask VkFlags
+                                                   deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSparseMemoryBindFlags = VkSparseMemoryBindBitmask FlagMask
+
+type VkSparseMemoryBindFlagBits = VkSparseMemoryBindBitmask FlagBit
+
+pattern VkSparseMemoryBindFlagBits ::
+        VkFlags -> VkSparseMemoryBindBitmask FlagBit
+
+pattern VkSparseMemoryBindFlagBits n = VkSparseMemoryBindBitmask n
+
+pattern VkSparseMemoryBindFlags ::
+        VkFlags -> VkSparseMemoryBindBitmask FlagMask
+
+pattern VkSparseMemoryBindFlags n = VkSparseMemoryBindBitmask n
+
+deriving instance Bits (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance FiniteBits (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance Integral (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance Num (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance Bounded (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance Enum (VkSparseMemoryBindBitmask FlagMask)
+
+deriving instance Real (VkSparseMemoryBindBitmask FlagMask)
+
+instance Show (VkSparseMemoryBindBitmask a) where
+        showsPrec _ VK_SPARSE_MEMORY_BIND_METADATA_BIT
+          = showString "VK_SPARSE_MEMORY_BIND_METADATA_BIT"
+        showsPrec p (VkSparseMemoryBindBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSparseMemoryBindBitmask " . showsPrec 11 x)
+
+instance Read (VkSparseMemoryBindBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SPARSE_MEMORY_BIND_METADATA_BIT",
+                   pure VK_SPARSE_MEMORY_BIND_METADATA_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSparseMemoryBindBitmask") >>
+                      (VkSparseMemoryBindBitmask <$> step readPrec)))
+
+-- | Operation binds resource metadata to memory
+--
+--   bitpos = @0@
+pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT ::
+        VkSparseMemoryBindBitmask a
+
+pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT =
+        VkSparseMemoryBindBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs b/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Stencil.hs
@@ -0,0 +1,183 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Stencil
+       (VkStencilFaceBitmask(VkStencilFaceBitmask, VkStencilFaceFlags,
+                             VkStencilFaceFlagBits, VK_STENCIL_FACE_FRONT_BIT,
+                             VK_STENCIL_FACE_BACK_BIT, VK_STENCIL_FRONT_AND_BACK),
+        VkStencilFaceFlags, VkStencilFaceFlagBits,
+        VkStencilOp(VkStencilOp, VK_STENCIL_OP_KEEP, VK_STENCIL_OP_ZERO,
+                    VK_STENCIL_OP_REPLACE, VK_STENCIL_OP_INCREMENT_AND_CLAMP,
+                    VK_STENCIL_OP_DECREMENT_AND_CLAMP, VK_STENCIL_OP_INVERT,
+                    VK_STENCIL_OP_INCREMENT_AND_WRAP,
+                    VK_STENCIL_OP_DECREMENT_AND_WRAP))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkStencilFaceBitmask (a ::
+                                FlagType) = VkStencilFaceBitmask VkFlags
+                                              deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkStencilFaceFlags = VkStencilFaceBitmask FlagMask
+
+type VkStencilFaceFlagBits = VkStencilFaceBitmask FlagBit
+
+pattern VkStencilFaceFlagBits ::
+        VkFlags -> VkStencilFaceBitmask FlagBit
+
+pattern VkStencilFaceFlagBits n = VkStencilFaceBitmask n
+
+pattern VkStencilFaceFlags ::
+        VkFlags -> VkStencilFaceBitmask FlagMask
+
+pattern VkStencilFaceFlags n = VkStencilFaceBitmask n
+
+deriving instance Bits (VkStencilFaceBitmask FlagMask)
+
+deriving instance FiniteBits (VkStencilFaceBitmask FlagMask)
+
+deriving instance Integral (VkStencilFaceBitmask FlagMask)
+
+deriving instance Num (VkStencilFaceBitmask FlagMask)
+
+deriving instance Bounded (VkStencilFaceBitmask FlagMask)
+
+deriving instance Enum (VkStencilFaceBitmask FlagMask)
+
+deriving instance Real (VkStencilFaceBitmask FlagMask)
+
+instance Show (VkStencilFaceBitmask a) where
+        showsPrec _ VK_STENCIL_FACE_FRONT_BIT
+          = showString "VK_STENCIL_FACE_FRONT_BIT"
+        showsPrec _ VK_STENCIL_FACE_BACK_BIT
+          = showString "VK_STENCIL_FACE_BACK_BIT"
+        showsPrec _ VK_STENCIL_FRONT_AND_BACK
+          = showString "VK_STENCIL_FRONT_AND_BACK"
+        showsPrec p (VkStencilFaceBitmask x)
+          = showParen (p >= 11)
+              (showString "VkStencilFaceBitmask " . showsPrec 11 x)
+
+instance Read (VkStencilFaceBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_STENCIL_FACE_FRONT_BIT", pure VK_STENCIL_FACE_FRONT_BIT),
+                  ("VK_STENCIL_FACE_BACK_BIT", pure VK_STENCIL_FACE_BACK_BIT),
+                  ("VK_STENCIL_FRONT_AND_BACK", pure VK_STENCIL_FRONT_AND_BACK)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkStencilFaceBitmask") >>
+                      (VkStencilFaceBitmask <$> step readPrec)))
+
+-- | Front face
+--
+--   bitpos = @0@
+pattern VK_STENCIL_FACE_FRONT_BIT :: VkStencilFaceBitmask a
+
+pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceBitmask 1
+
+-- | Back face
+--
+--   bitpos = @1@
+pattern VK_STENCIL_FACE_BACK_BIT :: VkStencilFaceBitmask a
+
+pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceBitmask 2
+
+-- | Front and back faces
+pattern VK_STENCIL_FRONT_AND_BACK :: VkStencilFaceBitmask a
+
+pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceBitmask 3
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkStencilOp VkStencilOp registry at www.khronos.org>
+newtype VkStencilOp = VkStencilOp Int32
+                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkStencilOp where
+        showsPrec _ VK_STENCIL_OP_KEEP = showString "VK_STENCIL_OP_KEEP"
+        showsPrec _ VK_STENCIL_OP_ZERO = showString "VK_STENCIL_OP_ZERO"
+        showsPrec _ VK_STENCIL_OP_REPLACE
+          = showString "VK_STENCIL_OP_REPLACE"
+        showsPrec _ VK_STENCIL_OP_INCREMENT_AND_CLAMP
+          = showString "VK_STENCIL_OP_INCREMENT_AND_CLAMP"
+        showsPrec _ VK_STENCIL_OP_DECREMENT_AND_CLAMP
+          = showString "VK_STENCIL_OP_DECREMENT_AND_CLAMP"
+        showsPrec _ VK_STENCIL_OP_INVERT
+          = showString "VK_STENCIL_OP_INVERT"
+        showsPrec _ VK_STENCIL_OP_INCREMENT_AND_WRAP
+          = showString "VK_STENCIL_OP_INCREMENT_AND_WRAP"
+        showsPrec _ VK_STENCIL_OP_DECREMENT_AND_WRAP
+          = showString "VK_STENCIL_OP_DECREMENT_AND_WRAP"
+        showsPrec p (VkStencilOp x)
+          = showParen (p >= 11) (showString "VkStencilOp " . showsPrec 11 x)
+
+instance Read VkStencilOp where
+        readPrec
+          = parens
+              (choose
+                 [("VK_STENCIL_OP_KEEP", pure VK_STENCIL_OP_KEEP),
+                  ("VK_STENCIL_OP_ZERO", pure VK_STENCIL_OP_ZERO),
+                  ("VK_STENCIL_OP_REPLACE", pure VK_STENCIL_OP_REPLACE),
+                  ("VK_STENCIL_OP_INCREMENT_AND_CLAMP",
+                   pure VK_STENCIL_OP_INCREMENT_AND_CLAMP),
+                  ("VK_STENCIL_OP_DECREMENT_AND_CLAMP",
+                   pure VK_STENCIL_OP_DECREMENT_AND_CLAMP),
+                  ("VK_STENCIL_OP_INVERT", pure VK_STENCIL_OP_INVERT),
+                  ("VK_STENCIL_OP_INCREMENT_AND_WRAP",
+                   pure VK_STENCIL_OP_INCREMENT_AND_WRAP),
+                  ("VK_STENCIL_OP_DECREMENT_AND_WRAP",
+                   pure VK_STENCIL_OP_DECREMENT_AND_WRAP)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkStencilOp") >> (VkStencilOp <$> step readPrec)))
+
+pattern VK_STENCIL_OP_KEEP :: VkStencilOp
+
+pattern VK_STENCIL_OP_KEEP = VkStencilOp 0
+
+pattern VK_STENCIL_OP_ZERO :: VkStencilOp
+
+pattern VK_STENCIL_OP_ZERO = VkStencilOp 1
+
+pattern VK_STENCIL_OP_REPLACE :: VkStencilOp
+
+pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2
+
+pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp
+
+pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3
+
+pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp
+
+pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4
+
+pattern VK_STENCIL_OP_INVERT :: VkStencilOp
+
+pattern VK_STENCIL_OP_INVERT = VkStencilOp 5
+
+pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp
+
+pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6
+
+pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp
+
+pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs b/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/StructureType.hs
@@ -0,0 +1,559 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.StructureType
+       (VkStructureType(VkStructureType,
+                        VK_STRUCTURE_TYPE_APPLICATION_INFO,
+                        VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_SUBMIT_INFO,
+                        VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
+                        VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
+                        VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
+                        VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
+                        VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
+                        VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
+                        VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
+                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
+                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
+                        VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
+                        VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+                        VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
+                        VK_STRUCTURE_TYPE_MEMORY_BARRIER,
+                        VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
+                        VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | Structure type enumerant
+--
+--   type = @enum@
+--
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkStructureType VkStructureType registry at www.khronos.org>
+newtype VkStructureType = VkStructureType Int32
+                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkStructureType where
+        showsPrec _ VK_STRUCTURE_TYPE_APPLICATION_INFO
+          = showString "VK_STRUCTURE_TYPE_APPLICATION_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_SUBMIT_INFO
+          = showString "VK_STRUCTURE_TYPE_SUBMIT_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
+          = showString "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
+          = showString "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"
+        showsPrec _ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
+          = showString "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
+        showsPrec _
+          VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
+          = showString
+              "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
+          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
+          = showString "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"
+        showsPrec _ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
+          = showString "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"
+        showsPrec _ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
+          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
+          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
+          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
+          = showString "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
+          = showString "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"
+        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
+          = showString "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"
+        showsPrec _ VK_STRUCTURE_TYPE_MEMORY_BARRIER
+          = showString "VK_STRUCTURE_TYPE_MEMORY_BARRIER"
+        showsPrec _ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"
+        showsPrec _ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+          = showString "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"
+        showsPrec p (VkStructureType x)
+          = showParen (p >= 11)
+              (showString "VkStructureType " . showsPrec 11 x)
+
+instance Read VkStructureType where
+        readPrec
+          = parens
+              (choose
+                 [("VK_STRUCTURE_TYPE_APPLICATION_INFO",
+                   pure VK_STRUCTURE_TYPE_APPLICATION_INFO),
+                  ("VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_SUBMIT_INFO",
+                   pure VK_STRUCTURE_TYPE_SUBMIT_INFO),
+                  ("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO",
+                   pure VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO),
+                  ("VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE",
+                   pure VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE),
+                  ("VK_STRUCTURE_TYPE_BIND_SPARSE_INFO",
+                   pure VK_STRUCTURE_TYPE_BIND_SPARSE_INFO),
+                  ("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_FENCE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_EVENT_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_EVENT_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO",
+                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO),
+                  ("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET",
+                   pure VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET),
+                  ("VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET",
+                   pure VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET),
+                  ("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO",
+                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO),
+                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO",
+                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO),
+                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO",
+                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO),
+                  ("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO",
+                   pure VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO),
+                  ("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER",
+                   pure VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER),
+                  ("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER",
+                   pure VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER),
+                  ("VK_STRUCTURE_TYPE_MEMORY_BARRIER",
+                   pure VK_STRUCTURE_TYPE_MEMORY_BARRIER),
+                  ("VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO),
+                  ("VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO",
+                   pure VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkStructureType") >>
+                      (VkStructureType <$> step readPrec)))
+
+pattern VK_STRUCTURE_TYPE_APPLICATION_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_APPLICATION_INFO = VkStructureType 0
+
+pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = VkStructureType 1
+
+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO =
+        VkStructureType 2
+
+pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = VkStructureType 3
+
+pattern VK_STRUCTURE_TYPE_SUBMIT_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SUBMIT_INFO = VkStructureType 4
+
+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = VkStructureType 5
+
+pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = VkStructureType 6
+
+pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = VkStructureType 7
+
+pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = VkStructureType 8
+
+pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = VkStructureType 9
+
+pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = VkStructureType 10
+
+pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO =
+        VkStructureType 11
+
+pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = VkStructureType 12
+
+pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO =
+        VkStructureType 13
+
+pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = VkStructureType 14
+
+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO =
+        VkStructureType 15
+
+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO =
+        VkStructureType 16
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO =
+        VkStructureType 17
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO =
+        VkStructureType 18
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO =
+        VkStructureType 19
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
+        = VkStructureType 20
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO =
+        VkStructureType 21
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO =
+        VkStructureType 22
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
+        = VkStructureType 23
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO =
+        VkStructureType 24
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+        :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
+        = VkStructureType 25
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO =
+        VkStructureType 26
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO =
+        VkStructureType 27
+
+pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO =
+        VkStructureType 28
+
+pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO =
+        VkStructureType 29
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO =
+        VkStructureType 30
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = VkStructureType 31
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO =
+        VkStructureType 32
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO =
+        VkStructureType 33
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO =
+        VkStructureType 34
+
+pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = VkStructureType 35
+
+pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = VkStructureType 36
+
+pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO =
+        VkStructureType 37
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO =
+        VkStructureType 38
+
+pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO =
+        VkStructureType 39
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO =
+        VkStructureType 40
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO =
+        VkStructureType 41
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO =
+        VkStructureType 42
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO =
+        VkStructureType 43
+
+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER =
+        VkStructureType 44
+
+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = VkStructureType 45
+
+pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER :: VkStructureType
+
+pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER = VkStructureType 46
+
+-- | Reserved for internal use by the loader, layers, and ICDs
+pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO =
+        VkStructureType 47
+
+-- | Reserved for internal use by the loader, layers, and ICDs
+pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO ::
+        VkStructureType
+
+pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO =
+        VkStructureType 48
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SubgroupFeatureFlags.hs
@@ -0,0 +1,174 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
+       (VkSubgroupFeatureBitmask(VkSubgroupFeatureBitmask,
+                                 VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits,
+                                 VK_SUBGROUP_FEATURE_BASIC_BIT, VK_SUBGROUP_FEATURE_VOTE_BIT,
+                                 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, VK_SUBGROUP_FEATURE_BALLOT_BIT,
+                                 VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
+                                 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
+                                 VK_SUBGROUP_FEATURE_CLUSTERED_BIT, VK_SUBGROUP_FEATURE_QUAD_BIT),
+        VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSubgroupFeatureBitmask (a ::
+                                    FlagType) = VkSubgroupFeatureBitmask VkFlags
+                                                  deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSubgroupFeatureFlags = VkSubgroupFeatureBitmask FlagMask
+
+type VkSubgroupFeatureFlagBits = VkSubgroupFeatureBitmask FlagBit
+
+pattern VkSubgroupFeatureFlagBits ::
+        VkFlags -> VkSubgroupFeatureBitmask FlagBit
+
+pattern VkSubgroupFeatureFlagBits n = VkSubgroupFeatureBitmask n
+
+pattern VkSubgroupFeatureFlags ::
+        VkFlags -> VkSubgroupFeatureBitmask FlagMask
+
+pattern VkSubgroupFeatureFlags n = VkSubgroupFeatureBitmask n
+
+deriving instance Bits (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance FiniteBits (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance Integral (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance Num (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance Bounded (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance Enum (VkSubgroupFeatureBitmask FlagMask)
+
+deriving instance Real (VkSubgroupFeatureBitmask FlagMask)
+
+instance Show (VkSubgroupFeatureBitmask a) where
+        showsPrec _ VK_SUBGROUP_FEATURE_BASIC_BIT
+          = showString "VK_SUBGROUP_FEATURE_BASIC_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_VOTE_BIT
+          = showString "VK_SUBGROUP_FEATURE_VOTE_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
+          = showString "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_BALLOT_BIT
+          = showString "VK_SUBGROUP_FEATURE_BALLOT_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_BIT
+          = showString "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
+          = showString "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_CLUSTERED_BIT
+          = showString "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"
+        showsPrec _ VK_SUBGROUP_FEATURE_QUAD_BIT
+          = showString "VK_SUBGROUP_FEATURE_QUAD_BIT"
+        showsPrec p (VkSubgroupFeatureBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSubgroupFeatureBitmask " . showsPrec 11 x)
+
+instance Read (VkSubgroupFeatureBitmask a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SUBGROUP_FEATURE_BASIC_BIT",
+                   pure VK_SUBGROUP_FEATURE_BASIC_BIT),
+                  ("VK_SUBGROUP_FEATURE_VOTE_BIT",
+                   pure VK_SUBGROUP_FEATURE_VOTE_BIT),
+                  ("VK_SUBGROUP_FEATURE_ARITHMETIC_BIT",
+                   pure VK_SUBGROUP_FEATURE_ARITHMETIC_BIT),
+                  ("VK_SUBGROUP_FEATURE_BALLOT_BIT",
+                   pure VK_SUBGROUP_FEATURE_BALLOT_BIT),
+                  ("VK_SUBGROUP_FEATURE_SHUFFLE_BIT",
+                   pure VK_SUBGROUP_FEATURE_SHUFFLE_BIT),
+                  ("VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT",
+                   pure VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT),
+                  ("VK_SUBGROUP_FEATURE_CLUSTERED_BIT",
+                   pure VK_SUBGROUP_FEATURE_CLUSTERED_BIT),
+                  ("VK_SUBGROUP_FEATURE_QUAD_BIT",
+                   pure VK_SUBGROUP_FEATURE_QUAD_BIT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSubgroupFeatureBitmask") >>
+                      (VkSubgroupFeatureBitmask <$> step readPrec)))
+
+-- | Basic subgroup operations
+--
+--   bitpos = @0@
+pattern VK_SUBGROUP_FEATURE_BASIC_BIT :: VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_BASIC_BIT = VkSubgroupFeatureBitmask 1
+
+-- | Vote subgroup operations
+--
+--   bitpos = @1@
+pattern VK_SUBGROUP_FEATURE_VOTE_BIT :: VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_VOTE_BIT = VkSubgroupFeatureBitmask 2
+
+-- | Arithmetic subgroup operations
+--
+--   bitpos = @2@
+pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT ::
+        VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT =
+        VkSubgroupFeatureBitmask 4
+
+-- | Ballot subgroup operations
+--
+--   bitpos = @3@
+pattern VK_SUBGROUP_FEATURE_BALLOT_BIT ::
+        VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_BALLOT_BIT = VkSubgroupFeatureBitmask 8
+
+-- | Shuffle subgroup operations
+--
+--   bitpos = @4@
+pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT ::
+        VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT =
+        VkSubgroupFeatureBitmask 16
+
+-- | Shuffle relative subgroup operations
+--
+--   bitpos = @5@
+pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT ::
+        VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT =
+        VkSubgroupFeatureBitmask 32
+
+-- | Clustered subgroup operations
+--
+--   bitpos = @6@
+pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT ::
+        VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT =
+        VkSubgroupFeatureBitmask 64
+
+-- | Quad subgroup operations
+--
+--   bitpos = @7@
+pattern VK_SUBGROUP_FEATURE_QUAD_BIT :: VkSubgroupFeatureBitmask a
+
+pattern VK_SUBGROUP_FEATURE_QUAD_BIT = VkSubgroupFeatureBitmask 128
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs b/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Subpass.hs
@@ -0,0 +1,114 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Subpass
+       (VkSubpassContents(VkSubpassContents, VK_SUBPASS_CONTENTS_INLINE,
+                          VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS),
+        VkSubpassDescriptionBitmask(VkSubpassDescriptionBitmask,
+                                    VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits),
+        VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType,
+                                                  Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassContents VkSubpassContents registry at www.khronos.org>
+newtype VkSubpassContents = VkSubpassContents Int32
+                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSubpassContents where
+        showsPrec _ VK_SUBPASS_CONTENTS_INLINE
+          = showString "VK_SUBPASS_CONTENTS_INLINE"
+        showsPrec _ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
+          = showString "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"
+        showsPrec p (VkSubpassContents x)
+          = showParen (p >= 11)
+              (showString "VkSubpassContents " . showsPrec 11 x)
+
+instance Read VkSubpassContents where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SUBPASS_CONTENTS_INLINE", pure VK_SUBPASS_CONTENTS_INLINE),
+                  ("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS",
+                   pure VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSubpassContents") >>
+                      (VkSubpassContents <$> step readPrec)))
+
+pattern VK_SUBPASS_CONTENTS_INLINE :: VkSubpassContents
+
+pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0
+
+pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS ::
+        VkSubpassContents
+
+pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS =
+        VkSubpassContents 1
+
+newtype VkSubpassDescriptionBitmask (a ::
+                                       FlagType) = VkSubpassDescriptionBitmask VkFlags
+                                                     deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSubpassDescriptionFlags =
+     VkSubpassDescriptionBitmask FlagMask
+
+type VkSubpassDescriptionFlagBits =
+     VkSubpassDescriptionBitmask FlagBit
+
+pattern VkSubpassDescriptionFlagBits ::
+        VkFlags -> VkSubpassDescriptionBitmask FlagBit
+
+pattern VkSubpassDescriptionFlagBits n =
+        VkSubpassDescriptionBitmask n
+
+pattern VkSubpassDescriptionFlags ::
+        VkFlags -> VkSubpassDescriptionBitmask FlagMask
+
+pattern VkSubpassDescriptionFlags n = VkSubpassDescriptionBitmask n
+
+deriving instance Bits (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance FiniteBits (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance Integral (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance Num (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance Bounded (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance Enum (VkSubpassDescriptionBitmask FlagMask)
+
+deriving instance Real (VkSubpassDescriptionBitmask FlagMask)
+
+instance Show (VkSubpassDescriptionBitmask a) where
+        showsPrec p (VkSubpassDescriptionBitmask x)
+          = showParen (p >= 11)
+              (showString "VkSubpassDescriptionBitmask " . showsPrec 11 x)
+
+instance Read (VkSubpassDescriptionBitmask a) where
+        readPrec
+          = parens
+              (choose [] +++
+                 prec 10
+                   (expectP (Ident "VkSubpassDescriptionBitmask") >>
+                      (VkSubpassDescriptionBitmask <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs b/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/Surface.hs
@@ -0,0 +1,254 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.Surface
+       (VkSurfaceCounterBitmaskEXT(VkSurfaceCounterBitmaskEXT,
+                                   VkSurfaceCounterFlagsEXT, VkSurfaceCounterFlagBitsEXT,
+                                   VK_SURFACE_COUNTER_VBLANK_EXT),
+        VkSurfaceCounterFlagsEXT, VkSurfaceCounterFlagBitsEXT,
+        VkSurfaceTransformBitmaskKHR(VkSurfaceTransformBitmaskKHR,
+                                     VkSurfaceTransformFlagsKHR, VkSurfaceTransformFlagBitsKHR,
+                                     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
+                                     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR),
+        VkSurfaceTransformFlagsKHR, VkSurfaceTransformFlagBitsKHR)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSurfaceCounterBitmaskEXT (a ::
+                                      FlagType) = VkSurfaceCounterBitmaskEXT VkFlags
+                                                    deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSurfaceCounterFlagsEXT = VkSurfaceCounterBitmaskEXT FlagMask
+
+type VkSurfaceCounterFlagBitsEXT =
+     VkSurfaceCounterBitmaskEXT FlagBit
+
+pattern VkSurfaceCounterFlagBitsEXT ::
+        VkFlags -> VkSurfaceCounterBitmaskEXT FlagBit
+
+pattern VkSurfaceCounterFlagBitsEXT n =
+        VkSurfaceCounterBitmaskEXT n
+
+pattern VkSurfaceCounterFlagsEXT ::
+        VkFlags -> VkSurfaceCounterBitmaskEXT FlagMask
+
+pattern VkSurfaceCounterFlagsEXT n = VkSurfaceCounterBitmaskEXT n
+
+deriving instance Bits (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance FiniteBits (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance Integral (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance Num (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance Bounded (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance Enum (VkSurfaceCounterBitmaskEXT FlagMask)
+
+deriving instance Real (VkSurfaceCounterBitmaskEXT FlagMask)
+
+instance Show (VkSurfaceCounterBitmaskEXT a) where
+        showsPrec _ VK_SURFACE_COUNTER_VBLANK_EXT
+          = showString "VK_SURFACE_COUNTER_VBLANK_EXT"
+        showsPrec p (VkSurfaceCounterBitmaskEXT x)
+          = showParen (p >= 11)
+              (showString "VkSurfaceCounterBitmaskEXT " . showsPrec 11 x)
+
+instance Read (VkSurfaceCounterBitmaskEXT a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SURFACE_COUNTER_VBLANK_EXT",
+                   pure VK_SURFACE_COUNTER_VBLANK_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSurfaceCounterBitmaskEXT") >>
+                      (VkSurfaceCounterBitmaskEXT <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_SURFACE_COUNTER_VBLANK_EXT ::
+        VkSurfaceCounterBitmaskEXT a
+
+pattern VK_SURFACE_COUNTER_VBLANK_EXT =
+        VkSurfaceCounterBitmaskEXT 1
+
+newtype VkSurfaceTransformBitmaskKHR (a ::
+                                        FlagType) = VkSurfaceTransformBitmaskKHR VkFlags
+                                                      deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSurfaceTransformFlagsKHR =
+     VkSurfaceTransformBitmaskKHR FlagMask
+
+type VkSurfaceTransformFlagBitsKHR =
+     VkSurfaceTransformBitmaskKHR FlagBit
+
+pattern VkSurfaceTransformFlagBitsKHR ::
+        VkFlags -> VkSurfaceTransformBitmaskKHR FlagBit
+
+pattern VkSurfaceTransformFlagBitsKHR n =
+        VkSurfaceTransformBitmaskKHR n
+
+pattern VkSurfaceTransformFlagsKHR ::
+        VkFlags -> VkSurfaceTransformBitmaskKHR FlagMask
+
+pattern VkSurfaceTransformFlagsKHR n =
+        VkSurfaceTransformBitmaskKHR n
+
+deriving instance Bits (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance
+         FiniteBits (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance Integral (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance Num (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance Bounded (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance Enum (VkSurfaceTransformBitmaskKHR FlagMask)
+
+deriving instance Real (VkSurfaceTransformBitmaskKHR FlagMask)
+
+instance Show (VkSurfaceTransformBitmaskKHR a) where
+        showsPrec _ VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"
+        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"
+        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"
+        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"
+        showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"
+        showsPrec _
+          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR
+          = showString
+              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"
+        showsPrec _
+          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
+          = showString
+              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"
+        showsPrec _
+          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
+          = showString
+              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"
+        showsPrec _ VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
+          = showString "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"
+        showsPrec p (VkSurfaceTransformBitmaskKHR x)
+          = showParen (p >= 11)
+              (showString "VkSurfaceTransformBitmaskKHR " . showsPrec 11 x)
+
+instance Read (VkSurfaceTransformBitmaskKHR a) where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR),
+                  ("VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR",
+                   pure VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSurfaceTransformBitmaskKHR") >>
+                      (VkSurfaceTransformBitmaskKHR <$> step readPrec)))
+
+-- | bitpos = @0@
+pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 1
+
+-- | bitpos = @1@
+pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 2
+
+-- | bitpos = @2@
+pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 4
+
+-- | bitpos = @3@
+pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 8
+
+-- | bitpos = @4@
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 16
+
+-- | bitpos = @5@
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 32
+
+-- | bitpos = @6@
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
+        :: VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 64
+
+-- | bitpos = @7@
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
+        :: VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 128
+
+-- | bitpos = @8@
+pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR ::
+        VkSurfaceTransformBitmaskKHR a
+
+pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR =
+        VkSurfaceTransformBitmaskKHR 256
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SwapchainCreateFlagsKHR.hs
@@ -0,0 +1,74 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE KindSignatures             #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE StandaloneDeriving         #-}
+{-# LANGUAGE Strict                     #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+module Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+       (VkSwapchainCreateBitmaskKHR(VkSwapchainCreateBitmaskKHR,
+                                    VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR),
+        VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR)
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+newtype VkSwapchainCreateBitmaskKHR (a ::
+                                       FlagType) = VkSwapchainCreateBitmaskKHR VkFlags
+                                                     deriving (Eq, Ord, Storable, Data, Generic)
+
+type VkSwapchainCreateFlagsKHR =
+     VkSwapchainCreateBitmaskKHR FlagMask
+
+type VkSwapchainCreateFlagBitsKHR =
+     VkSwapchainCreateBitmaskKHR FlagBit
+
+pattern VkSwapchainCreateFlagBitsKHR ::
+        VkFlags -> VkSwapchainCreateBitmaskKHR FlagBit
+
+pattern VkSwapchainCreateFlagBitsKHR n =
+        VkSwapchainCreateBitmaskKHR n
+
+pattern VkSwapchainCreateFlagsKHR ::
+        VkFlags -> VkSwapchainCreateBitmaskKHR FlagMask
+
+pattern VkSwapchainCreateFlagsKHR n = VkSwapchainCreateBitmaskKHR n
+
+deriving instance Bits (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance FiniteBits (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance Integral (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance Num (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance Bounded (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance Enum (VkSwapchainCreateBitmaskKHR FlagMask)
+
+deriving instance Real (VkSwapchainCreateBitmaskKHR FlagMask)
+
+instance Show (VkSwapchainCreateBitmaskKHR a) where
+        showsPrec p (VkSwapchainCreateBitmaskKHR x)
+          = showParen (p >= 11)
+              (showString "VkSwapchainCreateBitmaskKHR " . showsPrec 11 x)
+
+instance Read (VkSwapchainCreateBitmaskKHR a) where
+        readPrec
+          = parens
+              (choose [] +++
+                 prec 10
+                   (expectP (Ident "VkSwapchainCreateBitmaskKHR") >>
+                      (VkSwapchainCreateBitmaskKHR <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs b/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/SystemAllocationScope.hs
@@ -0,0 +1,92 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.SystemAllocationScope
+       (VkSystemAllocationScope(VkSystemAllocationScope,
+                                VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
+                                VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
+                                VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
+                                VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
+                                VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSystemAllocationScope VkSystemAllocationScope registry at www.khronos.org>
+newtype VkSystemAllocationScope = VkSystemAllocationScope Int32
+                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkSystemAllocationScope where
+        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
+          = showString "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"
+        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
+          = showString "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"
+        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_CACHE
+          = showString "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"
+        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
+          = showString "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"
+        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
+          = showString "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"
+        showsPrec p (VkSystemAllocationScope x)
+          = showParen (p >= 11)
+              (showString "VkSystemAllocationScope " . showsPrec 11 x)
+
+instance Read VkSystemAllocationScope where
+        readPrec
+          = parens
+              (choose
+                 [("VK_SYSTEM_ALLOCATION_SCOPE_COMMAND",
+                   pure VK_SYSTEM_ALLOCATION_SCOPE_COMMAND),
+                  ("VK_SYSTEM_ALLOCATION_SCOPE_OBJECT",
+                   pure VK_SYSTEM_ALLOCATION_SCOPE_OBJECT),
+                  ("VK_SYSTEM_ALLOCATION_SCOPE_CACHE",
+                   pure VK_SYSTEM_ALLOCATION_SCOPE_CACHE),
+                  ("VK_SYSTEM_ALLOCATION_SCOPE_DEVICE",
+                   pure VK_SYSTEM_ALLOCATION_SCOPE_DEVICE),
+                  ("VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE",
+                   pure VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkSystemAllocationScope") >>
+                      (VkSystemAllocationScope <$> step readPrec)))
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND ::
+        VkSystemAllocationScope
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND =
+        VkSystemAllocationScope 0
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT ::
+        VkSystemAllocationScope
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT =
+        VkSystemAllocationScope 1
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE :: VkSystemAllocationScope
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE =
+        VkSystemAllocationScope 2
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE ::
+        VkSystemAllocationScope
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE =
+        VkSystemAllocationScope 3
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE ::
+        VkSystemAllocationScope
+
+pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE =
+        VkSystemAllocationScope 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs b/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/TessellationDomainOrigin.hs
@@ -0,0 +1,77 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+       (VkTessellationDomainOrigin(VkTessellationDomainOrigin,
+                                   VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
+                                   VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT),
+        VkTessellationDomainOriginKHR(..))
+       where
+import           Data.Bits                       (Bits, FiniteBits)
+import           Data.Coerce                     (coerce)
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkTessellationDomainOrigin VkTessellationDomainOrigin registry at www.khronos.org>
+newtype VkTessellationDomainOrigin = VkTessellationDomainOrigin Int32
+                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                 Generic)
+
+instance Show VkTessellationDomainOrigin where
+        showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
+          = showString "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"
+        showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
+          = showString "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"
+        showsPrec p (VkTessellationDomainOrigin x)
+          = showParen (p >= 11)
+              (showString "VkTessellationDomainOrigin " . showsPrec 11 x)
+
+instance Read VkTessellationDomainOrigin where
+        readPrec
+          = parens
+              (choose
+                 [("VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT",
+                   pure VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT),
+                  ("VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT",
+                   pure VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkTessellationDomainOrigin") >>
+                      (VkTessellationDomainOrigin <$> step readPrec)))
+
+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT ::
+        VkTessellationDomainOrigin
+
+pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT =
+        VkTessellationDomainOrigin 0
+
+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT ::
+        VkTessellationDomainOrigin
+
+pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT =
+        VkTessellationDomainOrigin 1
+
+newtype VkTessellationDomainOriginKHR = VkTessellationDomainOriginKHR VkFlags
+                                          deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
+                                                    FiniteBits, Storable, Real, Data, Generic)
+
+instance Show VkTessellationDomainOriginKHR where
+        {-# INLINE show #-}
+        show (VkTessellationDomainOriginKHR x) = show x
+
+instance Read VkTessellationDomainOriginKHR where
+        {-# INLINE readsPrec #-}
+        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs b/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ValidationC.hs
@@ -0,0 +1,87 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.ValidationC
+       (VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT,
+                                          VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT),
+        VkValidationCheckEXT(VkValidationCheckEXT,
+                             VK_VALIDATION_CHECK_ALL_EXT, VK_VALIDATION_CHECK_SHADERS_EXT))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationCacheHeaderVersionEXT VkValidationCacheHeaderVersionEXT registry at www.khronos.org>
+newtype VkValidationCacheHeaderVersionEXT = VkValidationCacheHeaderVersionEXT Int32
+                                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                        Generic)
+
+instance Show VkValidationCacheHeaderVersionEXT where
+        showsPrec _ VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
+          = showString "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"
+        showsPrec p (VkValidationCacheHeaderVersionEXT x)
+          = showParen (p >= 11)
+              (showString "VkValidationCacheHeaderVersionEXT " . showsPrec 11 x)
+
+instance Read VkValidationCacheHeaderVersionEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT",
+                   pure VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkValidationCacheHeaderVersionEXT") >>
+                      (VkValidationCacheHeaderVersionEXT <$> step readPrec)))
+
+pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT ::
+        VkValidationCacheHeaderVersionEXT
+
+pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT =
+        VkValidationCacheHeaderVersionEXT 1
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationCheckEXT VkValidationCheckEXT registry at www.khronos.org>
+newtype VkValidationCheckEXT = VkValidationCheckEXT Int32
+                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkValidationCheckEXT where
+        showsPrec _ VK_VALIDATION_CHECK_ALL_EXT
+          = showString "VK_VALIDATION_CHECK_ALL_EXT"
+        showsPrec _ VK_VALIDATION_CHECK_SHADERS_EXT
+          = showString "VK_VALIDATION_CHECK_SHADERS_EXT"
+        showsPrec p (VkValidationCheckEXT x)
+          = showParen (p >= 11)
+              (showString "VkValidationCheckEXT " . showsPrec 11 x)
+
+instance Read VkValidationCheckEXT where
+        readPrec
+          = parens
+              (choose
+                 [("VK_VALIDATION_CHECK_ALL_EXT", pure VK_VALIDATION_CHECK_ALL_EXT),
+                  ("VK_VALIDATION_CHECK_SHADERS_EXT",
+                   pure VK_VALIDATION_CHECK_SHADERS_EXT)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkValidationCheckEXT") >>
+                      (VkValidationCheckEXT <$> step readPrec)))
+
+pattern VK_VALIDATION_CHECK_ALL_EXT :: VkValidationCheckEXT
+
+pattern VK_VALIDATION_CHECK_ALL_EXT = VkValidationCheckEXT 0
+
+pattern VK_VALIDATION_CHECK_SHADERS_EXT :: VkValidationCheckEXT
+
+pattern VK_VALIDATION_CHECK_SHADERS_EXT = VkValidationCheckEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs b/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/VertexInputRate.hs
@@ -0,0 +1,54 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.VertexInputRate
+       (VkVertexInputRate(VkVertexInputRate, VK_VERTEX_INPUT_RATE_VERTEX,
+                          VK_VERTEX_INPUT_RATE_INSTANCE))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputRate VkVertexInputRate registry at www.khronos.org>
+newtype VkVertexInputRate = VkVertexInputRate Int32
+                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
+
+instance Show VkVertexInputRate where
+        showsPrec _ VK_VERTEX_INPUT_RATE_VERTEX
+          = showString "VK_VERTEX_INPUT_RATE_VERTEX"
+        showsPrec _ VK_VERTEX_INPUT_RATE_INSTANCE
+          = showString "VK_VERTEX_INPUT_RATE_INSTANCE"
+        showsPrec p (VkVertexInputRate x)
+          = showParen (p >= 11)
+              (showString "VkVertexInputRate " . showsPrec 11 x)
+
+instance Read VkVertexInputRate where
+        readPrec
+          = parens
+              (choose
+                 [("VK_VERTEX_INPUT_RATE_VERTEX", pure VK_VERTEX_INPUT_RATE_VERTEX),
+                  ("VK_VERTEX_INPUT_RATE_INSTANCE",
+                   pure VK_VERTEX_INPUT_RATE_INSTANCE)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkVertexInputRate") >>
+                      (VkVertexInputRate <$> step readPrec)))
+
+pattern VK_VERTEX_INPUT_RATE_VERTEX :: VkVertexInputRate
+
+pattern VK_VERTEX_INPUT_RATE_VERTEX = VkVertexInputRate 0
+
+pattern VK_VERTEX_INPUT_RATE_INSTANCE :: VkVertexInputRate
+
+pattern VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Enum/ViewportCoordinateSwizzleNV.hs
@@ -0,0 +1,127 @@
+{-# OPTIONS_HADDOCK ignore-exports#-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE PatternSynonyms            #-}
+{-# LANGUAGE Strict                     #-}
+module Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
+       (VkViewportCoordinateSwizzleNV(VkViewportCoordinateSwizzleNV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
+                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV))
+       where
+import           Data.Data                       (Data)
+import           Foreign.Storable                (Storable)
+import           GHC.Generics                    (Generic)
+import           GHC.Read                        (choose, expectP)
+import           Graphics.Vulkan.Marshal         (Int32)
+import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
+import           Text.Read                       (Read (..), parens)
+import           Text.Read.Lex                   (Lexeme (..))
+
+-- | type = @enum@
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportCoordinateSwizzleNV VkViewportCoordinateSwizzleNV registry at www.khronos.org>
+newtype VkViewportCoordinateSwizzleNV = VkViewportCoordinateSwizzleNV Int32
+                                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
+                                                    Generic)
+
+instance Show VkViewportCoordinateSwizzleNV where
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"
+        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
+          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"
+        showsPrec p (VkViewportCoordinateSwizzleNV x)
+          = showParen (p >= 11)
+              (showString "VkViewportCoordinateSwizzleNV " . showsPrec 11 x)
+
+instance Read VkViewportCoordinateSwizzleNV where
+        readPrec
+          = parens
+              (choose
+                 [("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV),
+                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV",
+                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV)]
+                 +++
+                 prec 10
+                   (expectP (Ident "VkViewportCoordinateSwizzleNV") >>
+                      (VkViewportCoordinateSwizzleNV <$> step readPrec)))
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV =
+        VkViewportCoordinateSwizzleNV 0
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV =
+        VkViewportCoordinateSwizzleNV 1
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV =
+        VkViewportCoordinateSwizzleNV 2
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV =
+        VkViewportCoordinateSwizzleNV 3
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV =
+        VkViewportCoordinateSwizzleNV 4
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV =
+        VkViewportCoordinateSwizzleNV 5
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV =
+        VkViewportCoordinateSwizzleNV 6
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV ::
+        VkViewportCoordinateSwizzleNV
+
+pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV =
+        VkViewportCoordinateSwizzleNV 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkAccessFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkAccessFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkAccessFlags.hs
+++ /dev/null
@@ -1,260 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkAccessFlags
-       (VkAccessBitmask(VkAccessBitmask, VkAccessFlags, VkAccessFlagBits,
-                        VK_ACCESS_INDIRECT_COMMAND_READ_BIT, VK_ACCESS_INDEX_READ_BIT,
-                        VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, VK_ACCESS_UNIFORM_READ_BIT,
-                        VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, VK_ACCESS_SHADER_READ_BIT,
-                        VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
-                        VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-                        VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
-                        VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
-                        VK_ACCESS_TRANSFER_READ_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
-                        VK_ACCESS_HOST_READ_BIT, VK_ACCESS_HOST_WRITE_BIT,
-                        VK_ACCESS_MEMORY_READ_BIT, VK_ACCESS_MEMORY_WRITE_BIT),
-        VkAccessFlags, VkAccessFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkAccessBitmask (a :: FlagType) = VkAccessBitmask VkFlags
-                                            deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkAccessFlags = VkAccessBitmask FlagMask
-
-type VkAccessFlagBits = VkAccessBitmask FlagBit
-
-pattern VkAccessFlagBits :: VkFlags -> VkAccessBitmask FlagBit
-
-pattern VkAccessFlagBits n = VkAccessBitmask n
-
-pattern VkAccessFlags :: VkFlags -> VkAccessBitmask FlagMask
-
-pattern VkAccessFlags n = VkAccessBitmask n
-
-deriving instance Bits (VkAccessBitmask FlagMask)
-
-deriving instance FiniteBits (VkAccessBitmask FlagMask)
-
-deriving instance Integral (VkAccessBitmask FlagMask)
-
-deriving instance Num (VkAccessBitmask FlagMask)
-
-deriving instance Bounded (VkAccessBitmask FlagMask)
-
-deriving instance Enum (VkAccessBitmask FlagMask)
-
-deriving instance Real (VkAccessBitmask FlagMask)
-
-instance Show (VkAccessBitmask a) where
-        showsPrec _ VK_ACCESS_INDIRECT_COMMAND_READ_BIT
-          = showString "VK_ACCESS_INDIRECT_COMMAND_READ_BIT"
-        showsPrec _ VK_ACCESS_INDEX_READ_BIT
-          = showString "VK_ACCESS_INDEX_READ_BIT"
-        showsPrec _ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT
-          = showString "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"
-        showsPrec _ VK_ACCESS_UNIFORM_READ_BIT
-          = showString "VK_ACCESS_UNIFORM_READ_BIT"
-        showsPrec _ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT
-          = showString "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"
-        showsPrec _ VK_ACCESS_SHADER_READ_BIT
-          = showString "VK_ACCESS_SHADER_READ_BIT"
-        showsPrec _ VK_ACCESS_SHADER_WRITE_BIT
-          = showString "VK_ACCESS_SHADER_WRITE_BIT"
-        showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
-          = showString "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"
-        showsPrec _ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
-          = showString "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"
-        showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
-          = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"
-        showsPrec _ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
-          = showString "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"
-        showsPrec _ VK_ACCESS_TRANSFER_READ_BIT
-          = showString "VK_ACCESS_TRANSFER_READ_BIT"
-        showsPrec _ VK_ACCESS_TRANSFER_WRITE_BIT
-          = showString "VK_ACCESS_TRANSFER_WRITE_BIT"
-        showsPrec _ VK_ACCESS_HOST_READ_BIT
-          = showString "VK_ACCESS_HOST_READ_BIT"
-        showsPrec _ VK_ACCESS_HOST_WRITE_BIT
-          = showString "VK_ACCESS_HOST_WRITE_BIT"
-        showsPrec _ VK_ACCESS_MEMORY_READ_BIT
-          = showString "VK_ACCESS_MEMORY_READ_BIT"
-        showsPrec _ VK_ACCESS_MEMORY_WRITE_BIT
-          = showString "VK_ACCESS_MEMORY_WRITE_BIT"
-        showsPrec p (VkAccessBitmask x)
-          = showParen (p >= 11)
-              (showString "VkAccessBitmask " . showsPrec 11 x)
-
-instance Read (VkAccessBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_ACCESS_INDIRECT_COMMAND_READ_BIT",
-                   pure VK_ACCESS_INDIRECT_COMMAND_READ_BIT),
-                  ("VK_ACCESS_INDEX_READ_BIT", pure VK_ACCESS_INDEX_READ_BIT),
-                  ("VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT",
-                   pure VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT),
-                  ("VK_ACCESS_UNIFORM_READ_BIT", pure VK_ACCESS_UNIFORM_READ_BIT),
-                  ("VK_ACCESS_INPUT_ATTACHMENT_READ_BIT",
-                   pure VK_ACCESS_INPUT_ATTACHMENT_READ_BIT),
-                  ("VK_ACCESS_SHADER_READ_BIT", pure VK_ACCESS_SHADER_READ_BIT),
-                  ("VK_ACCESS_SHADER_WRITE_BIT", pure VK_ACCESS_SHADER_WRITE_BIT),
-                  ("VK_ACCESS_COLOR_ATTACHMENT_READ_BIT",
-                   pure VK_ACCESS_COLOR_ATTACHMENT_READ_BIT),
-                  ("VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT",
-                   pure VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT),
-                  ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT",
-                   pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT),
-                  ("VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT",
-                   pure VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT),
-                  ("VK_ACCESS_TRANSFER_READ_BIT", pure VK_ACCESS_TRANSFER_READ_BIT),
-                  ("VK_ACCESS_TRANSFER_WRITE_BIT",
-                   pure VK_ACCESS_TRANSFER_WRITE_BIT),
-                  ("VK_ACCESS_HOST_READ_BIT", pure VK_ACCESS_HOST_READ_BIT),
-                  ("VK_ACCESS_HOST_WRITE_BIT", pure VK_ACCESS_HOST_WRITE_BIT),
-                  ("VK_ACCESS_MEMORY_READ_BIT", pure VK_ACCESS_MEMORY_READ_BIT),
-                  ("VK_ACCESS_MEMORY_WRITE_BIT", pure VK_ACCESS_MEMORY_WRITE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkAccessBitmask") >>
-                      (VkAccessBitmask <$> step readPrec)))
-
--- | Controls coherency of indirect command reads
---
---   bitpos = @0@
-pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_INDIRECT_COMMAND_READ_BIT = VkAccessBitmask 1
-
--- | Controls coherency of index reads
---
---   bitpos = @1@
-pattern VK_ACCESS_INDEX_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_INDEX_READ_BIT = VkAccessBitmask 2
-
--- | Controls coherency of vertex attribute reads
---
---   bitpos = @2@
-pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = VkAccessBitmask 4
-
--- | Controls coherency of uniform buffer reads
---
---   bitpos = @3@
-pattern VK_ACCESS_UNIFORM_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_UNIFORM_READ_BIT = VkAccessBitmask 8
-
--- | Controls coherency of input attachment reads
---
---   bitpos = @4@
-pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = VkAccessBitmask 16
-
--- | Controls coherency of shader reads
---
---   bitpos = @5@
-pattern VK_ACCESS_SHADER_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_SHADER_READ_BIT = VkAccessBitmask 32
-
--- | Controls coherency of shader writes
---
---   bitpos = @6@
-pattern VK_ACCESS_SHADER_WRITE_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_SHADER_WRITE_BIT = VkAccessBitmask 64
-
--- | Controls coherency of color attachment reads
---
---   bitpos = @7@
-pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = VkAccessBitmask 128
-
--- | Controls coherency of color attachment writes
---
---   bitpos = @8@
-pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = VkAccessBitmask 256
-
--- | Controls coherency of depth/stencil attachment reads
---
---   bitpos = @9@
-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT ::
-        VkAccessBitmask a
-
-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT =
-        VkAccessBitmask 512
-
--- | Controls coherency of depth/stencil attachment writes
---
---   bitpos = @10@
-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT ::
-        VkAccessBitmask a
-
-pattern VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT =
-        VkAccessBitmask 1024
-
--- | Controls coherency of transfer reads
---
---   bitpos = @11@
-pattern VK_ACCESS_TRANSFER_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_TRANSFER_READ_BIT = VkAccessBitmask 2048
-
--- | Controls coherency of transfer writes
---
---   bitpos = @12@
-pattern VK_ACCESS_TRANSFER_WRITE_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_TRANSFER_WRITE_BIT = VkAccessBitmask 4096
-
--- | Controls coherency of host reads
---
---   bitpos = @13@
-pattern VK_ACCESS_HOST_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_HOST_READ_BIT = VkAccessBitmask 8192
-
--- | Controls coherency of host writes
---
---   bitpos = @14@
-pattern VK_ACCESS_HOST_WRITE_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_HOST_WRITE_BIT = VkAccessBitmask 16384
-
--- | Controls coherency of memory reads
---
---   bitpos = @15@
-pattern VK_ACCESS_MEMORY_READ_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_MEMORY_READ_BIT = VkAccessBitmask 32768
-
--- | Controls coherency of memory writes
---
---   bitpos = @16@
-pattern VK_ACCESS_MEMORY_WRITE_BIT :: VkAccessBitmask a
-
-pattern VK_ACCESS_MEMORY_WRITE_BIT = VkAccessBitmask 65536
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentDescriptionFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentDescriptionFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentDescriptionFlags.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags
-       (VkAttachmentDescriptionBitmask(VkAttachmentDescriptionBitmask,
-                                       VkAttachmentDescriptionFlags,
-                                       VkAttachmentDescriptionFlagBits,
-                                       VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT),
-        VkAttachmentDescriptionFlags, VkAttachmentDescriptionFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkAttachmentDescriptionBitmask (a ::
-                                          FlagType) = VkAttachmentDescriptionBitmask VkFlags
-                                                        deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkAttachmentDescriptionFlags =
-     VkAttachmentDescriptionBitmask FlagMask
-
-type VkAttachmentDescriptionFlagBits =
-     VkAttachmentDescriptionBitmask FlagBit
-
-pattern VkAttachmentDescriptionFlagBits ::
-        VkFlags -> VkAttachmentDescriptionBitmask FlagBit
-
-pattern VkAttachmentDescriptionFlagBits n =
-        VkAttachmentDescriptionBitmask n
-
-pattern VkAttachmentDescriptionFlags ::
-        VkFlags -> VkAttachmentDescriptionBitmask FlagMask
-
-pattern VkAttachmentDescriptionFlags n =
-        VkAttachmentDescriptionBitmask n
-
-deriving instance Bits (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance
-         Integral (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance Num (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance Bounded (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance Enum (VkAttachmentDescriptionBitmask FlagMask)
-
-deriving instance Real (VkAttachmentDescriptionBitmask FlagMask)
-
-instance Show (VkAttachmentDescriptionBitmask a) where
-        showsPrec _ VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
-          = showString "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"
-        showsPrec p (VkAttachmentDescriptionBitmask x)
-          = showParen (p >= 11)
-              (showString "VkAttachmentDescriptionBitmask " . showsPrec 11 x)
-
-instance Read (VkAttachmentDescriptionBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT",
-                   pure VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkAttachmentDescriptionBitmask") >>
-                      (VkAttachmentDescriptionBitmask <$> step readPrec)))
-
--- | The attachment may alias physical memory of another attachment in the same render pass
---
---   bitpos = @0@
-pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT ::
-        VkAttachmentDescriptionBitmask a
-
-pattern VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT =
-        VkAttachmentDescriptionBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentLoadOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentLoadOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentLoadOp.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp
-       (VkAttachmentLoadOp(VkAttachmentLoadOp, VK_ATTACHMENT_LOAD_OP_LOAD,
-                           VK_ATTACHMENT_LOAD_OP_CLEAR, VK_ATTACHMENT_LOAD_OP_DONT_CARE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAttachmentLoadOp.html VkAttachmentLoadOp registry at www.khronos.org>
-newtype VkAttachmentLoadOp = VkAttachmentLoadOp Int32
-                               deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkAttachmentLoadOp where
-        showsPrec _ VK_ATTACHMENT_LOAD_OP_LOAD
-          = showString "VK_ATTACHMENT_LOAD_OP_LOAD"
-        showsPrec _ VK_ATTACHMENT_LOAD_OP_CLEAR
-          = showString "VK_ATTACHMENT_LOAD_OP_CLEAR"
-        showsPrec _ VK_ATTACHMENT_LOAD_OP_DONT_CARE
-          = showString "VK_ATTACHMENT_LOAD_OP_DONT_CARE"
-        showsPrec p (VkAttachmentLoadOp x)
-          = showParen (p >= 11)
-              (showString "VkAttachmentLoadOp " . showsPrec 11 x)
-
-instance Read VkAttachmentLoadOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_ATTACHMENT_LOAD_OP_LOAD", pure VK_ATTACHMENT_LOAD_OP_LOAD),
-                  ("VK_ATTACHMENT_LOAD_OP_CLEAR", pure VK_ATTACHMENT_LOAD_OP_CLEAR),
-                  ("VK_ATTACHMENT_LOAD_OP_DONT_CARE",
-                   pure VK_ATTACHMENT_LOAD_OP_DONT_CARE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkAttachmentLoadOp") >>
-                      (VkAttachmentLoadOp <$> step readPrec)))
-
-pattern VK_ATTACHMENT_LOAD_OP_LOAD :: VkAttachmentLoadOp
-
-pattern VK_ATTACHMENT_LOAD_OP_LOAD = VkAttachmentLoadOp 0
-
-pattern VK_ATTACHMENT_LOAD_OP_CLEAR :: VkAttachmentLoadOp
-
-pattern VK_ATTACHMENT_LOAD_OP_CLEAR = VkAttachmentLoadOp 1
-
-pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE :: VkAttachmentLoadOp
-
-pattern VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentStoreOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentStoreOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkAttachmentStoreOp.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp
-       (VkAttachmentStoreOp(VkAttachmentStoreOp,
-                            VK_ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_STORE_OP_DONT_CARE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAttachmentStoreOp.html VkAttachmentStoreOp registry at www.khronos.org>
-newtype VkAttachmentStoreOp = VkAttachmentStoreOp Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkAttachmentStoreOp where
-        showsPrec _ VK_ATTACHMENT_STORE_OP_STORE
-          = showString "VK_ATTACHMENT_STORE_OP_STORE"
-        showsPrec _ VK_ATTACHMENT_STORE_OP_DONT_CARE
-          = showString "VK_ATTACHMENT_STORE_OP_DONT_CARE"
-        showsPrec p (VkAttachmentStoreOp x)
-          = showParen (p >= 11)
-              (showString "VkAttachmentStoreOp " . showsPrec 11 x)
-
-instance Read VkAttachmentStoreOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_ATTACHMENT_STORE_OP_STORE",
-                   pure VK_ATTACHMENT_STORE_OP_STORE),
-                  ("VK_ATTACHMENT_STORE_OP_DONT_CARE",
-                   pure VK_ATTACHMENT_STORE_OP_DONT_CARE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkAttachmentStoreOp") >>
-                      (VkAttachmentStoreOp <$> step readPrec)))
-
-pattern VK_ATTACHMENT_STORE_OP_STORE :: VkAttachmentStoreOp
-
-pattern VK_ATTACHMENT_STORE_OP_STORE = VkAttachmentStoreOp 0
-
-pattern VK_ATTACHMENT_STORE_OP_DONT_CARE :: VkAttachmentStoreOp
-
-pattern VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendFactor.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBlendFactor.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendFactor.hs
+++ /dev/null
@@ -1,193 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkBlendFactor
-       (VkBlendFactor(VkBlendFactor, VK_BLEND_FACTOR_ZERO,
-                      VK_BLEND_FACTOR_ONE, VK_BLEND_FACTOR_SRC_COLOR,
-                      VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, VK_BLEND_FACTOR_DST_COLOR,
-                      VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, VK_BLEND_FACTOR_SRC_ALPHA,
-                      VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_DST_ALPHA,
-                      VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
-                      VK_BLEND_FACTOR_CONSTANT_COLOR,
-                      VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
-                      VK_BLEND_FACTOR_CONSTANT_ALPHA,
-                      VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
-                      VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, VK_BLEND_FACTOR_SRC1_COLOR,
-                      VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA,
-                      VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBlendFactor.html VkBlendFactor registry at www.khronos.org>
-newtype VkBlendFactor = VkBlendFactor Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkBlendFactor where
-        showsPrec _ VK_BLEND_FACTOR_ZERO
-          = showString "VK_BLEND_FACTOR_ZERO"
-        showsPrec _ VK_BLEND_FACTOR_ONE = showString "VK_BLEND_FACTOR_ONE"
-        showsPrec _ VK_BLEND_FACTOR_SRC_COLOR
-          = showString "VK_BLEND_FACTOR_SRC_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_DST_COLOR
-          = showString "VK_BLEND_FACTOR_DST_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA
-          = showString "VK_BLEND_FACTOR_SRC_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_DST_ALPHA
-          = showString "VK_BLEND_FACTOR_DST_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_CONSTANT_COLOR
-          = showString "VK_BLEND_FACTOR_CONSTANT_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_CONSTANT_ALPHA
-          = showString "VK_BLEND_FACTOR_CONSTANT_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
-          = showString "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"
-        showsPrec _ VK_BLEND_FACTOR_SRC1_COLOR
-          = showString "VK_BLEND_FACTOR_SRC1_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"
-        showsPrec _ VK_BLEND_FACTOR_SRC1_ALPHA
-          = showString "VK_BLEND_FACTOR_SRC1_ALPHA"
-        showsPrec _ VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
-          = showString "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"
-        showsPrec p (VkBlendFactor x)
-          = showParen (p >= 11)
-              (showString "VkBlendFactor " . showsPrec 11 x)
-
-instance Read VkBlendFactor where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BLEND_FACTOR_ZERO", pure VK_BLEND_FACTOR_ZERO),
-                  ("VK_BLEND_FACTOR_ONE", pure VK_BLEND_FACTOR_ONE),
-                  ("VK_BLEND_FACTOR_SRC_COLOR", pure VK_BLEND_FACTOR_SRC_COLOR),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR),
-                  ("VK_BLEND_FACTOR_DST_COLOR", pure VK_BLEND_FACTOR_DST_COLOR),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR),
-                  ("VK_BLEND_FACTOR_SRC_ALPHA", pure VK_BLEND_FACTOR_SRC_ALPHA),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA),
-                  ("VK_BLEND_FACTOR_DST_ALPHA", pure VK_BLEND_FACTOR_DST_ALPHA),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA),
-                  ("VK_BLEND_FACTOR_CONSTANT_COLOR",
-                   pure VK_BLEND_FACTOR_CONSTANT_COLOR),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR),
-                  ("VK_BLEND_FACTOR_CONSTANT_ALPHA",
-                   pure VK_BLEND_FACTOR_CONSTANT_ALPHA),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA),
-                  ("VK_BLEND_FACTOR_SRC_ALPHA_SATURATE",
-                   pure VK_BLEND_FACTOR_SRC_ALPHA_SATURATE),
-                  ("VK_BLEND_FACTOR_SRC1_COLOR", pure VK_BLEND_FACTOR_SRC1_COLOR),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR),
-                  ("VK_BLEND_FACTOR_SRC1_ALPHA", pure VK_BLEND_FACTOR_SRC1_ALPHA),
-                  ("VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA",
-                   pure VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBlendFactor") >>
-                      (VkBlendFactor <$> step readPrec)))
-
-pattern VK_BLEND_FACTOR_ZERO :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ZERO = VkBlendFactor 0
-
-pattern VK_BLEND_FACTOR_ONE :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE = VkBlendFactor 1
-
-pattern VK_BLEND_FACTOR_SRC_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_SRC_COLOR = VkBlendFactor 2
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = VkBlendFactor 3
-
-pattern VK_BLEND_FACTOR_DST_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_DST_COLOR = VkBlendFactor 4
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = VkBlendFactor 5
-
-pattern VK_BLEND_FACTOR_SRC_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_SRC_ALPHA = VkBlendFactor 6
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = VkBlendFactor 7
-
-pattern VK_BLEND_FACTOR_DST_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_DST_ALPHA = VkBlendFactor 8
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = VkBlendFactor 9
-
-pattern VK_BLEND_FACTOR_CONSTANT_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_CONSTANT_COLOR = VkBlendFactor 10
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor 11
-
-pattern VK_BLEND_FACTOR_CONSTANT_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_CONSTANT_ALPHA = VkBlendFactor 12
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor 13
-
-pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = VkBlendFactor 14
-
-pattern VK_BLEND_FACTOR_SRC1_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_SRC1_COLOR = VkBlendFactor 15
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = VkBlendFactor 16
-
-pattern VK_BLEND_FACTOR_SRC1_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_SRC1_ALPHA = VkBlendFactor 17
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: VkBlendFactor
-
-pattern VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = VkBlendFactor 18
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOp.hs
+++ /dev/null
@@ -1,70 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkBlendOp
-       (VkBlendOp(VkBlendOp, VK_BLEND_OP_ADD, VK_BLEND_OP_SUBTRACT,
-                  VK_BLEND_OP_REVERSE_SUBTRACT, VK_BLEND_OP_MIN, VK_BLEND_OP_MAX))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBlendOp.html VkBlendOp registry at www.khronos.org>
-newtype VkBlendOp = VkBlendOp Int32
-                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkBlendOp where
-        showsPrec _ VK_BLEND_OP_ADD = showString "VK_BLEND_OP_ADD"
-        showsPrec _ VK_BLEND_OP_SUBTRACT
-          = showString "VK_BLEND_OP_SUBTRACT"
-        showsPrec _ VK_BLEND_OP_REVERSE_SUBTRACT
-          = showString "VK_BLEND_OP_REVERSE_SUBTRACT"
-        showsPrec _ VK_BLEND_OP_MIN = showString "VK_BLEND_OP_MIN"
-        showsPrec _ VK_BLEND_OP_MAX = showString "VK_BLEND_OP_MAX"
-        showsPrec p (VkBlendOp x)
-          = showParen (p >= 11) (showString "VkBlendOp " . showsPrec 11 x)
-
-instance Read VkBlendOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BLEND_OP_ADD", pure VK_BLEND_OP_ADD),
-                  ("VK_BLEND_OP_SUBTRACT", pure VK_BLEND_OP_SUBTRACT),
-                  ("VK_BLEND_OP_REVERSE_SUBTRACT",
-                   pure VK_BLEND_OP_REVERSE_SUBTRACT),
-                  ("VK_BLEND_OP_MIN", pure VK_BLEND_OP_MIN),
-                  ("VK_BLEND_OP_MAX", pure VK_BLEND_OP_MAX)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBlendOp") >> (VkBlendOp <$> step readPrec)))
-
-pattern VK_BLEND_OP_ADD :: VkBlendOp
-
-pattern VK_BLEND_OP_ADD = VkBlendOp 0
-
-pattern VK_BLEND_OP_SUBTRACT :: VkBlendOp
-
-pattern VK_BLEND_OP_SUBTRACT = VkBlendOp 1
-
-pattern VK_BLEND_OP_REVERSE_SUBTRACT :: VkBlendOp
-
-pattern VK_BLEND_OP_REVERSE_SUBTRACT = VkBlendOp 2
-
-pattern VK_BLEND_OP_MIN :: VkBlendOp
-
-pattern VK_BLEND_OP_MIN = VkBlendOp 3
-
-pattern VK_BLEND_OP_MAX :: VkBlendOp
-
-pattern VK_BLEND_OP_MAX = VkBlendOp 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOverlapEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOverlapEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBlendOverlapEXT.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkBlendOverlapEXT
-       (VkBlendOverlapEXT(VkBlendOverlapEXT,
-                          VK_BLEND_OVERLAP_UNCORRELATED_EXT, VK_BLEND_OVERLAP_DISJOINT_EXT,
-                          VK_BLEND_OVERLAP_CONJOINT_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBlendOverlapEXT.html VkBlendOverlapEXT registry at www.khronos.org>
-newtype VkBlendOverlapEXT = VkBlendOverlapEXT Int32
-                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkBlendOverlapEXT where
-        showsPrec _ VK_BLEND_OVERLAP_UNCORRELATED_EXT
-          = showString "VK_BLEND_OVERLAP_UNCORRELATED_EXT"
-        showsPrec _ VK_BLEND_OVERLAP_DISJOINT_EXT
-          = showString "VK_BLEND_OVERLAP_DISJOINT_EXT"
-        showsPrec _ VK_BLEND_OVERLAP_CONJOINT_EXT
-          = showString "VK_BLEND_OVERLAP_CONJOINT_EXT"
-        showsPrec p (VkBlendOverlapEXT x)
-          = showParen (p >= 11)
-              (showString "VkBlendOverlapEXT " . showsPrec 11 x)
-
-instance Read VkBlendOverlapEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BLEND_OVERLAP_UNCORRELATED_EXT",
-                   pure VK_BLEND_OVERLAP_UNCORRELATED_EXT),
-                  ("VK_BLEND_OVERLAP_DISJOINT_EXT",
-                   pure VK_BLEND_OVERLAP_DISJOINT_EXT),
-                  ("VK_BLEND_OVERLAP_CONJOINT_EXT",
-                   pure VK_BLEND_OVERLAP_CONJOINT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBlendOverlapEXT") >>
-                      (VkBlendOverlapEXT <$> step readPrec)))
-
-pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT :: VkBlendOverlapEXT
-
-pattern VK_BLEND_OVERLAP_UNCORRELATED_EXT = VkBlendOverlapEXT 0
-
-pattern VK_BLEND_OVERLAP_DISJOINT_EXT :: VkBlendOverlapEXT
-
-pattern VK_BLEND_OVERLAP_DISJOINT_EXT = VkBlendOverlapEXT 1
-
-pattern VK_BLEND_OVERLAP_CONJOINT_EXT :: VkBlendOverlapEXT
-
-pattern VK_BLEND_OVERLAP_CONJOINT_EXT = VkBlendOverlapEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBorderColor.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBorderColor.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBorderColor.hs
+++ /dev/null
@@ -1,92 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkBorderColor
-       (VkBorderColor(VkBorderColor,
-                      VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
-                      VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
-                      VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
-                      VK_BORDER_COLOR_INT_OPAQUE_BLACK,
-                      VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
-                      VK_BORDER_COLOR_INT_OPAQUE_WHITE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBorderColor.html VkBorderColor registry at www.khronos.org>
-newtype VkBorderColor = VkBorderColor Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkBorderColor where
-        showsPrec _ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK
-          = showString "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK"
-        showsPrec _ VK_BORDER_COLOR_INT_TRANSPARENT_BLACK
-          = showString "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK"
-        showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK
-          = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK"
-        showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_BLACK
-          = showString "VK_BORDER_COLOR_INT_OPAQUE_BLACK"
-        showsPrec _ VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE
-          = showString "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE"
-        showsPrec _ VK_BORDER_COLOR_INT_OPAQUE_WHITE
-          = showString "VK_BORDER_COLOR_INT_OPAQUE_WHITE"
-        showsPrec p (VkBorderColor x)
-          = showParen (p >= 11)
-              (showString "VkBorderColor " . showsPrec 11 x)
-
-instance Read VkBorderColor where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK",
-                   pure VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK),
-                  ("VK_BORDER_COLOR_INT_TRANSPARENT_BLACK",
-                   pure VK_BORDER_COLOR_INT_TRANSPARENT_BLACK),
-                  ("VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK",
-                   pure VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK),
-                  ("VK_BORDER_COLOR_INT_OPAQUE_BLACK",
-                   pure VK_BORDER_COLOR_INT_OPAQUE_BLACK),
-                  ("VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE",
-                   pure VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE),
-                  ("VK_BORDER_COLOR_INT_OPAQUE_WHITE",
-                   pure VK_BORDER_COLOR_INT_OPAQUE_WHITE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBorderColor") >>
-                      (VkBorderColor <$> step readPrec)))
-
-pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK :: VkBorderColor
-
-pattern VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor 0
-
-pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK :: VkBorderColor
-
-pattern VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = VkBorderColor 1
-
-pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK :: VkBorderColor
-
-pattern VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = VkBorderColor 2
-
-pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK :: VkBorderColor
-
-pattern VK_BORDER_COLOR_INT_OPAQUE_BLACK = VkBorderColor 3
-
-pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE :: VkBorderColor
-
-pattern VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = VkBorderColor 4
-
-pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE :: VkBorderColor
-
-pattern VK_BORDER_COLOR_INT_OPAQUE_WHITE = VkBorderColor 5
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBufferCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferCreateFlags.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-       (VkBufferCreateBitmask(VkBufferCreateBitmask, VkBufferCreateFlags,
-                              VkBufferCreateFlagBits, VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
-                              VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
-                              VK_BUFFER_CREATE_SPARSE_ALIASED_BIT),
-        VkBufferCreateFlags, VkBufferCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkBufferCreateBitmask (a ::
-                                 FlagType) = VkBufferCreateBitmask VkFlags
-                                               deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkBufferCreateFlags = VkBufferCreateBitmask FlagMask
-
-type VkBufferCreateFlagBits = VkBufferCreateBitmask FlagBit
-
-pattern VkBufferCreateFlagBits ::
-        VkFlags -> VkBufferCreateBitmask FlagBit
-
-pattern VkBufferCreateFlagBits n = VkBufferCreateBitmask n
-
-pattern VkBufferCreateFlags ::
-        VkFlags -> VkBufferCreateBitmask FlagMask
-
-pattern VkBufferCreateFlags n = VkBufferCreateBitmask n
-
-deriving instance Bits (VkBufferCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkBufferCreateBitmask FlagMask)
-
-deriving instance Integral (VkBufferCreateBitmask FlagMask)
-
-deriving instance Num (VkBufferCreateBitmask FlagMask)
-
-deriving instance Bounded (VkBufferCreateBitmask FlagMask)
-
-deriving instance Enum (VkBufferCreateBitmask FlagMask)
-
-deriving instance Real (VkBufferCreateBitmask FlagMask)
-
-instance Show (VkBufferCreateBitmask a) where
-        showsPrec _ VK_BUFFER_CREATE_SPARSE_BINDING_BIT
-          = showString "VK_BUFFER_CREATE_SPARSE_BINDING_BIT"
-        showsPrec _ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT
-          = showString "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT"
-        showsPrec _ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT
-          = showString "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT"
-        showsPrec p (VkBufferCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkBufferCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkBufferCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BUFFER_CREATE_SPARSE_BINDING_BIT",
-                   pure VK_BUFFER_CREATE_SPARSE_BINDING_BIT),
-                  ("VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT",
-                   pure VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT),
-                  ("VK_BUFFER_CREATE_SPARSE_ALIASED_BIT",
-                   pure VK_BUFFER_CREATE_SPARSE_ALIASED_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBufferCreateBitmask") >>
-                      (VkBufferCreateBitmask <$> step readPrec)))
-
--- | Buffer should support sparse backing
---
---   bitpos = @0@
-pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT ::
-        VkBufferCreateBitmask a
-
-pattern VK_BUFFER_CREATE_SPARSE_BINDING_BIT =
-        VkBufferCreateBitmask 1
-
--- | Buffer should support sparse backing with partial residency
---
---   bitpos = @1@
-pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT ::
-        VkBufferCreateBitmask a
-
-pattern VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT =
-        VkBufferCreateBitmask 2
-
--- | Buffer should support constent data access to physical memory ranges mapped into multiple locations of sparse buffers
---
---   bitpos = @2@
-pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT ::
-        VkBufferCreateBitmask a
-
-pattern VK_BUFFER_CREATE_SPARSE_ALIASED_BIT =
-        VkBufferCreateBitmask 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferUsageFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBufferUsageFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferUsageFlags.hs
+++ /dev/null
@@ -1,190 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-       (VkBufferUsageBitmask(VkBufferUsageBitmask, VkBufferUsageFlags,
-                             VkBufferUsageFlagBits, VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
-                             VK_BUFFER_USAGE_TRANSFER_DST_BIT,
-                             VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
-                             VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
-                             VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
-                             VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
-                             VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
-                             VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
-                             VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT),
-        VkBufferUsageFlags, VkBufferUsageFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkBufferUsageBitmask (a ::
-                                FlagType) = VkBufferUsageBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkBufferUsageFlags = VkBufferUsageBitmask FlagMask
-
-type VkBufferUsageFlagBits = VkBufferUsageBitmask FlagBit
-
-pattern VkBufferUsageFlagBits ::
-        VkFlags -> VkBufferUsageBitmask FlagBit
-
-pattern VkBufferUsageFlagBits n = VkBufferUsageBitmask n
-
-pattern VkBufferUsageFlags ::
-        VkFlags -> VkBufferUsageBitmask FlagMask
-
-pattern VkBufferUsageFlags n = VkBufferUsageBitmask n
-
-deriving instance Bits (VkBufferUsageBitmask FlagMask)
-
-deriving instance FiniteBits (VkBufferUsageBitmask FlagMask)
-
-deriving instance Integral (VkBufferUsageBitmask FlagMask)
-
-deriving instance Num (VkBufferUsageBitmask FlagMask)
-
-deriving instance Bounded (VkBufferUsageBitmask FlagMask)
-
-deriving instance Enum (VkBufferUsageBitmask FlagMask)
-
-deriving instance Real (VkBufferUsageBitmask FlagMask)
-
-instance Show (VkBufferUsageBitmask a) where
-        showsPrec _ VK_BUFFER_USAGE_TRANSFER_SRC_BIT
-          = showString "VK_BUFFER_USAGE_TRANSFER_SRC_BIT"
-        showsPrec _ VK_BUFFER_USAGE_TRANSFER_DST_BIT
-          = showString "VK_BUFFER_USAGE_TRANSFER_DST_BIT"
-        showsPrec _ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_INDEX_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_INDEX_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT"
-        showsPrec _ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
-          = showString "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT"
-        showsPrec p (VkBufferUsageBitmask x)
-          = showParen (p >= 11)
-              (showString "VkBufferUsageBitmask " . showsPrec 11 x)
-
-instance Read (VkBufferUsageBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_BUFFER_USAGE_TRANSFER_SRC_BIT",
-                   pure VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
-                  ("VK_BUFFER_USAGE_TRANSFER_DST_BIT",
-                   pure VK_BUFFER_USAGE_TRANSFER_DST_BIT),
-                  ("VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_STORAGE_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_STORAGE_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_INDEX_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_INDEX_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_VERTEX_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_VERTEX_BUFFER_BIT),
-                  ("VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT",
-                   pure VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkBufferUsageBitmask") >>
-                      (VkBufferUsageBitmask <$> step readPrec)))
-
--- | Can be used as a source of transfer operations
---
---   bitpos = @0@
-pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT :: VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_TRANSFER_SRC_BIT = VkBufferUsageBitmask 1
-
--- | Can be used as a destination of transfer operations
---
---   bitpos = @1@
-pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT :: VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_TRANSFER_DST_BIT = VkBufferUsageBitmask 2
-
--- | Can be used as TBO
---
---   bitpos = @2@
-pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT ::
-        VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT =
-        VkBufferUsageBitmask 4
-
--- | Can be used as IBO
---
---   bitpos = @3@
-pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT ::
-        VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT =
-        VkBufferUsageBitmask 8
-
--- | Can be used as UBO
---
---   bitpos = @4@
-pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT ::
-        VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT =
-        VkBufferUsageBitmask 16
-
--- | Can be used as SSBO
---
---   bitpos = @5@
-pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT ::
-        VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_STORAGE_BUFFER_BIT =
-        VkBufferUsageBitmask 32
-
--- | Can be used as source of fixed-function index fetch (index buffer)
---
---   bitpos = @6@
-pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT :: VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_INDEX_BUFFER_BIT = VkBufferUsageBitmask 64
-
--- | Can be used as source of fixed-function vertex fetch (VBO)
---
---   bitpos = @7@
-pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT :: VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_VERTEX_BUFFER_BIT =
-        VkBufferUsageBitmask 128
-
--- | Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
---
---   bitpos = @8@
-pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT ::
-        VkBufferUsageBitmask a
-
-pattern VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT =
-        VkBufferUsageBitmask 256
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferViewCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkBufferViewCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkBufferViewCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkBufferViewCreateFlagBits
-       (VkBufferViewCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkBufferViewCreateFlagBits = VkBufferViewCreateFlagBits VkFlags
-                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                 FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkBufferViewCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkBufferViewCreateFlagBits x) = show x
-
-instance Read VkBufferViewCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocation.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocation.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocation.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkChromaLocation
-       (VkChromaLocation(VkChromaLocation,
-                         VK_CHROMA_LOCATION_COSITED_EVEN, VK_CHROMA_LOCATION_MIDPOINT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkChromaLocation.html VkChromaLocation registry at www.khronos.org>
-newtype VkChromaLocation = VkChromaLocation Int32
-                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkChromaLocation where
-        showsPrec _ VK_CHROMA_LOCATION_COSITED_EVEN
-          = showString "VK_CHROMA_LOCATION_COSITED_EVEN"
-        showsPrec _ VK_CHROMA_LOCATION_MIDPOINT
-          = showString "VK_CHROMA_LOCATION_MIDPOINT"
-        showsPrec p (VkChromaLocation x)
-          = showParen (p >= 11)
-              (showString "VkChromaLocation " . showsPrec 11 x)
-
-instance Read VkChromaLocation where
-        readPrec
-          = parens
-              (choose
-                 [("VK_CHROMA_LOCATION_COSITED_EVEN",
-                   pure VK_CHROMA_LOCATION_COSITED_EVEN),
-                  ("VK_CHROMA_LOCATION_MIDPOINT", pure VK_CHROMA_LOCATION_MIDPOINT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkChromaLocation") >>
-                      (VkChromaLocation <$> step readPrec)))
-
-pattern VK_CHROMA_LOCATION_COSITED_EVEN :: VkChromaLocation
-
-pattern VK_CHROMA_LOCATION_COSITED_EVEN = VkChromaLocation 0
-
-pattern VK_CHROMA_LOCATION_MIDPOINT :: VkChromaLocation
-
-pattern VK_CHROMA_LOCATION_MIDPOINT = VkChromaLocation 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocationKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocationKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkChromaLocationKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkChromaLocationKHR
-       (VkChromaLocationKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkChromaLocationKHR = VkChromaLocationKHR VkFlags
-                                deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits, FiniteBits,
-                                          Storable, Real, Data, Generic)
-
-instance Show VkChromaLocationKHR where
-        {-# INLINE show #-}
-        show (VkChromaLocationKHR x) = show x
-
-instance Read VkChromaLocationKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkColorComponentFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkColorComponentFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkColorComponentFlags.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkColorComponentFlags
-       (VkColorComponentBitmask(VkColorComponentBitmask,
-                                VkColorComponentFlags, VkColorComponentFlagBits,
-                                VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT,
-                                VK_COLOR_COMPONENT_B_BIT, VK_COLOR_COMPONENT_A_BIT),
-        VkColorComponentFlags, VkColorComponentFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkColorComponentBitmask (a ::
-                                   FlagType) = VkColorComponentBitmask VkFlags
-                                                 deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkColorComponentFlags = VkColorComponentBitmask FlagMask
-
-type VkColorComponentFlagBits = VkColorComponentBitmask FlagBit
-
-pattern VkColorComponentFlagBits ::
-        VkFlags -> VkColorComponentBitmask FlagBit
-
-pattern VkColorComponentFlagBits n = VkColorComponentBitmask n
-
-pattern VkColorComponentFlags ::
-        VkFlags -> VkColorComponentBitmask FlagMask
-
-pattern VkColorComponentFlags n = VkColorComponentBitmask n
-
-deriving instance Bits (VkColorComponentBitmask FlagMask)
-
-deriving instance FiniteBits (VkColorComponentBitmask FlagMask)
-
-deriving instance Integral (VkColorComponentBitmask FlagMask)
-
-deriving instance Num (VkColorComponentBitmask FlagMask)
-
-deriving instance Bounded (VkColorComponentBitmask FlagMask)
-
-deriving instance Enum (VkColorComponentBitmask FlagMask)
-
-deriving instance Real (VkColorComponentBitmask FlagMask)
-
-instance Show (VkColorComponentBitmask a) where
-        showsPrec _ VK_COLOR_COMPONENT_R_BIT
-          = showString "VK_COLOR_COMPONENT_R_BIT"
-        showsPrec _ VK_COLOR_COMPONENT_G_BIT
-          = showString "VK_COLOR_COMPONENT_G_BIT"
-        showsPrec _ VK_COLOR_COMPONENT_B_BIT
-          = showString "VK_COLOR_COMPONENT_B_BIT"
-        showsPrec _ VK_COLOR_COMPONENT_A_BIT
-          = showString "VK_COLOR_COMPONENT_A_BIT"
-        showsPrec p (VkColorComponentBitmask x)
-          = showParen (p >= 11)
-              (showString "VkColorComponentBitmask " . showsPrec 11 x)
-
-instance Read (VkColorComponentBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COLOR_COMPONENT_R_BIT", pure VK_COLOR_COMPONENT_R_BIT),
-                  ("VK_COLOR_COMPONENT_G_BIT", pure VK_COLOR_COMPONENT_G_BIT),
-                  ("VK_COLOR_COMPONENT_B_BIT", pure VK_COLOR_COMPONENT_B_BIT),
-                  ("VK_COLOR_COMPONENT_A_BIT", pure VK_COLOR_COMPONENT_A_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkColorComponentBitmask") >>
-                      (VkColorComponentBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_COLOR_COMPONENT_R_BIT :: VkColorComponentBitmask a
-
-pattern VK_COLOR_COMPONENT_R_BIT = VkColorComponentBitmask 1
-
--- | bitpos = @1@
-pattern VK_COLOR_COMPONENT_G_BIT :: VkColorComponentBitmask a
-
-pattern VK_COLOR_COMPONENT_G_BIT = VkColorComponentBitmask 2
-
--- | bitpos = @2@
-pattern VK_COLOR_COMPONENT_B_BIT :: VkColorComponentBitmask a
-
-pattern VK_COLOR_COMPONENT_B_BIT = VkColorComponentBitmask 4
-
--- | bitpos = @3@
-pattern VK_COLOR_COMPONENT_A_BIT :: VkColorComponentBitmask a
-
-pattern VK_COLOR_COMPONENT_A_BIT = VkColorComponentBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkColorSpaceKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkColorSpaceKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkColorSpaceKHR.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-       (VkColorSpaceKHR(VkColorSpaceKHR,
-                        VK_COLOR_SPACE_SRGB_NONLINEAR_KHR))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkColorSpaceKHR.html VkColorSpaceKHR registry at www.khronos.org>
-newtype VkColorSpaceKHR = VkColorSpaceKHR Int32
-                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkColorSpaceKHR where
-        showsPrec _ VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
-          = showString "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR"
-        showsPrec p (VkColorSpaceKHR x)
-          = showParen (p >= 11)
-              (showString "VkColorSpaceKHR " . showsPrec 11 x)
-
-instance Read VkColorSpaceKHR where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COLOR_SPACE_SRGB_NONLINEAR_KHR",
-                   pure VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkColorSpaceKHR") >>
-                      (VkColorSpaceKHR <$> step readPrec)))
-
-pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR :: VkColorSpaceKHR
-
-pattern VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = VkColorSpaceKHR 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferLevel.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferLevel.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferLevel.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkCommandBufferLevel
-       (VkCommandBufferLevel(VkCommandBufferLevel,
-                             VK_COMMAND_BUFFER_LEVEL_PRIMARY,
-                             VK_COMMAND_BUFFER_LEVEL_SECONDARY))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCommandBufferLevel.html VkCommandBufferLevel registry at www.khronos.org>
-newtype VkCommandBufferLevel = VkCommandBufferLevel Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkCommandBufferLevel where
-        showsPrec _ VK_COMMAND_BUFFER_LEVEL_PRIMARY
-          = showString "VK_COMMAND_BUFFER_LEVEL_PRIMARY"
-        showsPrec _ VK_COMMAND_BUFFER_LEVEL_SECONDARY
-          = showString "VK_COMMAND_BUFFER_LEVEL_SECONDARY"
-        showsPrec p (VkCommandBufferLevel x)
-          = showParen (p >= 11)
-              (showString "VkCommandBufferLevel " . showsPrec 11 x)
-
-instance Read VkCommandBufferLevel where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMMAND_BUFFER_LEVEL_PRIMARY",
-                   pure VK_COMMAND_BUFFER_LEVEL_PRIMARY),
-                  ("VK_COMMAND_BUFFER_LEVEL_SECONDARY",
-                   pure VK_COMMAND_BUFFER_LEVEL_SECONDARY)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCommandBufferLevel") >>
-                      (VkCommandBufferLevel <$> step readPrec)))
-
-pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY :: VkCommandBufferLevel
-
-pattern VK_COMMAND_BUFFER_LEVEL_PRIMARY = VkCommandBufferLevel 0
-
-pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY :: VkCommandBufferLevel
-
-pattern VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferResetFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferResetFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferResetFlags.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags
-       (VkCommandBufferResetBitmask(VkCommandBufferResetBitmask,
-                                    VkCommandBufferResetFlags, VkCommandBufferResetFlagBits,
-                                    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT),
-        VkCommandBufferResetFlags, VkCommandBufferResetFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCommandBufferResetBitmask (a ::
-                                       FlagType) = VkCommandBufferResetBitmask VkFlags
-                                                     deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCommandBufferResetFlags =
-     VkCommandBufferResetBitmask FlagMask
-
-type VkCommandBufferResetFlagBits =
-     VkCommandBufferResetBitmask FlagBit
-
-pattern VkCommandBufferResetFlagBits ::
-        VkFlags -> VkCommandBufferResetBitmask FlagBit
-
-pattern VkCommandBufferResetFlagBits n =
-        VkCommandBufferResetBitmask n
-
-pattern VkCommandBufferResetFlags ::
-        VkFlags -> VkCommandBufferResetBitmask FlagMask
-
-pattern VkCommandBufferResetFlags n = VkCommandBufferResetBitmask n
-
-deriving instance Bits (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance FiniteBits (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance Integral (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance Num (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance Bounded (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance Enum (VkCommandBufferResetBitmask FlagMask)
-
-deriving instance Real (VkCommandBufferResetBitmask FlagMask)
-
-instance Show (VkCommandBufferResetBitmask a) where
-        showsPrec _ VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
-          = showString "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"
-        showsPrec p (VkCommandBufferResetBitmask x)
-          = showParen (p >= 11)
-              (showString "VkCommandBufferResetBitmask " . showsPrec 11 x)
-
-instance Read (VkCommandBufferResetBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT",
-                   pure VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCommandBufferResetBitmask") >>
-                      (VkCommandBufferResetBitmask <$> step readPrec)))
-
--- | Release resources owned by the buffer
---
---   bitpos = @0@
-pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT ::
-        VkCommandBufferResetBitmask a
-
-pattern VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT =
-        VkCommandBufferResetBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferUsageFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferUsageFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandBufferUsageFlags.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags
-       (VkCommandBufferUsageBitmask(VkCommandBufferUsageBitmask,
-                                    VkCommandBufferUsageFlags, VkCommandBufferUsageFlagBits,
-                                    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
-                                    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
-                                    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT),
-        VkCommandBufferUsageFlags, VkCommandBufferUsageFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCommandBufferUsageBitmask (a ::
-                                       FlagType) = VkCommandBufferUsageBitmask VkFlags
-                                                     deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCommandBufferUsageFlags =
-     VkCommandBufferUsageBitmask FlagMask
-
-type VkCommandBufferUsageFlagBits =
-     VkCommandBufferUsageBitmask FlagBit
-
-pattern VkCommandBufferUsageFlagBits ::
-        VkFlags -> VkCommandBufferUsageBitmask FlagBit
-
-pattern VkCommandBufferUsageFlagBits n =
-        VkCommandBufferUsageBitmask n
-
-pattern VkCommandBufferUsageFlags ::
-        VkFlags -> VkCommandBufferUsageBitmask FlagMask
-
-pattern VkCommandBufferUsageFlags n = VkCommandBufferUsageBitmask n
-
-deriving instance Bits (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance FiniteBits (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance Integral (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance Num (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance Bounded (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance Enum (VkCommandBufferUsageBitmask FlagMask)
-
-deriving instance Real (VkCommandBufferUsageBitmask FlagMask)
-
-instance Show (VkCommandBufferUsageBitmask a) where
-        showsPrec _ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
-          = showString "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT"
-        showsPrec _ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
-          = showString "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT"
-        showsPrec _ VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
-          = showString "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT"
-        showsPrec p (VkCommandBufferUsageBitmask x)
-          = showParen (p >= 11)
-              (showString "VkCommandBufferUsageBitmask " . showsPrec 11 x)
-
-instance Read (VkCommandBufferUsageBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT",
-                   pure VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT),
-                  ("VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT",
-                   pure VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT),
-                  ("VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT",
-                   pure VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCommandBufferUsageBitmask") >>
-                      (VkCommandBufferUsageBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT ::
-        VkCommandBufferUsageBitmask a
-
-pattern VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT =
-        VkCommandBufferUsageBitmask 1
-
--- | bitpos = @1@
-pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT ::
-        VkCommandBufferUsageBitmask a
-
-pattern VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT =
-        VkCommandBufferUsageBitmask 2
-
--- | Command buffer may be submitted/executed more than once simultaneously
---
---   bitpos = @2@
-pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT ::
-        VkCommandBufferUsageBitmask a
-
-pattern VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT =
-        VkCommandBufferUsageBitmask 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolCreateFlags.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags
-       (VkCommandPoolCreateBitmask(VkCommandPoolCreateBitmask,
-                                   VkCommandPoolCreateFlags, VkCommandPoolCreateFlagBits,
-                                   VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
-                                   VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT),
-        VkCommandPoolCreateFlags, VkCommandPoolCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCommandPoolCreateBitmask (a ::
-                                      FlagType) = VkCommandPoolCreateBitmask VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCommandPoolCreateFlags = VkCommandPoolCreateBitmask FlagMask
-
-type VkCommandPoolCreateFlagBits =
-     VkCommandPoolCreateBitmask FlagBit
-
-pattern VkCommandPoolCreateFlagBits ::
-        VkFlags -> VkCommandPoolCreateBitmask FlagBit
-
-pattern VkCommandPoolCreateFlagBits n =
-        VkCommandPoolCreateBitmask n
-
-pattern VkCommandPoolCreateFlags ::
-        VkFlags -> VkCommandPoolCreateBitmask FlagMask
-
-pattern VkCommandPoolCreateFlags n = VkCommandPoolCreateBitmask n
-
-deriving instance Bits (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance Integral (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance Num (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance Bounded (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance Enum (VkCommandPoolCreateBitmask FlagMask)
-
-deriving instance Real (VkCommandPoolCreateBitmask FlagMask)
-
-instance Show (VkCommandPoolCreateBitmask a) where
-        showsPrec _ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT
-          = showString "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT"
-        showsPrec _ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
-          = showString "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT"
-        showsPrec p (VkCommandPoolCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkCommandPoolCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkCommandPoolCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMMAND_POOL_CREATE_TRANSIENT_BIT",
-                   pure VK_COMMAND_POOL_CREATE_TRANSIENT_BIT),
-                  ("VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT",
-                   pure VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCommandPoolCreateBitmask") >>
-                      (VkCommandPoolCreateBitmask <$> step readPrec)))
-
--- | Command buffers have a short lifetime
---
---   bitpos = @0@
-pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT ::
-        VkCommandPoolCreateBitmask a
-
-pattern VK_COMMAND_POOL_CREATE_TRANSIENT_BIT =
-        VkCommandPoolCreateBitmask 1
-
--- | Command buffers may release their memory individually
---
---   bitpos = @1@
-pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT ::
-        VkCommandPoolCreateBitmask a
-
-pattern VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT =
-        VkCommandPoolCreateBitmask 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolResetFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolResetFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCommandPoolResetFlags.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags
-       (VkCommandPoolResetBitmask(VkCommandPoolResetBitmask,
-                                  VkCommandPoolResetFlags, VkCommandPoolResetFlagBits,
-                                  VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT),
-        VkCommandPoolResetFlags, VkCommandPoolResetFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCommandPoolResetBitmask (a ::
-                                     FlagType) = VkCommandPoolResetBitmask VkFlags
-                                                   deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCommandPoolResetFlags = VkCommandPoolResetBitmask FlagMask
-
-type VkCommandPoolResetFlagBits = VkCommandPoolResetBitmask FlagBit
-
-pattern VkCommandPoolResetFlagBits ::
-        VkFlags -> VkCommandPoolResetBitmask FlagBit
-
-pattern VkCommandPoolResetFlagBits n = VkCommandPoolResetBitmask n
-
-pattern VkCommandPoolResetFlags ::
-        VkFlags -> VkCommandPoolResetBitmask FlagMask
-
-pattern VkCommandPoolResetFlags n = VkCommandPoolResetBitmask n
-
-deriving instance Bits (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance FiniteBits (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance Integral (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance Num (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance Bounded (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance Enum (VkCommandPoolResetBitmask FlagMask)
-
-deriving instance Real (VkCommandPoolResetBitmask FlagMask)
-
-instance Show (VkCommandPoolResetBitmask a) where
-        showsPrec _ VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
-          = showString "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"
-        showsPrec p (VkCommandPoolResetBitmask x)
-          = showParen (p >= 11)
-              (showString "VkCommandPoolResetBitmask " . showsPrec 11 x)
-
-instance Read (VkCommandPoolResetBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT",
-                   pure VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCommandPoolResetBitmask") >>
-                      (VkCommandPoolResetBitmask <$> step readPrec)))
-
--- | Release resources owned by the pool
---
---   bitpos = @0@
-pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT ::
-        VkCommandPoolResetBitmask a
-
-pattern VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT =
-        VkCommandPoolResetBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCompareOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCompareOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCompareOp.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkCompareOp
-       (VkCompareOp(VkCompareOp, VK_COMPARE_OP_NEVER, VK_COMPARE_OP_LESS,
-                    VK_COMPARE_OP_EQUAL, VK_COMPARE_OP_LESS_OR_EQUAL,
-                    VK_COMPARE_OP_GREATER, VK_COMPARE_OP_NOT_EQUAL,
-                    VK_COMPARE_OP_GREATER_OR_EQUAL, VK_COMPARE_OP_ALWAYS))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCompareOp.html VkCompareOp registry at www.khronos.org>
-newtype VkCompareOp = VkCompareOp Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkCompareOp where
-        showsPrec _ VK_COMPARE_OP_NEVER = showString "VK_COMPARE_OP_NEVER"
-        showsPrec _ VK_COMPARE_OP_LESS = showString "VK_COMPARE_OP_LESS"
-        showsPrec _ VK_COMPARE_OP_EQUAL = showString "VK_COMPARE_OP_EQUAL"
-        showsPrec _ VK_COMPARE_OP_LESS_OR_EQUAL
-          = showString "VK_COMPARE_OP_LESS_OR_EQUAL"
-        showsPrec _ VK_COMPARE_OP_GREATER
-          = showString "VK_COMPARE_OP_GREATER"
-        showsPrec _ VK_COMPARE_OP_NOT_EQUAL
-          = showString "VK_COMPARE_OP_NOT_EQUAL"
-        showsPrec _ VK_COMPARE_OP_GREATER_OR_EQUAL
-          = showString "VK_COMPARE_OP_GREATER_OR_EQUAL"
-        showsPrec _ VK_COMPARE_OP_ALWAYS
-          = showString "VK_COMPARE_OP_ALWAYS"
-        showsPrec p (VkCompareOp x)
-          = showParen (p >= 11) (showString "VkCompareOp " . showsPrec 11 x)
-
-instance Read VkCompareOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMPARE_OP_NEVER", pure VK_COMPARE_OP_NEVER),
-                  ("VK_COMPARE_OP_LESS", pure VK_COMPARE_OP_LESS),
-                  ("VK_COMPARE_OP_EQUAL", pure VK_COMPARE_OP_EQUAL),
-                  ("VK_COMPARE_OP_LESS_OR_EQUAL", pure VK_COMPARE_OP_LESS_OR_EQUAL),
-                  ("VK_COMPARE_OP_GREATER", pure VK_COMPARE_OP_GREATER),
-                  ("VK_COMPARE_OP_NOT_EQUAL", pure VK_COMPARE_OP_NOT_EQUAL),
-                  ("VK_COMPARE_OP_GREATER_OR_EQUAL",
-                   pure VK_COMPARE_OP_GREATER_OR_EQUAL),
-                  ("VK_COMPARE_OP_ALWAYS", pure VK_COMPARE_OP_ALWAYS)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCompareOp") >> (VkCompareOp <$> step readPrec)))
-
-pattern VK_COMPARE_OP_NEVER :: VkCompareOp
-
-pattern VK_COMPARE_OP_NEVER = VkCompareOp 0
-
-pattern VK_COMPARE_OP_LESS :: VkCompareOp
-
-pattern VK_COMPARE_OP_LESS = VkCompareOp 1
-
-pattern VK_COMPARE_OP_EQUAL :: VkCompareOp
-
-pattern VK_COMPARE_OP_EQUAL = VkCompareOp 2
-
-pattern VK_COMPARE_OP_LESS_OR_EQUAL :: VkCompareOp
-
-pattern VK_COMPARE_OP_LESS_OR_EQUAL = VkCompareOp 3
-
-pattern VK_COMPARE_OP_GREATER :: VkCompareOp
-
-pattern VK_COMPARE_OP_GREATER = VkCompareOp 4
-
-pattern VK_COMPARE_OP_NOT_EQUAL :: VkCompareOp
-
-pattern VK_COMPARE_OP_NOT_EQUAL = VkCompareOp 5
-
-pattern VK_COMPARE_OP_GREATER_OR_EQUAL :: VkCompareOp
-
-pattern VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp 6
-
-pattern VK_COMPARE_OP_ALWAYS :: VkCompareOp
-
-pattern VK_COMPARE_OP_ALWAYS = VkCompareOp 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkComponentSwizzle.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkComponentSwizzle.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkComponentSwizzle.hs
+++ /dev/null
@@ -1,92 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-       (VkComponentSwizzle(VkComponentSwizzle,
-                           VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_ZERO,
-                           VK_COMPONENT_SWIZZLE_ONE, VK_COMPONENT_SWIZZLE_R,
-                           VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B,
-                           VK_COMPONENT_SWIZZLE_A))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkComponentSwizzle.html VkComponentSwizzle registry at www.khronos.org>
-newtype VkComponentSwizzle = VkComponentSwizzle Int32
-                               deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkComponentSwizzle where
-        showsPrec _ VK_COMPONENT_SWIZZLE_IDENTITY
-          = showString "VK_COMPONENT_SWIZZLE_IDENTITY"
-        showsPrec _ VK_COMPONENT_SWIZZLE_ZERO
-          = showString "VK_COMPONENT_SWIZZLE_ZERO"
-        showsPrec _ VK_COMPONENT_SWIZZLE_ONE
-          = showString "VK_COMPONENT_SWIZZLE_ONE"
-        showsPrec _ VK_COMPONENT_SWIZZLE_R
-          = showString "VK_COMPONENT_SWIZZLE_R"
-        showsPrec _ VK_COMPONENT_SWIZZLE_G
-          = showString "VK_COMPONENT_SWIZZLE_G"
-        showsPrec _ VK_COMPONENT_SWIZZLE_B
-          = showString "VK_COMPONENT_SWIZZLE_B"
-        showsPrec _ VK_COMPONENT_SWIZZLE_A
-          = showString "VK_COMPONENT_SWIZZLE_A"
-        showsPrec p (VkComponentSwizzle x)
-          = showParen (p >= 11)
-              (showString "VkComponentSwizzle " . showsPrec 11 x)
-
-instance Read VkComponentSwizzle where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMPONENT_SWIZZLE_IDENTITY",
-                   pure VK_COMPONENT_SWIZZLE_IDENTITY),
-                  ("VK_COMPONENT_SWIZZLE_ZERO", pure VK_COMPONENT_SWIZZLE_ZERO),
-                  ("VK_COMPONENT_SWIZZLE_ONE", pure VK_COMPONENT_SWIZZLE_ONE),
-                  ("VK_COMPONENT_SWIZZLE_R", pure VK_COMPONENT_SWIZZLE_R),
-                  ("VK_COMPONENT_SWIZZLE_G", pure VK_COMPONENT_SWIZZLE_G),
-                  ("VK_COMPONENT_SWIZZLE_B", pure VK_COMPONENT_SWIZZLE_B),
-                  ("VK_COMPONENT_SWIZZLE_A", pure VK_COMPONENT_SWIZZLE_A)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkComponentSwizzle") >>
-                      (VkComponentSwizzle <$> step readPrec)))
-
-pattern VK_COMPONENT_SWIZZLE_IDENTITY :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle 0
-
-pattern VK_COMPONENT_SWIZZLE_ZERO :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_ZERO = VkComponentSwizzle 1
-
-pattern VK_COMPONENT_SWIZZLE_ONE :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_ONE = VkComponentSwizzle 2
-
-pattern VK_COMPONENT_SWIZZLE_R :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_R = VkComponentSwizzle 3
-
-pattern VK_COMPONENT_SWIZZLE_G :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_G = VkComponentSwizzle 4
-
-pattern VK_COMPONENT_SWIZZLE_B :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_B = VkComponentSwizzle 5
-
-pattern VK_COMPONENT_SWIZZLE_A :: VkComponentSwizzle
-
-pattern VK_COMPONENT_SWIZZLE_A = VkComponentSwizzle 6
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCompositeAlphaFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCompositeAlphaFlagsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCompositeAlphaFlagsKHR.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-       (VkCompositeAlphaBitmaskKHR(VkCompositeAlphaBitmaskKHR,
-                                   VkCompositeAlphaFlagsKHR, VkCompositeAlphaFlagBitsKHR,
-                                   VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
-                                   VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
-                                   VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
-                                   VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR),
-        VkCompositeAlphaFlagsKHR, VkCompositeAlphaFlagBitsKHR)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCompositeAlphaBitmaskKHR (a ::
-                                      FlagType) = VkCompositeAlphaBitmaskKHR VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCompositeAlphaFlagsKHR = VkCompositeAlphaBitmaskKHR FlagMask
-
-type VkCompositeAlphaFlagBitsKHR =
-     VkCompositeAlphaBitmaskKHR FlagBit
-
-pattern VkCompositeAlphaFlagBitsKHR ::
-        VkFlags -> VkCompositeAlphaBitmaskKHR FlagBit
-
-pattern VkCompositeAlphaFlagBitsKHR n =
-        VkCompositeAlphaBitmaskKHR n
-
-pattern VkCompositeAlphaFlagsKHR ::
-        VkFlags -> VkCompositeAlphaBitmaskKHR FlagMask
-
-pattern VkCompositeAlphaFlagsKHR n = VkCompositeAlphaBitmaskKHR n
-
-deriving instance Bits (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance FiniteBits (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance Integral (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance Num (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance Bounded (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance Enum (VkCompositeAlphaBitmaskKHR FlagMask)
-
-deriving instance Real (VkCompositeAlphaBitmaskKHR FlagMask)
-
-instance Show (VkCompositeAlphaBitmaskKHR a) where
-        showsPrec _ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
-          = showString "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR"
-        showsPrec _ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
-          = showString "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR"
-        showsPrec _ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
-          = showString "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR"
-        showsPrec _ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
-          = showString "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR"
-        showsPrec p (VkCompositeAlphaBitmaskKHR x)
-          = showParen (p >= 11)
-              (showString "VkCompositeAlphaBitmaskKHR " . showsPrec 11 x)
-
-instance Read (VkCompositeAlphaBitmaskKHR a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR",
-                   pure VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR),
-                  ("VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR",
-                   pure VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR),
-                  ("VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR",
-                   pure VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR),
-                  ("VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR",
-                   pure VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCompositeAlphaBitmaskKHR") >>
-                      (VkCompositeAlphaBitmaskKHR <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR ::
-        VkCompositeAlphaBitmaskKHR a
-
-pattern VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR =
-        VkCompositeAlphaBitmaskKHR 1
-
--- | bitpos = @1@
-pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR ::
-        VkCompositeAlphaBitmaskKHR a
-
-pattern VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR =
-        VkCompositeAlphaBitmaskKHR 2
-
--- | bitpos = @2@
-pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR ::
-        VkCompositeAlphaBitmaskKHR a
-
-pattern VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR =
-        VkCompositeAlphaBitmaskKHR 4
-
--- | bitpos = @3@
-pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR ::
-        VkCompositeAlphaBitmaskKHR a
-
-pattern VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR =
-        VkCompositeAlphaBitmaskKHR 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkConservativeRasterizationModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkConservativeRasterizationModeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkConservativeRasterizationModeEXT.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkConservativeRasterizationModeEXT
-       (VkConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT,
-                                           VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
-                                           VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
-                                           VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkConservativeRasterizationModeEXT.html VkConservativeRasterizationModeEXT registry at www.khronos.org>
-newtype VkConservativeRasterizationModeEXT = VkConservativeRasterizationModeEXT Int32
-                                               deriving (Eq, Ord, Num, Bounded, Storable, Enum,
-                                                         Data, Generic)
-
-instance Show VkConservativeRasterizationModeEXT where
-        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT
-          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT"
-        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT
-          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT"
-        showsPrec _ VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
-          = showString "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT"
-        showsPrec p (VkConservativeRasterizationModeEXT x)
-          = showParen (p >= 11)
-              (showString "VkConservativeRasterizationModeEXT " . showsPrec 11 x)
-
-instance Read VkConservativeRasterizationModeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT",
-                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT),
-                  ("VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT",
-                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT),
-                  ("VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT",
-                   pure VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkConservativeRasterizationModeEXT") >>
-                      (VkConservativeRasterizationModeEXT <$> step readPrec)))
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT ::
-        VkConservativeRasterizationModeEXT
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT =
-        VkConservativeRasterizationModeEXT 0
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT ::
-        VkConservativeRasterizationModeEXT
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT =
-        VkConservativeRasterizationModeEXT 1
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT ::
-        VkConservativeRasterizationModeEXT
-
-pattern VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT =
-        VkConservativeRasterizationModeEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCoverageModulationModeNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCoverageModulationModeNV.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCoverageModulationModeNV.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkCoverageModulationModeNV
-       (VkCoverageModulationModeNV(VkCoverageModulationModeNV,
-                                   VK_COVERAGE_MODULATION_MODE_NONE_NV,
-                                   VK_COVERAGE_MODULATION_MODE_RGB_NV,
-                                   VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
-                                   VK_COVERAGE_MODULATION_MODE_RGBA_NV))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCoverageModulationModeNV.html VkCoverageModulationModeNV registry at www.khronos.org>
-newtype VkCoverageModulationModeNV = VkCoverageModulationModeNV Int32
-                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                 Generic)
-
-instance Show VkCoverageModulationModeNV where
-        showsPrec _ VK_COVERAGE_MODULATION_MODE_NONE_NV
-          = showString "VK_COVERAGE_MODULATION_MODE_NONE_NV"
-        showsPrec _ VK_COVERAGE_MODULATION_MODE_RGB_NV
-          = showString "VK_COVERAGE_MODULATION_MODE_RGB_NV"
-        showsPrec _ VK_COVERAGE_MODULATION_MODE_ALPHA_NV
-          = showString "VK_COVERAGE_MODULATION_MODE_ALPHA_NV"
-        showsPrec _ VK_COVERAGE_MODULATION_MODE_RGBA_NV
-          = showString "VK_COVERAGE_MODULATION_MODE_RGBA_NV"
-        showsPrec p (VkCoverageModulationModeNV x)
-          = showParen (p >= 11)
-              (showString "VkCoverageModulationModeNV " . showsPrec 11 x)
-
-instance Read VkCoverageModulationModeNV where
-        readPrec
-          = parens
-              (choose
-                 [("VK_COVERAGE_MODULATION_MODE_NONE_NV",
-                   pure VK_COVERAGE_MODULATION_MODE_NONE_NV),
-                  ("VK_COVERAGE_MODULATION_MODE_RGB_NV",
-                   pure VK_COVERAGE_MODULATION_MODE_RGB_NV),
-                  ("VK_COVERAGE_MODULATION_MODE_ALPHA_NV",
-                   pure VK_COVERAGE_MODULATION_MODE_ALPHA_NV),
-                  ("VK_COVERAGE_MODULATION_MODE_RGBA_NV",
-                   pure VK_COVERAGE_MODULATION_MODE_RGBA_NV)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCoverageModulationModeNV") >>
-                      (VkCoverageModulationModeNV <$> step readPrec)))
-
-pattern VK_COVERAGE_MODULATION_MODE_NONE_NV ::
-        VkCoverageModulationModeNV
-
-pattern VK_COVERAGE_MODULATION_MODE_NONE_NV =
-        VkCoverageModulationModeNV 0
-
-pattern VK_COVERAGE_MODULATION_MODE_RGB_NV ::
-        VkCoverageModulationModeNV
-
-pattern VK_COVERAGE_MODULATION_MODE_RGB_NV =
-        VkCoverageModulationModeNV 1
-
-pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV ::
-        VkCoverageModulationModeNV
-
-pattern VK_COVERAGE_MODULATION_MODE_ALPHA_NV =
-        VkCoverageModulationModeNV 2
-
-pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV ::
-        VkCoverageModulationModeNV
-
-pattern VK_COVERAGE_MODULATION_MODE_RGBA_NV =
-        VkCoverageModulationModeNV 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkCullModeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkCullModeFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkCullModeFlags.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkCullModeFlags
-       (VkCullModeBitmask(VkCullModeBitmask, VkCullModeFlags,
-                          VkCullModeFlagBits, VK_CULL_MODE_NONE, VK_CULL_MODE_FRONT_BIT,
-                          VK_CULL_MODE_BACK_BIT, VK_CULL_MODE_FRONT_AND_BACK),
-        VkCullModeFlags, VkCullModeFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkCullModeBitmask (a ::
-                             FlagType) = VkCullModeBitmask VkFlags
-                                           deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkCullModeFlags = VkCullModeBitmask FlagMask
-
-type VkCullModeFlagBits = VkCullModeBitmask FlagBit
-
-pattern VkCullModeFlagBits :: VkFlags -> VkCullModeBitmask FlagBit
-
-pattern VkCullModeFlagBits n = VkCullModeBitmask n
-
-pattern VkCullModeFlags :: VkFlags -> VkCullModeBitmask FlagMask
-
-pattern VkCullModeFlags n = VkCullModeBitmask n
-
-deriving instance Bits (VkCullModeBitmask FlagMask)
-
-deriving instance FiniteBits (VkCullModeBitmask FlagMask)
-
-deriving instance Integral (VkCullModeBitmask FlagMask)
-
-deriving instance Num (VkCullModeBitmask FlagMask)
-
-deriving instance Bounded (VkCullModeBitmask FlagMask)
-
-deriving instance Enum (VkCullModeBitmask FlagMask)
-
-deriving instance Real (VkCullModeBitmask FlagMask)
-
-instance Show (VkCullModeBitmask a) where
-        showsPrec _ VK_CULL_MODE_NONE = showString "VK_CULL_MODE_NONE"
-        showsPrec _ VK_CULL_MODE_FRONT_BIT
-          = showString "VK_CULL_MODE_FRONT_BIT"
-        showsPrec _ VK_CULL_MODE_BACK_BIT
-          = showString "VK_CULL_MODE_BACK_BIT"
-        showsPrec _ VK_CULL_MODE_FRONT_AND_BACK
-          = showString "VK_CULL_MODE_FRONT_AND_BACK"
-        showsPrec p (VkCullModeBitmask x)
-          = showParen (p >= 11)
-              (showString "VkCullModeBitmask " . showsPrec 11 x)
-
-instance Read (VkCullModeBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_CULL_MODE_NONE", pure VK_CULL_MODE_NONE),
-                  ("VK_CULL_MODE_FRONT_BIT", pure VK_CULL_MODE_FRONT_BIT),
-                  ("VK_CULL_MODE_BACK_BIT", pure VK_CULL_MODE_BACK_BIT),
-                  ("VK_CULL_MODE_FRONT_AND_BACK", pure VK_CULL_MODE_FRONT_AND_BACK)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkCullModeBitmask") >>
-                      (VkCullModeBitmask <$> step readPrec)))
-
-pattern VK_CULL_MODE_NONE :: VkCullModeBitmask a
-
-pattern VK_CULL_MODE_NONE = VkCullModeBitmask 0
-
--- | bitpos = @0@
-pattern VK_CULL_MODE_FRONT_BIT :: VkCullModeBitmask a
-
-pattern VK_CULL_MODE_FRONT_BIT = VkCullModeBitmask 1
-
--- | bitpos = @1@
-pattern VK_CULL_MODE_BACK_BIT :: VkCullModeBitmask a
-
-pattern VK_CULL_MODE_BACK_BIT = VkCullModeBitmask 2
-
-pattern VK_CULL_MODE_FRONT_AND_BACK :: VkCullModeBitmask a
-
-pattern VK_CULL_MODE_FRONT_AND_BACK = VkCullModeBitmask 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportFlagsEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportFlagsEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportFlagsEXT.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT
-       (VkDebugReportBitmaskEXT(VkDebugReportBitmaskEXT,
-                                VkDebugReportFlagsEXT, VkDebugReportFlagBitsEXT,
-                                VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
-                                VK_DEBUG_REPORT_WARNING_BIT_EXT,
-                                VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
-                                VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_DEBUG_BIT_EXT),
-        VkDebugReportFlagsEXT, VkDebugReportFlagBitsEXT)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDebugReportBitmaskEXT (a ::
-                                   FlagType) = VkDebugReportBitmaskEXT VkFlags
-                                                 deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkDebugReportFlagsEXT = VkDebugReportBitmaskEXT FlagMask
-
-type VkDebugReportFlagBitsEXT = VkDebugReportBitmaskEXT FlagBit
-
-pattern VkDebugReportFlagBitsEXT ::
-        VkFlags -> VkDebugReportBitmaskEXT FlagBit
-
-pattern VkDebugReportFlagBitsEXT n = VkDebugReportBitmaskEXT n
-
-pattern VkDebugReportFlagsEXT ::
-        VkFlags -> VkDebugReportBitmaskEXT FlagMask
-
-pattern VkDebugReportFlagsEXT n = VkDebugReportBitmaskEXT n
-
-deriving instance Bits (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance FiniteBits (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance Integral (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance Num (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance Bounded (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance Enum (VkDebugReportBitmaskEXT FlagMask)
-
-deriving instance Real (VkDebugReportBitmaskEXT FlagMask)
-
-instance Show (VkDebugReportBitmaskEXT a) where
-        showsPrec _ VK_DEBUG_REPORT_INFORMATION_BIT_EXT
-          = showString "VK_DEBUG_REPORT_INFORMATION_BIT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_WARNING_BIT_EXT
-          = showString "VK_DEBUG_REPORT_WARNING_BIT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT
-          = showString "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_ERROR_BIT_EXT
-          = showString "VK_DEBUG_REPORT_ERROR_BIT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_DEBUG_BIT_EXT
-          = showString "VK_DEBUG_REPORT_DEBUG_BIT_EXT"
-        showsPrec p (VkDebugReportBitmaskEXT x)
-          = showParen (p >= 11)
-              (showString "VkDebugReportBitmaskEXT " . showsPrec 11 x)
-
-instance Read (VkDebugReportBitmaskEXT a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEBUG_REPORT_INFORMATION_BIT_EXT",
-                   pure VK_DEBUG_REPORT_INFORMATION_BIT_EXT),
-                  ("VK_DEBUG_REPORT_WARNING_BIT_EXT",
-                   pure VK_DEBUG_REPORT_WARNING_BIT_EXT),
-                  ("VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT",
-                   pure VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT),
-                  ("VK_DEBUG_REPORT_ERROR_BIT_EXT",
-                   pure VK_DEBUG_REPORT_ERROR_BIT_EXT),
-                  ("VK_DEBUG_REPORT_DEBUG_BIT_EXT",
-                   pure VK_DEBUG_REPORT_DEBUG_BIT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDebugReportBitmaskEXT") >>
-                      (VkDebugReportBitmaskEXT <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT ::
-        VkDebugReportBitmaskEXT a
-
-pattern VK_DEBUG_REPORT_INFORMATION_BIT_EXT =
-        VkDebugReportBitmaskEXT 1
-
--- | bitpos = @1@
-pattern VK_DEBUG_REPORT_WARNING_BIT_EXT ::
-        VkDebugReportBitmaskEXT a
-
-pattern VK_DEBUG_REPORT_WARNING_BIT_EXT = VkDebugReportBitmaskEXT 2
-
--- | bitpos = @2@
-pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT ::
-        VkDebugReportBitmaskEXT a
-
-pattern VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT =
-        VkDebugReportBitmaskEXT 4
-
--- | bitpos = @3@
-pattern VK_DEBUG_REPORT_ERROR_BIT_EXT :: VkDebugReportBitmaskEXT a
-
-pattern VK_DEBUG_REPORT_ERROR_BIT_EXT = VkDebugReportBitmaskEXT 8
-
--- | bitpos = @4@
-pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT :: VkDebugReportBitmaskEXT a
-
-pattern VK_DEBUG_REPORT_DEBUG_BIT_EXT = VkDebugReportBitmaskEXT 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportObjectTypeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportObjectTypeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugReportObjectTypeEXT.hs
+++ /dev/null
@@ -1,418 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-       (VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
-                                   VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugReportObjectTypeEXT.html VkDebugReportObjectTypeEXT registry at www.khronos.org>
-newtype VkDebugReportObjectTypeEXT = VkDebugReportObjectTypeEXT Int32
-                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                 Generic)
-
-instance Show VkDebugReportObjectTypeEXT where
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT
-          = showString
-              "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"
-        showsPrec _
-          VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
-          = showString
-              "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT"
-        showsPrec _
-          VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
-          = showString
-              "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT"
-        showsPrec _ VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT
-          = showString "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"
-        showsPrec p (VkDebugReportObjectTypeEXT x)
-          = showParen (p >= 11)
-              (showString "VkDebugReportObjectTypeEXT " . showsPrec 11 x)
-
-instance Read VkDebugReportObjectTypeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT),
-                  ("VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT",
-                   pure VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDebugReportObjectTypeEXT") >>
-                      (VkDebugReportObjectTypeEXT <$> step readPrec)))
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT =
-        VkDebugReportObjectTypeEXT 0
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT =
-        VkDebugReportObjectTypeEXT 1
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT =
-        VkDebugReportObjectTypeEXT 2
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT =
-        VkDebugReportObjectTypeEXT 3
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT =
-        VkDebugReportObjectTypeEXT 4
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT =
-        VkDebugReportObjectTypeEXT 5
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT =
-        VkDebugReportObjectTypeEXT 6
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT =
-        VkDebugReportObjectTypeEXT 7
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT =
-        VkDebugReportObjectTypeEXT 8
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT =
-        VkDebugReportObjectTypeEXT 9
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT =
-        VkDebugReportObjectTypeEXT 10
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT =
-        VkDebugReportObjectTypeEXT 11
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT =
-        VkDebugReportObjectTypeEXT 12
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT =
-        VkDebugReportObjectTypeEXT 13
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT =
-        VkDebugReportObjectTypeEXT 14
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT =
-        VkDebugReportObjectTypeEXT 15
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT =
-        VkDebugReportObjectTypeEXT 16
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT =
-        VkDebugReportObjectTypeEXT 17
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT =
-        VkDebugReportObjectTypeEXT 18
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT =
-        VkDebugReportObjectTypeEXT 19
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT =
-        VkDebugReportObjectTypeEXT 20
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT =
-        VkDebugReportObjectTypeEXT 21
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT =
-        VkDebugReportObjectTypeEXT 22
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT =
-        VkDebugReportObjectTypeEXT 23
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT =
-        VkDebugReportObjectTypeEXT 24
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT =
-        VkDebugReportObjectTypeEXT 25
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT =
-        VkDebugReportObjectTypeEXT 26
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT =
-        VkDebugReportObjectTypeEXT 27
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT
-        :: VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT =
-        VkDebugReportObjectTypeEXT 28
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT =
-        VkDebugReportObjectTypeEXT 29
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT =
-        VkDebugReportObjectTypeEXT 30
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT =
-        VkDebugReportObjectTypeEXT 31
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
-        :: VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT
-        = VkDebugReportObjectTypeEXT 32
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT ::
-        VkDebugReportObjectTypeEXT
-
-pattern VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT =
-        VkDebugReportObjectTypeEXT 33
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageSeverityFlagsEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageSeverityFlagsEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageSeverityFlagsEXT.hs
+++ /dev/null
@@ -1,135 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT
-       (VkDebugUtilsMessageSeverityBitmaskEXT(VkDebugUtilsMessageSeverityBitmaskEXT,
-                                              VkDebugUtilsMessageSeverityFlagsEXT,
-                                              VkDebugUtilsMessageSeverityFlagBitsEXT,
-                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
-                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
-                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
-                                              VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT),
-        VkDebugUtilsMessageSeverityFlagsEXT,
-        VkDebugUtilsMessageSeverityFlagBitsEXT)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDebugUtilsMessageSeverityBitmaskEXT (a ::
-                                                 FlagType) = VkDebugUtilsMessageSeverityBitmaskEXT VkFlags
-                                                               deriving (Eq, Ord, Storable, Data,
-                                                                         Generic)
-
-type VkDebugUtilsMessageSeverityFlagsEXT =
-     VkDebugUtilsMessageSeverityBitmaskEXT FlagMask
-
-type VkDebugUtilsMessageSeverityFlagBitsEXT =
-     VkDebugUtilsMessageSeverityBitmaskEXT FlagBit
-
-pattern VkDebugUtilsMessageSeverityFlagBitsEXT ::
-        VkFlags -> VkDebugUtilsMessageSeverityBitmaskEXT FlagBit
-
-pattern VkDebugUtilsMessageSeverityFlagBitsEXT n =
-        VkDebugUtilsMessageSeverityBitmaskEXT n
-
-pattern VkDebugUtilsMessageSeverityFlagsEXT ::
-        VkFlags -> VkDebugUtilsMessageSeverityBitmaskEXT FlagMask
-
-pattern VkDebugUtilsMessageSeverityFlagsEXT n =
-        VkDebugUtilsMessageSeverityBitmaskEXT n
-
-deriving instance
-         Bits (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         FiniteBits (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         Integral (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         Num (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         Bounded (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         Enum (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-deriving instance
-         Real (VkDebugUtilsMessageSeverityBitmaskEXT FlagMask)
-
-instance Show (VkDebugUtilsMessageSeverityBitmaskEXT a) where
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT"
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT"
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT"
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT"
-        showsPrec p (VkDebugUtilsMessageSeverityBitmaskEXT x)
-          = showParen (p >= 11)
-              (showString "VkDebugUtilsMessageSeverityBitmaskEXT " .
-                 showsPrec 11 x)
-
-instance Read (VkDebugUtilsMessageSeverityBitmaskEXT a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT),
-                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT),
-                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT),
-                  ("VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDebugUtilsMessageSeverityBitmaskEXT") >>
-                      (VkDebugUtilsMessageSeverityBitmaskEXT <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT ::
-        VkDebugUtilsMessageSeverityBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT =
-        VkDebugUtilsMessageSeverityBitmaskEXT 1
-
--- | bitpos = @4@
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT ::
-        VkDebugUtilsMessageSeverityBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT =
-        VkDebugUtilsMessageSeverityBitmaskEXT 16
-
--- | bitpos = @8@
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT ::
-        VkDebugUtilsMessageSeverityBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT =
-        VkDebugUtilsMessageSeverityBitmaskEXT 256
-
--- | bitpos = @12@
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT ::
-        VkDebugUtilsMessageSeverityBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT =
-        VkDebugUtilsMessageSeverityBitmaskEXT 4096
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageTypeFlagsEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageTypeFlagsEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDebugUtilsMessageTypeFlagsEXT.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT
-       (VkDebugUtilsMessageTypeBitmaskEXT(VkDebugUtilsMessageTypeBitmaskEXT,
-                                          VkDebugUtilsMessageTypeFlagsEXT,
-                                          VkDebugUtilsMessageTypeFlagBitsEXT,
-                                          VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
-                                          VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
-                                          VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT),
-        VkDebugUtilsMessageTypeFlagsEXT,
-        VkDebugUtilsMessageTypeFlagBitsEXT)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDebugUtilsMessageTypeBitmaskEXT (a ::
-                                             FlagType) = VkDebugUtilsMessageTypeBitmaskEXT VkFlags
-                                                           deriving (Eq, Ord, Storable, Data,
-                                                                     Generic)
-
-type VkDebugUtilsMessageTypeFlagsEXT =
-     VkDebugUtilsMessageTypeBitmaskEXT FlagMask
-
-type VkDebugUtilsMessageTypeFlagBitsEXT =
-     VkDebugUtilsMessageTypeBitmaskEXT FlagBit
-
-pattern VkDebugUtilsMessageTypeFlagBitsEXT ::
-        VkFlags -> VkDebugUtilsMessageTypeBitmaskEXT FlagBit
-
-pattern VkDebugUtilsMessageTypeFlagBitsEXT n =
-        VkDebugUtilsMessageTypeBitmaskEXT n
-
-pattern VkDebugUtilsMessageTypeFlagsEXT ::
-        VkFlags -> VkDebugUtilsMessageTypeBitmaskEXT FlagMask
-
-pattern VkDebugUtilsMessageTypeFlagsEXT n =
-        VkDebugUtilsMessageTypeBitmaskEXT n
-
-deriving instance Bits (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance
-         FiniteBits (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance
-         Integral (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance Num (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance
-         Bounded (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance Enum (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-deriving instance Real (VkDebugUtilsMessageTypeBitmaskEXT FlagMask)
-
-instance Show (VkDebugUtilsMessageTypeBitmaskEXT a) where
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT"
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT"
-        showsPrec _ VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
-          = showString "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT"
-        showsPrec p (VkDebugUtilsMessageTypeBitmaskEXT x)
-          = showParen (p >= 11)
-              (showString "VkDebugUtilsMessageTypeBitmaskEXT " . showsPrec 11 x)
-
-instance Read (VkDebugUtilsMessageTypeBitmaskEXT a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT),
-                  ("VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT),
-                  ("VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT",
-                   pure VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDebugUtilsMessageTypeBitmaskEXT") >>
-                      (VkDebugUtilsMessageTypeBitmaskEXT <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT ::
-        VkDebugUtilsMessageTypeBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT =
-        VkDebugUtilsMessageTypeBitmaskEXT 1
-
--- | bitpos = @1@
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT ::
-        VkDebugUtilsMessageTypeBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT =
-        VkDebugUtilsMessageTypeBitmaskEXT 2
-
--- | bitpos = @2@
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT ::
-        VkDebugUtilsMessageTypeBitmaskEXT a
-
-pattern VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT =
-        VkDebugUtilsMessageTypeBitmaskEXT 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDependencyFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDependencyFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDependencyFlags.hs
+++ /dev/null
@@ -1,82 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDependencyFlags
-       (VkDependencyBitmask(VkDependencyBitmask, VkDependencyFlags,
-                            VkDependencyFlagBits, VK_DEPENDENCY_BY_REGION_BIT),
-        VkDependencyFlags, VkDependencyFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDependencyBitmask (a ::
-                               FlagType) = VkDependencyBitmask VkFlags
-                                             deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkDependencyFlags = VkDependencyBitmask FlagMask
-
-type VkDependencyFlagBits = VkDependencyBitmask FlagBit
-
-pattern VkDependencyFlagBits ::
-        VkFlags -> VkDependencyBitmask FlagBit
-
-pattern VkDependencyFlagBits n = VkDependencyBitmask n
-
-pattern VkDependencyFlags ::
-        VkFlags -> VkDependencyBitmask FlagMask
-
-pattern VkDependencyFlags n = VkDependencyBitmask n
-
-deriving instance Bits (VkDependencyBitmask FlagMask)
-
-deriving instance FiniteBits (VkDependencyBitmask FlagMask)
-
-deriving instance Integral (VkDependencyBitmask FlagMask)
-
-deriving instance Num (VkDependencyBitmask FlagMask)
-
-deriving instance Bounded (VkDependencyBitmask FlagMask)
-
-deriving instance Enum (VkDependencyBitmask FlagMask)
-
-deriving instance Real (VkDependencyBitmask FlagMask)
-
-instance Show (VkDependencyBitmask a) where
-        showsPrec _ VK_DEPENDENCY_BY_REGION_BIT
-          = showString "VK_DEPENDENCY_BY_REGION_BIT"
-        showsPrec p (VkDependencyBitmask x)
-          = showParen (p >= 11)
-              (showString "VkDependencyBitmask " . showsPrec 11 x)
-
-instance Read (VkDependencyBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEPENDENCY_BY_REGION_BIT", pure VK_DEPENDENCY_BY_REGION_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDependencyBitmask") >>
-                      (VkDependencyBitmask <$> step readPrec)))
-
--- | Dependency is per pixel region
---
---   bitpos = @0@
-pattern VK_DEPENDENCY_BY_REGION_BIT :: VkDependencyBitmask a
-
-pattern VK_DEPENDENCY_BY_REGION_BIT = VkDependencyBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorPoolCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorPoolCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorPoolCreateFlags.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags
-       (VkDescriptorPoolCreateBitmask(VkDescriptorPoolCreateBitmask,
-                                      VkDescriptorPoolCreateFlags, VkDescriptorPoolCreateFlagBits,
-                                      VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT),
-        VkDescriptorPoolCreateFlags, VkDescriptorPoolCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDescriptorPoolCreateBitmask (a ::
-                                         FlagType) = VkDescriptorPoolCreateBitmask VkFlags
-                                                       deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkDescriptorPoolCreateFlags =
-     VkDescriptorPoolCreateBitmask FlagMask
-
-type VkDescriptorPoolCreateFlagBits =
-     VkDescriptorPoolCreateBitmask FlagBit
-
-pattern VkDescriptorPoolCreateFlagBits ::
-        VkFlags -> VkDescriptorPoolCreateBitmask FlagBit
-
-pattern VkDescriptorPoolCreateFlagBits n =
-        VkDescriptorPoolCreateBitmask n
-
-pattern VkDescriptorPoolCreateFlags ::
-        VkFlags -> VkDescriptorPoolCreateBitmask FlagMask
-
-pattern VkDescriptorPoolCreateFlags n =
-        VkDescriptorPoolCreateBitmask n
-
-deriving instance Bits (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance Integral (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance Num (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance Bounded (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance Enum (VkDescriptorPoolCreateBitmask FlagMask)
-
-deriving instance Real (VkDescriptorPoolCreateBitmask FlagMask)
-
-instance Show (VkDescriptorPoolCreateBitmask a) where
-        showsPrec _ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
-          = showString "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"
-        showsPrec p (VkDescriptorPoolCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkDescriptorPoolCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkDescriptorPoolCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT",
-                   pure VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDescriptorPoolCreateBitmask") >>
-                      (VkDescriptorPoolCreateBitmask <$> step readPrec)))
-
--- | Descriptor sets may be freed individually
---
---   bitpos = @0@
-pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT ::
-        VkDescriptorPoolCreateBitmask a
-
-pattern VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT =
-        VkDescriptorPoolCreateBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorSetLayoutCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorSetLayoutCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorSetLayoutCreateFlags.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-       (VkDescriptorSetLayoutCreateBitmask(VkDescriptorSetLayoutCreateBitmask,
-                                           VkDescriptorSetLayoutCreateFlags,
-                                           VkDescriptorSetLayoutCreateFlagBits),
-        VkDescriptorSetLayoutCreateFlags,
-        VkDescriptorSetLayoutCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDescriptorSetLayoutCreateBitmask (a ::
-                                              FlagType) = VkDescriptorSetLayoutCreateBitmask VkFlags
-                                                            deriving (Eq, Ord, Storable, Data,
-                                                                      Generic)
-
-type VkDescriptorSetLayoutCreateFlags =
-     VkDescriptorSetLayoutCreateBitmask FlagMask
-
-type VkDescriptorSetLayoutCreateFlagBits =
-     VkDescriptorSetLayoutCreateBitmask FlagBit
-
-pattern VkDescriptorSetLayoutCreateFlagBits ::
-        VkFlags -> VkDescriptorSetLayoutCreateBitmask FlagBit
-
-pattern VkDescriptorSetLayoutCreateFlagBits n =
-        VkDescriptorSetLayoutCreateBitmask n
-
-pattern VkDescriptorSetLayoutCreateFlags ::
-        VkFlags -> VkDescriptorSetLayoutCreateBitmask FlagMask
-
-pattern VkDescriptorSetLayoutCreateFlags n =
-        VkDescriptorSetLayoutCreateBitmask n
-
-deriving instance
-         Bits (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance
-         Integral (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance Num (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance
-         Bounded (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance
-         Enum (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-deriving instance
-         Real (VkDescriptorSetLayoutCreateBitmask FlagMask)
-
-instance Show (VkDescriptorSetLayoutCreateBitmask a) where
-        showsPrec p (VkDescriptorSetLayoutCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkDescriptorSetLayoutCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkDescriptorSetLayoutCreateBitmask a) where
-        readPrec
-          = parens
-              (choose [] +++
-                 prec 10
-                   (expectP (Ident "VkDescriptorSetLayoutCreateBitmask") >>
-                      (VkDescriptorSetLayoutCreateBitmask <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorType.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDescriptorType
-       (VkDescriptorType(VkDescriptorType, VK_DESCRIPTOR_TYPE_SAMPLER,
-                         VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
-                         VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
-                         VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
-                         VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
-                         VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
-                         VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
-                         VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
-                         VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
-                         VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorType.html VkDescriptorType registry at www.khronos.org>
-newtype VkDescriptorType = VkDescriptorType Int32
-                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkDescriptorType where
-        showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLER
-          = showString "VK_DESCRIPTOR_TYPE_SAMPLER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
-          = showString "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
-          = showString "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"
-        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
-          = showString "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"
-        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
-          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
-          = showString "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
-          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
-          = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"
-        showsPrec _ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
-          = showString "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"
-        showsPrec _ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
-          = showString "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"
-        showsPrec _ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
-          = showString "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"
-        showsPrec p (VkDescriptorType x)
-          = showParen (p >= 11)
-              (showString "VkDescriptorType " . showsPrec 11 x)
-
-instance Read VkDescriptorType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DESCRIPTOR_TYPE_SAMPLER", pure VK_DESCRIPTOR_TYPE_SAMPLER),
-                  ("VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER",
-                   pure VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER),
-                  ("VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE",
-                   pure VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE),
-                  ("VK_DESCRIPTOR_TYPE_STORAGE_IMAGE",
-                   pure VK_DESCRIPTOR_TYPE_STORAGE_IMAGE),
-                  ("VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER",
-                   pure VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER),
-                  ("VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER",
-                   pure VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER),
-                  ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER",
-                   pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER),
-                  ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER",
-                   pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER),
-                  ("VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC",
-                   pure VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC),
-                  ("VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC",
-                   pure VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC),
-                  ("VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT",
-                   pure VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDescriptorType") >>
-                      (VkDescriptorType <$> step readPrec)))
-
-pattern VK_DESCRIPTOR_TYPE_SAMPLER :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_SAMPLER = VkDescriptorType 0
-
-pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ::
-        VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER =
-        VkDescriptorType 1
-
-pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = VkDescriptorType 2
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = VkDescriptorType 3
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER =
-        VkDescriptorType 4
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER =
-        VkDescriptorType 5
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = VkDescriptorType 6
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = VkDescriptorType 7
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ::
-        VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC =
-        VkDescriptorType 8
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC ::
-        VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC =
-        VkDescriptorType 9
-
-pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT :: VkDescriptorType
-
-pattern VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = VkDescriptorType 10
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateType.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType
-       (VkDescriptorUpdateTemplateType(VkDescriptorUpdateTemplateType,
-                                       VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorUpdateTemplateType.html VkDescriptorUpdateTemplateType registry at www.khronos.org>
-newtype VkDescriptorUpdateTemplateType = VkDescriptorUpdateTemplateType Int32
-                                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                     Generic)
-
-instance Show VkDescriptorUpdateTemplateType where
-        showsPrec _ VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
-          = showString "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET"
-        showsPrec p (VkDescriptorUpdateTemplateType x)
-          = showParen (p >= 11)
-              (showString "VkDescriptorUpdateTemplateType " . showsPrec 11 x)
-
-instance Read VkDescriptorUpdateTemplateType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET",
-                   pure VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDescriptorUpdateTemplateType") >>
-                      (VkDescriptorUpdateTemplateType <$> step readPrec)))
-
--- | Create descriptor update template for descriptor set updates
-pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET ::
-        VkDescriptorUpdateTemplateType
-
-pattern VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET =
-        VkDescriptorUpdateTemplateType 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateTypeKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateTypeKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDescriptorUpdateTemplateTypeKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateTypeKHR
-       (VkDescriptorUpdateTemplateTypeKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkDescriptorUpdateTemplateTypeKHR = VkDescriptorUpdateTemplateTypeKHR VkFlags
-                                              deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                        FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkDescriptorUpdateTemplateTypeKHR where
-        {-# INLINE show #-}
-        show (VkDescriptorUpdateTemplateTypeKHR x) = show x
-
-instance Read VkDescriptorUpdateTemplateTypeKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDeviceCreateFlagBits
-       (VkDeviceCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkDeviceCreateFlagBits = VkDeviceCreateFlagBits VkFlags
-                                   deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                             FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkDeviceCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkDeviceCreateFlagBits x) = show x
-
-instance Read VkDeviceCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceEventTypeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceEventTypeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceEventTypeEXT.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDeviceEventTypeEXT
-       (VkDeviceEventTypeEXT(VkDeviceEventTypeEXT,
-                             VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceEventTypeEXT.html VkDeviceEventTypeEXT registry at www.khronos.org>
-newtype VkDeviceEventTypeEXT = VkDeviceEventTypeEXT Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkDeviceEventTypeEXT where
-        showsPrec _ VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
-          = showString "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT"
-        showsPrec p (VkDeviceEventTypeEXT x)
-          = showParen (p >= 11)
-              (showString "VkDeviceEventTypeEXT " . showsPrec 11 x)
-
-instance Read VkDeviceEventTypeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT",
-                   pure VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDeviceEventTypeEXT") >>
-                      (VkDeviceEventTypeEXT <$> step readPrec)))
-
-pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT ::
-        VkDeviceEventTypeEXT
-
-pattern VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT =
-        VkDeviceEventTypeEXT 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceGroupPresentModeFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceGroupPresentModeFlagsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceGroupPresentModeFlagsKHR.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR
-       (VkDeviceGroupPresentModeBitmaskKHR(VkDeviceGroupPresentModeBitmaskKHR,
-                                           VkDeviceGroupPresentModeFlagsKHR,
-                                           VkDeviceGroupPresentModeFlagBitsKHR,
-                                           VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
-                                           VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
-                                           VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
-                                           VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR),
-        VkDeviceGroupPresentModeFlagsKHR,
-        VkDeviceGroupPresentModeFlagBitsKHR)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDeviceGroupPresentModeBitmaskKHR (a ::
-                                              FlagType) = VkDeviceGroupPresentModeBitmaskKHR VkFlags
-                                                            deriving (Eq, Ord, Storable, Data,
-                                                                      Generic)
-
-type VkDeviceGroupPresentModeFlagsKHR =
-     VkDeviceGroupPresentModeBitmaskKHR FlagMask
-
-type VkDeviceGroupPresentModeFlagBitsKHR =
-     VkDeviceGroupPresentModeBitmaskKHR FlagBit
-
-pattern VkDeviceGroupPresentModeFlagBitsKHR ::
-        VkFlags -> VkDeviceGroupPresentModeBitmaskKHR FlagBit
-
-pattern VkDeviceGroupPresentModeFlagBitsKHR n =
-        VkDeviceGroupPresentModeBitmaskKHR n
-
-pattern VkDeviceGroupPresentModeFlagsKHR ::
-        VkFlags -> VkDeviceGroupPresentModeBitmaskKHR FlagMask
-
-pattern VkDeviceGroupPresentModeFlagsKHR n =
-        VkDeviceGroupPresentModeBitmaskKHR n
-
-deriving instance
-         Bits (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance
-         FiniteBits (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance
-         Integral (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance Num (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance
-         Bounded (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance
-         Enum (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-deriving instance
-         Real (VkDeviceGroupPresentModeBitmaskKHR FlagMask)
-
-instance Show (VkDeviceGroupPresentModeBitmaskKHR a) where
-        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
-          = showString "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR"
-        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR
-          = showString "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR"
-        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR
-          = showString "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR"
-        showsPrec _ VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
-          = showString
-              "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR"
-        showsPrec p (VkDeviceGroupPresentModeBitmaskKHR x)
-          = showParen (p >= 11)
-              (showString "VkDeviceGroupPresentModeBitmaskKHR " . showsPrec 11 x)
-
-instance Read (VkDeviceGroupPresentModeBitmaskKHR a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR",
-                   pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR),
-                  ("VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR",
-                   pure VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR),
-                  ("VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR",
-                   pure VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR),
-                  ("VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR",
-                   pure VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDeviceGroupPresentModeBitmaskKHR") >>
-                      (VkDeviceGroupPresentModeBitmaskKHR <$> step readPrec)))
-
--- | Present from local memory
---
---   bitpos = @0@
-pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR ::
-        VkDeviceGroupPresentModeBitmaskKHR a
-
-pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR =
-        VkDeviceGroupPresentModeBitmaskKHR 1
-
--- | Present from remote memory
---
---   bitpos = @1@
-pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR ::
-        VkDeviceGroupPresentModeBitmaskKHR a
-
-pattern VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR =
-        VkDeviceGroupPresentModeBitmaskKHR 2
-
--- | Present sum of local and/or remote memory
---
---   bitpos = @2@
-pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR ::
-        VkDeviceGroupPresentModeBitmaskKHR a
-
-pattern VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR =
-        VkDeviceGroupPresentModeBitmaskKHR 4
-
--- | Each physical device presents from local memory
---
---   bitpos = @3@
-pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR ::
-        VkDeviceGroupPresentModeBitmaskKHR a
-
-pattern VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR =
-        VkDeviceGroupPresentModeBitmaskKHR 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceQueueCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceQueueCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDeviceQueueCreateFlags.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-       (VkDeviceQueueCreateBitmask(VkDeviceQueueCreateBitmask,
-                                   VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits),
-        VkDeviceQueueCreateFlags, VkDeviceQueueCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDeviceQueueCreateBitmask (a ::
-                                      FlagType) = VkDeviceQueueCreateBitmask VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkDeviceQueueCreateFlags = VkDeviceQueueCreateBitmask FlagMask
-
-type VkDeviceQueueCreateFlagBits =
-     VkDeviceQueueCreateBitmask FlagBit
-
-pattern VkDeviceQueueCreateFlagBits ::
-        VkFlags -> VkDeviceQueueCreateBitmask FlagBit
-
-pattern VkDeviceQueueCreateFlagBits n =
-        VkDeviceQueueCreateBitmask n
-
-pattern VkDeviceQueueCreateFlags ::
-        VkFlags -> VkDeviceQueueCreateBitmask FlagMask
-
-pattern VkDeviceQueueCreateFlags n = VkDeviceQueueCreateBitmask n
-
-deriving instance Bits (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance Integral (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance Num (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance Bounded (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance Enum (VkDeviceQueueCreateBitmask FlagMask)
-
-deriving instance Real (VkDeviceQueueCreateBitmask FlagMask)
-
-instance Show (VkDeviceQueueCreateBitmask a) where
-        showsPrec p (VkDeviceQueueCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkDeviceQueueCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkDeviceQueueCreateBitmask a) where
-        readPrec
-          = parens
-              (choose [] +++
-                 prec 10
-                   (expectP (Ident "VkDeviceQueueCreateBitmask") >>
-                      (VkDeviceQueueCreateBitmask <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDiscardRectangleModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDiscardRectangleModeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDiscardRectangleModeEXT.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDiscardRectangleModeEXT
-       (VkDiscardRectangleModeEXT(VkDiscardRectangleModeEXT,
-                                  VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
-                                  VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDiscardRectangleModeEXT.html VkDiscardRectangleModeEXT registry at www.khronos.org>
-newtype VkDiscardRectangleModeEXT = VkDiscardRectangleModeEXT Int32
-                                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                Generic)
-
-instance Show VkDiscardRectangleModeEXT where
-        showsPrec _ VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT
-          = showString "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT"
-        showsPrec _ VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
-          = showString "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT"
-        showsPrec p (VkDiscardRectangleModeEXT x)
-          = showParen (p >= 11)
-              (showString "VkDiscardRectangleModeEXT " . showsPrec 11 x)
-
-instance Read VkDiscardRectangleModeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT",
-                   pure VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT),
-                  ("VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT",
-                   pure VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDiscardRectangleModeEXT") >>
-                      (VkDiscardRectangleModeEXT <$> step readPrec)))
-
-pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT ::
-        VkDiscardRectangleModeEXT
-
-pattern VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT =
-        VkDiscardRectangleModeEXT 0
-
-pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT ::
-        VkDiscardRectangleModeEXT
-
-pattern VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT =
-        VkDiscardRectangleModeEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayEventTypeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayEventTypeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayEventTypeEXT.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDisplayEventTypeEXT
-       (VkDisplayEventTypeEXT(VkDisplayEventTypeEXT,
-                              VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayEventTypeEXT.html VkDisplayEventTypeEXT registry at www.khronos.org>
-newtype VkDisplayEventTypeEXT = VkDisplayEventTypeEXT Int32
-                                  deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkDisplayEventTypeEXT where
-        showsPrec _ VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
-          = showString "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT"
-        showsPrec p (VkDisplayEventTypeEXT x)
-          = showParen (p >= 11)
-              (showString "VkDisplayEventTypeEXT " . showsPrec 11 x)
-
-instance Read VkDisplayEventTypeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT",
-                   pure VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDisplayEventTypeEXT") >>
-                      (VkDisplayEventTypeEXT <$> step readPrec)))
-
-pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT ::
-        VkDisplayEventTypeEXT
-
-pattern VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT =
-        VkDisplayEventTypeEXT 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPlaneAlphaFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPlaneAlphaFlagsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPlaneAlphaFlagsKHR.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR
-       (VkDisplayPlaneAlphaBitmaskKHR(VkDisplayPlaneAlphaBitmaskKHR,
-                                      VkDisplayPlaneAlphaFlagsKHR, VkDisplayPlaneAlphaFlagBitsKHR,
-                                      VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
-                                      VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
-                                      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
-                                      VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR),
-        VkDisplayPlaneAlphaFlagsKHR, VkDisplayPlaneAlphaFlagBitsKHR)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkDisplayPlaneAlphaBitmaskKHR (a ::
-                                         FlagType) = VkDisplayPlaneAlphaBitmaskKHR VkFlags
-                                                       deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkDisplayPlaneAlphaFlagsKHR =
-     VkDisplayPlaneAlphaBitmaskKHR FlagMask
-
-type VkDisplayPlaneAlphaFlagBitsKHR =
-     VkDisplayPlaneAlphaBitmaskKHR FlagBit
-
-pattern VkDisplayPlaneAlphaFlagBitsKHR ::
-        VkFlags -> VkDisplayPlaneAlphaBitmaskKHR FlagBit
-
-pattern VkDisplayPlaneAlphaFlagBitsKHR n =
-        VkDisplayPlaneAlphaBitmaskKHR n
-
-pattern VkDisplayPlaneAlphaFlagsKHR ::
-        VkFlags -> VkDisplayPlaneAlphaBitmaskKHR FlagMask
-
-pattern VkDisplayPlaneAlphaFlagsKHR n =
-        VkDisplayPlaneAlphaBitmaskKHR n
-
-deriving instance Bits (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance
-         FiniteBits (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance Integral (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance Num (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance Bounded (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance Enum (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-deriving instance Real (VkDisplayPlaneAlphaBitmaskKHR FlagMask)
-
-instance Show (VkDisplayPlaneAlphaBitmaskKHR a) where
-        showsPrec _ VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR
-          = showString "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR"
-        showsPrec _ VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR
-          = showString "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR"
-        showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR
-          = showString "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR"
-        showsPrec _ VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
-          = showString
-              "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR"
-        showsPrec p (VkDisplayPlaneAlphaBitmaskKHR x)
-          = showParen (p >= 11)
-              (showString "VkDisplayPlaneAlphaBitmaskKHR " . showsPrec 11 x)
-
-instance Read (VkDisplayPlaneAlphaBitmaskKHR a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR",
-                   pure VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR),
-                  ("VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR",
-                   pure VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR),
-                  ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR",
-                   pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR),
-                  ("VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR",
-                   pure VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDisplayPlaneAlphaBitmaskKHR") >>
-                      (VkDisplayPlaneAlphaBitmaskKHR <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR ::
-        VkDisplayPlaneAlphaBitmaskKHR a
-
-pattern VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR =
-        VkDisplayPlaneAlphaBitmaskKHR 1
-
--- | bitpos = @1@
-pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR ::
-        VkDisplayPlaneAlphaBitmaskKHR a
-
-pattern VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR =
-        VkDisplayPlaneAlphaBitmaskKHR 2
-
--- | bitpos = @2@
-pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR ::
-        VkDisplayPlaneAlphaBitmaskKHR a
-
-pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR =
-        VkDisplayPlaneAlphaBitmaskKHR 4
-
--- | bitpos = @3@
-pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR ::
-        VkDisplayPlaneAlphaBitmaskKHR a
-
-pattern VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR =
-        VkDisplayPlaneAlphaBitmaskKHR 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPowerStateEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPowerStateEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDisplayPowerStateEXT.hs
+++ /dev/null
@@ -1,66 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDisplayPowerStateEXT
-       (VkDisplayPowerStateEXT(VkDisplayPowerStateEXT,
-                               VK_DISPLAY_POWER_STATE_OFF_EXT, VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
-                               VK_DISPLAY_POWER_STATE_ON_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPowerStateEXT.html VkDisplayPowerStateEXT registry at www.khronos.org>
-newtype VkDisplayPowerStateEXT = VkDisplayPowerStateEXT Int32
-                                   deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkDisplayPowerStateEXT where
-        showsPrec _ VK_DISPLAY_POWER_STATE_OFF_EXT
-          = showString "VK_DISPLAY_POWER_STATE_OFF_EXT"
-        showsPrec _ VK_DISPLAY_POWER_STATE_SUSPEND_EXT
-          = showString "VK_DISPLAY_POWER_STATE_SUSPEND_EXT"
-        showsPrec _ VK_DISPLAY_POWER_STATE_ON_EXT
-          = showString "VK_DISPLAY_POWER_STATE_ON_EXT"
-        showsPrec p (VkDisplayPowerStateEXT x)
-          = showParen (p >= 11)
-              (showString "VkDisplayPowerStateEXT " . showsPrec 11 x)
-
-instance Read VkDisplayPowerStateEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DISPLAY_POWER_STATE_OFF_EXT",
-                   pure VK_DISPLAY_POWER_STATE_OFF_EXT),
-                  ("VK_DISPLAY_POWER_STATE_SUSPEND_EXT",
-                   pure VK_DISPLAY_POWER_STATE_SUSPEND_EXT),
-                  ("VK_DISPLAY_POWER_STATE_ON_EXT",
-                   pure VK_DISPLAY_POWER_STATE_ON_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDisplayPowerStateEXT") >>
-                      (VkDisplayPowerStateEXT <$> step readPrec)))
-
-pattern VK_DISPLAY_POWER_STATE_OFF_EXT :: VkDisplayPowerStateEXT
-
-pattern VK_DISPLAY_POWER_STATE_OFF_EXT = VkDisplayPowerStateEXT 0
-
-pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT ::
-        VkDisplayPowerStateEXT
-
-pattern VK_DISPLAY_POWER_STATE_SUSPEND_EXT =
-        VkDisplayPowerStateEXT 1
-
-pattern VK_DISPLAY_POWER_STATE_ON_EXT :: VkDisplayPowerStateEXT
-
-pattern VK_DISPLAY_POWER_STATE_ON_EXT = VkDisplayPowerStateEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkDynamicState.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkDynamicState.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkDynamicState.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkDynamicState
-       (VkDynamicState(VkDynamicState, VK_DYNAMIC_STATE_VIEWPORT,
-                       VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_LINE_WIDTH,
-                       VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_BLEND_CONSTANTS,
-                       VK_DYNAMIC_STATE_DEPTH_BOUNDS,
-                       VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
-                       VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
-                       VK_DYNAMIC_STATE_STENCIL_REFERENCE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDynamicState.html VkDynamicState registry at www.khronos.org>
-newtype VkDynamicState = VkDynamicState Int32
-                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkDynamicState where
-        showsPrec _ VK_DYNAMIC_STATE_VIEWPORT
-          = showString "VK_DYNAMIC_STATE_VIEWPORT"
-        showsPrec _ VK_DYNAMIC_STATE_SCISSOR
-          = showString "VK_DYNAMIC_STATE_SCISSOR"
-        showsPrec _ VK_DYNAMIC_STATE_LINE_WIDTH
-          = showString "VK_DYNAMIC_STATE_LINE_WIDTH"
-        showsPrec _ VK_DYNAMIC_STATE_DEPTH_BIAS
-          = showString "VK_DYNAMIC_STATE_DEPTH_BIAS"
-        showsPrec _ VK_DYNAMIC_STATE_BLEND_CONSTANTS
-          = showString "VK_DYNAMIC_STATE_BLEND_CONSTANTS"
-        showsPrec _ VK_DYNAMIC_STATE_DEPTH_BOUNDS
-          = showString "VK_DYNAMIC_STATE_DEPTH_BOUNDS"
-        showsPrec _ VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK
-          = showString "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK"
-        showsPrec _ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK
-          = showString "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK"
-        showsPrec _ VK_DYNAMIC_STATE_STENCIL_REFERENCE
-          = showString "VK_DYNAMIC_STATE_STENCIL_REFERENCE"
-        showsPrec p (VkDynamicState x)
-          = showParen (p >= 11)
-              (showString "VkDynamicState " . showsPrec 11 x)
-
-instance Read VkDynamicState where
-        readPrec
-          = parens
-              (choose
-                 [("VK_DYNAMIC_STATE_VIEWPORT", pure VK_DYNAMIC_STATE_VIEWPORT),
-                  ("VK_DYNAMIC_STATE_SCISSOR", pure VK_DYNAMIC_STATE_SCISSOR),
-                  ("VK_DYNAMIC_STATE_LINE_WIDTH", pure VK_DYNAMIC_STATE_LINE_WIDTH),
-                  ("VK_DYNAMIC_STATE_DEPTH_BIAS", pure VK_DYNAMIC_STATE_DEPTH_BIAS),
-                  ("VK_DYNAMIC_STATE_BLEND_CONSTANTS",
-                   pure VK_DYNAMIC_STATE_BLEND_CONSTANTS),
-                  ("VK_DYNAMIC_STATE_DEPTH_BOUNDS",
-                   pure VK_DYNAMIC_STATE_DEPTH_BOUNDS),
-                  ("VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK",
-                   pure VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK),
-                  ("VK_DYNAMIC_STATE_STENCIL_WRITE_MASK",
-                   pure VK_DYNAMIC_STATE_STENCIL_WRITE_MASK),
-                  ("VK_DYNAMIC_STATE_STENCIL_REFERENCE",
-                   pure VK_DYNAMIC_STATE_STENCIL_REFERENCE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkDynamicState") >>
-                      (VkDynamicState <$> step readPrec)))
-
-pattern VK_DYNAMIC_STATE_VIEWPORT :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_VIEWPORT = VkDynamicState 0
-
-pattern VK_DYNAMIC_STATE_SCISSOR :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_SCISSOR = VkDynamicState 1
-
-pattern VK_DYNAMIC_STATE_LINE_WIDTH :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_LINE_WIDTH = VkDynamicState 2
-
-pattern VK_DYNAMIC_STATE_DEPTH_BIAS :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_DEPTH_BIAS = VkDynamicState 3
-
-pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_BLEND_CONSTANTS = VkDynamicState 4
-
-pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS = VkDynamicState 5
-
-pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = VkDynamicState 6
-
-pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = VkDynamicState 7
-
-pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE :: VkDynamicState
-
-pattern VK_DYNAMIC_STATE_STENCIL_REFERENCE = VkDynamicState 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlagBitsKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlagBitsKHR
-       (VkExternalFenceFeatureFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalFenceFeatureFlagBitsKHR = VkExternalFenceFeatureFlagBitsKHR VkFlags
-                                              deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                        FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkExternalFenceFeatureFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalFenceFeatureFlagBitsKHR x) = show x
-
-instance Read VkExternalFenceFeatureFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceFeatureFlags.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags
-       (VkExternalFenceFeatureBitmask(VkExternalFenceFeatureBitmask,
-                                      VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits,
-                                      VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
-                                      VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT),
-        VkExternalFenceFeatureFlags, VkExternalFenceFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalFenceFeatureBitmask (a ::
-                                         FlagType) = VkExternalFenceFeatureBitmask VkFlags
-                                                       deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkExternalFenceFeatureFlags =
-     VkExternalFenceFeatureBitmask FlagMask
-
-type VkExternalFenceFeatureFlagBits =
-     VkExternalFenceFeatureBitmask FlagBit
-
-pattern VkExternalFenceFeatureFlagBits ::
-        VkFlags -> VkExternalFenceFeatureBitmask FlagBit
-
-pattern VkExternalFenceFeatureFlagBits n =
-        VkExternalFenceFeatureBitmask n
-
-pattern VkExternalFenceFeatureFlags ::
-        VkFlags -> VkExternalFenceFeatureBitmask FlagMask
-
-pattern VkExternalFenceFeatureFlags n =
-        VkExternalFenceFeatureBitmask n
-
-deriving instance Bits (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance Integral (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance Num (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance Bounded (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance Enum (VkExternalFenceFeatureBitmask FlagMask)
-
-deriving instance Real (VkExternalFenceFeatureBitmask FlagMask)
-
-instance Show (VkExternalFenceFeatureBitmask a) where
-        showsPrec _ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT
-          = showString "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT"
-        showsPrec _ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
-          = showString "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT"
-        showsPrec p (VkExternalFenceFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalFenceFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkExternalFenceFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT",
-                   pure VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT),
-                  ("VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT",
-                   pure VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalFenceFeatureBitmask") >>
-                      (VkExternalFenceFeatureBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT ::
-        VkExternalFenceFeatureBitmask a
-
-pattern VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT =
-        VkExternalFenceFeatureBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT ::
-        VkExternalFenceFeatureBitmask a
-
-pattern VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT =
-        VkExternalFenceFeatureBitmask 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlagBitsKHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlagBitsKHR
-       (VkExternalFenceHandleTypeFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalFenceHandleTypeFlagBitsKHR = VkExternalFenceHandleTypeFlagBitsKHR VkFlags
-                                                 deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                           Bits, FiniteBits, Storable, Real, Data,
-                                                           Generic)
-
-instance Show VkExternalFenceHandleTypeFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalFenceHandleTypeFlagBitsKHR x) = show x
-
-instance Read VkExternalFenceHandleTypeFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalFenceHandleTypeFlags.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-       (VkExternalFenceHandleTypeBitmask(VkExternalFenceHandleTypeBitmask,
-                                         VkExternalFenceHandleTypeFlags,
-                                         VkExternalFenceHandleTypeFlagBits,
-                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
-                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
-                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
-                                         VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT),
-        VkExternalFenceHandleTypeFlags, VkExternalFenceHandleTypeFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalFenceHandleTypeBitmask (a ::
-                                            FlagType) = VkExternalFenceHandleTypeBitmask VkFlags
-                                                          deriving (Eq, Ord, Storable, Data,
-                                                                    Generic)
-
-type VkExternalFenceHandleTypeFlags =
-     VkExternalFenceHandleTypeBitmask FlagMask
-
-type VkExternalFenceHandleTypeFlagBits =
-     VkExternalFenceHandleTypeBitmask FlagBit
-
-pattern VkExternalFenceHandleTypeFlagBits ::
-        VkFlags -> VkExternalFenceHandleTypeBitmask FlagBit
-
-pattern VkExternalFenceHandleTypeFlagBits n =
-        VkExternalFenceHandleTypeBitmask n
-
-pattern VkExternalFenceHandleTypeFlags ::
-        VkFlags -> VkExternalFenceHandleTypeBitmask FlagMask
-
-pattern VkExternalFenceHandleTypeFlags n =
-        VkExternalFenceHandleTypeBitmask n
-
-deriving instance Bits (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance
-         Integral (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance Num (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance
-         Bounded (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance Enum (VkExternalFenceHandleTypeBitmask FlagMask)
-
-deriving instance Real (VkExternalFenceHandleTypeBitmask FlagMask)
-
-instance Show (VkExternalFenceHandleTypeBitmask a) where
-        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT
-          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT"
-        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT
-          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
-        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
-          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
-        showsPrec _ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
-          = showString "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT"
-        showsPrec p (VkExternalFenceHandleTypeBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalFenceHandleTypeBitmask " . showsPrec 11 x)
-
-instance Read (VkExternalFenceHandleTypeBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT",
-                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT),
-                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
-                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
-                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
-                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
-                  ("VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT",
-                   pure VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalFenceHandleTypeBitmask") >>
-                      (VkExternalFenceHandleTypeBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT ::
-        VkExternalFenceHandleTypeBitmask a
-
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT =
-        VkExternalFenceHandleTypeBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
-        VkExternalFenceHandleTypeBitmask a
-
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
-        VkExternalFenceHandleTypeBitmask 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
-        VkExternalFenceHandleTypeBitmask a
-
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
-        VkExternalFenceHandleTypeBitmask 4
-
--- | bitpos = @3@
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT ::
-        VkExternalFenceHandleTypeBitmask a
-
-pattern VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT =
-        VkExternalFenceHandleTypeBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagBitsKHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagBitsKHR
-       (VkExternalMemoryFeatureFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalMemoryFeatureFlagBitsKHR = VkExternalMemoryFeatureFlagBitsKHR VkFlags
-                                               deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                         Bits, FiniteBits, Storable, Real, Data,
-                                                         Generic)
-
-instance Show VkExternalMemoryFeatureFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalMemoryFeatureFlagBitsKHR x) = show x
-
-instance Read VkExternalMemoryFeatureFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlags.hs
+++ /dev/null
@@ -1,115 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags
-       (VkExternalMemoryFeatureBitmask(VkExternalMemoryFeatureBitmask,
-                                       VkExternalMemoryFeatureFlags,
-                                       VkExternalMemoryFeatureFlagBits,
-                                       VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
-                                       VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
-                                       VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT),
-        VkExternalMemoryFeatureFlags, VkExternalMemoryFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalMemoryFeatureBitmask (a ::
-                                          FlagType) = VkExternalMemoryFeatureBitmask VkFlags
-                                                        deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkExternalMemoryFeatureFlags =
-     VkExternalMemoryFeatureBitmask FlagMask
-
-type VkExternalMemoryFeatureFlagBits =
-     VkExternalMemoryFeatureBitmask FlagBit
-
-pattern VkExternalMemoryFeatureFlagBits ::
-        VkFlags -> VkExternalMemoryFeatureBitmask FlagBit
-
-pattern VkExternalMemoryFeatureFlagBits n =
-        VkExternalMemoryFeatureBitmask n
-
-pattern VkExternalMemoryFeatureFlags ::
-        VkFlags -> VkExternalMemoryFeatureBitmask FlagMask
-
-pattern VkExternalMemoryFeatureFlags n =
-        VkExternalMemoryFeatureBitmask n
-
-deriving instance Bits (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance
-         Integral (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance Num (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance Bounded (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance Enum (VkExternalMemoryFeatureBitmask FlagMask)
-
-deriving instance Real (VkExternalMemoryFeatureBitmask FlagMask)
-
-instance Show (VkExternalMemoryFeatureBitmask a) where
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT"
-        showsPrec p (VkExternalMemoryFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalMemoryFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkExternalMemoryFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT),
-                  ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT),
-                  ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalMemoryFeatureBitmask") >>
-                      (VkExternalMemoryFeatureBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT ::
-        VkExternalMemoryFeatureBitmask a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT =
-        VkExternalMemoryFeatureBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT ::
-        VkExternalMemoryFeatureBitmask a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT =
-        VkExternalMemoryFeatureBitmask 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT ::
-        VkExternalMemoryFeatureBitmask a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT =
-        VkExternalMemoryFeatureBitmask 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagsNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagsNV.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryFeatureFlagsNV.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagsNV
-       (VkExternalMemoryFeatureBitmaskNV(VkExternalMemoryFeatureBitmaskNV,
-                                         VkExternalMemoryFeatureFlagsNV,
-                                         VkExternalMemoryFeatureFlagBitsNV,
-                                         VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
-                                         VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
-                                         VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV),
-        VkExternalMemoryFeatureFlagsNV, VkExternalMemoryFeatureFlagBitsNV)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalMemoryFeatureBitmaskNV (a ::
-                                            FlagType) = VkExternalMemoryFeatureBitmaskNV VkFlags
-                                                          deriving (Eq, Ord, Storable, Data,
-                                                                    Generic)
-
-type VkExternalMemoryFeatureFlagsNV =
-     VkExternalMemoryFeatureBitmaskNV FlagMask
-
-type VkExternalMemoryFeatureFlagBitsNV =
-     VkExternalMemoryFeatureBitmaskNV FlagBit
-
-pattern VkExternalMemoryFeatureFlagBitsNV ::
-        VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagBit
-
-pattern VkExternalMemoryFeatureFlagBitsNV n =
-        VkExternalMemoryFeatureBitmaskNV n
-
-pattern VkExternalMemoryFeatureFlagsNV ::
-        VkFlags -> VkExternalMemoryFeatureBitmaskNV FlagMask
-
-pattern VkExternalMemoryFeatureFlagsNV n =
-        VkExternalMemoryFeatureBitmaskNV n
-
-deriving instance Bits (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance
-         Integral (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance Num (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance
-         Bounded (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance Enum (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-deriving instance Real (VkExternalMemoryFeatureBitmaskNV FlagMask)
-
-instance Show (VkExternalMemoryFeatureBitmaskNV a) where
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV"
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV"
-        showsPrec _ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
-          = showString "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV"
-        showsPrec p (VkExternalMemoryFeatureBitmaskNV x)
-          = showParen (p >= 11)
-              (showString "VkExternalMemoryFeatureBitmaskNV " . showsPrec 11 x)
-
-instance Read (VkExternalMemoryFeatureBitmaskNV a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV),
-                  ("VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV),
-                  ("VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalMemoryFeatureBitmaskNV") >>
-                      (VkExternalMemoryFeatureBitmaskNV <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV ::
-        VkExternalMemoryFeatureBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV =
-        VkExternalMemoryFeatureBitmaskNV 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV ::
-        VkExternalMemoryFeatureBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV =
-        VkExternalMemoryFeatureBitmaskNV 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV ::
-        VkExternalMemoryFeatureBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV =
-        VkExternalMemoryFeatureBitmaskNV 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagBitsKHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR
-       (VkExternalMemoryHandleTypeFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalMemoryHandleTypeFlagBitsKHR = VkExternalMemoryHandleTypeFlagBitsKHR VkFlags
-                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                            Bits, FiniteBits, Storable, Real, Data,
-                                                            Generic)
-
-instance Show VkExternalMemoryHandleTypeFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalMemoryHandleTypeFlagBitsKHR x) = show x
-
-instance Read VkExternalMemoryHandleTypeFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlags.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-       (VkExternalMemoryHandleTypeBitmask(VkExternalMemoryHandleTypeBitmask,
-                                          VkExternalMemoryHandleTypeFlags,
-                                          VkExternalMemoryHandleTypeFlagBits,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
-                                          VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT),
-        VkExternalMemoryHandleTypeFlags,
-        VkExternalMemoryHandleTypeFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalMemoryHandleTypeBitmask (a ::
-                                             FlagType) = VkExternalMemoryHandleTypeBitmask VkFlags
-                                                           deriving (Eq, Ord, Storable, Data,
-                                                                     Generic)
-
-type VkExternalMemoryHandleTypeFlags =
-     VkExternalMemoryHandleTypeBitmask FlagMask
-
-type VkExternalMemoryHandleTypeFlagBits =
-     VkExternalMemoryHandleTypeBitmask FlagBit
-
-pattern VkExternalMemoryHandleTypeFlagBits ::
-        VkFlags -> VkExternalMemoryHandleTypeBitmask FlagBit
-
-pattern VkExternalMemoryHandleTypeFlagBits n =
-        VkExternalMemoryHandleTypeBitmask n
-
-pattern VkExternalMemoryHandleTypeFlags ::
-        VkFlags -> VkExternalMemoryHandleTypeBitmask FlagMask
-
-pattern VkExternalMemoryHandleTypeFlags n =
-        VkExternalMemoryHandleTypeBitmask n
-
-deriving instance Bits (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance
-         Integral (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance Num (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance
-         Bounded (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance Enum (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-deriving instance Real (VkExternalMemoryHandleTypeBitmask FlagMask)
-
-instance Show (VkExternalMemoryHandleTypeBitmask a) where
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT"
-        showsPrec p (VkExternalMemoryHandleTypeBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalMemoryHandleTypeBitmask " . showsPrec 11 x)
-
-instance Read (VkExternalMemoryHandleTypeBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalMemoryHandleTypeBitmask") >>
-                      (VkExternalMemoryHandleTypeBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT =
-        VkExternalMemoryHandleTypeBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT =
-        VkExternalMemoryHandleTypeBitmask 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
-        VkExternalMemoryHandleTypeBitmask 4
-
--- | bitpos = @3@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT =
-        VkExternalMemoryHandleTypeBitmask 8
-
--- | bitpos = @4@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT =
-        VkExternalMemoryHandleTypeBitmask 16
-
--- | bitpos = @5@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT =
-        VkExternalMemoryHandleTypeBitmask 32
-
--- | bitpos = @6@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT ::
-        VkExternalMemoryHandleTypeBitmask a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT =
-        VkExternalMemoryHandleTypeBitmask 64
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagsNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagsNV.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalMemoryHandleTypeFlagsNV.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV
-       (VkExternalMemoryHandleTypeBitmaskNV(VkExternalMemoryHandleTypeBitmaskNV,
-                                            VkExternalMemoryHandleTypeFlagsNV,
-                                            VkExternalMemoryHandleTypeFlagBitsNV,
-                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
-                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
-                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
-                                            VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV),
-        VkExternalMemoryHandleTypeFlagsNV,
-        VkExternalMemoryHandleTypeFlagBitsNV)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalMemoryHandleTypeBitmaskNV (a ::
-                                               FlagType) = VkExternalMemoryHandleTypeBitmaskNV VkFlags
-                                                             deriving (Eq, Ord, Storable, Data,
-                                                                       Generic)
-
-type VkExternalMemoryHandleTypeFlagsNV =
-     VkExternalMemoryHandleTypeBitmaskNV FlagMask
-
-type VkExternalMemoryHandleTypeFlagBitsNV =
-     VkExternalMemoryHandleTypeBitmaskNV FlagBit
-
-pattern VkExternalMemoryHandleTypeFlagBitsNV ::
-        VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagBit
-
-pattern VkExternalMemoryHandleTypeFlagBitsNV n =
-        VkExternalMemoryHandleTypeBitmaskNV n
-
-pattern VkExternalMemoryHandleTypeFlagsNV ::
-        VkFlags -> VkExternalMemoryHandleTypeBitmaskNV FlagMask
-
-pattern VkExternalMemoryHandleTypeFlagsNV n =
-        VkExternalMemoryHandleTypeBitmaskNV n
-
-deriving instance
-         Bits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         Integral (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         Num (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         Bounded (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         Enum (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-deriving instance
-         Real (VkExternalMemoryHandleTypeBitmaskNV FlagMask)
-
-instance Show (VkExternalMemoryHandleTypeBitmaskNV a) where
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV
-          = showString
-              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV
-          = showString "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV"
-        showsPrec _ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
-          = showString
-              "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV"
-        showsPrec p (VkExternalMemoryHandleTypeBitmaskNV x)
-          = showParen (p >= 11)
-              (showString "VkExternalMemoryHandleTypeBitmaskNV " .
-                 showsPrec 11 x)
-
-instance Read (VkExternalMemoryHandleTypeBitmaskNV a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV),
-                  ("VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV",
-                   pure VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalMemoryHandleTypeBitmaskNV") >>
-                      (VkExternalMemoryHandleTypeBitmaskNV <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV ::
-        VkExternalMemoryHandleTypeBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV =
-        VkExternalMemoryHandleTypeBitmaskNV 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV ::
-        VkExternalMemoryHandleTypeBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV =
-        VkExternalMemoryHandleTypeBitmaskNV 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV ::
-        VkExternalMemoryHandleTypeBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV =
-        VkExternalMemoryHandleTypeBitmaskNV 4
-
--- | bitpos = @3@
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV ::
-        VkExternalMemoryHandleTypeBitmaskNV a
-
-pattern VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV =
-        VkExternalMemoryHandleTypeBitmaskNV 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlagBitsKHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlagBitsKHR
-       (VkExternalSemaphoreFeatureFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalSemaphoreFeatureFlagBitsKHR = VkExternalSemaphoreFeatureFlagBitsKHR VkFlags
-                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                            Bits, FiniteBits, Storable, Real, Data,
-                                                            Generic)
-
-instance Show VkExternalSemaphoreFeatureFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalSemaphoreFeatureFlagBitsKHR x) = show x
-
-instance Read VkExternalSemaphoreFeatureFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreFeatureFlags.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags
-       (VkExternalSemaphoreFeatureBitmask(VkExternalSemaphoreFeatureBitmask,
-                                          VkExternalSemaphoreFeatureFlags,
-                                          VkExternalSemaphoreFeatureFlagBits,
-                                          VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
-                                          VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT),
-        VkExternalSemaphoreFeatureFlags,
-        VkExternalSemaphoreFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalSemaphoreFeatureBitmask (a ::
-                                             FlagType) = VkExternalSemaphoreFeatureBitmask VkFlags
-                                                           deriving (Eq, Ord, Storable, Data,
-                                                                     Generic)
-
-type VkExternalSemaphoreFeatureFlags =
-     VkExternalSemaphoreFeatureBitmask FlagMask
-
-type VkExternalSemaphoreFeatureFlagBits =
-     VkExternalSemaphoreFeatureBitmask FlagBit
-
-pattern VkExternalSemaphoreFeatureFlagBits ::
-        VkFlags -> VkExternalSemaphoreFeatureBitmask FlagBit
-
-pattern VkExternalSemaphoreFeatureFlagBits n =
-        VkExternalSemaphoreFeatureBitmask n
-
-pattern VkExternalSemaphoreFeatureFlags ::
-        VkFlags -> VkExternalSemaphoreFeatureBitmask FlagMask
-
-pattern VkExternalSemaphoreFeatureFlags n =
-        VkExternalSemaphoreFeatureBitmask n
-
-deriving instance Bits (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance
-         Integral (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance Num (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance
-         Bounded (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance Enum (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-deriving instance Real (VkExternalSemaphoreFeatureBitmask FlagMask)
-
-instance Show (VkExternalSemaphoreFeatureBitmask a) where
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT"
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT"
-        showsPrec p (VkExternalSemaphoreFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalSemaphoreFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkExternalSemaphoreFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT),
-                  ("VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalSemaphoreFeatureBitmask") >>
-                      (VkExternalSemaphoreFeatureBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT ::
-        VkExternalSemaphoreFeatureBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT =
-        VkExternalSemaphoreFeatureBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT ::
-        VkExternalSemaphoreFeatureBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT =
-        VkExternalSemaphoreFeatureBitmask 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlagBitsKHR.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlagBitsKHR
-       (VkExternalSemaphoreHandleTypeFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkExternalSemaphoreHandleTypeFlagBitsKHR = VkExternalSemaphoreHandleTypeFlagBitsKHR VkFlags
-                                                     deriving (Eq, Ord, Num, Bounded, Enum,
-                                                               Integral, Bits, FiniteBits, Storable,
-                                                               Real, Data, Generic)
-
-instance Show VkExternalSemaphoreHandleTypeFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkExternalSemaphoreHandleTypeFlagBitsKHR x) = show x
-
-instance Read VkExternalSemaphoreHandleTypeFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkExternalSemaphoreHandleTypeFlags.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-       (VkExternalSemaphoreHandleTypeBitmask(VkExternalSemaphoreHandleTypeBitmask,
-                                             VkExternalSemaphoreHandleTypeFlags,
-                                             VkExternalSemaphoreHandleTypeFlagBits,
-                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
-                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
-                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
-                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
-                                             VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT),
-        VkExternalSemaphoreHandleTypeFlags,
-        VkExternalSemaphoreHandleTypeFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkExternalSemaphoreHandleTypeBitmask (a ::
-                                                FlagType) = VkExternalSemaphoreHandleTypeBitmask VkFlags
-                                                              deriving (Eq, Ord, Storable, Data,
-                                                                        Generic)
-
-type VkExternalSemaphoreHandleTypeFlags =
-     VkExternalSemaphoreHandleTypeBitmask FlagMask
-
-type VkExternalSemaphoreHandleTypeFlagBits =
-     VkExternalSemaphoreHandleTypeBitmask FlagBit
-
-pattern VkExternalSemaphoreHandleTypeFlagBits ::
-        VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagBit
-
-pattern VkExternalSemaphoreHandleTypeFlagBits n =
-        VkExternalSemaphoreHandleTypeBitmask n
-
-pattern VkExternalSemaphoreHandleTypeFlags ::
-        VkFlags -> VkExternalSemaphoreHandleTypeBitmask FlagMask
-
-pattern VkExternalSemaphoreHandleTypeFlags n =
-        VkExternalSemaphoreHandleTypeBitmask n
-
-deriving instance
-         Bits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         Integral (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         Num (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         Bounded (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         Enum (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-deriving instance
-         Real (VkExternalSemaphoreHandleTypeBitmask FlagMask)
-
-instance Show (VkExternalSemaphoreHandleTypeBitmask a) where
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT"
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT"
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT
-          = showString
-              "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT"
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT"
-        showsPrec _ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
-          = showString "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT"
-        showsPrec p (VkExternalSemaphoreHandleTypeBitmask x)
-          = showParen (p >= 11)
-              (showString "VkExternalSemaphoreHandleTypeBitmask " .
-                 showsPrec 11 x)
-
-instance Read (VkExternalSemaphoreHandleTypeBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT),
-                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT),
-                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT),
-                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT),
-                  ("VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT",
-                   pure VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkExternalSemaphoreHandleTypeBitmask") >>
-                      (VkExternalSemaphoreHandleTypeBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT ::
-        VkExternalSemaphoreHandleTypeBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT =
-        VkExternalSemaphoreHandleTypeBitmask 1
-
--- | bitpos = @1@
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT ::
-        VkExternalSemaphoreHandleTypeBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT =
-        VkExternalSemaphoreHandleTypeBitmask 2
-
--- | bitpos = @2@
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT ::
-        VkExternalSemaphoreHandleTypeBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT =
-        VkExternalSemaphoreHandleTypeBitmask 4
-
--- | bitpos = @3@
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT ::
-        VkExternalSemaphoreHandleTypeBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT =
-        VkExternalSemaphoreHandleTypeBitmask 8
-
--- | bitpos = @4@
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT ::
-        VkExternalSemaphoreHandleTypeBitmask a
-
-pattern VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT =
-        VkExternalSemaphoreHandleTypeBitmask 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFenceCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceCreateFlags.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkFenceCreateFlags
-       (VkFenceCreateBitmask(VkFenceCreateBitmask, VkFenceCreateFlags,
-                             VkFenceCreateFlagBits, VK_FENCE_CREATE_SIGNALED_BIT),
-        VkFenceCreateFlags, VkFenceCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkFenceCreateBitmask (a ::
-                                FlagType) = VkFenceCreateBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkFenceCreateFlags = VkFenceCreateBitmask FlagMask
-
-type VkFenceCreateFlagBits = VkFenceCreateBitmask FlagBit
-
-pattern VkFenceCreateFlagBits ::
-        VkFlags -> VkFenceCreateBitmask FlagBit
-
-pattern VkFenceCreateFlagBits n = VkFenceCreateBitmask n
-
-pattern VkFenceCreateFlags ::
-        VkFlags -> VkFenceCreateBitmask FlagMask
-
-pattern VkFenceCreateFlags n = VkFenceCreateBitmask n
-
-deriving instance Bits (VkFenceCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkFenceCreateBitmask FlagMask)
-
-deriving instance Integral (VkFenceCreateBitmask FlagMask)
-
-deriving instance Num (VkFenceCreateBitmask FlagMask)
-
-deriving instance Bounded (VkFenceCreateBitmask FlagMask)
-
-deriving instance Enum (VkFenceCreateBitmask FlagMask)
-
-deriving instance Real (VkFenceCreateBitmask FlagMask)
-
-instance Show (VkFenceCreateBitmask a) where
-        showsPrec _ VK_FENCE_CREATE_SIGNALED_BIT
-          = showString "VK_FENCE_CREATE_SIGNALED_BIT"
-        showsPrec p (VkFenceCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkFenceCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkFenceCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FENCE_CREATE_SIGNALED_BIT",
-                   pure VK_FENCE_CREATE_SIGNALED_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFenceCreateBitmask") >>
-                      (VkFenceCreateBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_FENCE_CREATE_SIGNALED_BIT :: VkFenceCreateBitmask a
-
-pattern VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlagBitsKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkFenceImportFlagBitsKHR
-       (VkFenceImportFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkFenceImportFlagBitsKHR = VkFenceImportFlagBitsKHR VkFlags
-                                     deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                               FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkFenceImportFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkFenceImportFlagBitsKHR x) = show x
-
-instance Read VkFenceImportFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFenceImportFlags.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkFenceImportFlags
-       (VkFenceImportBitmask(VkFenceImportBitmask, VkFenceImportFlags,
-                             VkFenceImportFlagBits, VK_FENCE_IMPORT_TEMPORARY_BIT),
-        VkFenceImportFlags, VkFenceImportFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkFenceImportBitmask (a ::
-                                FlagType) = VkFenceImportBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkFenceImportFlags = VkFenceImportBitmask FlagMask
-
-type VkFenceImportFlagBits = VkFenceImportBitmask FlagBit
-
-pattern VkFenceImportFlagBits ::
-        VkFlags -> VkFenceImportBitmask FlagBit
-
-pattern VkFenceImportFlagBits n = VkFenceImportBitmask n
-
-pattern VkFenceImportFlags ::
-        VkFlags -> VkFenceImportBitmask FlagMask
-
-pattern VkFenceImportFlags n = VkFenceImportBitmask n
-
-deriving instance Bits (VkFenceImportBitmask FlagMask)
-
-deriving instance FiniteBits (VkFenceImportBitmask FlagMask)
-
-deriving instance Integral (VkFenceImportBitmask FlagMask)
-
-deriving instance Num (VkFenceImportBitmask FlagMask)
-
-deriving instance Bounded (VkFenceImportBitmask FlagMask)
-
-deriving instance Enum (VkFenceImportBitmask FlagMask)
-
-deriving instance Real (VkFenceImportBitmask FlagMask)
-
-instance Show (VkFenceImportBitmask a) where
-        showsPrec _ VK_FENCE_IMPORT_TEMPORARY_BIT
-          = showString "VK_FENCE_IMPORT_TEMPORARY_BIT"
-        showsPrec p (VkFenceImportBitmask x)
-          = showParen (p >= 11)
-              (showString "VkFenceImportBitmask " . showsPrec 11 x)
-
-instance Read (VkFenceImportBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FENCE_IMPORT_TEMPORARY_BIT",
-                   pure VK_FENCE_IMPORT_TEMPORARY_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFenceImportBitmask") >>
-                      (VkFenceImportBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_FENCE_IMPORT_TEMPORARY_BIT :: VkFenceImportBitmask a
-
-pattern VK_FENCE_IMPORT_TEMPORARY_BIT = VkFenceImportBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFilter.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFilter.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFilter.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkFilter
-       (VkFilter(VkFilter, VK_FILTER_NEAREST, VK_FILTER_LINEAR)) where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFilter.html VkFilter registry at www.khronos.org>
-newtype VkFilter = VkFilter Int32
-                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkFilter where
-        showsPrec _ VK_FILTER_NEAREST = showString "VK_FILTER_NEAREST"
-        showsPrec _ VK_FILTER_LINEAR = showString "VK_FILTER_LINEAR"
-        showsPrec p (VkFilter x)
-          = showParen (p >= 11) (showString "VkFilter " . showsPrec 11 x)
-
-instance Read VkFilter where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FILTER_NEAREST", pure VK_FILTER_NEAREST),
-                  ("VK_FILTER_LINEAR", pure VK_FILTER_LINEAR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFilter") >> (VkFilter <$> step readPrec)))
-
-pattern VK_FILTER_NEAREST :: VkFilter
-
-pattern VK_FILTER_NEAREST = VkFilter 0
-
-pattern VK_FILTER_LINEAR :: VkFilter
-
-pattern VK_FILTER_LINEAR = VkFilter 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFormat.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFormat.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFormat.hs
+++ /dev/null
@@ -1,1491 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkFormat
-       (VkFormat(VkFormat, VK_FORMAT_UNDEFINED,
-                 VK_FORMAT_R4G4_UNORM_PACK8, VK_FORMAT_R4G4B4A4_UNORM_PACK16,
-                 VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_R5G6B5_UNORM_PACK16,
-                 VK_FORMAT_B5G6R5_UNORM_PACK16, VK_FORMAT_R5G5B5A1_UNORM_PACK16,
-                 VK_FORMAT_B5G5R5A1_UNORM_PACK16, VK_FORMAT_A1R5G5B5_UNORM_PACK16,
-                 VK_FORMAT_R8_UNORM, VK_FORMAT_R8_SNORM, VK_FORMAT_R8_USCALED,
-                 VK_FORMAT_R8_SSCALED, VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT,
-                 VK_FORMAT_R8_SRGB, VK_FORMAT_R8G8_UNORM, VK_FORMAT_R8G8_SNORM,
-                 VK_FORMAT_R8G8_USCALED, VK_FORMAT_R8G8_SSCALED,
-                 VK_FORMAT_R8G8_UINT, VK_FORMAT_R8G8_SINT, VK_FORMAT_R8G8_SRGB,
-                 VK_FORMAT_R8G8B8_UNORM, VK_FORMAT_R8G8B8_SNORM,
-                 VK_FORMAT_R8G8B8_USCALED, VK_FORMAT_R8G8B8_SSCALED,
-                 VK_FORMAT_R8G8B8_UINT, VK_FORMAT_R8G8B8_SINT,
-                 VK_FORMAT_R8G8B8_SRGB, VK_FORMAT_B8G8R8_UNORM,
-                 VK_FORMAT_B8G8R8_SNORM, VK_FORMAT_B8G8R8_USCALED,
-                 VK_FORMAT_B8G8R8_SSCALED, VK_FORMAT_B8G8R8_UINT,
-                 VK_FORMAT_B8G8R8_SINT, VK_FORMAT_B8G8R8_SRGB,
-                 VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_R8G8B8A8_SNORM,
-                 VK_FORMAT_R8G8B8A8_USCALED, VK_FORMAT_R8G8B8A8_SSCALED,
-                 VK_FORMAT_R8G8B8A8_UINT, VK_FORMAT_R8G8B8A8_SINT,
-                 VK_FORMAT_R8G8B8A8_SRGB, VK_FORMAT_B8G8R8A8_UNORM,
-                 VK_FORMAT_B8G8R8A8_SNORM, VK_FORMAT_B8G8R8A8_USCALED,
-                 VK_FORMAT_B8G8R8A8_SSCALED, VK_FORMAT_B8G8R8A8_UINT,
-                 VK_FORMAT_B8G8R8A8_SINT, VK_FORMAT_B8G8R8A8_SRGB,
-                 VK_FORMAT_A8B8G8R8_UNORM_PACK32, VK_FORMAT_A8B8G8R8_SNORM_PACK32,
-                 VK_FORMAT_A8B8G8R8_USCALED_PACK32,
-                 VK_FORMAT_A8B8G8R8_SSCALED_PACK32, VK_FORMAT_A8B8G8R8_UINT_PACK32,
-                 VK_FORMAT_A8B8G8R8_SINT_PACK32, VK_FORMAT_A8B8G8R8_SRGB_PACK32,
-                 VK_FORMAT_A2R10G10B10_UNORM_PACK32,
-                 VK_FORMAT_A2R10G10B10_SNORM_PACK32,
-                 VK_FORMAT_A2R10G10B10_USCALED_PACK32,
-                 VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
-                 VK_FORMAT_A2R10G10B10_UINT_PACK32,
-                 VK_FORMAT_A2R10G10B10_SINT_PACK32,
-                 VK_FORMAT_A2B10G10R10_UNORM_PACK32,
-                 VK_FORMAT_A2B10G10R10_SNORM_PACK32,
-                 VK_FORMAT_A2B10G10R10_USCALED_PACK32,
-                 VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
-                 VK_FORMAT_A2B10G10R10_UINT_PACK32,
-                 VK_FORMAT_A2B10G10R10_SINT_PACK32, VK_FORMAT_R16_UNORM,
-                 VK_FORMAT_R16_SNORM, VK_FORMAT_R16_USCALED, VK_FORMAT_R16_SSCALED,
-                 VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R16_SFLOAT,
-                 VK_FORMAT_R16G16_UNORM, VK_FORMAT_R16G16_SNORM,
-                 VK_FORMAT_R16G16_USCALED, VK_FORMAT_R16G16_SSCALED,
-                 VK_FORMAT_R16G16_UINT, VK_FORMAT_R16G16_SINT,
-                 VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16B16_UNORM,
-                 VK_FORMAT_R16G16B16_SNORM, VK_FORMAT_R16G16B16_USCALED,
-                 VK_FORMAT_R16G16B16_SSCALED, VK_FORMAT_R16G16B16_UINT,
-                 VK_FORMAT_R16G16B16_SINT, VK_FORMAT_R16G16B16_SFLOAT,
-                 VK_FORMAT_R16G16B16A16_UNORM, VK_FORMAT_R16G16B16A16_SNORM,
-                 VK_FORMAT_R16G16B16A16_USCALED, VK_FORMAT_R16G16B16A16_SSCALED,
-                 VK_FORMAT_R16G16B16A16_UINT, VK_FORMAT_R16G16B16A16_SINT,
-                 VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R32_UINT,
-                 VK_FORMAT_R32_SINT, VK_FORMAT_R32_SFLOAT, VK_FORMAT_R32G32_UINT,
-                 VK_FORMAT_R32G32_SINT, VK_FORMAT_R32G32_SFLOAT,
-                 VK_FORMAT_R32G32B32_UINT, VK_FORMAT_R32G32B32_SINT,
-                 VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32B32A32_UINT,
-                 VK_FORMAT_R32G32B32A32_SINT, VK_FORMAT_R32G32B32A32_SFLOAT,
-                 VK_FORMAT_R64_UINT, VK_FORMAT_R64_SINT, VK_FORMAT_R64_SFLOAT,
-                 VK_FORMAT_R64G64_UINT, VK_FORMAT_R64G64_SINT,
-                 VK_FORMAT_R64G64_SFLOAT, VK_FORMAT_R64G64B64_UINT,
-                 VK_FORMAT_R64G64B64_SINT, VK_FORMAT_R64G64B64_SFLOAT,
-                 VK_FORMAT_R64G64B64A64_UINT, VK_FORMAT_R64G64B64A64_SINT,
-                 VK_FORMAT_R64G64B64A64_SFLOAT, VK_FORMAT_B10G11R11_UFLOAT_PACK32,
-                 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, VK_FORMAT_D16_UNORM,
-                 VK_FORMAT_X8_D24_UNORM_PACK32, VK_FORMAT_D32_SFLOAT,
-                 VK_FORMAT_S8_UINT, VK_FORMAT_D16_UNORM_S8_UINT,
-                 VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
-                 VK_FORMAT_BC1_RGB_UNORM_BLOCK, VK_FORMAT_BC1_RGB_SRGB_BLOCK,
-                 VK_FORMAT_BC1_RGBA_UNORM_BLOCK, VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
-                 VK_FORMAT_BC2_UNORM_BLOCK, VK_FORMAT_BC2_SRGB_BLOCK,
-                 VK_FORMAT_BC3_UNORM_BLOCK, VK_FORMAT_BC3_SRGB_BLOCK,
-                 VK_FORMAT_BC4_UNORM_BLOCK, VK_FORMAT_BC4_SNORM_BLOCK,
-                 VK_FORMAT_BC5_UNORM_BLOCK, VK_FORMAT_BC5_SNORM_BLOCK,
-                 VK_FORMAT_BC6H_UFLOAT_BLOCK, VK_FORMAT_BC6H_SFLOAT_BLOCK,
-                 VK_FORMAT_BC7_UNORM_BLOCK, VK_FORMAT_BC7_SRGB_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
-                 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, VK_FORMAT_EAC_R11_UNORM_BLOCK,
-                 VK_FORMAT_EAC_R11_SNORM_BLOCK, VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
-                 VK_FORMAT_EAC_R11G11_SNORM_BLOCK, VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_4x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_5x4_SRGB_BLOCK, VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_5x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_6x5_SRGB_BLOCK, VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_6x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_8x5_SRGB_BLOCK, VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_8x6_SRGB_BLOCK, VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_8x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_10x5_SRGB_BLOCK, VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_10x6_SRGB_BLOCK, VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_10x8_SRGB_BLOCK, VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_10x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_12x10_SRGB_BLOCK, VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
-                 VK_FORMAT_ASTC_12x12_SRGB_BLOCK))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | Vulkan format definitions
---
---   type = @enum@
---
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFormat.html VkFormat registry at www.khronos.org>
-newtype VkFormat = VkFormat Int32
-                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkFormat where
-        showsPrec _ VK_FORMAT_UNDEFINED = showString "VK_FORMAT_UNDEFINED"
-        showsPrec _ VK_FORMAT_R4G4_UNORM_PACK8
-          = showString "VK_FORMAT_R4G4_UNORM_PACK8"
-        showsPrec _ VK_FORMAT_R4G4B4A4_UNORM_PACK16
-          = showString "VK_FORMAT_R4G4B4A4_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_B4G4R4A4_UNORM_PACK16
-          = showString "VK_FORMAT_B4G4R4A4_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_R5G6B5_UNORM_PACK16
-          = showString "VK_FORMAT_R5G6B5_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_B5G6R5_UNORM_PACK16
-          = showString "VK_FORMAT_B5G6R5_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_R5G5B5A1_UNORM_PACK16
-          = showString "VK_FORMAT_R5G5B5A1_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_B5G5R5A1_UNORM_PACK16
-          = showString "VK_FORMAT_B5G5R5A1_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_A1R5G5B5_UNORM_PACK16
-          = showString "VK_FORMAT_A1R5G5B5_UNORM_PACK16"
-        showsPrec _ VK_FORMAT_R8_UNORM = showString "VK_FORMAT_R8_UNORM"
-        showsPrec _ VK_FORMAT_R8_SNORM = showString "VK_FORMAT_R8_SNORM"
-        showsPrec _ VK_FORMAT_R8_USCALED
-          = showString "VK_FORMAT_R8_USCALED"
-        showsPrec _ VK_FORMAT_R8_SSCALED
-          = showString "VK_FORMAT_R8_SSCALED"
-        showsPrec _ VK_FORMAT_R8_UINT = showString "VK_FORMAT_R8_UINT"
-        showsPrec _ VK_FORMAT_R8_SINT = showString "VK_FORMAT_R8_SINT"
-        showsPrec _ VK_FORMAT_R8_SRGB = showString "VK_FORMAT_R8_SRGB"
-        showsPrec _ VK_FORMAT_R8G8_UNORM
-          = showString "VK_FORMAT_R8G8_UNORM"
-        showsPrec _ VK_FORMAT_R8G8_SNORM
-          = showString "VK_FORMAT_R8G8_SNORM"
-        showsPrec _ VK_FORMAT_R8G8_USCALED
-          = showString "VK_FORMAT_R8G8_USCALED"
-        showsPrec _ VK_FORMAT_R8G8_SSCALED
-          = showString "VK_FORMAT_R8G8_SSCALED"
-        showsPrec _ VK_FORMAT_R8G8_UINT = showString "VK_FORMAT_R8G8_UINT"
-        showsPrec _ VK_FORMAT_R8G8_SINT = showString "VK_FORMAT_R8G8_SINT"
-        showsPrec _ VK_FORMAT_R8G8_SRGB = showString "VK_FORMAT_R8G8_SRGB"
-        showsPrec _ VK_FORMAT_R8G8B8_UNORM
-          = showString "VK_FORMAT_R8G8B8_UNORM"
-        showsPrec _ VK_FORMAT_R8G8B8_SNORM
-          = showString "VK_FORMAT_R8G8B8_SNORM"
-        showsPrec _ VK_FORMAT_R8G8B8_USCALED
-          = showString "VK_FORMAT_R8G8B8_USCALED"
-        showsPrec _ VK_FORMAT_R8G8B8_SSCALED
-          = showString "VK_FORMAT_R8G8B8_SSCALED"
-        showsPrec _ VK_FORMAT_R8G8B8_UINT
-          = showString "VK_FORMAT_R8G8B8_UINT"
-        showsPrec _ VK_FORMAT_R8G8B8_SINT
-          = showString "VK_FORMAT_R8G8B8_SINT"
-        showsPrec _ VK_FORMAT_R8G8B8_SRGB
-          = showString "VK_FORMAT_R8G8B8_SRGB"
-        showsPrec _ VK_FORMAT_B8G8R8_UNORM
-          = showString "VK_FORMAT_B8G8R8_UNORM"
-        showsPrec _ VK_FORMAT_B8G8R8_SNORM
-          = showString "VK_FORMAT_B8G8R8_SNORM"
-        showsPrec _ VK_FORMAT_B8G8R8_USCALED
-          = showString "VK_FORMAT_B8G8R8_USCALED"
-        showsPrec _ VK_FORMAT_B8G8R8_SSCALED
-          = showString "VK_FORMAT_B8G8R8_SSCALED"
-        showsPrec _ VK_FORMAT_B8G8R8_UINT
-          = showString "VK_FORMAT_B8G8R8_UINT"
-        showsPrec _ VK_FORMAT_B8G8R8_SINT
-          = showString "VK_FORMAT_B8G8R8_SINT"
-        showsPrec _ VK_FORMAT_B8G8R8_SRGB
-          = showString "VK_FORMAT_B8G8R8_SRGB"
-        showsPrec _ VK_FORMAT_R8G8B8A8_UNORM
-          = showString "VK_FORMAT_R8G8B8A8_UNORM"
-        showsPrec _ VK_FORMAT_R8G8B8A8_SNORM
-          = showString "VK_FORMAT_R8G8B8A8_SNORM"
-        showsPrec _ VK_FORMAT_R8G8B8A8_USCALED
-          = showString "VK_FORMAT_R8G8B8A8_USCALED"
-        showsPrec _ VK_FORMAT_R8G8B8A8_SSCALED
-          = showString "VK_FORMAT_R8G8B8A8_SSCALED"
-        showsPrec _ VK_FORMAT_R8G8B8A8_UINT
-          = showString "VK_FORMAT_R8G8B8A8_UINT"
-        showsPrec _ VK_FORMAT_R8G8B8A8_SINT
-          = showString "VK_FORMAT_R8G8B8A8_SINT"
-        showsPrec _ VK_FORMAT_R8G8B8A8_SRGB
-          = showString "VK_FORMAT_R8G8B8A8_SRGB"
-        showsPrec _ VK_FORMAT_B8G8R8A8_UNORM
-          = showString "VK_FORMAT_B8G8R8A8_UNORM"
-        showsPrec _ VK_FORMAT_B8G8R8A8_SNORM
-          = showString "VK_FORMAT_B8G8R8A8_SNORM"
-        showsPrec _ VK_FORMAT_B8G8R8A8_USCALED
-          = showString "VK_FORMAT_B8G8R8A8_USCALED"
-        showsPrec _ VK_FORMAT_B8G8R8A8_SSCALED
-          = showString "VK_FORMAT_B8G8R8A8_SSCALED"
-        showsPrec _ VK_FORMAT_B8G8R8A8_UINT
-          = showString "VK_FORMAT_B8G8R8A8_UINT"
-        showsPrec _ VK_FORMAT_B8G8R8A8_SINT
-          = showString "VK_FORMAT_B8G8R8A8_SINT"
-        showsPrec _ VK_FORMAT_B8G8R8A8_SRGB
-          = showString "VK_FORMAT_B8G8R8A8_SRGB"
-        showsPrec _ VK_FORMAT_A8B8G8R8_UNORM_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_UNORM_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_SNORM_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_SNORM_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_USCALED_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_USCALED_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_SSCALED_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_SSCALED_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_UINT_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_UINT_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_SINT_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_SINT_PACK32"
-        showsPrec _ VK_FORMAT_A8B8G8R8_SRGB_PACK32
-          = showString "VK_FORMAT_A8B8G8R8_SRGB_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_UNORM_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_UNORM_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_SNORM_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_SNORM_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_USCALED_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_USCALED_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_SSCALED_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_SSCALED_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_UINT_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_UINT_PACK32"
-        showsPrec _ VK_FORMAT_A2R10G10B10_SINT_PACK32
-          = showString "VK_FORMAT_A2R10G10B10_SINT_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_UNORM_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_UNORM_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_SNORM_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_SNORM_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_USCALED_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_USCALED_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_SSCALED_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_SSCALED_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_UINT_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_UINT_PACK32"
-        showsPrec _ VK_FORMAT_A2B10G10R10_SINT_PACK32
-          = showString "VK_FORMAT_A2B10G10R10_SINT_PACK32"
-        showsPrec _ VK_FORMAT_R16_UNORM = showString "VK_FORMAT_R16_UNORM"
-        showsPrec _ VK_FORMAT_R16_SNORM = showString "VK_FORMAT_R16_SNORM"
-        showsPrec _ VK_FORMAT_R16_USCALED
-          = showString "VK_FORMAT_R16_USCALED"
-        showsPrec _ VK_FORMAT_R16_SSCALED
-          = showString "VK_FORMAT_R16_SSCALED"
-        showsPrec _ VK_FORMAT_R16_UINT = showString "VK_FORMAT_R16_UINT"
-        showsPrec _ VK_FORMAT_R16_SINT = showString "VK_FORMAT_R16_SINT"
-        showsPrec _ VK_FORMAT_R16_SFLOAT
-          = showString "VK_FORMAT_R16_SFLOAT"
-        showsPrec _ VK_FORMAT_R16G16_UNORM
-          = showString "VK_FORMAT_R16G16_UNORM"
-        showsPrec _ VK_FORMAT_R16G16_SNORM
-          = showString "VK_FORMAT_R16G16_SNORM"
-        showsPrec _ VK_FORMAT_R16G16_USCALED
-          = showString "VK_FORMAT_R16G16_USCALED"
-        showsPrec _ VK_FORMAT_R16G16_SSCALED
-          = showString "VK_FORMAT_R16G16_SSCALED"
-        showsPrec _ VK_FORMAT_R16G16_UINT
-          = showString "VK_FORMAT_R16G16_UINT"
-        showsPrec _ VK_FORMAT_R16G16_SINT
-          = showString "VK_FORMAT_R16G16_SINT"
-        showsPrec _ VK_FORMAT_R16G16_SFLOAT
-          = showString "VK_FORMAT_R16G16_SFLOAT"
-        showsPrec _ VK_FORMAT_R16G16B16_UNORM
-          = showString "VK_FORMAT_R16G16B16_UNORM"
-        showsPrec _ VK_FORMAT_R16G16B16_SNORM
-          = showString "VK_FORMAT_R16G16B16_SNORM"
-        showsPrec _ VK_FORMAT_R16G16B16_USCALED
-          = showString "VK_FORMAT_R16G16B16_USCALED"
-        showsPrec _ VK_FORMAT_R16G16B16_SSCALED
-          = showString "VK_FORMAT_R16G16B16_SSCALED"
-        showsPrec _ VK_FORMAT_R16G16B16_UINT
-          = showString "VK_FORMAT_R16G16B16_UINT"
-        showsPrec _ VK_FORMAT_R16G16B16_SINT
-          = showString "VK_FORMAT_R16G16B16_SINT"
-        showsPrec _ VK_FORMAT_R16G16B16_SFLOAT
-          = showString "VK_FORMAT_R16G16B16_SFLOAT"
-        showsPrec _ VK_FORMAT_R16G16B16A16_UNORM
-          = showString "VK_FORMAT_R16G16B16A16_UNORM"
-        showsPrec _ VK_FORMAT_R16G16B16A16_SNORM
-          = showString "VK_FORMAT_R16G16B16A16_SNORM"
-        showsPrec _ VK_FORMAT_R16G16B16A16_USCALED
-          = showString "VK_FORMAT_R16G16B16A16_USCALED"
-        showsPrec _ VK_FORMAT_R16G16B16A16_SSCALED
-          = showString "VK_FORMAT_R16G16B16A16_SSCALED"
-        showsPrec _ VK_FORMAT_R16G16B16A16_UINT
-          = showString "VK_FORMAT_R16G16B16A16_UINT"
-        showsPrec _ VK_FORMAT_R16G16B16A16_SINT
-          = showString "VK_FORMAT_R16G16B16A16_SINT"
-        showsPrec _ VK_FORMAT_R16G16B16A16_SFLOAT
-          = showString "VK_FORMAT_R16G16B16A16_SFLOAT"
-        showsPrec _ VK_FORMAT_R32_UINT = showString "VK_FORMAT_R32_UINT"
-        showsPrec _ VK_FORMAT_R32_SINT = showString "VK_FORMAT_R32_SINT"
-        showsPrec _ VK_FORMAT_R32_SFLOAT
-          = showString "VK_FORMAT_R32_SFLOAT"
-        showsPrec _ VK_FORMAT_R32G32_UINT
-          = showString "VK_FORMAT_R32G32_UINT"
-        showsPrec _ VK_FORMAT_R32G32_SINT
-          = showString "VK_FORMAT_R32G32_SINT"
-        showsPrec _ VK_FORMAT_R32G32_SFLOAT
-          = showString "VK_FORMAT_R32G32_SFLOAT"
-        showsPrec _ VK_FORMAT_R32G32B32_UINT
-          = showString "VK_FORMAT_R32G32B32_UINT"
-        showsPrec _ VK_FORMAT_R32G32B32_SINT
-          = showString "VK_FORMAT_R32G32B32_SINT"
-        showsPrec _ VK_FORMAT_R32G32B32_SFLOAT
-          = showString "VK_FORMAT_R32G32B32_SFLOAT"
-        showsPrec _ VK_FORMAT_R32G32B32A32_UINT
-          = showString "VK_FORMAT_R32G32B32A32_UINT"
-        showsPrec _ VK_FORMAT_R32G32B32A32_SINT
-          = showString "VK_FORMAT_R32G32B32A32_SINT"
-        showsPrec _ VK_FORMAT_R32G32B32A32_SFLOAT
-          = showString "VK_FORMAT_R32G32B32A32_SFLOAT"
-        showsPrec _ VK_FORMAT_R64_UINT = showString "VK_FORMAT_R64_UINT"
-        showsPrec _ VK_FORMAT_R64_SINT = showString "VK_FORMAT_R64_SINT"
-        showsPrec _ VK_FORMAT_R64_SFLOAT
-          = showString "VK_FORMAT_R64_SFLOAT"
-        showsPrec _ VK_FORMAT_R64G64_UINT
-          = showString "VK_FORMAT_R64G64_UINT"
-        showsPrec _ VK_FORMAT_R64G64_SINT
-          = showString "VK_FORMAT_R64G64_SINT"
-        showsPrec _ VK_FORMAT_R64G64_SFLOAT
-          = showString "VK_FORMAT_R64G64_SFLOAT"
-        showsPrec _ VK_FORMAT_R64G64B64_UINT
-          = showString "VK_FORMAT_R64G64B64_UINT"
-        showsPrec _ VK_FORMAT_R64G64B64_SINT
-          = showString "VK_FORMAT_R64G64B64_SINT"
-        showsPrec _ VK_FORMAT_R64G64B64_SFLOAT
-          = showString "VK_FORMAT_R64G64B64_SFLOAT"
-        showsPrec _ VK_FORMAT_R64G64B64A64_UINT
-          = showString "VK_FORMAT_R64G64B64A64_UINT"
-        showsPrec _ VK_FORMAT_R64G64B64A64_SINT
-          = showString "VK_FORMAT_R64G64B64A64_SINT"
-        showsPrec _ VK_FORMAT_R64G64B64A64_SFLOAT
-          = showString "VK_FORMAT_R64G64B64A64_SFLOAT"
-        showsPrec _ VK_FORMAT_B10G11R11_UFLOAT_PACK32
-          = showString "VK_FORMAT_B10G11R11_UFLOAT_PACK32"
-        showsPrec _ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
-          = showString "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32"
-        showsPrec _ VK_FORMAT_D16_UNORM = showString "VK_FORMAT_D16_UNORM"
-        showsPrec _ VK_FORMAT_X8_D24_UNORM_PACK32
-          = showString "VK_FORMAT_X8_D24_UNORM_PACK32"
-        showsPrec _ VK_FORMAT_D32_SFLOAT
-          = showString "VK_FORMAT_D32_SFLOAT"
-        showsPrec _ VK_FORMAT_S8_UINT = showString "VK_FORMAT_S8_UINT"
-        showsPrec _ VK_FORMAT_D16_UNORM_S8_UINT
-          = showString "VK_FORMAT_D16_UNORM_S8_UINT"
-        showsPrec _ VK_FORMAT_D24_UNORM_S8_UINT
-          = showString "VK_FORMAT_D24_UNORM_S8_UINT"
-        showsPrec _ VK_FORMAT_D32_SFLOAT_S8_UINT
-          = showString "VK_FORMAT_D32_SFLOAT_S8_UINT"
-        showsPrec _ VK_FORMAT_BC1_RGB_UNORM_BLOCK
-          = showString "VK_FORMAT_BC1_RGB_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC1_RGB_SRGB_BLOCK
-          = showString "VK_FORMAT_BC1_RGB_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_BC1_RGBA_UNORM_BLOCK
-          = showString "VK_FORMAT_BC1_RGBA_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC1_RGBA_SRGB_BLOCK
-          = showString "VK_FORMAT_BC1_RGBA_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_BC2_UNORM_BLOCK
-          = showString "VK_FORMAT_BC2_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC2_SRGB_BLOCK
-          = showString "VK_FORMAT_BC2_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_BC3_UNORM_BLOCK
-          = showString "VK_FORMAT_BC3_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC3_SRGB_BLOCK
-          = showString "VK_FORMAT_BC3_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_BC4_UNORM_BLOCK
-          = showString "VK_FORMAT_BC4_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC4_SNORM_BLOCK
-          = showString "VK_FORMAT_BC4_SNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC5_UNORM_BLOCK
-          = showString "VK_FORMAT_BC5_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC5_SNORM_BLOCK
-          = showString "VK_FORMAT_BC5_SNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC6H_UFLOAT_BLOCK
-          = showString "VK_FORMAT_BC6H_UFLOAT_BLOCK"
-        showsPrec _ VK_FORMAT_BC6H_SFLOAT_BLOCK
-          = showString "VK_FORMAT_BC6H_SFLOAT_BLOCK"
-        showsPrec _ VK_FORMAT_BC7_UNORM_BLOCK
-          = showString "VK_FORMAT_BC7_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_BC7_SRGB_BLOCK
-          = showString "VK_FORMAT_BC7_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
-          = showString "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_EAC_R11_UNORM_BLOCK
-          = showString "VK_FORMAT_EAC_R11_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_EAC_R11_SNORM_BLOCK
-          = showString "VK_FORMAT_EAC_R11_SNORM_BLOCK"
-        showsPrec _ VK_FORMAT_EAC_R11G11_UNORM_BLOCK
-          = showString "VK_FORMAT_EAC_R11G11_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_EAC_R11G11_SNORM_BLOCK
-          = showString "VK_FORMAT_EAC_R11G11_SNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_4x4_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_4x4_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_4x4_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_4x4_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_5x4_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_5x4_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_5x4_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_5x4_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_5x5_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_5x5_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_5x5_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_5x5_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_6x5_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_6x5_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_6x5_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_6x5_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_6x6_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_6x6_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_6x6_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_6x6_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x5_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_8x5_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x5_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_8x5_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x6_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_8x6_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x6_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_8x6_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x8_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_8x8_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_8x8_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_8x8_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x5_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_10x5_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x5_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_10x5_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x6_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_10x6_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x6_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_10x6_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x8_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_10x8_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x8_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_10x8_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x10_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_10x10_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_10x10_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_10x10_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_12x10_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_12x10_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_12x10_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_12x10_SRGB_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_12x12_UNORM_BLOCK
-          = showString "VK_FORMAT_ASTC_12x12_UNORM_BLOCK"
-        showsPrec _ VK_FORMAT_ASTC_12x12_SRGB_BLOCK
-          = showString "VK_FORMAT_ASTC_12x12_SRGB_BLOCK"
-        showsPrec p (VkFormat x)
-          = showParen (p >= 11) (showString "VkFormat " . showsPrec 11 x)
-
-instance Read VkFormat where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FORMAT_UNDEFINED", pure VK_FORMAT_UNDEFINED),
-                  ("VK_FORMAT_R4G4_UNORM_PACK8", pure VK_FORMAT_R4G4_UNORM_PACK8),
-                  ("VK_FORMAT_R4G4B4A4_UNORM_PACK16",
-                   pure VK_FORMAT_R4G4B4A4_UNORM_PACK16),
-                  ("VK_FORMAT_B4G4R4A4_UNORM_PACK16",
-                   pure VK_FORMAT_B4G4R4A4_UNORM_PACK16),
-                  ("VK_FORMAT_R5G6B5_UNORM_PACK16",
-                   pure VK_FORMAT_R5G6B5_UNORM_PACK16),
-                  ("VK_FORMAT_B5G6R5_UNORM_PACK16",
-                   pure VK_FORMAT_B5G6R5_UNORM_PACK16),
-                  ("VK_FORMAT_R5G5B5A1_UNORM_PACK16",
-                   pure VK_FORMAT_R5G5B5A1_UNORM_PACK16),
-                  ("VK_FORMAT_B5G5R5A1_UNORM_PACK16",
-                   pure VK_FORMAT_B5G5R5A1_UNORM_PACK16),
-                  ("VK_FORMAT_A1R5G5B5_UNORM_PACK16",
-                   pure VK_FORMAT_A1R5G5B5_UNORM_PACK16),
-                  ("VK_FORMAT_R8_UNORM", pure VK_FORMAT_R8_UNORM),
-                  ("VK_FORMAT_R8_SNORM", pure VK_FORMAT_R8_SNORM),
-                  ("VK_FORMAT_R8_USCALED", pure VK_FORMAT_R8_USCALED),
-                  ("VK_FORMAT_R8_SSCALED", pure VK_FORMAT_R8_SSCALED),
-                  ("VK_FORMAT_R8_UINT", pure VK_FORMAT_R8_UINT),
-                  ("VK_FORMAT_R8_SINT", pure VK_FORMAT_R8_SINT),
-                  ("VK_FORMAT_R8_SRGB", pure VK_FORMAT_R8_SRGB),
-                  ("VK_FORMAT_R8G8_UNORM", pure VK_FORMAT_R8G8_UNORM),
-                  ("VK_FORMAT_R8G8_SNORM", pure VK_FORMAT_R8G8_SNORM),
-                  ("VK_FORMAT_R8G8_USCALED", pure VK_FORMAT_R8G8_USCALED),
-                  ("VK_FORMAT_R8G8_SSCALED", pure VK_FORMAT_R8G8_SSCALED),
-                  ("VK_FORMAT_R8G8_UINT", pure VK_FORMAT_R8G8_UINT),
-                  ("VK_FORMAT_R8G8_SINT", pure VK_FORMAT_R8G8_SINT),
-                  ("VK_FORMAT_R8G8_SRGB", pure VK_FORMAT_R8G8_SRGB),
-                  ("VK_FORMAT_R8G8B8_UNORM", pure VK_FORMAT_R8G8B8_UNORM),
-                  ("VK_FORMAT_R8G8B8_SNORM", pure VK_FORMAT_R8G8B8_SNORM),
-                  ("VK_FORMAT_R8G8B8_USCALED", pure VK_FORMAT_R8G8B8_USCALED),
-                  ("VK_FORMAT_R8G8B8_SSCALED", pure VK_FORMAT_R8G8B8_SSCALED),
-                  ("VK_FORMAT_R8G8B8_UINT", pure VK_FORMAT_R8G8B8_UINT),
-                  ("VK_FORMAT_R8G8B8_SINT", pure VK_FORMAT_R8G8B8_SINT),
-                  ("VK_FORMAT_R8G8B8_SRGB", pure VK_FORMAT_R8G8B8_SRGB),
-                  ("VK_FORMAT_B8G8R8_UNORM", pure VK_FORMAT_B8G8R8_UNORM),
-                  ("VK_FORMAT_B8G8R8_SNORM", pure VK_FORMAT_B8G8R8_SNORM),
-                  ("VK_FORMAT_B8G8R8_USCALED", pure VK_FORMAT_B8G8R8_USCALED),
-                  ("VK_FORMAT_B8G8R8_SSCALED", pure VK_FORMAT_B8G8R8_SSCALED),
-                  ("VK_FORMAT_B8G8R8_UINT", pure VK_FORMAT_B8G8R8_UINT),
-                  ("VK_FORMAT_B8G8R8_SINT", pure VK_FORMAT_B8G8R8_SINT),
-                  ("VK_FORMAT_B8G8R8_SRGB", pure VK_FORMAT_B8G8R8_SRGB),
-                  ("VK_FORMAT_R8G8B8A8_UNORM", pure VK_FORMAT_R8G8B8A8_UNORM),
-                  ("VK_FORMAT_R8G8B8A8_SNORM", pure VK_FORMAT_R8G8B8A8_SNORM),
-                  ("VK_FORMAT_R8G8B8A8_USCALED", pure VK_FORMAT_R8G8B8A8_USCALED),
-                  ("VK_FORMAT_R8G8B8A8_SSCALED", pure VK_FORMAT_R8G8B8A8_SSCALED),
-                  ("VK_FORMAT_R8G8B8A8_UINT", pure VK_FORMAT_R8G8B8A8_UINT),
-                  ("VK_FORMAT_R8G8B8A8_SINT", pure VK_FORMAT_R8G8B8A8_SINT),
-                  ("VK_FORMAT_R8G8B8A8_SRGB", pure VK_FORMAT_R8G8B8A8_SRGB),
-                  ("VK_FORMAT_B8G8R8A8_UNORM", pure VK_FORMAT_B8G8R8A8_UNORM),
-                  ("VK_FORMAT_B8G8R8A8_SNORM", pure VK_FORMAT_B8G8R8A8_SNORM),
-                  ("VK_FORMAT_B8G8R8A8_USCALED", pure VK_FORMAT_B8G8R8A8_USCALED),
-                  ("VK_FORMAT_B8G8R8A8_SSCALED", pure VK_FORMAT_B8G8R8A8_SSCALED),
-                  ("VK_FORMAT_B8G8R8A8_UINT", pure VK_FORMAT_B8G8R8A8_UINT),
-                  ("VK_FORMAT_B8G8R8A8_SINT", pure VK_FORMAT_B8G8R8A8_SINT),
-                  ("VK_FORMAT_B8G8R8A8_SRGB", pure VK_FORMAT_B8G8R8A8_SRGB),
-                  ("VK_FORMAT_A8B8G8R8_UNORM_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_UNORM_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_SNORM_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_SNORM_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_USCALED_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_USCALED_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_SSCALED_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_SSCALED_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_UINT_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_UINT_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_SINT_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_SINT_PACK32),
-                  ("VK_FORMAT_A8B8G8R8_SRGB_PACK32",
-                   pure VK_FORMAT_A8B8G8R8_SRGB_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_UNORM_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_UNORM_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_SNORM_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_SNORM_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_USCALED_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_USCALED_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_SSCALED_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_SSCALED_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_UINT_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_UINT_PACK32),
-                  ("VK_FORMAT_A2R10G10B10_SINT_PACK32",
-                   pure VK_FORMAT_A2R10G10B10_SINT_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_UNORM_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_UNORM_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_SNORM_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_SNORM_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_USCALED_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_USCALED_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_SSCALED_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_SSCALED_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_UINT_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_UINT_PACK32),
-                  ("VK_FORMAT_A2B10G10R10_SINT_PACK32",
-                   pure VK_FORMAT_A2B10G10R10_SINT_PACK32),
-                  ("VK_FORMAT_R16_UNORM", pure VK_FORMAT_R16_UNORM),
-                  ("VK_FORMAT_R16_SNORM", pure VK_FORMAT_R16_SNORM),
-                  ("VK_FORMAT_R16_USCALED", pure VK_FORMAT_R16_USCALED),
-                  ("VK_FORMAT_R16_SSCALED", pure VK_FORMAT_R16_SSCALED),
-                  ("VK_FORMAT_R16_UINT", pure VK_FORMAT_R16_UINT),
-                  ("VK_FORMAT_R16_SINT", pure VK_FORMAT_R16_SINT),
-                  ("VK_FORMAT_R16_SFLOAT", pure VK_FORMAT_R16_SFLOAT),
-                  ("VK_FORMAT_R16G16_UNORM", pure VK_FORMAT_R16G16_UNORM),
-                  ("VK_FORMAT_R16G16_SNORM", pure VK_FORMAT_R16G16_SNORM),
-                  ("VK_FORMAT_R16G16_USCALED", pure VK_FORMAT_R16G16_USCALED),
-                  ("VK_FORMAT_R16G16_SSCALED", pure VK_FORMAT_R16G16_SSCALED),
-                  ("VK_FORMAT_R16G16_UINT", pure VK_FORMAT_R16G16_UINT),
-                  ("VK_FORMAT_R16G16_SINT", pure VK_FORMAT_R16G16_SINT),
-                  ("VK_FORMAT_R16G16_SFLOAT", pure VK_FORMAT_R16G16_SFLOAT),
-                  ("VK_FORMAT_R16G16B16_UNORM", pure VK_FORMAT_R16G16B16_UNORM),
-                  ("VK_FORMAT_R16G16B16_SNORM", pure VK_FORMAT_R16G16B16_SNORM),
-                  ("VK_FORMAT_R16G16B16_USCALED", pure VK_FORMAT_R16G16B16_USCALED),
-                  ("VK_FORMAT_R16G16B16_SSCALED", pure VK_FORMAT_R16G16B16_SSCALED),
-                  ("VK_FORMAT_R16G16B16_UINT", pure VK_FORMAT_R16G16B16_UINT),
-                  ("VK_FORMAT_R16G16B16_SINT", pure VK_FORMAT_R16G16B16_SINT),
-                  ("VK_FORMAT_R16G16B16_SFLOAT", pure VK_FORMAT_R16G16B16_SFLOAT),
-                  ("VK_FORMAT_R16G16B16A16_UNORM",
-                   pure VK_FORMAT_R16G16B16A16_UNORM),
-                  ("VK_FORMAT_R16G16B16A16_SNORM",
-                   pure VK_FORMAT_R16G16B16A16_SNORM),
-                  ("VK_FORMAT_R16G16B16A16_USCALED",
-                   pure VK_FORMAT_R16G16B16A16_USCALED),
-                  ("VK_FORMAT_R16G16B16A16_SSCALED",
-                   pure VK_FORMAT_R16G16B16A16_SSCALED),
-                  ("VK_FORMAT_R16G16B16A16_UINT", pure VK_FORMAT_R16G16B16A16_UINT),
-                  ("VK_FORMAT_R16G16B16A16_SINT", pure VK_FORMAT_R16G16B16A16_SINT),
-                  ("VK_FORMAT_R16G16B16A16_SFLOAT",
-                   pure VK_FORMAT_R16G16B16A16_SFLOAT),
-                  ("VK_FORMAT_R32_UINT", pure VK_FORMAT_R32_UINT),
-                  ("VK_FORMAT_R32_SINT", pure VK_FORMAT_R32_SINT),
-                  ("VK_FORMAT_R32_SFLOAT", pure VK_FORMAT_R32_SFLOAT),
-                  ("VK_FORMAT_R32G32_UINT", pure VK_FORMAT_R32G32_UINT),
-                  ("VK_FORMAT_R32G32_SINT", pure VK_FORMAT_R32G32_SINT),
-                  ("VK_FORMAT_R32G32_SFLOAT", pure VK_FORMAT_R32G32_SFLOAT),
-                  ("VK_FORMAT_R32G32B32_UINT", pure VK_FORMAT_R32G32B32_UINT),
-                  ("VK_FORMAT_R32G32B32_SINT", pure VK_FORMAT_R32G32B32_SINT),
-                  ("VK_FORMAT_R32G32B32_SFLOAT", pure VK_FORMAT_R32G32B32_SFLOAT),
-                  ("VK_FORMAT_R32G32B32A32_UINT", pure VK_FORMAT_R32G32B32A32_UINT),
-                  ("VK_FORMAT_R32G32B32A32_SINT", pure VK_FORMAT_R32G32B32A32_SINT),
-                  ("VK_FORMAT_R32G32B32A32_SFLOAT",
-                   pure VK_FORMAT_R32G32B32A32_SFLOAT),
-                  ("VK_FORMAT_R64_UINT", pure VK_FORMAT_R64_UINT),
-                  ("VK_FORMAT_R64_SINT", pure VK_FORMAT_R64_SINT),
-                  ("VK_FORMAT_R64_SFLOAT", pure VK_FORMAT_R64_SFLOAT),
-                  ("VK_FORMAT_R64G64_UINT", pure VK_FORMAT_R64G64_UINT),
-                  ("VK_FORMAT_R64G64_SINT", pure VK_FORMAT_R64G64_SINT),
-                  ("VK_FORMAT_R64G64_SFLOAT", pure VK_FORMAT_R64G64_SFLOAT),
-                  ("VK_FORMAT_R64G64B64_UINT", pure VK_FORMAT_R64G64B64_UINT),
-                  ("VK_FORMAT_R64G64B64_SINT", pure VK_FORMAT_R64G64B64_SINT),
-                  ("VK_FORMAT_R64G64B64_SFLOAT", pure VK_FORMAT_R64G64B64_SFLOAT),
-                  ("VK_FORMAT_R64G64B64A64_UINT", pure VK_FORMAT_R64G64B64A64_UINT),
-                  ("VK_FORMAT_R64G64B64A64_SINT", pure VK_FORMAT_R64G64B64A64_SINT),
-                  ("VK_FORMAT_R64G64B64A64_SFLOAT",
-                   pure VK_FORMAT_R64G64B64A64_SFLOAT),
-                  ("VK_FORMAT_B10G11R11_UFLOAT_PACK32",
-                   pure VK_FORMAT_B10G11R11_UFLOAT_PACK32),
-                  ("VK_FORMAT_E5B9G9R9_UFLOAT_PACK32",
-                   pure VK_FORMAT_E5B9G9R9_UFLOAT_PACK32),
-                  ("VK_FORMAT_D16_UNORM", pure VK_FORMAT_D16_UNORM),
-                  ("VK_FORMAT_X8_D24_UNORM_PACK32",
-                   pure VK_FORMAT_X8_D24_UNORM_PACK32),
-                  ("VK_FORMAT_D32_SFLOAT", pure VK_FORMAT_D32_SFLOAT),
-                  ("VK_FORMAT_S8_UINT", pure VK_FORMAT_S8_UINT),
-                  ("VK_FORMAT_D16_UNORM_S8_UINT", pure VK_FORMAT_D16_UNORM_S8_UINT),
-                  ("VK_FORMAT_D24_UNORM_S8_UINT", pure VK_FORMAT_D24_UNORM_S8_UINT),
-                  ("VK_FORMAT_D32_SFLOAT_S8_UINT",
-                   pure VK_FORMAT_D32_SFLOAT_S8_UINT),
-                  ("VK_FORMAT_BC1_RGB_UNORM_BLOCK",
-                   pure VK_FORMAT_BC1_RGB_UNORM_BLOCK),
-                  ("VK_FORMAT_BC1_RGB_SRGB_BLOCK",
-                   pure VK_FORMAT_BC1_RGB_SRGB_BLOCK),
-                  ("VK_FORMAT_BC1_RGBA_UNORM_BLOCK",
-                   pure VK_FORMAT_BC1_RGBA_UNORM_BLOCK),
-                  ("VK_FORMAT_BC1_RGBA_SRGB_BLOCK",
-                   pure VK_FORMAT_BC1_RGBA_SRGB_BLOCK),
-                  ("VK_FORMAT_BC2_UNORM_BLOCK", pure VK_FORMAT_BC2_UNORM_BLOCK),
-                  ("VK_FORMAT_BC2_SRGB_BLOCK", pure VK_FORMAT_BC2_SRGB_BLOCK),
-                  ("VK_FORMAT_BC3_UNORM_BLOCK", pure VK_FORMAT_BC3_UNORM_BLOCK),
-                  ("VK_FORMAT_BC3_SRGB_BLOCK", pure VK_FORMAT_BC3_SRGB_BLOCK),
-                  ("VK_FORMAT_BC4_UNORM_BLOCK", pure VK_FORMAT_BC4_UNORM_BLOCK),
-                  ("VK_FORMAT_BC4_SNORM_BLOCK", pure VK_FORMAT_BC4_SNORM_BLOCK),
-                  ("VK_FORMAT_BC5_UNORM_BLOCK", pure VK_FORMAT_BC5_UNORM_BLOCK),
-                  ("VK_FORMAT_BC5_SNORM_BLOCK", pure VK_FORMAT_BC5_SNORM_BLOCK),
-                  ("VK_FORMAT_BC6H_UFLOAT_BLOCK", pure VK_FORMAT_BC6H_UFLOAT_BLOCK),
-                  ("VK_FORMAT_BC6H_SFLOAT_BLOCK", pure VK_FORMAT_BC6H_SFLOAT_BLOCK),
-                  ("VK_FORMAT_BC7_UNORM_BLOCK", pure VK_FORMAT_BC7_UNORM_BLOCK),
-                  ("VK_FORMAT_BC7_SRGB_BLOCK", pure VK_FORMAT_BC7_SRGB_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK),
-                  ("VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK",
-                   pure VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK),
-                  ("VK_FORMAT_EAC_R11_UNORM_BLOCK",
-                   pure VK_FORMAT_EAC_R11_UNORM_BLOCK),
-                  ("VK_FORMAT_EAC_R11_SNORM_BLOCK",
-                   pure VK_FORMAT_EAC_R11_SNORM_BLOCK),
-                  ("VK_FORMAT_EAC_R11G11_UNORM_BLOCK",
-                   pure VK_FORMAT_EAC_R11G11_UNORM_BLOCK),
-                  ("VK_FORMAT_EAC_R11G11_SNORM_BLOCK",
-                   pure VK_FORMAT_EAC_R11G11_SNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_4x4_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_4x4_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_4x4_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_4x4_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_5x4_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_5x4_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_5x4_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_5x4_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_5x5_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_5x5_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_5x5_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_5x5_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_6x5_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_6x5_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_6x5_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_6x5_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_6x6_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_6x6_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_6x6_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_6x6_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_8x5_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_8x5_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_8x5_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_8x5_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_8x6_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_8x6_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_8x6_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_8x6_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_8x8_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_8x8_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_8x8_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_8x8_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_10x5_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_10x5_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_10x5_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_10x5_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_10x6_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_10x6_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_10x6_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_10x6_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_10x8_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_10x8_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_10x8_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_10x8_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_10x10_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_10x10_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_10x10_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_10x10_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_12x10_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_12x10_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_12x10_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_12x10_SRGB_BLOCK),
-                  ("VK_FORMAT_ASTC_12x12_UNORM_BLOCK",
-                   pure VK_FORMAT_ASTC_12x12_UNORM_BLOCK),
-                  ("VK_FORMAT_ASTC_12x12_SRGB_BLOCK",
-                   pure VK_FORMAT_ASTC_12x12_SRGB_BLOCK)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFormat") >> (VkFormat <$> step readPrec)))
-
-pattern VK_FORMAT_UNDEFINED :: VkFormat
-
-pattern VK_FORMAT_UNDEFINED = VkFormat 0
-
-pattern VK_FORMAT_R4G4_UNORM_PACK8 :: VkFormat
-
-pattern VK_FORMAT_R4G4_UNORM_PACK8 = VkFormat 1
-
-pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_R4G4B4A4_UNORM_PACK16 = VkFormat 2
-
-pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_B4G4R4A4_UNORM_PACK16 = VkFormat 3
-
-pattern VK_FORMAT_R5G6B5_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_R5G6B5_UNORM_PACK16 = VkFormat 4
-
-pattern VK_FORMAT_B5G6R5_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_B5G6R5_UNORM_PACK16 = VkFormat 5
-
-pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_R5G5B5A1_UNORM_PACK16 = VkFormat 6
-
-pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_B5G5R5A1_UNORM_PACK16 = VkFormat 7
-
-pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 :: VkFormat
-
-pattern VK_FORMAT_A1R5G5B5_UNORM_PACK16 = VkFormat 8
-
-pattern VK_FORMAT_R8_UNORM :: VkFormat
-
-pattern VK_FORMAT_R8_UNORM = VkFormat 9
-
-pattern VK_FORMAT_R8_SNORM :: VkFormat
-
-pattern VK_FORMAT_R8_SNORM = VkFormat 10
-
-pattern VK_FORMAT_R8_USCALED :: VkFormat
-
-pattern VK_FORMAT_R8_USCALED = VkFormat 11
-
-pattern VK_FORMAT_R8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R8_SSCALED = VkFormat 12
-
-pattern VK_FORMAT_R8_UINT :: VkFormat
-
-pattern VK_FORMAT_R8_UINT = VkFormat 13
-
-pattern VK_FORMAT_R8_SINT :: VkFormat
-
-pattern VK_FORMAT_R8_SINT = VkFormat 14
-
-pattern VK_FORMAT_R8_SRGB :: VkFormat
-
-pattern VK_FORMAT_R8_SRGB = VkFormat 15
-
-pattern VK_FORMAT_R8G8_UNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8_UNORM = VkFormat 16
-
-pattern VK_FORMAT_R8G8_SNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8_SNORM = VkFormat 17
-
-pattern VK_FORMAT_R8G8_USCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8_USCALED = VkFormat 18
-
-pattern VK_FORMAT_R8G8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8_SSCALED = VkFormat 19
-
-pattern VK_FORMAT_R8G8_UINT :: VkFormat
-
-pattern VK_FORMAT_R8G8_UINT = VkFormat 20
-
-pattern VK_FORMAT_R8G8_SINT :: VkFormat
-
-pattern VK_FORMAT_R8G8_SINT = VkFormat 21
-
-pattern VK_FORMAT_R8G8_SRGB :: VkFormat
-
-pattern VK_FORMAT_R8G8_SRGB = VkFormat 22
-
-pattern VK_FORMAT_R8G8B8_UNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_UNORM = VkFormat 23
-
-pattern VK_FORMAT_R8G8B8_SNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_SNORM = VkFormat 24
-
-pattern VK_FORMAT_R8G8B8_USCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_USCALED = VkFormat 25
-
-pattern VK_FORMAT_R8G8B8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_SSCALED = VkFormat 26
-
-pattern VK_FORMAT_R8G8B8_UINT :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_UINT = VkFormat 27
-
-pattern VK_FORMAT_R8G8B8_SINT :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_SINT = VkFormat 28
-
-pattern VK_FORMAT_R8G8B8_SRGB :: VkFormat
-
-pattern VK_FORMAT_R8G8B8_SRGB = VkFormat 29
-
-pattern VK_FORMAT_B8G8R8_UNORM :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_UNORM = VkFormat 30
-
-pattern VK_FORMAT_B8G8R8_SNORM :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_SNORM = VkFormat 31
-
-pattern VK_FORMAT_B8G8R8_USCALED :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_USCALED = VkFormat 32
-
-pattern VK_FORMAT_B8G8R8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_SSCALED = VkFormat 33
-
-pattern VK_FORMAT_B8G8R8_UINT :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_UINT = VkFormat 34
-
-pattern VK_FORMAT_B8G8R8_SINT :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_SINT = VkFormat 35
-
-pattern VK_FORMAT_B8G8R8_SRGB :: VkFormat
-
-pattern VK_FORMAT_B8G8R8_SRGB = VkFormat 36
-
-pattern VK_FORMAT_R8G8B8A8_UNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_UNORM = VkFormat 37
-
-pattern VK_FORMAT_R8G8B8A8_SNORM :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_SNORM = VkFormat 38
-
-pattern VK_FORMAT_R8G8B8A8_USCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_USCALED = VkFormat 39
-
-pattern VK_FORMAT_R8G8B8A8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_SSCALED = VkFormat 40
-
-pattern VK_FORMAT_R8G8B8A8_UINT :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_UINT = VkFormat 41
-
-pattern VK_FORMAT_R8G8B8A8_SINT :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_SINT = VkFormat 42
-
-pattern VK_FORMAT_R8G8B8A8_SRGB :: VkFormat
-
-pattern VK_FORMAT_R8G8B8A8_SRGB = VkFormat 43
-
-pattern VK_FORMAT_B8G8R8A8_UNORM :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_UNORM = VkFormat 44
-
-pattern VK_FORMAT_B8G8R8A8_SNORM :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_SNORM = VkFormat 45
-
-pattern VK_FORMAT_B8G8R8A8_USCALED :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_USCALED = VkFormat 46
-
-pattern VK_FORMAT_B8G8R8A8_SSCALED :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_SSCALED = VkFormat 47
-
-pattern VK_FORMAT_B8G8R8A8_UINT :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_UINT = VkFormat 48
-
-pattern VK_FORMAT_B8G8R8A8_SINT :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_SINT = VkFormat 49
-
-pattern VK_FORMAT_B8G8R8A8_SRGB :: VkFormat
-
-pattern VK_FORMAT_B8G8R8A8_SRGB = VkFormat 50
-
-pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_UNORM_PACK32 = VkFormat 51
-
-pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_SNORM_PACK32 = VkFormat 52
-
-pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_USCALED_PACK32 = VkFormat 53
-
-pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = VkFormat 54
-
-pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_UINT_PACK32 = VkFormat 55
-
-pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_SINT_PACK32 = VkFormat 56
-
-pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A8B8G8R8_SRGB_PACK32 = VkFormat 57
-
-pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_UNORM_PACK32 = VkFormat 58
-
-pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_SNORM_PACK32 = VkFormat 59
-
-pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_USCALED_PACK32 = VkFormat 60
-
-pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = VkFormat 61
-
-pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_UINT_PACK32 = VkFormat 62
-
-pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2R10G10B10_SINT_PACK32 = VkFormat 63
-
-pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_UNORM_PACK32 = VkFormat 64
-
-pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_SNORM_PACK32 = VkFormat 65
-
-pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_USCALED_PACK32 = VkFormat 66
-
-pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = VkFormat 67
-
-pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_UINT_PACK32 = VkFormat 68
-
-pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_A2B10G10R10_SINT_PACK32 = VkFormat 69
-
-pattern VK_FORMAT_R16_UNORM :: VkFormat
-
-pattern VK_FORMAT_R16_UNORM = VkFormat 70
-
-pattern VK_FORMAT_R16_SNORM :: VkFormat
-
-pattern VK_FORMAT_R16_SNORM = VkFormat 71
-
-pattern VK_FORMAT_R16_USCALED :: VkFormat
-
-pattern VK_FORMAT_R16_USCALED = VkFormat 72
-
-pattern VK_FORMAT_R16_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R16_SSCALED = VkFormat 73
-
-pattern VK_FORMAT_R16_UINT :: VkFormat
-
-pattern VK_FORMAT_R16_UINT = VkFormat 74
-
-pattern VK_FORMAT_R16_SINT :: VkFormat
-
-pattern VK_FORMAT_R16_SINT = VkFormat 75
-
-pattern VK_FORMAT_R16_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R16_SFLOAT = VkFormat 76
-
-pattern VK_FORMAT_R16G16_UNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16_UNORM = VkFormat 77
-
-pattern VK_FORMAT_R16G16_SNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16_SNORM = VkFormat 78
-
-pattern VK_FORMAT_R16G16_USCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16_USCALED = VkFormat 79
-
-pattern VK_FORMAT_R16G16_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16_SSCALED = VkFormat 80
-
-pattern VK_FORMAT_R16G16_UINT :: VkFormat
-
-pattern VK_FORMAT_R16G16_UINT = VkFormat 81
-
-pattern VK_FORMAT_R16G16_SINT :: VkFormat
-
-pattern VK_FORMAT_R16G16_SINT = VkFormat 82
-
-pattern VK_FORMAT_R16G16_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R16G16_SFLOAT = VkFormat 83
-
-pattern VK_FORMAT_R16G16B16_UNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_UNORM = VkFormat 84
-
-pattern VK_FORMAT_R16G16B16_SNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_SNORM = VkFormat 85
-
-pattern VK_FORMAT_R16G16B16_USCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_USCALED = VkFormat 86
-
-pattern VK_FORMAT_R16G16B16_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_SSCALED = VkFormat 87
-
-pattern VK_FORMAT_R16G16B16_UINT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_UINT = VkFormat 88
-
-pattern VK_FORMAT_R16G16B16_SINT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_SINT = VkFormat 89
-
-pattern VK_FORMAT_R16G16B16_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16_SFLOAT = VkFormat 90
-
-pattern VK_FORMAT_R16G16B16A16_UNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_UNORM = VkFormat 91
-
-pattern VK_FORMAT_R16G16B16A16_SNORM :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_SNORM = VkFormat 92
-
-pattern VK_FORMAT_R16G16B16A16_USCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_USCALED = VkFormat 93
-
-pattern VK_FORMAT_R16G16B16A16_SSCALED :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_SSCALED = VkFormat 94
-
-pattern VK_FORMAT_R16G16B16A16_UINT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_UINT = VkFormat 95
-
-pattern VK_FORMAT_R16G16B16A16_SINT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_SINT = VkFormat 96
-
-pattern VK_FORMAT_R16G16B16A16_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R16G16B16A16_SFLOAT = VkFormat 97
-
-pattern VK_FORMAT_R32_UINT :: VkFormat
-
-pattern VK_FORMAT_R32_UINT = VkFormat 98
-
-pattern VK_FORMAT_R32_SINT :: VkFormat
-
-pattern VK_FORMAT_R32_SINT = VkFormat 99
-
-pattern VK_FORMAT_R32_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R32_SFLOAT = VkFormat 100
-
-pattern VK_FORMAT_R32G32_UINT :: VkFormat
-
-pattern VK_FORMAT_R32G32_UINT = VkFormat 101
-
-pattern VK_FORMAT_R32G32_SINT :: VkFormat
-
-pattern VK_FORMAT_R32G32_SINT = VkFormat 102
-
-pattern VK_FORMAT_R32G32_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R32G32_SFLOAT = VkFormat 103
-
-pattern VK_FORMAT_R32G32B32_UINT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32_UINT = VkFormat 104
-
-pattern VK_FORMAT_R32G32B32_SINT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32_SINT = VkFormat 105
-
-pattern VK_FORMAT_R32G32B32_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32_SFLOAT = VkFormat 106
-
-pattern VK_FORMAT_R32G32B32A32_UINT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32A32_UINT = VkFormat 107
-
-pattern VK_FORMAT_R32G32B32A32_SINT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32A32_SINT = VkFormat 108
-
-pattern VK_FORMAT_R32G32B32A32_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R32G32B32A32_SFLOAT = VkFormat 109
-
-pattern VK_FORMAT_R64_UINT :: VkFormat
-
-pattern VK_FORMAT_R64_UINT = VkFormat 110
-
-pattern VK_FORMAT_R64_SINT :: VkFormat
-
-pattern VK_FORMAT_R64_SINT = VkFormat 111
-
-pattern VK_FORMAT_R64_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R64_SFLOAT = VkFormat 112
-
-pattern VK_FORMAT_R64G64_UINT :: VkFormat
-
-pattern VK_FORMAT_R64G64_UINT = VkFormat 113
-
-pattern VK_FORMAT_R64G64_SINT :: VkFormat
-
-pattern VK_FORMAT_R64G64_SINT = VkFormat 114
-
-pattern VK_FORMAT_R64G64_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R64G64_SFLOAT = VkFormat 115
-
-pattern VK_FORMAT_R64G64B64_UINT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64_UINT = VkFormat 116
-
-pattern VK_FORMAT_R64G64B64_SINT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64_SINT = VkFormat 117
-
-pattern VK_FORMAT_R64G64B64_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64_SFLOAT = VkFormat 118
-
-pattern VK_FORMAT_R64G64B64A64_UINT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64A64_UINT = VkFormat 119
-
-pattern VK_FORMAT_R64G64B64A64_SINT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64A64_SINT = VkFormat 120
-
-pattern VK_FORMAT_R64G64B64A64_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_R64G64B64A64_SFLOAT = VkFormat 121
-
-pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_B10G11R11_UFLOAT_PACK32 = VkFormat 122
-
-pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 :: VkFormat
-
-pattern VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = VkFormat 123
-
-pattern VK_FORMAT_D16_UNORM :: VkFormat
-
-pattern VK_FORMAT_D16_UNORM = VkFormat 124
-
-pattern VK_FORMAT_X8_D24_UNORM_PACK32 :: VkFormat
-
-pattern VK_FORMAT_X8_D24_UNORM_PACK32 = VkFormat 125
-
-pattern VK_FORMAT_D32_SFLOAT :: VkFormat
-
-pattern VK_FORMAT_D32_SFLOAT = VkFormat 126
-
-pattern VK_FORMAT_S8_UINT :: VkFormat
-
-pattern VK_FORMAT_S8_UINT = VkFormat 127
-
-pattern VK_FORMAT_D16_UNORM_S8_UINT :: VkFormat
-
-pattern VK_FORMAT_D16_UNORM_S8_UINT = VkFormat 128
-
-pattern VK_FORMAT_D24_UNORM_S8_UINT :: VkFormat
-
-pattern VK_FORMAT_D24_UNORM_S8_UINT = VkFormat 129
-
-pattern VK_FORMAT_D32_SFLOAT_S8_UINT :: VkFormat
-
-pattern VK_FORMAT_D32_SFLOAT_S8_UINT = VkFormat 130
-
-pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC1_RGB_UNORM_BLOCK = VkFormat 131
-
-pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC1_RGB_SRGB_BLOCK = VkFormat 132
-
-pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC1_RGBA_UNORM_BLOCK = VkFormat 133
-
-pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC1_RGBA_SRGB_BLOCK = VkFormat 134
-
-pattern VK_FORMAT_BC2_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC2_UNORM_BLOCK = VkFormat 135
-
-pattern VK_FORMAT_BC2_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC2_SRGB_BLOCK = VkFormat 136
-
-pattern VK_FORMAT_BC3_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC3_UNORM_BLOCK = VkFormat 137
-
-pattern VK_FORMAT_BC3_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC3_SRGB_BLOCK = VkFormat 138
-
-pattern VK_FORMAT_BC4_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC4_UNORM_BLOCK = VkFormat 139
-
-pattern VK_FORMAT_BC4_SNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC4_SNORM_BLOCK = VkFormat 140
-
-pattern VK_FORMAT_BC5_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC5_UNORM_BLOCK = VkFormat 141
-
-pattern VK_FORMAT_BC5_SNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC5_SNORM_BLOCK = VkFormat 142
-
-pattern VK_FORMAT_BC6H_UFLOAT_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC6H_UFLOAT_BLOCK = VkFormat 143
-
-pattern VK_FORMAT_BC6H_SFLOAT_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC6H_SFLOAT_BLOCK = VkFormat 144
-
-pattern VK_FORMAT_BC7_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC7_UNORM_BLOCK = VkFormat 145
-
-pattern VK_FORMAT_BC7_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_BC7_SRGB_BLOCK = VkFormat 146
-
-pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = VkFormat 147
-
-pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = VkFormat 148
-
-pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = VkFormat 149
-
-pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = VkFormat 150
-
-pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = VkFormat 151
-
-pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = VkFormat 152
-
-pattern VK_FORMAT_EAC_R11_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_EAC_R11_UNORM_BLOCK = VkFormat 153
-
-pattern VK_FORMAT_EAC_R11_SNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_EAC_R11_SNORM_BLOCK = VkFormat 154
-
-pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_EAC_R11G11_UNORM_BLOCK = VkFormat 155
-
-pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_EAC_R11G11_SNORM_BLOCK = VkFormat 156
-
-pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_4x4_UNORM_BLOCK = VkFormat 157
-
-pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_4x4_SRGB_BLOCK = VkFormat 158
-
-pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_5x4_UNORM_BLOCK = VkFormat 159
-
-pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_5x4_SRGB_BLOCK = VkFormat 160
-
-pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_5x5_UNORM_BLOCK = VkFormat 161
-
-pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_5x5_SRGB_BLOCK = VkFormat 162
-
-pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_6x5_UNORM_BLOCK = VkFormat 163
-
-pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_6x5_SRGB_BLOCK = VkFormat 164
-
-pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_6x6_UNORM_BLOCK = VkFormat 165
-
-pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_6x6_SRGB_BLOCK = VkFormat 166
-
-pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x5_UNORM_BLOCK = VkFormat 167
-
-pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x5_SRGB_BLOCK = VkFormat 168
-
-pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x6_UNORM_BLOCK = VkFormat 169
-
-pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x6_SRGB_BLOCK = VkFormat 170
-
-pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x8_UNORM_BLOCK = VkFormat 171
-
-pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_8x8_SRGB_BLOCK = VkFormat 172
-
-pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x5_UNORM_BLOCK = VkFormat 173
-
-pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x5_SRGB_BLOCK = VkFormat 174
-
-pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x6_UNORM_BLOCK = VkFormat 175
-
-pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x6_SRGB_BLOCK = VkFormat 176
-
-pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x8_UNORM_BLOCK = VkFormat 177
-
-pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x8_SRGB_BLOCK = VkFormat 178
-
-pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x10_UNORM_BLOCK = VkFormat 179
-
-pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_10x10_SRGB_BLOCK = VkFormat 180
-
-pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_12x10_UNORM_BLOCK = VkFormat 181
-
-pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_12x10_SRGB_BLOCK = VkFormat 182
-
-pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_12x12_UNORM_BLOCK = VkFormat 183
-
-pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK :: VkFormat
-
-pattern VK_FORMAT_ASTC_12x12_SRGB_BLOCK = VkFormat 184
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFormatFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFormatFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFormatFeatureFlags.hs
+++ /dev/null
@@ -1,251 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-       (VkFormatFeatureBitmask(VkFormatFeatureBitmask,
-                               VkFormatFeatureFlags, VkFormatFeatureFlagBits,
-                               VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
-                               VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
-                               VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
-                               VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
-                               VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
-                               VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
-                               VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
-                               VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
-                               VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
-                               VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
-                               VK_FORMAT_FEATURE_BLIT_SRC_BIT, VK_FORMAT_FEATURE_BLIT_DST_BIT,
-                               VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT),
-        VkFormatFeatureFlags, VkFormatFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkFormatFeatureBitmask (a ::
-                                  FlagType) = VkFormatFeatureBitmask VkFlags
-                                                deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkFormatFeatureFlags = VkFormatFeatureBitmask FlagMask
-
-type VkFormatFeatureFlagBits = VkFormatFeatureBitmask FlagBit
-
-pattern VkFormatFeatureFlagBits ::
-        VkFlags -> VkFormatFeatureBitmask FlagBit
-
-pattern VkFormatFeatureFlagBits n = VkFormatFeatureBitmask n
-
-pattern VkFormatFeatureFlags ::
-        VkFlags -> VkFormatFeatureBitmask FlagMask
-
-pattern VkFormatFeatureFlags n = VkFormatFeatureBitmask n
-
-deriving instance Bits (VkFormatFeatureBitmask FlagMask)
-
-deriving instance FiniteBits (VkFormatFeatureBitmask FlagMask)
-
-deriving instance Integral (VkFormatFeatureBitmask FlagMask)
-
-deriving instance Num (VkFormatFeatureBitmask FlagMask)
-
-deriving instance Bounded (VkFormatFeatureBitmask FlagMask)
-
-deriving instance Enum (VkFormatFeatureBitmask FlagMask)
-
-deriving instance Real (VkFormatFeatureBitmask FlagMask)
-
-instance Show (VkFormatFeatureBitmask a) where
-        showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
-          = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
-          = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
-          = showString "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
-          = showString "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
-          = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
-          = showString "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
-          = showString "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
-          = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
-          = showString "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
-          = showString "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_BLIT_SRC_BIT
-          = showString "VK_FORMAT_FEATURE_BLIT_SRC_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_BLIT_DST_BIT
-          = showString "VK_FORMAT_FEATURE_BLIT_DST_BIT"
-        showsPrec _ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
-          = showString "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"
-        showsPrec p (VkFormatFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkFormatFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkFormatFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT",
-                   pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT),
-                  ("VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT",
-                   pure VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT),
-                  ("VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT",
-                   pure VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT),
-                  ("VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT",
-                   pure VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT),
-                  ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT",
-                   pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT),
-                  ("VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT",
-                   pure VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT),
-                  ("VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT",
-                   pure VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT),
-                  ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT",
-                   pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT),
-                  ("VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT",
-                   pure VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT),
-                  ("VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT",
-                   pure VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT),
-                  ("VK_FORMAT_FEATURE_BLIT_SRC_BIT",
-                   pure VK_FORMAT_FEATURE_BLIT_SRC_BIT),
-                  ("VK_FORMAT_FEATURE_BLIT_DST_BIT",
-                   pure VK_FORMAT_FEATURE_BLIT_DST_BIT),
-                  ("VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT",
-                   pure VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFormatFeatureBitmask") >>
-                      (VkFormatFeatureBitmask <$> step readPrec)))
-
--- | Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
---
---   bitpos = @0@
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT =
-        VkFormatFeatureBitmask 1
-
--- | Format can be used for storage images (STORAGE_IMAGE descriptor type)
---
---   bitpos = @1@
-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT =
-        VkFormatFeatureBitmask 2
-
--- | Format supports atomic operations in case it is used for storage images
---
---   bitpos = @2@
-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT =
-        VkFormatFeatureBitmask 4
-
--- | Format can be used for uniform texel buffers (TBOs)
---
---   bitpos = @3@
-pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT =
-        VkFormatFeatureBitmask 8
-
--- | Format can be used for storage texel buffers (IBOs)
---
---   bitpos = @4@
-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT =
-        VkFormatFeatureBitmask 16
-
--- | Format supports atomic operations in case it is used for storage texel buffers
---
---   bitpos = @5@
-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT =
-        VkFormatFeatureBitmask 32
-
--- | Format can be used for vertex buffers (VBOs)
---
---   bitpos = @6@
-pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT =
-        VkFormatFeatureBitmask 64
-
--- | Format can be used for color attachment images
---
---   bitpos = @7@
-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT =
-        VkFormatFeatureBitmask 128
-
--- | Format supports blending in case it is used for color attachment images
---
---   bitpos = @8@
-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT =
-        VkFormatFeatureBitmask 256
-
--- | Format can be used for depth/stencil attachment images
---
---   bitpos = @9@
-pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT =
-        VkFormatFeatureBitmask 512
-
--- | Format can be used as the source image of blits with vkCmdBlitImage
---
---   bitpos = @10@
-pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT :: VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_BLIT_SRC_BIT =
-        VkFormatFeatureBitmask 1024
-
--- | Format can be used as the destination image of blits with vkCmdBlitImage
---
---   bitpos = @11@
-pattern VK_FORMAT_FEATURE_BLIT_DST_BIT :: VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_BLIT_DST_BIT =
-        VkFormatFeatureBitmask 2048
-
--- | Format can be filtered with VK_FILTER_LINEAR when being sampled
---
---   bitpos = @12@
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT ::
-        VkFormatFeatureBitmask a
-
-pattern VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT =
-        VkFormatFeatureBitmask 4096
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFramebufferCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFramebufferCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFramebufferCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkFramebufferCreateFlagBits
-       (VkFramebufferCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkFramebufferCreateFlagBits = VkFramebufferCreateFlagBits VkFlags
-                                        deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                  FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkFramebufferCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkFramebufferCreateFlagBits x) = show x
-
-instance Read VkFramebufferCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkFrontFace.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkFrontFace.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkFrontFace.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkFrontFace
-       (VkFrontFace(VkFrontFace, VK_FRONT_FACE_COUNTER_CLOCKWISE,
-                    VK_FRONT_FACE_CLOCKWISE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFrontFace.html VkFrontFace registry at www.khronos.org>
-newtype VkFrontFace = VkFrontFace Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkFrontFace where
-        showsPrec _ VK_FRONT_FACE_COUNTER_CLOCKWISE
-          = showString "VK_FRONT_FACE_COUNTER_CLOCKWISE"
-        showsPrec _ VK_FRONT_FACE_CLOCKWISE
-          = showString "VK_FRONT_FACE_CLOCKWISE"
-        showsPrec p (VkFrontFace x)
-          = showParen (p >= 11) (showString "VkFrontFace " . showsPrec 11 x)
-
-instance Read VkFrontFace where
-        readPrec
-          = parens
-              (choose
-                 [("VK_FRONT_FACE_COUNTER_CLOCKWISE",
-                   pure VK_FRONT_FACE_COUNTER_CLOCKWISE),
-                  ("VK_FRONT_FACE_CLOCKWISE", pure VK_FRONT_FACE_CLOCKWISE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkFrontFace") >> (VkFrontFace <$> step readPrec)))
-
-pattern VK_FRONT_FACE_COUNTER_CLOCKWISE :: VkFrontFace
-
-pattern VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace 0
-
-pattern VK_FRONT_FACE_CLOCKWISE :: VkFrontFace
-
-pattern VK_FRONT_FACE_CLOCKWISE = VkFrontFace 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageAspectFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageAspectFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageAspectFlags.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-       (VkImageAspectBitmask(VkImageAspectBitmask, VkImageAspectFlags,
-                             VkImageAspectFlagBits, VK_IMAGE_ASPECT_COLOR_BIT,
-                             VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_ASPECT_STENCIL_BIT,
-                             VK_IMAGE_ASPECT_METADATA_BIT),
-        VkImageAspectFlags, VkImageAspectFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkImageAspectBitmask (a ::
-                                FlagType) = VkImageAspectBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkImageAspectFlags = VkImageAspectBitmask FlagMask
-
-type VkImageAspectFlagBits = VkImageAspectBitmask FlagBit
-
-pattern VkImageAspectFlagBits ::
-        VkFlags -> VkImageAspectBitmask FlagBit
-
-pattern VkImageAspectFlagBits n = VkImageAspectBitmask n
-
-pattern VkImageAspectFlags ::
-        VkFlags -> VkImageAspectBitmask FlagMask
-
-pattern VkImageAspectFlags n = VkImageAspectBitmask n
-
-deriving instance Bits (VkImageAspectBitmask FlagMask)
-
-deriving instance FiniteBits (VkImageAspectBitmask FlagMask)
-
-deriving instance Integral (VkImageAspectBitmask FlagMask)
-
-deriving instance Num (VkImageAspectBitmask FlagMask)
-
-deriving instance Bounded (VkImageAspectBitmask FlagMask)
-
-deriving instance Enum (VkImageAspectBitmask FlagMask)
-
-deriving instance Real (VkImageAspectBitmask FlagMask)
-
-instance Show (VkImageAspectBitmask a) where
-        showsPrec _ VK_IMAGE_ASPECT_COLOR_BIT
-          = showString "VK_IMAGE_ASPECT_COLOR_BIT"
-        showsPrec _ VK_IMAGE_ASPECT_DEPTH_BIT
-          = showString "VK_IMAGE_ASPECT_DEPTH_BIT"
-        showsPrec _ VK_IMAGE_ASPECT_STENCIL_BIT
-          = showString "VK_IMAGE_ASPECT_STENCIL_BIT"
-        showsPrec _ VK_IMAGE_ASPECT_METADATA_BIT
-          = showString "VK_IMAGE_ASPECT_METADATA_BIT"
-        showsPrec p (VkImageAspectBitmask x)
-          = showParen (p >= 11)
-              (showString "VkImageAspectBitmask " . showsPrec 11 x)
-
-instance Read (VkImageAspectBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_ASPECT_COLOR_BIT", pure VK_IMAGE_ASPECT_COLOR_BIT),
-                  ("VK_IMAGE_ASPECT_DEPTH_BIT", pure VK_IMAGE_ASPECT_DEPTH_BIT),
-                  ("VK_IMAGE_ASPECT_STENCIL_BIT", pure VK_IMAGE_ASPECT_STENCIL_BIT),
-                  ("VK_IMAGE_ASPECT_METADATA_BIT",
-                   pure VK_IMAGE_ASPECT_METADATA_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageAspectBitmask") >>
-                      (VkImageAspectBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_IMAGE_ASPECT_COLOR_BIT :: VkImageAspectBitmask a
-
-pattern VK_IMAGE_ASPECT_COLOR_BIT = VkImageAspectBitmask 1
-
--- | bitpos = @1@
-pattern VK_IMAGE_ASPECT_DEPTH_BIT :: VkImageAspectBitmask a
-
-pattern VK_IMAGE_ASPECT_DEPTH_BIT = VkImageAspectBitmask 2
-
--- | bitpos = @2@
-pattern VK_IMAGE_ASPECT_STENCIL_BIT :: VkImageAspectBitmask a
-
-pattern VK_IMAGE_ASPECT_STENCIL_BIT = VkImageAspectBitmask 4
-
--- | bitpos = @3@
-pattern VK_IMAGE_ASPECT_METADATA_BIT :: VkImageAspectBitmask a
-
-pattern VK_IMAGE_ASPECT_METADATA_BIT = VkImageAspectBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageCreateFlags.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-       (VkImageCreateBitmask(VkImageCreateBitmask, VkImageCreateFlags,
-                             VkImageCreateFlagBits, VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
-                             VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
-                             VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
-                             VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
-                             VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT),
-        VkImageCreateFlags, VkImageCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkImageCreateBitmask (a ::
-                                FlagType) = VkImageCreateBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkImageCreateFlags = VkImageCreateBitmask FlagMask
-
-type VkImageCreateFlagBits = VkImageCreateBitmask FlagBit
-
-pattern VkImageCreateFlagBits ::
-        VkFlags -> VkImageCreateBitmask FlagBit
-
-pattern VkImageCreateFlagBits n = VkImageCreateBitmask n
-
-pattern VkImageCreateFlags ::
-        VkFlags -> VkImageCreateBitmask FlagMask
-
-pattern VkImageCreateFlags n = VkImageCreateBitmask n
-
-deriving instance Bits (VkImageCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkImageCreateBitmask FlagMask)
-
-deriving instance Integral (VkImageCreateBitmask FlagMask)
-
-deriving instance Num (VkImageCreateBitmask FlagMask)
-
-deriving instance Bounded (VkImageCreateBitmask FlagMask)
-
-deriving instance Enum (VkImageCreateBitmask FlagMask)
-
-deriving instance Real (VkImageCreateBitmask FlagMask)
-
-instance Show (VkImageCreateBitmask a) where
-        showsPrec _ VK_IMAGE_CREATE_SPARSE_BINDING_BIT
-          = showString "VK_IMAGE_CREATE_SPARSE_BINDING_BIT"
-        showsPrec _ VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
-          = showString "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT"
-        showsPrec _ VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
-          = showString "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT"
-        showsPrec _ VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
-          = showString "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT"
-        showsPrec _ VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
-          = showString "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT"
-        showsPrec p (VkImageCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkImageCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkImageCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_CREATE_SPARSE_BINDING_BIT",
-                   pure VK_IMAGE_CREATE_SPARSE_BINDING_BIT),
-                  ("VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT",
-                   pure VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT),
-                  ("VK_IMAGE_CREATE_SPARSE_ALIASED_BIT",
-                   pure VK_IMAGE_CREATE_SPARSE_ALIASED_BIT),
-                  ("VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT",
-                   pure VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT),
-                  ("VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT",
-                   pure VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageCreateBitmask") >>
-                      (VkImageCreateBitmask <$> step readPrec)))
-
--- | Image should support sparse backing
---
---   bitpos = @0@
-pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT ::
-        VkImageCreateBitmask a
-
-pattern VK_IMAGE_CREATE_SPARSE_BINDING_BIT = VkImageCreateBitmask 1
-
--- | Image should support sparse backing with partial residency
---
---   bitpos = @1@
-pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT ::
-        VkImageCreateBitmask a
-
-pattern VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT =
-        VkImageCreateBitmask 2
-
--- | Image should support constent data access to physical memory ranges mapped into multiple locations of sparse images
---
---   bitpos = @2@
-pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT ::
-        VkImageCreateBitmask a
-
-pattern VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = VkImageCreateBitmask 4
-
--- | Allows image views to have different format than the base image
---
---   bitpos = @3@
-pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT ::
-        VkImageCreateBitmask a
-
-pattern VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = VkImageCreateBitmask 8
-
--- | Allows creating image views with cube type from the created image
---
---   bitpos = @4@
-pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT ::
-        VkImageCreateBitmask a
-
-pattern VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT =
-        VkImageCreateBitmask 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageLayout.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageLayout.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageLayout.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkImageLayout
-       (VkImageLayout(VkImageLayout, VK_IMAGE_LAYOUT_UNDEFINED,
-                      VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-                      VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
-                      VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
-                      VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
-                      VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-                      VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
-                      VK_IMAGE_LAYOUT_PREINITIALIZED))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageLayout.html VkImageLayout registry at www.khronos.org>
-newtype VkImageLayout = VkImageLayout Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkImageLayout where
-        showsPrec _ VK_IMAGE_LAYOUT_UNDEFINED
-          = showString "VK_IMAGE_LAYOUT_UNDEFINED"
-        showsPrec _ VK_IMAGE_LAYOUT_GENERAL
-          = showString "VK_IMAGE_LAYOUT_GENERAL"
-        showsPrec _ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
-          = showString "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL"
-        showsPrec _ VK_IMAGE_LAYOUT_PREINITIALIZED
-          = showString "VK_IMAGE_LAYOUT_PREINITIALIZED"
-        showsPrec p (VkImageLayout x)
-          = showParen (p >= 11)
-              (showString "VkImageLayout " . showsPrec 11 x)
-
-instance Read VkImageLayout where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_LAYOUT_UNDEFINED", pure VK_IMAGE_LAYOUT_UNDEFINED),
-                  ("VK_IMAGE_LAYOUT_GENERAL", pure VK_IMAGE_LAYOUT_GENERAL),
-                  ("VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL",
-                   pure VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL),
-                  ("VK_IMAGE_LAYOUT_PREINITIALIZED",
-                   pure VK_IMAGE_LAYOUT_PREINITIALIZED)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageLayout") >>
-                      (VkImageLayout <$> step readPrec)))
-
--- | Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
-pattern VK_IMAGE_LAYOUT_UNDEFINED :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_UNDEFINED = VkImageLayout 0
-
--- | General layout when image can be used for any kind of access
-pattern VK_IMAGE_LAYOUT_GENERAL :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_GENERAL = VkImageLayout 1
-
--- | Optimal layout when image is only used for color attachment read/write
-pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = VkImageLayout 2
-
--- | Optimal layout when image is only used for depth/stencil attachment read/write
-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL ::
-        VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL =
-        VkImageLayout 3
-
--- | Optimal layout when image is used for read only depth/stencil attachment and shader access
-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL ::
-        VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL =
-        VkImageLayout 4
-
--- | Optimal layout when image is used for read only shader access
-pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = VkImageLayout 5
-
--- | Optimal layout when image is used only as source of transfer operations
-pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = VkImageLayout 6
-
--- | Optimal layout when image is used only as destination of transfer operations
-pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = VkImageLayout 7
-
--- | Initial layout used when the data is populated by the CPU
-pattern VK_IMAGE_LAYOUT_PREINITIALIZED :: VkImageLayout
-
-pattern VK_IMAGE_LAYOUT_PREINITIALIZED = VkImageLayout 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageTiling.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageTiling.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageTiling.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkImageTiling
-       (VkImageTiling(VkImageTiling, VK_IMAGE_TILING_OPTIMAL,
-                      VK_IMAGE_TILING_LINEAR))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageTiling.html VkImageTiling registry at www.khronos.org>
-newtype VkImageTiling = VkImageTiling Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkImageTiling where
-        showsPrec _ VK_IMAGE_TILING_OPTIMAL
-          = showString "VK_IMAGE_TILING_OPTIMAL"
-        showsPrec _ VK_IMAGE_TILING_LINEAR
-          = showString "VK_IMAGE_TILING_LINEAR"
-        showsPrec p (VkImageTiling x)
-          = showParen (p >= 11)
-              (showString "VkImageTiling " . showsPrec 11 x)
-
-instance Read VkImageTiling where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_TILING_OPTIMAL", pure VK_IMAGE_TILING_OPTIMAL),
-                  ("VK_IMAGE_TILING_LINEAR", pure VK_IMAGE_TILING_LINEAR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageTiling") >>
-                      (VkImageTiling <$> step readPrec)))
-
-pattern VK_IMAGE_TILING_OPTIMAL :: VkImageTiling
-
-pattern VK_IMAGE_TILING_OPTIMAL = VkImageTiling 0
-
-pattern VK_IMAGE_TILING_LINEAR :: VkImageTiling
-
-pattern VK_IMAGE_TILING_LINEAR = VkImageTiling 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageType.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkImageType
-       (VkImageType(VkImageType, VK_IMAGE_TYPE_1D, VK_IMAGE_TYPE_2D,
-                    VK_IMAGE_TYPE_3D))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageType.html VkImageType registry at www.khronos.org>
-newtype VkImageType = VkImageType Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkImageType where
-        showsPrec _ VK_IMAGE_TYPE_1D = showString "VK_IMAGE_TYPE_1D"
-        showsPrec _ VK_IMAGE_TYPE_2D = showString "VK_IMAGE_TYPE_2D"
-        showsPrec _ VK_IMAGE_TYPE_3D = showString "VK_IMAGE_TYPE_3D"
-        showsPrec p (VkImageType x)
-          = showParen (p >= 11) (showString "VkImageType " . showsPrec 11 x)
-
-instance Read VkImageType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_TYPE_1D", pure VK_IMAGE_TYPE_1D),
-                  ("VK_IMAGE_TYPE_2D", pure VK_IMAGE_TYPE_2D),
-                  ("VK_IMAGE_TYPE_3D", pure VK_IMAGE_TYPE_3D)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageType") >> (VkImageType <$> step readPrec)))
-
-pattern VK_IMAGE_TYPE_1D :: VkImageType
-
-pattern VK_IMAGE_TYPE_1D = VkImageType 0
-
-pattern VK_IMAGE_TYPE_2D :: VkImageType
-
-pattern VK_IMAGE_TYPE_2D = VkImageType 1
-
-pattern VK_IMAGE_TYPE_3D :: VkImageType
-
-pattern VK_IMAGE_TYPE_3D = VkImageType 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageUsageFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageUsageFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageUsageFlags.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-       (VkImageUsageBitmask(VkImageUsageBitmask, VkImageUsageFlags,
-                            VkImageUsageFlagBits, VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
-                            VK_IMAGE_USAGE_TRANSFER_DST_BIT, VK_IMAGE_USAGE_SAMPLED_BIT,
-                            VK_IMAGE_USAGE_STORAGE_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
-                            VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
-                            VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
-                            VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT),
-        VkImageUsageFlags, VkImageUsageFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkImageUsageBitmask (a ::
-                               FlagType) = VkImageUsageBitmask VkFlags
-                                             deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkImageUsageFlags = VkImageUsageBitmask FlagMask
-
-type VkImageUsageFlagBits = VkImageUsageBitmask FlagBit
-
-pattern VkImageUsageFlagBits ::
-        VkFlags -> VkImageUsageBitmask FlagBit
-
-pattern VkImageUsageFlagBits n = VkImageUsageBitmask n
-
-pattern VkImageUsageFlags ::
-        VkFlags -> VkImageUsageBitmask FlagMask
-
-pattern VkImageUsageFlags n = VkImageUsageBitmask n
-
-deriving instance Bits (VkImageUsageBitmask FlagMask)
-
-deriving instance FiniteBits (VkImageUsageBitmask FlagMask)
-
-deriving instance Integral (VkImageUsageBitmask FlagMask)
-
-deriving instance Num (VkImageUsageBitmask FlagMask)
-
-deriving instance Bounded (VkImageUsageBitmask FlagMask)
-
-deriving instance Enum (VkImageUsageBitmask FlagMask)
-
-deriving instance Real (VkImageUsageBitmask FlagMask)
-
-instance Show (VkImageUsageBitmask a) where
-        showsPrec _ VK_IMAGE_USAGE_TRANSFER_SRC_BIT
-          = showString "VK_IMAGE_USAGE_TRANSFER_SRC_BIT"
-        showsPrec _ VK_IMAGE_USAGE_TRANSFER_DST_BIT
-          = showString "VK_IMAGE_USAGE_TRANSFER_DST_BIT"
-        showsPrec _ VK_IMAGE_USAGE_SAMPLED_BIT
-          = showString "VK_IMAGE_USAGE_SAMPLED_BIT"
-        showsPrec _ VK_IMAGE_USAGE_STORAGE_BIT
-          = showString "VK_IMAGE_USAGE_STORAGE_BIT"
-        showsPrec _ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
-          = showString "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"
-        showsPrec _ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-          = showString "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"
-        showsPrec _ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
-          = showString "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"
-        showsPrec _ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
-          = showString "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"
-        showsPrec p (VkImageUsageBitmask x)
-          = showParen (p >= 11)
-              (showString "VkImageUsageBitmask " . showsPrec 11 x)
-
-instance Read (VkImageUsageBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_USAGE_TRANSFER_SRC_BIT",
-                   pure VK_IMAGE_USAGE_TRANSFER_SRC_BIT),
-                  ("VK_IMAGE_USAGE_TRANSFER_DST_BIT",
-                   pure VK_IMAGE_USAGE_TRANSFER_DST_BIT),
-                  ("VK_IMAGE_USAGE_SAMPLED_BIT", pure VK_IMAGE_USAGE_SAMPLED_BIT),
-                  ("VK_IMAGE_USAGE_STORAGE_BIT", pure VK_IMAGE_USAGE_STORAGE_BIT),
-                  ("VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT",
-                   pure VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT),
-                  ("VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT",
-                   pure VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT),
-                  ("VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT",
-                   pure VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT),
-                  ("VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT",
-                   pure VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageUsageBitmask") >>
-                      (VkImageUsageBitmask <$> step readPrec)))
-
--- | Can be used as a source of transfer operations
---
---   bitpos = @0@
-pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT :: VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_TRANSFER_SRC_BIT = VkImageUsageBitmask 1
-
--- | Can be used as a destination of transfer operations
---
---   bitpos = @1@
-pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT :: VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_TRANSFER_DST_BIT = VkImageUsageBitmask 2
-
--- | Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
---
---   bitpos = @2@
-pattern VK_IMAGE_USAGE_SAMPLED_BIT :: VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_SAMPLED_BIT = VkImageUsageBitmask 4
-
--- | Can be used as storage image (STORAGE_IMAGE descriptor type)
---
---   bitpos = @3@
-pattern VK_IMAGE_USAGE_STORAGE_BIT :: VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_STORAGE_BIT = VkImageUsageBitmask 8
-
--- | Can be used as framebuffer color attachment
---
---   bitpos = @4@
-pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT ::
-        VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT =
-        VkImageUsageBitmask 16
-
--- | Can be used as framebuffer depth/stencil attachment
---
---   bitpos = @5@
-pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT ::
-        VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT =
-        VkImageUsageBitmask 32
-
--- | Image data not needed outside of rendering
---
---   bitpos = @6@
-pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT ::
-        VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT =
-        VkImageUsageBitmask 64
-
--- | Can be used as framebuffer input attachment
---
---   bitpos = @7@
-pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT ::
-        VkImageUsageBitmask a
-
-pattern VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT =
-        VkImageUsageBitmask 128
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkImageViewType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkImageViewType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkImageViewType.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkImageViewType
-       (VkImageViewType(VkImageViewType, VK_IMAGE_VIEW_TYPE_1D,
-                        VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_VIEW_TYPE_3D,
-                        VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY,
-                        VK_IMAGE_VIEW_TYPE_2D_ARRAY, VK_IMAGE_VIEW_TYPE_CUBE_ARRAY))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageViewType.html VkImageViewType registry at www.khronos.org>
-newtype VkImageViewType = VkImageViewType Int32
-                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkImageViewType where
-        showsPrec _ VK_IMAGE_VIEW_TYPE_1D
-          = showString "VK_IMAGE_VIEW_TYPE_1D"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_2D
-          = showString "VK_IMAGE_VIEW_TYPE_2D"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_3D
-          = showString "VK_IMAGE_VIEW_TYPE_3D"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE
-          = showString "VK_IMAGE_VIEW_TYPE_CUBE"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_1D_ARRAY
-          = showString "VK_IMAGE_VIEW_TYPE_1D_ARRAY"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_2D_ARRAY
-          = showString "VK_IMAGE_VIEW_TYPE_2D_ARRAY"
-        showsPrec _ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
-          = showString "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY"
-        showsPrec p (VkImageViewType x)
-          = showParen (p >= 11)
-              (showString "VkImageViewType " . showsPrec 11 x)
-
-instance Read VkImageViewType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_IMAGE_VIEW_TYPE_1D", pure VK_IMAGE_VIEW_TYPE_1D),
-                  ("VK_IMAGE_VIEW_TYPE_2D", pure VK_IMAGE_VIEW_TYPE_2D),
-                  ("VK_IMAGE_VIEW_TYPE_3D", pure VK_IMAGE_VIEW_TYPE_3D),
-                  ("VK_IMAGE_VIEW_TYPE_CUBE", pure VK_IMAGE_VIEW_TYPE_CUBE),
-                  ("VK_IMAGE_VIEW_TYPE_1D_ARRAY", pure VK_IMAGE_VIEW_TYPE_1D_ARRAY),
-                  ("VK_IMAGE_VIEW_TYPE_2D_ARRAY", pure VK_IMAGE_VIEW_TYPE_2D_ARRAY),
-                  ("VK_IMAGE_VIEW_TYPE_CUBE_ARRAY",
-                   pure VK_IMAGE_VIEW_TYPE_CUBE_ARRAY)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkImageViewType") >>
-                      (VkImageViewType <$> step readPrec)))
-
-pattern VK_IMAGE_VIEW_TYPE_1D :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_1D = VkImageViewType 0
-
-pattern VK_IMAGE_VIEW_TYPE_2D :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_2D = VkImageViewType 1
-
-pattern VK_IMAGE_VIEW_TYPE_3D :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_3D = VkImageViewType 2
-
-pattern VK_IMAGE_VIEW_TYPE_CUBE :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_CUBE = VkImageViewType 3
-
-pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_1D_ARRAY = VkImageViewType 4
-
-pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_2D_ARRAY = VkImageViewType 5
-
-pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY :: VkImageViewType
-
-pattern VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType 6
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkIndexType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkIndexType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkIndexType.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkIndexType
-       (VkIndexType(VkIndexType, VK_INDEX_TYPE_UINT16,
-                    VK_INDEX_TYPE_UINT32))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIndexType.html VkIndexType registry at www.khronos.org>
-newtype VkIndexType = VkIndexType Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkIndexType where
-        showsPrec _ VK_INDEX_TYPE_UINT16
-          = showString "VK_INDEX_TYPE_UINT16"
-        showsPrec _ VK_INDEX_TYPE_UINT32
-          = showString "VK_INDEX_TYPE_UINT32"
-        showsPrec p (VkIndexType x)
-          = showParen (p >= 11) (showString "VkIndexType " . showsPrec 11 x)
-
-instance Read VkIndexType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_INDEX_TYPE_UINT16", pure VK_INDEX_TYPE_UINT16),
-                  ("VK_INDEX_TYPE_UINT32", pure VK_INDEX_TYPE_UINT32)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkIndexType") >> (VkIndexType <$> step readPrec)))
-
-pattern VK_INDEX_TYPE_UINT16 :: VkIndexType
-
-pattern VK_INDEX_TYPE_UINT16 = VkIndexType 0
-
-pattern VK_INDEX_TYPE_UINT32 :: VkIndexType
-
-pattern VK_INDEX_TYPE_UINT32 = VkIndexType 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsLayoutUsageFlagsNVX.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsLayoutUsageFlagsNVX.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsLayoutUsageFlagsNVX.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkIndirectCommandsLayoutUsageFlagsNVX
-       (VkIndirectCommandsLayoutUsageBitmaskNVX(VkIndirectCommandsLayoutUsageBitmaskNVX,
-                                                VkIndirectCommandsLayoutUsageFlagsNVX,
-                                                VkIndirectCommandsLayoutUsageFlagBitsNVX,
-                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX,
-                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX,
-                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX,
-                                                VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX),
-        VkIndirectCommandsLayoutUsageFlagsNVX,
-        VkIndirectCommandsLayoutUsageFlagBitsNVX)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkIndirectCommandsLayoutUsageBitmaskNVX (a ::
-                                                   FlagType) = VkIndirectCommandsLayoutUsageBitmaskNVX VkFlags
-                                                                 deriving (Eq, Ord, Storable, Data,
-                                                                           Generic)
-
-type VkIndirectCommandsLayoutUsageFlagsNVX =
-     VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask
-
-type VkIndirectCommandsLayoutUsageFlagBitsNVX =
-     VkIndirectCommandsLayoutUsageBitmaskNVX FlagBit
-
-pattern VkIndirectCommandsLayoutUsageFlagBitsNVX ::
-        VkFlags -> VkIndirectCommandsLayoutUsageBitmaskNVX FlagBit
-
-pattern VkIndirectCommandsLayoutUsageFlagBitsNVX n =
-        VkIndirectCommandsLayoutUsageBitmaskNVX n
-
-pattern VkIndirectCommandsLayoutUsageFlagsNVX ::
-        VkFlags -> VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask
-
-pattern VkIndirectCommandsLayoutUsageFlagsNVX n =
-        VkIndirectCommandsLayoutUsageBitmaskNVX n
-
-deriving instance
-         Bits (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         FiniteBits (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         Integral (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         Num (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         Bounded (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         Enum (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-deriving instance
-         Real (VkIndirectCommandsLayoutUsageBitmaskNVX FlagMask)
-
-instance Show (VkIndirectCommandsLayoutUsageBitmaskNVX a) where
-        showsPrec _
-          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
-          = showString
-              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX"
-        showsPrec _
-          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
-          = showString
-              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX"
-        showsPrec _
-          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
-          = showString
-              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX"
-        showsPrec _
-          VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
-          = showString
-              "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX"
-        showsPrec p (VkIndirectCommandsLayoutUsageBitmaskNVX x)
-          = showParen (p >= 11)
-              (showString "VkIndirectCommandsLayoutUsageBitmaskNVX " .
-                 showsPrec 11 x)
-
-instance Read (VkIndirectCommandsLayoutUsageBitmaskNVX a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX",
-                   pure
-                     VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX),
-                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX",
-                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX),
-                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX",
-                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX),
-                  ("VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX",
-                   pure VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkIndirectCommandsLayoutUsageBitmaskNVX") >>
-                      (VkIndirectCommandsLayoutUsageBitmaskNVX <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
-        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
-
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX
-        = VkIndirectCommandsLayoutUsageBitmaskNVX 1
-
--- | bitpos = @1@
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
-        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
-
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX
-        = VkIndirectCommandsLayoutUsageBitmaskNVX 2
-
--- | bitpos = @2@
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
-        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
-
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX
-        = VkIndirectCommandsLayoutUsageBitmaskNVX 4
-
--- | bitpos = @3@
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
-        :: VkIndirectCommandsLayoutUsageBitmaskNVX a
-
-pattern VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
-        = VkIndirectCommandsLayoutUsageBitmaskNVX 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsTokenTypeNVX.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsTokenTypeNVX.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkIndirectCommandsTokenTypeNVX.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX
-       (VkIndirectCommandsTokenTypeNVX(VkIndirectCommandsTokenTypeNVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX,
-                                       VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIndirectCommandsTokenTypeNVX.html VkIndirectCommandsTokenTypeNVX registry at www.khronos.org>
-newtype VkIndirectCommandsTokenTypeNVX = VkIndirectCommandsTokenTypeNVX Int32
-                                           deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                     Generic)
-
-instance Show VkIndirectCommandsTokenTypeNVX where
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX"
-        showsPrec _ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX
-          = showString "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX"
-        showsPrec p (VkIndirectCommandsTokenTypeNVX x)
-          = showParen (p >= 11)
-              (showString "VkIndirectCommandsTokenTypeNVX " . showsPrec 11 x)
-
-instance Read VkIndirectCommandsTokenTypeNVX where
-        readPrec
-          = parens
-              (choose
-                 [("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX),
-                  ("VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX",
-                   pure VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkIndirectCommandsTokenTypeNVX") >>
-                      (VkIndirectCommandsTokenTypeNVX <$> step readPrec)))
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX =
-        VkIndirectCommandsTokenTypeNVX 0
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX =
-        VkIndirectCommandsTokenTypeNVX 1
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX =
-        VkIndirectCommandsTokenTypeNVX 2
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX =
-        VkIndirectCommandsTokenTypeNVX 3
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX =
-        VkIndirectCommandsTokenTypeNVX 4
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX =
-        VkIndirectCommandsTokenTypeNVX 5
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX =
-        VkIndirectCommandsTokenTypeNVX 6
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX ::
-        VkIndirectCommandsTokenTypeNVX
-
-pattern VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX =
-        VkIndirectCommandsTokenTypeNVX 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkInstanceCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkInstanceCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkInstanceCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkInstanceCreateFlagBits
-       (VkInstanceCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkInstanceCreateFlagBits = VkInstanceCreateFlagBits VkFlags
-                                     deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                               FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkInstanceCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkInstanceCreateFlagBits x) = show x
-
-instance Read VkInstanceCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkInternalAllocationType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkInternalAllocationType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkInternalAllocationType.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-       (VkInternalAllocationType(VkInternalAllocationType,
-                                 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkInternalAllocationType.html VkInternalAllocationType registry at www.khronos.org>
-newtype VkInternalAllocationType = VkInternalAllocationType Int32
-                                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkInternalAllocationType where
-        showsPrec _ VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
-          = showString "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE"
-        showsPrec p (VkInternalAllocationType x)
-          = showParen (p >= 11)
-              (showString "VkInternalAllocationType " . showsPrec 11 x)
-
-instance Read VkInternalAllocationType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE",
-                   pure VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkInternalAllocationType") >>
-                      (VkInternalAllocationType <$> step readPrec)))
-
-pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE ::
-        VkInternalAllocationType
-
-pattern VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE =
-        VkInternalAllocationType 0
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkLogicOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkLogicOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkLogicOp.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkLogicOp
-       (VkLogicOp(VkLogicOp, VK_LOGIC_OP_CLEAR, VK_LOGIC_OP_AND,
-                  VK_LOGIC_OP_AND_REVERSE, VK_LOGIC_OP_COPY,
-                  VK_LOGIC_OP_AND_INVERTED, VK_LOGIC_OP_NO_OP, VK_LOGIC_OP_XOR,
-                  VK_LOGIC_OP_OR, VK_LOGIC_OP_NOR, VK_LOGIC_OP_EQUIVALENT,
-                  VK_LOGIC_OP_INVERT, VK_LOGIC_OP_OR_REVERSE,
-                  VK_LOGIC_OP_COPY_INVERTED, VK_LOGIC_OP_OR_INVERTED,
-                  VK_LOGIC_OP_NAND, VK_LOGIC_OP_SET))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkLogicOp.html VkLogicOp registry at www.khronos.org>
-newtype VkLogicOp = VkLogicOp Int32
-                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkLogicOp where
-        showsPrec _ VK_LOGIC_OP_CLEAR = showString "VK_LOGIC_OP_CLEAR"
-        showsPrec _ VK_LOGIC_OP_AND = showString "VK_LOGIC_OP_AND"
-        showsPrec _ VK_LOGIC_OP_AND_REVERSE
-          = showString "VK_LOGIC_OP_AND_REVERSE"
-        showsPrec _ VK_LOGIC_OP_COPY = showString "VK_LOGIC_OP_COPY"
-        showsPrec _ VK_LOGIC_OP_AND_INVERTED
-          = showString "VK_LOGIC_OP_AND_INVERTED"
-        showsPrec _ VK_LOGIC_OP_NO_OP = showString "VK_LOGIC_OP_NO_OP"
-        showsPrec _ VK_LOGIC_OP_XOR = showString "VK_LOGIC_OP_XOR"
-        showsPrec _ VK_LOGIC_OP_OR = showString "VK_LOGIC_OP_OR"
-        showsPrec _ VK_LOGIC_OP_NOR = showString "VK_LOGIC_OP_NOR"
-        showsPrec _ VK_LOGIC_OP_EQUIVALENT
-          = showString "VK_LOGIC_OP_EQUIVALENT"
-        showsPrec _ VK_LOGIC_OP_INVERT = showString "VK_LOGIC_OP_INVERT"
-        showsPrec _ VK_LOGIC_OP_OR_REVERSE
-          = showString "VK_LOGIC_OP_OR_REVERSE"
-        showsPrec _ VK_LOGIC_OP_COPY_INVERTED
-          = showString "VK_LOGIC_OP_COPY_INVERTED"
-        showsPrec _ VK_LOGIC_OP_OR_INVERTED
-          = showString "VK_LOGIC_OP_OR_INVERTED"
-        showsPrec _ VK_LOGIC_OP_NAND = showString "VK_LOGIC_OP_NAND"
-        showsPrec _ VK_LOGIC_OP_SET = showString "VK_LOGIC_OP_SET"
-        showsPrec p (VkLogicOp x)
-          = showParen (p >= 11) (showString "VkLogicOp " . showsPrec 11 x)
-
-instance Read VkLogicOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_LOGIC_OP_CLEAR", pure VK_LOGIC_OP_CLEAR),
-                  ("VK_LOGIC_OP_AND", pure VK_LOGIC_OP_AND),
-                  ("VK_LOGIC_OP_AND_REVERSE", pure VK_LOGIC_OP_AND_REVERSE),
-                  ("VK_LOGIC_OP_COPY", pure VK_LOGIC_OP_COPY),
-                  ("VK_LOGIC_OP_AND_INVERTED", pure VK_LOGIC_OP_AND_INVERTED),
-                  ("VK_LOGIC_OP_NO_OP", pure VK_LOGIC_OP_NO_OP),
-                  ("VK_LOGIC_OP_XOR", pure VK_LOGIC_OP_XOR),
-                  ("VK_LOGIC_OP_OR", pure VK_LOGIC_OP_OR),
-                  ("VK_LOGIC_OP_NOR", pure VK_LOGIC_OP_NOR),
-                  ("VK_LOGIC_OP_EQUIVALENT", pure VK_LOGIC_OP_EQUIVALENT),
-                  ("VK_LOGIC_OP_INVERT", pure VK_LOGIC_OP_INVERT),
-                  ("VK_LOGIC_OP_OR_REVERSE", pure VK_LOGIC_OP_OR_REVERSE),
-                  ("VK_LOGIC_OP_COPY_INVERTED", pure VK_LOGIC_OP_COPY_INVERTED),
-                  ("VK_LOGIC_OP_OR_INVERTED", pure VK_LOGIC_OP_OR_INVERTED),
-                  ("VK_LOGIC_OP_NAND", pure VK_LOGIC_OP_NAND),
-                  ("VK_LOGIC_OP_SET", pure VK_LOGIC_OP_SET)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkLogicOp") >> (VkLogicOp <$> step readPrec)))
-
-pattern VK_LOGIC_OP_CLEAR :: VkLogicOp
-
-pattern VK_LOGIC_OP_CLEAR = VkLogicOp 0
-
-pattern VK_LOGIC_OP_AND :: VkLogicOp
-
-pattern VK_LOGIC_OP_AND = VkLogicOp 1
-
-pattern VK_LOGIC_OP_AND_REVERSE :: VkLogicOp
-
-pattern VK_LOGIC_OP_AND_REVERSE = VkLogicOp 2
-
-pattern VK_LOGIC_OP_COPY :: VkLogicOp
-
-pattern VK_LOGIC_OP_COPY = VkLogicOp 3
-
-pattern VK_LOGIC_OP_AND_INVERTED :: VkLogicOp
-
-pattern VK_LOGIC_OP_AND_INVERTED = VkLogicOp 4
-
-pattern VK_LOGIC_OP_NO_OP :: VkLogicOp
-
-pattern VK_LOGIC_OP_NO_OP = VkLogicOp 5
-
-pattern VK_LOGIC_OP_XOR :: VkLogicOp
-
-pattern VK_LOGIC_OP_XOR = VkLogicOp 6
-
-pattern VK_LOGIC_OP_OR :: VkLogicOp
-
-pattern VK_LOGIC_OP_OR = VkLogicOp 7
-
-pattern VK_LOGIC_OP_NOR :: VkLogicOp
-
-pattern VK_LOGIC_OP_NOR = VkLogicOp 8
-
-pattern VK_LOGIC_OP_EQUIVALENT :: VkLogicOp
-
-pattern VK_LOGIC_OP_EQUIVALENT = VkLogicOp 9
-
-pattern VK_LOGIC_OP_INVERT :: VkLogicOp
-
-pattern VK_LOGIC_OP_INVERT = VkLogicOp 10
-
-pattern VK_LOGIC_OP_OR_REVERSE :: VkLogicOp
-
-pattern VK_LOGIC_OP_OR_REVERSE = VkLogicOp 11
-
-pattern VK_LOGIC_OP_COPY_INVERTED :: VkLogicOp
-
-pattern VK_LOGIC_OP_COPY_INVERTED = VkLogicOp 12
-
-pattern VK_LOGIC_OP_OR_INVERTED :: VkLogicOp
-
-pattern VK_LOGIC_OP_OR_INVERTED = VkLogicOp 13
-
-pattern VK_LOGIC_OP_NAND :: VkLogicOp
-
-pattern VK_LOGIC_OP_NAND = VkLogicOp 14
-
-pattern VK_LOGIC_OP_SET :: VkLogicOp
-
-pattern VK_LOGIC_OP_SET = VkLogicOp 15
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlagBitsKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlagBitsKHR
-       (VkMemoryAllocateFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkMemoryAllocateFlagBitsKHR = VkMemoryAllocateFlagBitsKHR VkFlags
-                                        deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                  FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkMemoryAllocateFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkMemoryAllocateFlagBitsKHR x) = show x
-
-instance Read VkMemoryAllocateFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryAllocateFlags.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags
-       (VkMemoryAllocateBitmask(VkMemoryAllocateBitmask,
-                                VkMemoryAllocateFlags, VkMemoryAllocateFlagBits,
-                                VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT),
-        VkMemoryAllocateFlags, VkMemoryAllocateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkMemoryAllocateBitmask (a ::
-                                   FlagType) = VkMemoryAllocateBitmask VkFlags
-                                                 deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkMemoryAllocateFlags = VkMemoryAllocateBitmask FlagMask
-
-type VkMemoryAllocateFlagBits = VkMemoryAllocateBitmask FlagBit
-
-pattern VkMemoryAllocateFlagBits ::
-        VkFlags -> VkMemoryAllocateBitmask FlagBit
-
-pattern VkMemoryAllocateFlagBits n = VkMemoryAllocateBitmask n
-
-pattern VkMemoryAllocateFlags ::
-        VkFlags -> VkMemoryAllocateBitmask FlagMask
-
-pattern VkMemoryAllocateFlags n = VkMemoryAllocateBitmask n
-
-deriving instance Bits (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance FiniteBits (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance Integral (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance Num (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance Bounded (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance Enum (VkMemoryAllocateBitmask FlagMask)
-
-deriving instance Real (VkMemoryAllocateBitmask FlagMask)
-
-instance Show (VkMemoryAllocateBitmask a) where
-        showsPrec _ VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT
-          = showString "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT"
-        showsPrec p (VkMemoryAllocateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkMemoryAllocateBitmask " . showsPrec 11 x)
-
-instance Read (VkMemoryAllocateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT",
-                   pure VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkMemoryAllocateBitmask") >>
-                      (VkMemoryAllocateBitmask <$> step readPrec)))
-
--- | Force allocation on specific devices
---
---   bitpos = @0@
-pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT ::
-        VkMemoryAllocateBitmask a
-
-pattern VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT =
-        VkMemoryAllocateBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryHeapFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryHeapFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryHeapFlags.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags
-       (VkMemoryHeapBitmask(VkMemoryHeapBitmask, VkMemoryHeapFlags,
-                            VkMemoryHeapFlagBits, VK_MEMORY_HEAP_DEVICE_LOCAL_BIT),
-        VkMemoryHeapFlags, VkMemoryHeapFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkMemoryHeapBitmask (a ::
-                               FlagType) = VkMemoryHeapBitmask VkFlags
-                                             deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkMemoryHeapFlags = VkMemoryHeapBitmask FlagMask
-
-type VkMemoryHeapFlagBits = VkMemoryHeapBitmask FlagBit
-
-pattern VkMemoryHeapFlagBits ::
-        VkFlags -> VkMemoryHeapBitmask FlagBit
-
-pattern VkMemoryHeapFlagBits n = VkMemoryHeapBitmask n
-
-pattern VkMemoryHeapFlags ::
-        VkFlags -> VkMemoryHeapBitmask FlagMask
-
-pattern VkMemoryHeapFlags n = VkMemoryHeapBitmask n
-
-deriving instance Bits (VkMemoryHeapBitmask FlagMask)
-
-deriving instance FiniteBits (VkMemoryHeapBitmask FlagMask)
-
-deriving instance Integral (VkMemoryHeapBitmask FlagMask)
-
-deriving instance Num (VkMemoryHeapBitmask FlagMask)
-
-deriving instance Bounded (VkMemoryHeapBitmask FlagMask)
-
-deriving instance Enum (VkMemoryHeapBitmask FlagMask)
-
-deriving instance Real (VkMemoryHeapBitmask FlagMask)
-
-instance Show (VkMemoryHeapBitmask a) where
-        showsPrec _ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
-          = showString "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"
-        showsPrec p (VkMemoryHeapBitmask x)
-          = showParen (p >= 11)
-              (showString "VkMemoryHeapBitmask " . showsPrec 11 x)
-
-instance Read (VkMemoryHeapBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_MEMORY_HEAP_DEVICE_LOCAL_BIT",
-                   pure VK_MEMORY_HEAP_DEVICE_LOCAL_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkMemoryHeapBitmask") >>
-                      (VkMemoryHeapBitmask <$> step readPrec)))
-
--- | If set, heap represents device memory
---
---   bitpos = @0@
-pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT :: VkMemoryHeapBitmask a
-
-pattern VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = VkMemoryHeapBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryPropertyFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryPropertyFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkMemoryPropertyFlags.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags
-       (VkMemoryPropertyBitmask(VkMemoryPropertyBitmask,
-                                VkMemoryPropertyFlags, VkMemoryPropertyFlagBits,
-                                VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
-                                VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
-                                VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
-                                VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
-                                VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT),
-        VkMemoryPropertyFlags, VkMemoryPropertyFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkMemoryPropertyBitmask (a ::
-                                   FlagType) = VkMemoryPropertyBitmask VkFlags
-                                                 deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkMemoryPropertyFlags = VkMemoryPropertyBitmask FlagMask
-
-type VkMemoryPropertyFlagBits = VkMemoryPropertyBitmask FlagBit
-
-pattern VkMemoryPropertyFlagBits ::
-        VkFlags -> VkMemoryPropertyBitmask FlagBit
-
-pattern VkMemoryPropertyFlagBits n = VkMemoryPropertyBitmask n
-
-pattern VkMemoryPropertyFlags ::
-        VkFlags -> VkMemoryPropertyBitmask FlagMask
-
-pattern VkMemoryPropertyFlags n = VkMemoryPropertyBitmask n
-
-deriving instance Bits (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance FiniteBits (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance Integral (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance Num (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance Bounded (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance Enum (VkMemoryPropertyBitmask FlagMask)
-
-deriving instance Real (VkMemoryPropertyBitmask FlagMask)
-
-instance Show (VkMemoryPropertyBitmask a) where
-        showsPrec _ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
-          = showString "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT"
-        showsPrec _ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
-          = showString "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT"
-        showsPrec _ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
-          = showString "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT"
-        showsPrec _ VK_MEMORY_PROPERTY_HOST_CACHED_BIT
-          = showString "VK_MEMORY_PROPERTY_HOST_CACHED_BIT"
-        showsPrec _ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
-          = showString "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT"
-        showsPrec p (VkMemoryPropertyBitmask x)
-          = showParen (p >= 11)
-              (showString "VkMemoryPropertyBitmask " . showsPrec 11 x)
-
-instance Read (VkMemoryPropertyBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT",
-                   pure VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT),
-                  ("VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT",
-                   pure VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT),
-                  ("VK_MEMORY_PROPERTY_HOST_COHERENT_BIT",
-                   pure VK_MEMORY_PROPERTY_HOST_COHERENT_BIT),
-                  ("VK_MEMORY_PROPERTY_HOST_CACHED_BIT",
-                   pure VK_MEMORY_PROPERTY_HOST_CACHED_BIT),
-                  ("VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT",
-                   pure VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkMemoryPropertyBitmask") >>
-                      (VkMemoryPropertyBitmask <$> step readPrec)))
-
--- | If otherwise stated, then allocate memory on device
---
---   bitpos = @0@
-pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT ::
-        VkMemoryPropertyBitmask a
-
-pattern VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT =
-        VkMemoryPropertyBitmask 1
-
--- | Memory is mappable by host
---
---   bitpos = @1@
-pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT ::
-        VkMemoryPropertyBitmask a
-
-pattern VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT =
-        VkMemoryPropertyBitmask 2
-
--- | Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache
---
---   bitpos = @2@
-pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT ::
-        VkMemoryPropertyBitmask a
-
-pattern VK_MEMORY_PROPERTY_HOST_COHERENT_BIT =
-        VkMemoryPropertyBitmask 4
-
--- | Memory will be cached by the host
---
---   bitpos = @3@
-pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT ::
-        VkMemoryPropertyBitmask a
-
-pattern VK_MEMORY_PROPERTY_HOST_CACHED_BIT =
-        VkMemoryPropertyBitmask 8
-
--- | Memory may be allocated by the driver when it is required
---
---   bitpos = @4@
-pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT ::
-        VkMemoryPropertyBitmask a
-
-pattern VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT =
-        VkMemoryPropertyBitmask 16
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryTypeNVX.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryTypeNVX.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryTypeNVX.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX
-       (VkObjectEntryTypeNVX(VkObjectEntryTypeNVX,
-                             VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
-                             VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX,
-                             VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX,
-                             VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX,
-                             VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectEntryTypeNVX.html VkObjectEntryTypeNVX registry at www.khronos.org>
-newtype VkObjectEntryTypeNVX = VkObjectEntryTypeNVX Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkObjectEntryTypeNVX where
-        showsPrec _ VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX
-          = showString "VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX"
-        showsPrec _ VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX
-          = showString "VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX"
-        showsPrec _ VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX
-          = showString "VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX"
-        showsPrec _ VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX
-          = showString "VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX"
-        showsPrec _ VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX
-          = showString "VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX"
-        showsPrec p (VkObjectEntryTypeNVX x)
-          = showParen (p >= 11)
-              (showString "VkObjectEntryTypeNVX " . showsPrec 11 x)
-
-instance Read VkObjectEntryTypeNVX where
-        readPrec
-          = parens
-              (choose
-                 [("VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX",
-                   pure VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX),
-                  ("VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX",
-                   pure VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX),
-                  ("VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX",
-                   pure VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX),
-                  ("VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX",
-                   pure VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX),
-                  ("VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX",
-                   pure VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkObjectEntryTypeNVX") >>
-                      (VkObjectEntryTypeNVX <$> step readPrec)))
-
-pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX ::
-        VkObjectEntryTypeNVX
-
-pattern VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX =
-        VkObjectEntryTypeNVX 0
-
-pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX :: VkObjectEntryTypeNVX
-
-pattern VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = VkObjectEntryTypeNVX 1
-
-pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX ::
-        VkObjectEntryTypeNVX
-
-pattern VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX =
-        VkObjectEntryTypeNVX 2
-
-pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX ::
-        VkObjectEntryTypeNVX
-
-pattern VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX =
-        VkObjectEntryTypeNVX 3
-
-pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX ::
-        VkObjectEntryTypeNVX
-
-pattern VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX =
-        VkObjectEntryTypeNVX 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryUsageFlagsNVX.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryUsageFlagsNVX.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectEntryUsageFlagsNVX.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX
-       (VkObjectEntryUsageBitmaskNVX(VkObjectEntryUsageBitmaskNVX,
-                                     VkObjectEntryUsageFlagsNVX, VkObjectEntryUsageFlagBitsNVX,
-                                     VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX,
-                                     VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX),
-        VkObjectEntryUsageFlagsNVX, VkObjectEntryUsageFlagBitsNVX)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkObjectEntryUsageBitmaskNVX (a ::
-                                        FlagType) = VkObjectEntryUsageBitmaskNVX VkFlags
-                                                      deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkObjectEntryUsageFlagsNVX =
-     VkObjectEntryUsageBitmaskNVX FlagMask
-
-type VkObjectEntryUsageFlagBitsNVX =
-     VkObjectEntryUsageBitmaskNVX FlagBit
-
-pattern VkObjectEntryUsageFlagBitsNVX ::
-        VkFlags -> VkObjectEntryUsageBitmaskNVX FlagBit
-
-pattern VkObjectEntryUsageFlagBitsNVX n =
-        VkObjectEntryUsageBitmaskNVX n
-
-pattern VkObjectEntryUsageFlagsNVX ::
-        VkFlags -> VkObjectEntryUsageBitmaskNVX FlagMask
-
-pattern VkObjectEntryUsageFlagsNVX n =
-        VkObjectEntryUsageBitmaskNVX n
-
-deriving instance Bits (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance
-         FiniteBits (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance Integral (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance Num (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance Bounded (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance Enum (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-deriving instance Real (VkObjectEntryUsageBitmaskNVX FlagMask)
-
-instance Show (VkObjectEntryUsageBitmaskNVX a) where
-        showsPrec _ VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX
-          = showString "VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX"
-        showsPrec _ VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX
-          = showString "VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX"
-        showsPrec p (VkObjectEntryUsageBitmaskNVX x)
-          = showParen (p >= 11)
-              (showString "VkObjectEntryUsageBitmaskNVX " . showsPrec 11 x)
-
-instance Read (VkObjectEntryUsageBitmaskNVX a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX",
-                   pure VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX),
-                  ("VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX",
-                   pure VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkObjectEntryUsageBitmaskNVX") >>
-                      (VkObjectEntryUsageBitmaskNVX <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX ::
-        VkObjectEntryUsageBitmaskNVX a
-
-pattern VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX =
-        VkObjectEntryUsageBitmaskNVX 1
-
--- | bitpos = @1@
-pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX ::
-        VkObjectEntryUsageBitmaskNVX a
-
-pattern VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX =
-        VkObjectEntryUsageBitmaskNVX 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkObjectType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkObjectType.hs
+++ /dev/null
@@ -1,268 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkObjectType
-       (VkObjectType(VkObjectType, VK_OBJECT_TYPE_UNKNOWN,
-                     VK_OBJECT_TYPE_INSTANCE, VK_OBJECT_TYPE_PHYSICAL_DEVICE,
-                     VK_OBJECT_TYPE_DEVICE, VK_OBJECT_TYPE_QUEUE,
-                     VK_OBJECT_TYPE_SEMAPHORE, VK_OBJECT_TYPE_COMMAND_BUFFER,
-                     VK_OBJECT_TYPE_FENCE, VK_OBJECT_TYPE_DEVICE_MEMORY,
-                     VK_OBJECT_TYPE_BUFFER, VK_OBJECT_TYPE_IMAGE, VK_OBJECT_TYPE_EVENT,
-                     VK_OBJECT_TYPE_QUERY_POOL, VK_OBJECT_TYPE_BUFFER_VIEW,
-                     VK_OBJECT_TYPE_IMAGE_VIEW, VK_OBJECT_TYPE_SHADER_MODULE,
-                     VK_OBJECT_TYPE_PIPELINE_CACHE, VK_OBJECT_TYPE_PIPELINE_LAYOUT,
-                     VK_OBJECT_TYPE_RENDER_PASS, VK_OBJECT_TYPE_PIPELINE,
-                     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, VK_OBJECT_TYPE_SAMPLER,
-                     VK_OBJECT_TYPE_DESCRIPTOR_POOL, VK_OBJECT_TYPE_DESCRIPTOR_SET,
-                     VK_OBJECT_TYPE_FRAMEBUFFER, VK_OBJECT_TYPE_COMMAND_POOL))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | Enums to track objects of various types
---
---   type = @enum@
---
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectType.html VkObjectType registry at www.khronos.org>
-newtype VkObjectType = VkObjectType Int32
-                         deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkObjectType where
-        showsPrec _ VK_OBJECT_TYPE_UNKNOWN
-          = showString "VK_OBJECT_TYPE_UNKNOWN"
-        showsPrec _ VK_OBJECT_TYPE_INSTANCE
-          = showString "VK_OBJECT_TYPE_INSTANCE"
-        showsPrec _ VK_OBJECT_TYPE_PHYSICAL_DEVICE
-          = showString "VK_OBJECT_TYPE_PHYSICAL_DEVICE"
-        showsPrec _ VK_OBJECT_TYPE_DEVICE
-          = showString "VK_OBJECT_TYPE_DEVICE"
-        showsPrec _ VK_OBJECT_TYPE_QUEUE
-          = showString "VK_OBJECT_TYPE_QUEUE"
-        showsPrec _ VK_OBJECT_TYPE_SEMAPHORE
-          = showString "VK_OBJECT_TYPE_SEMAPHORE"
-        showsPrec _ VK_OBJECT_TYPE_COMMAND_BUFFER
-          = showString "VK_OBJECT_TYPE_COMMAND_BUFFER"
-        showsPrec _ VK_OBJECT_TYPE_FENCE
-          = showString "VK_OBJECT_TYPE_FENCE"
-        showsPrec _ VK_OBJECT_TYPE_DEVICE_MEMORY
-          = showString "VK_OBJECT_TYPE_DEVICE_MEMORY"
-        showsPrec _ VK_OBJECT_TYPE_BUFFER
-          = showString "VK_OBJECT_TYPE_BUFFER"
-        showsPrec _ VK_OBJECT_TYPE_IMAGE
-          = showString "VK_OBJECT_TYPE_IMAGE"
-        showsPrec _ VK_OBJECT_TYPE_EVENT
-          = showString "VK_OBJECT_TYPE_EVENT"
-        showsPrec _ VK_OBJECT_TYPE_QUERY_POOL
-          = showString "VK_OBJECT_TYPE_QUERY_POOL"
-        showsPrec _ VK_OBJECT_TYPE_BUFFER_VIEW
-          = showString "VK_OBJECT_TYPE_BUFFER_VIEW"
-        showsPrec _ VK_OBJECT_TYPE_IMAGE_VIEW
-          = showString "VK_OBJECT_TYPE_IMAGE_VIEW"
-        showsPrec _ VK_OBJECT_TYPE_SHADER_MODULE
-          = showString "VK_OBJECT_TYPE_SHADER_MODULE"
-        showsPrec _ VK_OBJECT_TYPE_PIPELINE_CACHE
-          = showString "VK_OBJECT_TYPE_PIPELINE_CACHE"
-        showsPrec _ VK_OBJECT_TYPE_PIPELINE_LAYOUT
-          = showString "VK_OBJECT_TYPE_PIPELINE_LAYOUT"
-        showsPrec _ VK_OBJECT_TYPE_RENDER_PASS
-          = showString "VK_OBJECT_TYPE_RENDER_PASS"
-        showsPrec _ VK_OBJECT_TYPE_PIPELINE
-          = showString "VK_OBJECT_TYPE_PIPELINE"
-        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT
-          = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"
-        showsPrec _ VK_OBJECT_TYPE_SAMPLER
-          = showString "VK_OBJECT_TYPE_SAMPLER"
-        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_POOL
-          = showString "VK_OBJECT_TYPE_DESCRIPTOR_POOL"
-        showsPrec _ VK_OBJECT_TYPE_DESCRIPTOR_SET
-          = showString "VK_OBJECT_TYPE_DESCRIPTOR_SET"
-        showsPrec _ VK_OBJECT_TYPE_FRAMEBUFFER
-          = showString "VK_OBJECT_TYPE_FRAMEBUFFER"
-        showsPrec _ VK_OBJECT_TYPE_COMMAND_POOL
-          = showString "VK_OBJECT_TYPE_COMMAND_POOL"
-        showsPrec p (VkObjectType x)
-          = showParen (p >= 11) (showString "VkObjectType " . showsPrec 11 x)
-
-instance Read VkObjectType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_OBJECT_TYPE_UNKNOWN", pure VK_OBJECT_TYPE_UNKNOWN),
-                  ("VK_OBJECT_TYPE_INSTANCE", pure VK_OBJECT_TYPE_INSTANCE),
-                  ("VK_OBJECT_TYPE_PHYSICAL_DEVICE",
-                   pure VK_OBJECT_TYPE_PHYSICAL_DEVICE),
-                  ("VK_OBJECT_TYPE_DEVICE", pure VK_OBJECT_TYPE_DEVICE),
-                  ("VK_OBJECT_TYPE_QUEUE", pure VK_OBJECT_TYPE_QUEUE),
-                  ("VK_OBJECT_TYPE_SEMAPHORE", pure VK_OBJECT_TYPE_SEMAPHORE),
-                  ("VK_OBJECT_TYPE_COMMAND_BUFFER",
-                   pure VK_OBJECT_TYPE_COMMAND_BUFFER),
-                  ("VK_OBJECT_TYPE_FENCE", pure VK_OBJECT_TYPE_FENCE),
-                  ("VK_OBJECT_TYPE_DEVICE_MEMORY",
-                   pure VK_OBJECT_TYPE_DEVICE_MEMORY),
-                  ("VK_OBJECT_TYPE_BUFFER", pure VK_OBJECT_TYPE_BUFFER),
-                  ("VK_OBJECT_TYPE_IMAGE", pure VK_OBJECT_TYPE_IMAGE),
-                  ("VK_OBJECT_TYPE_EVENT", pure VK_OBJECT_TYPE_EVENT),
-                  ("VK_OBJECT_TYPE_QUERY_POOL", pure VK_OBJECT_TYPE_QUERY_POOL),
-                  ("VK_OBJECT_TYPE_BUFFER_VIEW", pure VK_OBJECT_TYPE_BUFFER_VIEW),
-                  ("VK_OBJECT_TYPE_IMAGE_VIEW", pure VK_OBJECT_TYPE_IMAGE_VIEW),
-                  ("VK_OBJECT_TYPE_SHADER_MODULE",
-                   pure VK_OBJECT_TYPE_SHADER_MODULE),
-                  ("VK_OBJECT_TYPE_PIPELINE_CACHE",
-                   pure VK_OBJECT_TYPE_PIPELINE_CACHE),
-                  ("VK_OBJECT_TYPE_PIPELINE_LAYOUT",
-                   pure VK_OBJECT_TYPE_PIPELINE_LAYOUT),
-                  ("VK_OBJECT_TYPE_RENDER_PASS", pure VK_OBJECT_TYPE_RENDER_PASS),
-                  ("VK_OBJECT_TYPE_PIPELINE", pure VK_OBJECT_TYPE_PIPELINE),
-                  ("VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT",
-                   pure VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT),
-                  ("VK_OBJECT_TYPE_SAMPLER", pure VK_OBJECT_TYPE_SAMPLER),
-                  ("VK_OBJECT_TYPE_DESCRIPTOR_POOL",
-                   pure VK_OBJECT_TYPE_DESCRIPTOR_POOL),
-                  ("VK_OBJECT_TYPE_DESCRIPTOR_SET",
-                   pure VK_OBJECT_TYPE_DESCRIPTOR_SET),
-                  ("VK_OBJECT_TYPE_FRAMEBUFFER", pure VK_OBJECT_TYPE_FRAMEBUFFER),
-                  ("VK_OBJECT_TYPE_COMMAND_POOL", pure VK_OBJECT_TYPE_COMMAND_POOL)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkObjectType") >>
-                      (VkObjectType <$> step readPrec)))
-
-pattern VK_OBJECT_TYPE_UNKNOWN :: VkObjectType
-
-pattern VK_OBJECT_TYPE_UNKNOWN = VkObjectType 0
-
--- | VkInstance
-pattern VK_OBJECT_TYPE_INSTANCE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_INSTANCE = VkObjectType 1
-
--- | VkPhysicalDevice
-pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_PHYSICAL_DEVICE = VkObjectType 2
-
--- | VkDevice
-pattern VK_OBJECT_TYPE_DEVICE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DEVICE = VkObjectType 3
-
--- | VkQueue
-pattern VK_OBJECT_TYPE_QUEUE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_QUEUE = VkObjectType 4
-
--- | VkSemaphore
-pattern VK_OBJECT_TYPE_SEMAPHORE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_SEMAPHORE = VkObjectType 5
-
--- | VkCommandBuffer
-pattern VK_OBJECT_TYPE_COMMAND_BUFFER :: VkObjectType
-
-pattern VK_OBJECT_TYPE_COMMAND_BUFFER = VkObjectType 6
-
--- | VkFence
-pattern VK_OBJECT_TYPE_FENCE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_FENCE = VkObjectType 7
-
--- | VkDeviceMemory
-pattern VK_OBJECT_TYPE_DEVICE_MEMORY :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DEVICE_MEMORY = VkObjectType 8
-
--- | VkBuffer
-pattern VK_OBJECT_TYPE_BUFFER :: VkObjectType
-
-pattern VK_OBJECT_TYPE_BUFFER = VkObjectType 9
-
--- | VkImage
-pattern VK_OBJECT_TYPE_IMAGE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_IMAGE = VkObjectType 10
-
--- | VkEvent
-pattern VK_OBJECT_TYPE_EVENT :: VkObjectType
-
-pattern VK_OBJECT_TYPE_EVENT = VkObjectType 11
-
--- | VkQueryPool
-pattern VK_OBJECT_TYPE_QUERY_POOL :: VkObjectType
-
-pattern VK_OBJECT_TYPE_QUERY_POOL = VkObjectType 12
-
--- | VkBufferView
-pattern VK_OBJECT_TYPE_BUFFER_VIEW :: VkObjectType
-
-pattern VK_OBJECT_TYPE_BUFFER_VIEW = VkObjectType 13
-
--- | VkImageView
-pattern VK_OBJECT_TYPE_IMAGE_VIEW :: VkObjectType
-
-pattern VK_OBJECT_TYPE_IMAGE_VIEW = VkObjectType 14
-
--- | VkShaderModule
-pattern VK_OBJECT_TYPE_SHADER_MODULE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_SHADER_MODULE = VkObjectType 15
-
--- | VkPipelineCache
-pattern VK_OBJECT_TYPE_PIPELINE_CACHE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_PIPELINE_CACHE = VkObjectType 16
-
--- | VkPipelineLayout
-pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT :: VkObjectType
-
-pattern VK_OBJECT_TYPE_PIPELINE_LAYOUT = VkObjectType 17
-
--- | VkRenderPass
-pattern VK_OBJECT_TYPE_RENDER_PASS :: VkObjectType
-
-pattern VK_OBJECT_TYPE_RENDER_PASS = VkObjectType 18
-
--- | VkPipeline
-pattern VK_OBJECT_TYPE_PIPELINE :: VkObjectType
-
-pattern VK_OBJECT_TYPE_PIPELINE = VkObjectType 19
-
--- | VkDescriptorSetLayout
-pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = VkObjectType 20
-
--- | VkSampler
-pattern VK_OBJECT_TYPE_SAMPLER :: VkObjectType
-
-pattern VK_OBJECT_TYPE_SAMPLER = VkObjectType 21
-
--- | VkDescriptorPool
-pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DESCRIPTOR_POOL = VkObjectType 22
-
--- | VkDescriptorSet
-pattern VK_OBJECT_TYPE_DESCRIPTOR_SET :: VkObjectType
-
-pattern VK_OBJECT_TYPE_DESCRIPTOR_SET = VkObjectType 23
-
--- | VkFramebuffer
-pattern VK_OBJECT_TYPE_FRAMEBUFFER :: VkObjectType
-
-pattern VK_OBJECT_TYPE_FRAMEBUFFER = VkObjectType 24
-
--- | VkCommandPool
-pattern VK_OBJECT_TYPE_COMMAND_POOL :: VkObjectType
-
-pattern VK_OBJECT_TYPE_COMMAND_POOL = VkObjectType 25
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlagBitsKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlagBitsKHR
-       (VkPeerMemoryFeatureFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPeerMemoryFeatureFlagBitsKHR = VkPeerMemoryFeatureFlagBitsKHR VkFlags
-                                           deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                     FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkPeerMemoryFeatureFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkPeerMemoryFeatureFlagBitsKHR x) = show x
-
-instance Read VkPeerMemoryFeatureFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPeerMemoryFeatureFlags.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags
-       (VkPeerMemoryFeatureBitmask(VkPeerMemoryFeatureBitmask,
-                                   VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits,
-                                   VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
-                                   VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
-                                   VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
-                                   VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT),
-        VkPeerMemoryFeatureFlags, VkPeerMemoryFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkPeerMemoryFeatureBitmask (a ::
-                                      FlagType) = VkPeerMemoryFeatureBitmask VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkPeerMemoryFeatureFlags = VkPeerMemoryFeatureBitmask FlagMask
-
-type VkPeerMemoryFeatureFlagBits =
-     VkPeerMemoryFeatureBitmask FlagBit
-
-pattern VkPeerMemoryFeatureFlagBits ::
-        VkFlags -> VkPeerMemoryFeatureBitmask FlagBit
-
-pattern VkPeerMemoryFeatureFlagBits n =
-        VkPeerMemoryFeatureBitmask n
-
-pattern VkPeerMemoryFeatureFlags ::
-        VkFlags -> VkPeerMemoryFeatureBitmask FlagMask
-
-pattern VkPeerMemoryFeatureFlags n = VkPeerMemoryFeatureBitmask n
-
-deriving instance Bits (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance FiniteBits (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance Integral (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance Num (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance Bounded (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance Enum (VkPeerMemoryFeatureBitmask FlagMask)
-
-deriving instance Real (VkPeerMemoryFeatureBitmask FlagMask)
-
-instance Show (VkPeerMemoryFeatureBitmask a) where
-        showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
-          = showString "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT"
-        showsPrec _ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT
-          = showString "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT"
-        showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT
-          = showString "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT"
-        showsPrec _ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
-          = showString "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT"
-        showsPrec p (VkPeerMemoryFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkPeerMemoryFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkPeerMemoryFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT",
-                   pure VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT),
-                  ("VK_PEER_MEMORY_FEATURE_COPY_DST_BIT",
-                   pure VK_PEER_MEMORY_FEATURE_COPY_DST_BIT),
-                  ("VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT",
-                   pure VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT),
-                  ("VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT",
-                   pure VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPeerMemoryFeatureBitmask") >>
-                      (VkPeerMemoryFeatureBitmask <$> step readPrec)))
-
--- | Can read with vkCmdCopy commands
---
---   bitpos = @0@
-pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT ::
-        VkPeerMemoryFeatureBitmask a
-
-pattern VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT =
-        VkPeerMemoryFeatureBitmask 1
-
--- | Can write with vkCmdCopy commands
---
---   bitpos = @1@
-pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT ::
-        VkPeerMemoryFeatureBitmask a
-
-pattern VK_PEER_MEMORY_FEATURE_COPY_DST_BIT =
-        VkPeerMemoryFeatureBitmask 2
-
--- | Can read with any access type/command
---
---   bitpos = @2@
-pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT ::
-        VkPeerMemoryFeatureBitmask a
-
-pattern VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT =
-        VkPeerMemoryFeatureBitmask 4
-
--- | Can write with and access type/command
---
---   bitpos = @3@
-pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT ::
-        VkPeerMemoryFeatureBitmask a
-
-pattern VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT =
-        VkPeerMemoryFeatureBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPhysicalDeviceType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPhysicalDeviceType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPhysicalDeviceType.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-       (VkPhysicalDeviceType(VkPhysicalDeviceType,
-                             VK_PHYSICAL_DEVICE_TYPE_OTHER,
-                             VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
-                             VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
-                             VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, VK_PHYSICAL_DEVICE_TYPE_CPU))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceType.html VkPhysicalDeviceType registry at www.khronos.org>
-newtype VkPhysicalDeviceType = VkPhysicalDeviceType Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPhysicalDeviceType where
-        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_OTHER
-          = showString "VK_PHYSICAL_DEVICE_TYPE_OTHER"
-        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
-          = showString "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU"
-        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
-          = showString "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU"
-        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
-          = showString "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU"
-        showsPrec _ VK_PHYSICAL_DEVICE_TYPE_CPU
-          = showString "VK_PHYSICAL_DEVICE_TYPE_CPU"
-        showsPrec p (VkPhysicalDeviceType x)
-          = showParen (p >= 11)
-              (showString "VkPhysicalDeviceType " . showsPrec 11 x)
-
-instance Read VkPhysicalDeviceType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PHYSICAL_DEVICE_TYPE_OTHER",
-                   pure VK_PHYSICAL_DEVICE_TYPE_OTHER),
-                  ("VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU",
-                   pure VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU),
-                  ("VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU",
-                   pure VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU),
-                  ("VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU",
-                   pure VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU),
-                  ("VK_PHYSICAL_DEVICE_TYPE_CPU", pure VK_PHYSICAL_DEVICE_TYPE_CPU)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPhysicalDeviceType") >>
-                      (VkPhysicalDeviceType <$> step readPrec)))
-
-pattern VK_PHYSICAL_DEVICE_TYPE_OTHER :: VkPhysicalDeviceType
-
-pattern VK_PHYSICAL_DEVICE_TYPE_OTHER = VkPhysicalDeviceType 0
-
-pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU ::
-        VkPhysicalDeviceType
-
-pattern VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU =
-        VkPhysicalDeviceType 1
-
-pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU ::
-        VkPhysicalDeviceType
-
-pattern VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU =
-        VkPhysicalDeviceType 2
-
-pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU :: VkPhysicalDeviceType
-
-pattern VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU =
-        VkPhysicalDeviceType 3
-
-pattern VK_PHYSICAL_DEVICE_TYPE_CPU :: VkPhysicalDeviceType
-
-pattern VK_PHYSICAL_DEVICE_TYPE_CPU = VkPhysicalDeviceType 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineBindPoint.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineBindPoint.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineBindPoint.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-       (VkPipelineBindPoint(VkPipelineBindPoint,
-                            VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_BIND_POINT_COMPUTE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineBindPoint.html VkPipelineBindPoint registry at www.khronos.org>
-newtype VkPipelineBindPoint = VkPipelineBindPoint Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPipelineBindPoint where
-        showsPrec _ VK_PIPELINE_BIND_POINT_GRAPHICS
-          = showString "VK_PIPELINE_BIND_POINT_GRAPHICS"
-        showsPrec _ VK_PIPELINE_BIND_POINT_COMPUTE
-          = showString "VK_PIPELINE_BIND_POINT_COMPUTE"
-        showsPrec p (VkPipelineBindPoint x)
-          = showParen (p >= 11)
-              (showString "VkPipelineBindPoint " . showsPrec 11 x)
-
-instance Read VkPipelineBindPoint where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PIPELINE_BIND_POINT_GRAPHICS",
-                   pure VK_PIPELINE_BIND_POINT_GRAPHICS),
-                  ("VK_PIPELINE_BIND_POINT_COMPUTE",
-                   pure VK_PIPELINE_BIND_POINT_COMPUTE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPipelineBindPoint") >>
-                      (VkPipelineBindPoint <$> step readPrec)))
-
-pattern VK_PIPELINE_BIND_POINT_GRAPHICS :: VkPipelineBindPoint
-
-pattern VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint 0
-
-pattern VK_PIPELINE_BIND_POINT_COMPUTE :: VkPipelineBindPoint
-
-pattern VK_PIPELINE_BIND_POINT_COMPUTE = VkPipelineBindPoint 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineCacheCreateFlagBits
-       (VkPipelineCacheCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineCacheCreateFlagBits = VkPipelineCacheCreateFlagBits VkFlags
-                                          deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                    FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkPipelineCacheCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineCacheCreateFlagBits x) = show x
-
-instance Read VkPipelineCacheCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheHeaderVersion.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheHeaderVersion.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCacheHeaderVersion.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion
-       (VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion,
-                                     VK_PIPELINE_CACHE_HEADER_VERSION_ONE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineCacheHeaderVersion.html VkPipelineCacheHeaderVersion registry at www.khronos.org>
-newtype VkPipelineCacheHeaderVersion = VkPipelineCacheHeaderVersion Int32
-                                         deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                   Generic)
-
-instance Show VkPipelineCacheHeaderVersion where
-        showsPrec _ VK_PIPELINE_CACHE_HEADER_VERSION_ONE
-          = showString "VK_PIPELINE_CACHE_HEADER_VERSION_ONE"
-        showsPrec p (VkPipelineCacheHeaderVersion x)
-          = showParen (p >= 11)
-              (showString "VkPipelineCacheHeaderVersion " . showsPrec 11 x)
-
-instance Read VkPipelineCacheHeaderVersion where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PIPELINE_CACHE_HEADER_VERSION_ONE",
-                   pure VK_PIPELINE_CACHE_HEADER_VERSION_ONE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPipelineCacheHeaderVersion") >>
-                      (VkPipelineCacheHeaderVersion <$> step readPrec)))
-
-pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE ::
-        VkPipelineCacheHeaderVersion
-
-pattern VK_PIPELINE_CACHE_HEADER_VERSION_ONE =
-        VkPipelineCacheHeaderVersion 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineColorBlendStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineColorBlendStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineColorBlendStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineColorBlendStateCreateFlagBits
-       (VkPipelineColorBlendStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineColorBlendStateCreateFlagBits = VkPipelineColorBlendStateCreateFlagBits VkFlags
-                                                    deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                              Bits, FiniteBits, Storable, Real,
-                                                              Data, Generic)
-
-instance Show VkPipelineColorBlendStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineColorBlendStateCreateFlagBits x) = show x
-
-instance Read VkPipelineColorBlendStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCreateFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCreateFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineCreateFlags.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-       (VkPipelineCreateBitmask(VkPipelineCreateBitmask,
-                                VkPipelineCreateFlags, VkPipelineCreateFlagBits,
-                                VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
-                                VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
-                                VK_PIPELINE_CREATE_DERIVATIVE_BIT),
-        VkPipelineCreateFlags, VkPipelineCreateFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkPipelineCreateBitmask (a ::
-                                   FlagType) = VkPipelineCreateBitmask VkFlags
-                                                 deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkPipelineCreateFlags = VkPipelineCreateBitmask FlagMask
-
-type VkPipelineCreateFlagBits = VkPipelineCreateBitmask FlagBit
-
-pattern VkPipelineCreateFlagBits ::
-        VkFlags -> VkPipelineCreateBitmask FlagBit
-
-pattern VkPipelineCreateFlagBits n = VkPipelineCreateBitmask n
-
-pattern VkPipelineCreateFlags ::
-        VkFlags -> VkPipelineCreateBitmask FlagMask
-
-pattern VkPipelineCreateFlags n = VkPipelineCreateBitmask n
-
-deriving instance Bits (VkPipelineCreateBitmask FlagMask)
-
-deriving instance FiniteBits (VkPipelineCreateBitmask FlagMask)
-
-deriving instance Integral (VkPipelineCreateBitmask FlagMask)
-
-deriving instance Num (VkPipelineCreateBitmask FlagMask)
-
-deriving instance Bounded (VkPipelineCreateBitmask FlagMask)
-
-deriving instance Enum (VkPipelineCreateBitmask FlagMask)
-
-deriving instance Real (VkPipelineCreateBitmask FlagMask)
-
-instance Show (VkPipelineCreateBitmask a) where
-        showsPrec _ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT
-          = showString "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"
-        showsPrec _ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
-          = showString "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"
-        showsPrec _ VK_PIPELINE_CREATE_DERIVATIVE_BIT
-          = showString "VK_PIPELINE_CREATE_DERIVATIVE_BIT"
-        showsPrec p (VkPipelineCreateBitmask x)
-          = showParen (p >= 11)
-              (showString "VkPipelineCreateBitmask " . showsPrec 11 x)
-
-instance Read (VkPipelineCreateBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT",
-                   pure VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT),
-                  ("VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT",
-                   pure VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT),
-                  ("VK_PIPELINE_CREATE_DERIVATIVE_BIT",
-                   pure VK_PIPELINE_CREATE_DERIVATIVE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPipelineCreateBitmask") >>
-                      (VkPipelineCreateBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT ::
-        VkPipelineCreateBitmask a
-
-pattern VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT =
-        VkPipelineCreateBitmask 1
-
--- | bitpos = @1@
-pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT ::
-        VkPipelineCreateBitmask a
-
-pattern VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT =
-        VkPipelineCreateBitmask 2
-
--- | bitpos = @2@
-pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT ::
-        VkPipelineCreateBitmask a
-
-pattern VK_PIPELINE_CREATE_DERIVATIVE_BIT =
-        VkPipelineCreateBitmask 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDepthStencilStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDepthStencilStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDepthStencilStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineDepthStencilStateCreateFlagBits
-       (VkPipelineDepthStencilStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineDepthStencilStateCreateFlagBits = VkPipelineDepthStencilStateCreateFlagBits VkFlags
-                                                      deriving (Eq, Ord, Num, Bounded, Enum,
-                                                                Integral, Bits, FiniteBits,
-                                                                Storable, Real, Data, Generic)
-
-instance Show VkPipelineDepthStencilStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineDepthStencilStateCreateFlagBits x) = show x
-
-instance Read VkPipelineDepthStencilStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDynamicStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDynamicStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineDynamicStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineDynamicStateCreateFlagBits
-       (VkPipelineDynamicStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineDynamicStateCreateFlagBits = VkPipelineDynamicStateCreateFlagBits VkFlags
-                                                 deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                           Bits, FiniteBits, Storable, Real, Data,
-                                                           Generic)
-
-instance Show VkPipelineDynamicStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineDynamicStateCreateFlagBits x) = show x
-
-instance Read VkPipelineDynamicStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineInputAssemblyStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineInputAssemblyStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineInputAssemblyStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineInputAssemblyStateCreateFlagBits
-       (VkPipelineInputAssemblyStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineInputAssemblyStateCreateFlagBits = VkPipelineInputAssemblyStateCreateFlagBits VkFlags
-                                                       deriving (Eq, Ord, Num, Bounded, Enum,
-                                                                 Integral, Bits, FiniteBits,
-                                                                 Storable, Real, Data, Generic)
-
-instance Show VkPipelineInputAssemblyStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineInputAssemblyStateCreateFlagBits x) = show x
-
-instance Read VkPipelineInputAssemblyStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineLayoutCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineLayoutCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineLayoutCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineLayoutCreateFlagBits
-       (VkPipelineLayoutCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineLayoutCreateFlagBits = VkPipelineLayoutCreateFlagBits VkFlags
-                                           deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                     FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkPipelineLayoutCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineLayoutCreateFlagBits x) = show x
-
-instance Read VkPipelineLayoutCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineMultisampleStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineMultisampleStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineMultisampleStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineMultisampleStateCreateFlagBits
-       (VkPipelineMultisampleStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineMultisampleStateCreateFlagBits = VkPipelineMultisampleStateCreateFlagBits VkFlags
-                                                     deriving (Eq, Ord, Num, Bounded, Enum,
-                                                               Integral, Bits, FiniteBits, Storable,
-                                                               Real, Data, Generic)
-
-instance Show VkPipelineMultisampleStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineMultisampleStateCreateFlagBits x) = show x
-
-instance Read VkPipelineMultisampleStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineRasterizationStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineRasterizationStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineRasterizationStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineRasterizationStateCreateFlagBits
-       (VkPipelineRasterizationStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineRasterizationStateCreateFlagBits = VkPipelineRasterizationStateCreateFlagBits VkFlags
-                                                       deriving (Eq, Ord, Num, Bounded, Enum,
-                                                                 Integral, Bits, FiniteBits,
-                                                                 Storable, Real, Data, Generic)
-
-instance Show VkPipelineRasterizationStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineRasterizationStateCreateFlagBits x) = show x
-
-instance Read VkPipelineRasterizationStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineShaderStageCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineShaderStageCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineShaderStageCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineShaderStageCreateFlagBits
-       (VkPipelineShaderStageCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineShaderStageCreateFlagBits = VkPipelineShaderStageCreateFlagBits VkFlags
-                                                deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                          Bits, FiniteBits, Storable, Real, Data,
-                                                          Generic)
-
-instance Show VkPipelineShaderStageCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineShaderStageCreateFlagBits x) = show x
-
-instance Read VkPipelineShaderStageCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineStageFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineStageFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineStageFlags.hs
+++ /dev/null
@@ -1,305 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-       (VkPipelineStageBitmask(VkPipelineStageBitmask,
-                               VkPipelineStageFlags, VkPipelineStageFlagBits,
-                               VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
-                               VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
-                               VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
-                               VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
-                               VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
-                               VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
-                               VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
-                               VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
-                               VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
-                               VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
-                               VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-                               VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
-                               VK_PIPELINE_STAGE_TRANSFER_BIT,
-                               VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_HOST_BIT,
-                               VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
-                               VK_PIPELINE_STAGE_ALL_COMMANDS_BIT),
-        VkPipelineStageFlags, VkPipelineStageFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkPipelineStageBitmask (a ::
-                                  FlagType) = VkPipelineStageBitmask VkFlags
-                                                deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkPipelineStageFlags = VkPipelineStageBitmask FlagMask
-
-type VkPipelineStageFlagBits = VkPipelineStageBitmask FlagBit
-
-pattern VkPipelineStageFlagBits ::
-        VkFlags -> VkPipelineStageBitmask FlagBit
-
-pattern VkPipelineStageFlagBits n = VkPipelineStageBitmask n
-
-pattern VkPipelineStageFlags ::
-        VkFlags -> VkPipelineStageBitmask FlagMask
-
-pattern VkPipelineStageFlags n = VkPipelineStageBitmask n
-
-deriving instance Bits (VkPipelineStageBitmask FlagMask)
-
-deriving instance FiniteBits (VkPipelineStageBitmask FlagMask)
-
-deriving instance Integral (VkPipelineStageBitmask FlagMask)
-
-deriving instance Num (VkPipelineStageBitmask FlagMask)
-
-deriving instance Bounded (VkPipelineStageBitmask FlagMask)
-
-deriving instance Enum (VkPipelineStageBitmask FlagMask)
-
-deriving instance Real (VkPipelineStageBitmask FlagMask)
-
-instance Show (VkPipelineStageBitmask a) where
-        showsPrec _ VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
-          = showString "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
-          = showString "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT
-          = showString "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_VERTEX_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
-          = showString "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT
-          = showString "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
-          = showString "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
-          = showString "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_TRANSFER_BIT
-          = showString "VK_PIPELINE_STAGE_TRANSFER_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT
-          = showString "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_HOST_BIT
-          = showString "VK_PIPELINE_STAGE_HOST_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT
-          = showString "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"
-        showsPrec _ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
-          = showString "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"
-        showsPrec p (VkPipelineStageBitmask x)
-          = showParen (p >= 11)
-              (showString "VkPipelineStageBitmask " . showsPrec 11 x)
-
-instance Read (VkPipelineStageBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT",
-                   pure VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT),
-                  ("VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT",
-                   pure VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT),
-                  ("VK_PIPELINE_STAGE_VERTEX_INPUT_BIT",
-                   pure VK_PIPELINE_STAGE_VERTEX_INPUT_BIT),
-                  ("VK_PIPELINE_STAGE_VERTEX_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_VERTEX_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT",
-                   pure VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT),
-                  ("VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT",
-                   pure VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT),
-                  ("VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT",
-                   pure VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT),
-                  ("VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT",
-                   pure VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT),
-                  ("VK_PIPELINE_STAGE_TRANSFER_BIT",
-                   pure VK_PIPELINE_STAGE_TRANSFER_BIT),
-                  ("VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT",
-                   pure VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT),
-                  ("VK_PIPELINE_STAGE_HOST_BIT", pure VK_PIPELINE_STAGE_HOST_BIT),
-                  ("VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT",
-                   pure VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT),
-                  ("VK_PIPELINE_STAGE_ALL_COMMANDS_BIT",
-                   pure VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPipelineStageBitmask") >>
-                      (VkPipelineStageBitmask <$> step readPrec)))
-
--- | Before subsequent commands are processed
---
---   bitpos = @0@
-pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT =
-        VkPipelineStageBitmask 1
-
--- | Draw/DispatchIndirect command fetch
---
---   bitpos = @1@
-pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT =
-        VkPipelineStageBitmask 2
-
--- | Vertex/index fetch
---
---   bitpos = @2@
-pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_VERTEX_INPUT_BIT =
-        VkPipelineStageBitmask 4
-
--- | Vertex shading
---
---   bitpos = @3@
-pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_VERTEX_SHADER_BIT =
-        VkPipelineStageBitmask 8
-
--- | Tessellation control shading
---
---   bitpos = @4@
-pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT =
-        VkPipelineStageBitmask 16
-
--- | Tessellation evaluation shading
---
---   bitpos = @5@
-pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT =
-        VkPipelineStageBitmask 32
-
--- | Geometry shading
---
---   bitpos = @6@
-pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT =
-        VkPipelineStageBitmask 64
-
--- | Fragment shading
---
---   bitpos = @7@
-pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT =
-        VkPipelineStageBitmask 128
-
--- | Early fragment (depth and stencil) tests
---
---   bitpos = @8@
-pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT =
-        VkPipelineStageBitmask 256
-
--- | Late fragment (depth and stencil) tests
---
---   bitpos = @9@
-pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT =
-        VkPipelineStageBitmask 512
-
--- | Color attachment writes
---
---   bitpos = @10@
-pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT =
-        VkPipelineStageBitmask 1024
-
--- | Compute shading
---
---   bitpos = @11@
-pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT =
-        VkPipelineStageBitmask 2048
-
--- | Transfer/copy operations
---
---   bitpos = @12@
-pattern VK_PIPELINE_STAGE_TRANSFER_BIT :: VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_TRANSFER_BIT =
-        VkPipelineStageBitmask 4096
-
--- | After previous commands have completed
---
---   bitpos = @13@
-pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT =
-        VkPipelineStageBitmask 8192
-
--- | Indicates host (CPU) is a source/sink of the dependency
---
---   bitpos = @14@
-pattern VK_PIPELINE_STAGE_HOST_BIT :: VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_HOST_BIT = VkPipelineStageBitmask 16384
-
--- | All stages of the graphics pipeline
---
---   bitpos = @15@
-pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT =
-        VkPipelineStageBitmask 32768
-
--- | All stages supported on the queue
---
---   bitpos = @16@
-pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT ::
-        VkPipelineStageBitmask a
-
-pattern VK_PIPELINE_STAGE_ALL_COMMANDS_BIT =
-        VkPipelineStageBitmask 65536
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineTessellationStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineTessellationStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineTessellationStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineTessellationStateCreateFlagBits
-       (VkPipelineTessellationStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineTessellationStateCreateFlagBits = VkPipelineTessellationStateCreateFlagBits VkFlags
-                                                      deriving (Eq, Ord, Num, Bounded, Enum,
-                                                                Integral, Bits, FiniteBits,
-                                                                Storable, Real, Data, Generic)
-
-instance Show VkPipelineTessellationStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineTessellationStateCreateFlagBits x) = show x
-
-instance Read VkPipelineTessellationStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineVertexInputStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineVertexInputStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineVertexInputStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineVertexInputStateCreateFlagBits
-       (VkPipelineVertexInputStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineVertexInputStateCreateFlagBits = VkPipelineVertexInputStateCreateFlagBits VkFlags
-                                                     deriving (Eq, Ord, Num, Bounded, Enum,
-                                                               Integral, Bits, FiniteBits, Storable,
-                                                               Real, Data, Generic)
-
-instance Show VkPipelineVertexInputStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineVertexInputStateCreateFlagBits x) = show x
-
-instance Read VkPipelineVertexInputStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineViewportStateCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineViewportStateCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPipelineViewportStateCreateFlagBits.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPipelineViewportStateCreateFlagBits
-       (VkPipelineViewportStateCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPipelineViewportStateCreateFlagBits = VkPipelineViewportStateCreateFlagBits VkFlags
-                                                  deriving (Eq, Ord, Num, Bounded, Enum, Integral,
-                                                            Bits, FiniteBits, Storable, Real, Data,
-                                                            Generic)
-
-instance Show VkPipelineViewportStateCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkPipelineViewportStateCreateFlagBits x) = show x
-
-instance Read VkPipelineViewportStateCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehavior.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehavior.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehavior.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPointClippingBehavior
-       (VkPointClippingBehavior(VkPointClippingBehavior,
-                                VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
-                                VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPointClippingBehavior.html VkPointClippingBehavior registry at www.khronos.org>
-newtype VkPointClippingBehavior = VkPointClippingBehavior Int32
-                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPointClippingBehavior where
-        showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
-          = showString "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES"
-        showsPrec _ VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
-          = showString "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY"
-        showsPrec p (VkPointClippingBehavior x)
-          = showParen (p >= 11)
-              (showString "VkPointClippingBehavior " . showsPrec 11 x)
-
-instance Read VkPointClippingBehavior where
-        readPrec
-          = parens
-              (choose
-                 [("VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES",
-                   pure VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES),
-                  ("VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY",
-                   pure VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPointClippingBehavior") >>
-                      (VkPointClippingBehavior <$> step readPrec)))
-
-pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES ::
-        VkPointClippingBehavior
-
-pattern VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES =
-        VkPointClippingBehavior 0
-
-pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY ::
-        VkPointClippingBehavior
-
-pattern VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY =
-        VkPointClippingBehavior 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehaviorKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehaviorKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPointClippingBehaviorKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPointClippingBehaviorKHR
-       (VkPointClippingBehaviorKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkPointClippingBehaviorKHR = VkPointClippingBehaviorKHR VkFlags
-                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                 FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkPointClippingBehaviorKHR where
-        {-# INLINE show #-}
-        show (VkPointClippingBehaviorKHR x) = show x
-
-instance Read VkPointClippingBehaviorKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPolygonMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPolygonMode.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPolygonMode.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPolygonMode
-       (VkPolygonMode(VkPolygonMode, VK_POLYGON_MODE_FILL,
-                      VK_POLYGON_MODE_LINE, VK_POLYGON_MODE_POINT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPolygonMode.html VkPolygonMode registry at www.khronos.org>
-newtype VkPolygonMode = VkPolygonMode Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPolygonMode where
-        showsPrec _ VK_POLYGON_MODE_FILL
-          = showString "VK_POLYGON_MODE_FILL"
-        showsPrec _ VK_POLYGON_MODE_LINE
-          = showString "VK_POLYGON_MODE_LINE"
-        showsPrec _ VK_POLYGON_MODE_POINT
-          = showString "VK_POLYGON_MODE_POINT"
-        showsPrec p (VkPolygonMode x)
-          = showParen (p >= 11)
-              (showString "VkPolygonMode " . showsPrec 11 x)
-
-instance Read VkPolygonMode where
-        readPrec
-          = parens
-              (choose
-                 [("VK_POLYGON_MODE_FILL", pure VK_POLYGON_MODE_FILL),
-                  ("VK_POLYGON_MODE_LINE", pure VK_POLYGON_MODE_LINE),
-                  ("VK_POLYGON_MODE_POINT", pure VK_POLYGON_MODE_POINT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPolygonMode") >>
-                      (VkPolygonMode <$> step readPrec)))
-
-pattern VK_POLYGON_MODE_FILL :: VkPolygonMode
-
-pattern VK_POLYGON_MODE_FILL = VkPolygonMode 0
-
-pattern VK_POLYGON_MODE_LINE :: VkPolygonMode
-
-pattern VK_POLYGON_MODE_LINE = VkPolygonMode 1
-
-pattern VK_POLYGON_MODE_POINT :: VkPolygonMode
-
-pattern VK_POLYGON_MODE_POINT = VkPolygonMode 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPresentModeKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPresentModeKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPresentModeKHR.hs
+++ /dev/null
@@ -1,70 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-       (VkPresentModeKHR(VkPresentModeKHR, VK_PRESENT_MODE_IMMEDIATE_KHR,
-                         VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR,
-                         VK_PRESENT_MODE_FIFO_RELAXED_KHR))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentModeKHR.html VkPresentModeKHR registry at www.khronos.org>
-newtype VkPresentModeKHR = VkPresentModeKHR Int32
-                             deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPresentModeKHR where
-        showsPrec _ VK_PRESENT_MODE_IMMEDIATE_KHR
-          = showString "VK_PRESENT_MODE_IMMEDIATE_KHR"
-        showsPrec _ VK_PRESENT_MODE_MAILBOX_KHR
-          = showString "VK_PRESENT_MODE_MAILBOX_KHR"
-        showsPrec _ VK_PRESENT_MODE_FIFO_KHR
-          = showString "VK_PRESENT_MODE_FIFO_KHR"
-        showsPrec _ VK_PRESENT_MODE_FIFO_RELAXED_KHR
-          = showString "VK_PRESENT_MODE_FIFO_RELAXED_KHR"
-        showsPrec p (VkPresentModeKHR x)
-          = showParen (p >= 11)
-              (showString "VkPresentModeKHR " . showsPrec 11 x)
-
-instance Read VkPresentModeKHR where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PRESENT_MODE_IMMEDIATE_KHR",
-                   pure VK_PRESENT_MODE_IMMEDIATE_KHR),
-                  ("VK_PRESENT_MODE_MAILBOX_KHR", pure VK_PRESENT_MODE_MAILBOX_KHR),
-                  ("VK_PRESENT_MODE_FIFO_KHR", pure VK_PRESENT_MODE_FIFO_KHR),
-                  ("VK_PRESENT_MODE_FIFO_RELAXED_KHR",
-                   pure VK_PRESENT_MODE_FIFO_RELAXED_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPresentModeKHR") >>
-                      (VkPresentModeKHR <$> step readPrec)))
-
-pattern VK_PRESENT_MODE_IMMEDIATE_KHR :: VkPresentModeKHR
-
-pattern VK_PRESENT_MODE_IMMEDIATE_KHR = VkPresentModeKHR 0
-
-pattern VK_PRESENT_MODE_MAILBOX_KHR :: VkPresentModeKHR
-
-pattern VK_PRESENT_MODE_MAILBOX_KHR = VkPresentModeKHR 1
-
-pattern VK_PRESENT_MODE_FIFO_KHR :: VkPresentModeKHR
-
-pattern VK_PRESENT_MODE_FIFO_KHR = VkPresentModeKHR 2
-
-pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR :: VkPresentModeKHR
-
-pattern VK_PRESENT_MODE_FIFO_RELAXED_KHR = VkPresentModeKHR 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkPrimitiveTopology.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkPrimitiveTopology.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkPrimitiveTopology.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkPrimitiveTopology
-       (VkPrimitiveTopology(VkPrimitiveTopology,
-                            VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
-                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
-                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
-                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
-                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
-                            VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
-                            VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
-                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
-                            VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
-                            VK_PRIMITIVE_TOPOLOGY_PATCH_LIST))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPrimitiveTopology.html VkPrimitiveTopology registry at www.khronos.org>
-newtype VkPrimitiveTopology = VkPrimitiveTopology Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkPrimitiveTopology where
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_POINT_LIST
-          = showString "VK_PRIMITIVE_TOPOLOGY_POINT_LIST"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST
-          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP
-          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST
-          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP
-          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN
-          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY
-          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY
-          = showString "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY
-          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
-          = showString "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY"
-        showsPrec _ VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
-          = showString "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST"
-        showsPrec p (VkPrimitiveTopology x)
-          = showParen (p >= 11)
-              (showString "VkPrimitiveTopology " . showsPrec 11 x)
-
-instance Read VkPrimitiveTopology where
-        readPrec
-          = parens
-              (choose
-                 [("VK_PRIMITIVE_TOPOLOGY_POINT_LIST",
-                   pure VK_PRIMITIVE_TOPOLOGY_POINT_LIST),
-                  ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST",
-                   pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST),
-                  ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP",
-                   pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP),
-                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST",
-                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST),
-                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP",
-                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP),
-                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN",
-                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN),
-                  ("VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY",
-                   pure VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY),
-                  ("VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY",
-                   pure VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY),
-                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY",
-                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY),
-                  ("VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY",
-                   pure VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY),
-                  ("VK_PRIMITIVE_TOPOLOGY_PATCH_LIST",
-                   pure VK_PRIMITIVE_TOPOLOGY_PATCH_LIST)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkPrimitiveTopology") >>
-                      (VkPrimitiveTopology <$> step readPrec)))
-
-pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_POINT_LIST = VkPrimitiveTopology 0
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST = VkPrimitiveTopology 1
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = VkPrimitiveTopology 2
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = VkPrimitiveTopology 3
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP =
-        VkPrimitiveTopology 4
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = VkPrimitiveTopology 5
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY ::
-        VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY =
-        VkPrimitiveTopology 6
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY ::
-        VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY =
-        VkPrimitiveTopology 7
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY ::
-        VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY =
-        VkPrimitiveTopology 8
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY ::
-        VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY =
-        VkPrimitiveTopology 9
-
-pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST :: VkPrimitiveTopology
-
-pattern VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = VkPrimitiveTopology 10
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryControlFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueryControlFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryControlFlags.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkQueryControlFlags
-       (VkQueryControlBitmask(VkQueryControlBitmask, VkQueryControlFlags,
-                              VkQueryControlFlagBits, VK_QUERY_CONTROL_PRECISE_BIT),
-        VkQueryControlFlags, VkQueryControlFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkQueryControlBitmask (a ::
-                                 FlagType) = VkQueryControlBitmask VkFlags
-                                               deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkQueryControlFlags = VkQueryControlBitmask FlagMask
-
-type VkQueryControlFlagBits = VkQueryControlBitmask FlagBit
-
-pattern VkQueryControlFlagBits ::
-        VkFlags -> VkQueryControlBitmask FlagBit
-
-pattern VkQueryControlFlagBits n = VkQueryControlBitmask n
-
-pattern VkQueryControlFlags ::
-        VkFlags -> VkQueryControlBitmask FlagMask
-
-pattern VkQueryControlFlags n = VkQueryControlBitmask n
-
-deriving instance Bits (VkQueryControlBitmask FlagMask)
-
-deriving instance FiniteBits (VkQueryControlBitmask FlagMask)
-
-deriving instance Integral (VkQueryControlBitmask FlagMask)
-
-deriving instance Num (VkQueryControlBitmask FlagMask)
-
-deriving instance Bounded (VkQueryControlBitmask FlagMask)
-
-deriving instance Enum (VkQueryControlBitmask FlagMask)
-
-deriving instance Real (VkQueryControlBitmask FlagMask)
-
-instance Show (VkQueryControlBitmask a) where
-        showsPrec _ VK_QUERY_CONTROL_PRECISE_BIT
-          = showString "VK_QUERY_CONTROL_PRECISE_BIT"
-        showsPrec p (VkQueryControlBitmask x)
-          = showParen (p >= 11)
-              (showString "VkQueryControlBitmask " . showsPrec 11 x)
-
-instance Read (VkQueryControlBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUERY_CONTROL_PRECISE_BIT",
-                   pure VK_QUERY_CONTROL_PRECISE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueryControlBitmask") >>
-                      (VkQueryControlBitmask <$> step readPrec)))
-
--- | Require precise results to be collected by the query
---
---   bitpos = @0@
-pattern VK_QUERY_CONTROL_PRECISE_BIT :: VkQueryControlBitmask a
-
-pattern VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPipelineStatisticFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPipelineStatisticFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPipelineStatisticFlags.hs
+++ /dev/null
@@ -1,253 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags
-       (VkQueryPipelineStatisticBitmask(VkQueryPipelineStatisticBitmask,
-                                        VkQueryPipelineStatisticFlags,
-                                        VkQueryPipelineStatisticFlagBits,
-                                        VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
-                                        VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT),
-        VkQueryPipelineStatisticFlags, VkQueryPipelineStatisticFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkQueryPipelineStatisticBitmask (a ::
-                                           FlagType) = VkQueryPipelineStatisticBitmask VkFlags
-                                                         deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkQueryPipelineStatisticFlags =
-     VkQueryPipelineStatisticBitmask FlagMask
-
-type VkQueryPipelineStatisticFlagBits =
-     VkQueryPipelineStatisticBitmask FlagBit
-
-pattern VkQueryPipelineStatisticFlagBits ::
-        VkFlags -> VkQueryPipelineStatisticBitmask FlagBit
-
-pattern VkQueryPipelineStatisticFlagBits n =
-        VkQueryPipelineStatisticBitmask n
-
-pattern VkQueryPipelineStatisticFlags ::
-        VkFlags -> VkQueryPipelineStatisticBitmask FlagMask
-
-pattern VkQueryPipelineStatisticFlags n =
-        VkQueryPipelineStatisticBitmask n
-
-deriving instance Bits (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance
-         FiniteBits (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance
-         Integral (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance Num (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance
-         Bounded (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance Enum (VkQueryPipelineStatisticBitmask FlagMask)
-
-deriving instance Real (VkQueryPipelineStatisticBitmask FlagMask)
-
-instance Show (VkQueryPipelineStatisticBitmask a) where
-        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT"
-        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT
-          = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT"
-        showsPrec _ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT
-          = showString "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"
-        showsPrec _
-          VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
-          = showString
-              "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT"
-        showsPrec p (VkQueryPipelineStatisticBitmask x)
-          = showParen (p >= 11)
-              (showString "VkQueryPipelineStatisticBitmask " . showsPrec 11 x)
-
-instance Read (VkQueryPipelineStatisticBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT",
-                   pure
-                     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT",
-                   pure
-                     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT),
-                  ("VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT",
-                   pure VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueryPipelineStatisticBitmask") >>
-                      (VkQueryPipelineStatisticBitmask <$> step readPrec)))
-
--- | Optional
---
---   bitpos = @0@
-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT ::
-        VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT =
-        VkQueryPipelineStatisticBitmask 1
-
--- | Optional
---
---   bitpos = @1@
-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT =
-        VkQueryPipelineStatisticBitmask 2
-
--- | Optional
---
---   bitpos = @2@
-pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT =
-        VkQueryPipelineStatisticBitmask 4
-
--- | Optional
---
---   bitpos = @3@
-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT
-        = VkQueryPipelineStatisticBitmask 8
-
--- | Optional
---
---   bitpos = @4@
-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT
-        = VkQueryPipelineStatisticBitmask 16
-
--- | Optional
---
---   bitpos = @5@
-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT ::
-        VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT =
-        VkQueryPipelineStatisticBitmask 32
-
--- | Optional
---
---   bitpos = @6@
-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT ::
-        VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT =
-        VkQueryPipelineStatisticBitmask 64
-
--- | Optional
---
---   bitpos = @7@
-pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT
-        = VkQueryPipelineStatisticBitmask 128
-
--- | Optional
---
---   bitpos = @8@
-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT
-        = VkQueryPipelineStatisticBitmask 256
-
--- | Optional
---
---   bitpos = @9@
-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT
-        = VkQueryPipelineStatisticBitmask 512
-
--- | Optional
---
---   bitpos = @10@
-pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
-        :: VkQueryPipelineStatisticBitmask a
-
-pattern VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
-        = VkQueryPipelineStatisticBitmask 1024
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPoolCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPoolCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryPoolCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkQueryPoolCreateFlagBits
-       (VkQueryPoolCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkQueryPoolCreateFlagBits = VkQueryPoolCreateFlagBits VkFlags
-                                      deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkQueryPoolCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkQueryPoolCreateFlagBits x) = show x
-
-instance Read VkQueryPoolCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryResultFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueryResultFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryResultFlags.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkQueryResultFlags
-       (VkQueryResultBitmask(VkQueryResultBitmask, VkQueryResultFlags,
-                             VkQueryResultFlagBits, VK_QUERY_RESULT_64_BIT,
-                             VK_QUERY_RESULT_WAIT_BIT, VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
-                             VK_QUERY_RESULT_PARTIAL_BIT),
-        VkQueryResultFlags, VkQueryResultFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkQueryResultBitmask (a ::
-                                FlagType) = VkQueryResultBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkQueryResultFlags = VkQueryResultBitmask FlagMask
-
-type VkQueryResultFlagBits = VkQueryResultBitmask FlagBit
-
-pattern VkQueryResultFlagBits ::
-        VkFlags -> VkQueryResultBitmask FlagBit
-
-pattern VkQueryResultFlagBits n = VkQueryResultBitmask n
-
-pattern VkQueryResultFlags ::
-        VkFlags -> VkQueryResultBitmask FlagMask
-
-pattern VkQueryResultFlags n = VkQueryResultBitmask n
-
-deriving instance Bits (VkQueryResultBitmask FlagMask)
-
-deriving instance FiniteBits (VkQueryResultBitmask FlagMask)
-
-deriving instance Integral (VkQueryResultBitmask FlagMask)
-
-deriving instance Num (VkQueryResultBitmask FlagMask)
-
-deriving instance Bounded (VkQueryResultBitmask FlagMask)
-
-deriving instance Enum (VkQueryResultBitmask FlagMask)
-
-deriving instance Real (VkQueryResultBitmask FlagMask)
-
-instance Show (VkQueryResultBitmask a) where
-        showsPrec _ VK_QUERY_RESULT_64_BIT
-          = showString "VK_QUERY_RESULT_64_BIT"
-        showsPrec _ VK_QUERY_RESULT_WAIT_BIT
-          = showString "VK_QUERY_RESULT_WAIT_BIT"
-        showsPrec _ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT
-          = showString "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT"
-        showsPrec _ VK_QUERY_RESULT_PARTIAL_BIT
-          = showString "VK_QUERY_RESULT_PARTIAL_BIT"
-        showsPrec p (VkQueryResultBitmask x)
-          = showParen (p >= 11)
-              (showString "VkQueryResultBitmask " . showsPrec 11 x)
-
-instance Read (VkQueryResultBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUERY_RESULT_64_BIT", pure VK_QUERY_RESULT_64_BIT),
-                  ("VK_QUERY_RESULT_WAIT_BIT", pure VK_QUERY_RESULT_WAIT_BIT),
-                  ("VK_QUERY_RESULT_WITH_AVAILABILITY_BIT",
-                   pure VK_QUERY_RESULT_WITH_AVAILABILITY_BIT),
-                  ("VK_QUERY_RESULT_PARTIAL_BIT", pure VK_QUERY_RESULT_PARTIAL_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueryResultBitmask") >>
-                      (VkQueryResultBitmask <$> step readPrec)))
-
--- | Results of the queries are written to the destination buffer as 64-bit values
---
---   bitpos = @0@
-pattern VK_QUERY_RESULT_64_BIT :: VkQueryResultBitmask a
-
-pattern VK_QUERY_RESULT_64_BIT = VkQueryResultBitmask 1
-
--- | Results of the queries are waited on before proceeding with the result copy
---
---   bitpos = @1@
-pattern VK_QUERY_RESULT_WAIT_BIT :: VkQueryResultBitmask a
-
-pattern VK_QUERY_RESULT_WAIT_BIT = VkQueryResultBitmask 2
-
--- | Besides the results of the query, the availability of the results is also written
---
---   bitpos = @2@
-pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT ::
-        VkQueryResultBitmask a
-
-pattern VK_QUERY_RESULT_WITH_AVAILABILITY_BIT =
-        VkQueryResultBitmask 4
-
--- | Copy the partial results of the query even if the final results are not available
---
---   bitpos = @3@
-pattern VK_QUERY_RESULT_PARTIAL_BIT :: VkQueryResultBitmask a
-
-pattern VK_QUERY_RESULT_PARTIAL_BIT = VkQueryResultBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueryType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueryType.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkQueryType
-       (VkQueryType(VkQueryType, VK_QUERY_TYPE_OCCLUSION,
-                    VK_QUERY_TYPE_PIPELINE_STATISTICS, VK_QUERY_TYPE_TIMESTAMP))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkQueryType.html VkQueryType registry at www.khronos.org>
-newtype VkQueryType = VkQueryType Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkQueryType where
-        showsPrec _ VK_QUERY_TYPE_OCCLUSION
-          = showString "VK_QUERY_TYPE_OCCLUSION"
-        showsPrec _ VK_QUERY_TYPE_PIPELINE_STATISTICS
-          = showString "VK_QUERY_TYPE_PIPELINE_STATISTICS"
-        showsPrec _ VK_QUERY_TYPE_TIMESTAMP
-          = showString "VK_QUERY_TYPE_TIMESTAMP"
-        showsPrec p (VkQueryType x)
-          = showParen (p >= 11) (showString "VkQueryType " . showsPrec 11 x)
-
-instance Read VkQueryType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUERY_TYPE_OCCLUSION", pure VK_QUERY_TYPE_OCCLUSION),
-                  ("VK_QUERY_TYPE_PIPELINE_STATISTICS",
-                   pure VK_QUERY_TYPE_PIPELINE_STATISTICS),
-                  ("VK_QUERY_TYPE_TIMESTAMP", pure VK_QUERY_TYPE_TIMESTAMP)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueryType") >> (VkQueryType <$> step readPrec)))
-
-pattern VK_QUERY_TYPE_OCCLUSION :: VkQueryType
-
-pattern VK_QUERY_TYPE_OCCLUSION = VkQueryType 0
-
--- | Optional
-pattern VK_QUERY_TYPE_PIPELINE_STATISTICS :: VkQueryType
-
-pattern VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType 1
-
-pattern VK_QUERY_TYPE_TIMESTAMP :: VkQueryType
-
-pattern VK_QUERY_TYPE_TIMESTAMP = VkQueryType 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueueFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueueFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueueFlags.hs
+++ /dev/null
@@ -1,110 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkQueueFlags
-       (VkQueueBitmask(VkQueueBitmask, VkQueueFlags, VkQueueFlagBits,
-                       VK_QUEUE_GRAPHICS_BIT, VK_QUEUE_COMPUTE_BIT, VK_QUEUE_TRANSFER_BIT,
-                       VK_QUEUE_SPARSE_BINDING_BIT),
-        VkQueueFlags, VkQueueFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkQueueBitmask (a :: FlagType) = VkQueueBitmask VkFlags
-                                           deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkQueueFlags = VkQueueBitmask FlagMask
-
-type VkQueueFlagBits = VkQueueBitmask FlagBit
-
-pattern VkQueueFlagBits :: VkFlags -> VkQueueBitmask FlagBit
-
-pattern VkQueueFlagBits n = VkQueueBitmask n
-
-pattern VkQueueFlags :: VkFlags -> VkQueueBitmask FlagMask
-
-pattern VkQueueFlags n = VkQueueBitmask n
-
-deriving instance Bits (VkQueueBitmask FlagMask)
-
-deriving instance FiniteBits (VkQueueBitmask FlagMask)
-
-deriving instance Integral (VkQueueBitmask FlagMask)
-
-deriving instance Num (VkQueueBitmask FlagMask)
-
-deriving instance Bounded (VkQueueBitmask FlagMask)
-
-deriving instance Enum (VkQueueBitmask FlagMask)
-
-deriving instance Real (VkQueueBitmask FlagMask)
-
-instance Show (VkQueueBitmask a) where
-        showsPrec _ VK_QUEUE_GRAPHICS_BIT
-          = showString "VK_QUEUE_GRAPHICS_BIT"
-        showsPrec _ VK_QUEUE_COMPUTE_BIT
-          = showString "VK_QUEUE_COMPUTE_BIT"
-        showsPrec _ VK_QUEUE_TRANSFER_BIT
-          = showString "VK_QUEUE_TRANSFER_BIT"
-        showsPrec _ VK_QUEUE_SPARSE_BINDING_BIT
-          = showString "VK_QUEUE_SPARSE_BINDING_BIT"
-        showsPrec p (VkQueueBitmask x)
-          = showParen (p >= 11)
-              (showString "VkQueueBitmask " . showsPrec 11 x)
-
-instance Read (VkQueueBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUEUE_GRAPHICS_BIT", pure VK_QUEUE_GRAPHICS_BIT),
-                  ("VK_QUEUE_COMPUTE_BIT", pure VK_QUEUE_COMPUTE_BIT),
-                  ("VK_QUEUE_TRANSFER_BIT", pure VK_QUEUE_TRANSFER_BIT),
-                  ("VK_QUEUE_SPARSE_BINDING_BIT", pure VK_QUEUE_SPARSE_BINDING_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueueBitmask") >>
-                      (VkQueueBitmask <$> step readPrec)))
-
--- | Queue supports graphics operations
---
---   bitpos = @0@
-pattern VK_QUEUE_GRAPHICS_BIT :: VkQueueBitmask a
-
-pattern VK_QUEUE_GRAPHICS_BIT = VkQueueBitmask 1
-
--- | Queue supports compute operations
---
---   bitpos = @1@
-pattern VK_QUEUE_COMPUTE_BIT :: VkQueueBitmask a
-
-pattern VK_QUEUE_COMPUTE_BIT = VkQueueBitmask 2
-
--- | Queue supports transfer operations
---
---   bitpos = @2@
-pattern VK_QUEUE_TRANSFER_BIT :: VkQueueBitmask a
-
-pattern VK_QUEUE_TRANSFER_BIT = VkQueueBitmask 4
-
--- | Queue supports sparse resource memory management operations
---
---   bitpos = @3@
-pattern VK_QUEUE_SPARSE_BINDING_BIT :: VkQueueBitmask a
-
-pattern VK_QUEUE_SPARSE_BINDING_BIT = VkQueueBitmask 8
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkQueueGlobalPriorityEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkQueueGlobalPriorityEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkQueueGlobalPriorityEXT.hs
+++ /dev/null
@@ -1,82 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkQueueGlobalPriorityEXT
-       (VkQueueGlobalPriorityEXT(VkQueueGlobalPriorityEXT,
-                                 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
-                                 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
-                                 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
-                                 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkQueueGlobalPriorityEXT.html VkQueueGlobalPriorityEXT registry at www.khronos.org>
-newtype VkQueueGlobalPriorityEXT = VkQueueGlobalPriorityEXT Int32
-                                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkQueueGlobalPriorityEXT where
-        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT
-          = showString "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT"
-        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT
-          = showString "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT"
-        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT
-          = showString "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT"
-        showsPrec _ VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
-          = showString "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT"
-        showsPrec p (VkQueueGlobalPriorityEXT x)
-          = showParen (p >= 11)
-              (showString "VkQueueGlobalPriorityEXT " . showsPrec 11 x)
-
-instance Read VkQueueGlobalPriorityEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT",
-                   pure VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT),
-                  ("VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT",
-                   pure VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT),
-                  ("VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT",
-                   pure VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT),
-                  ("VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT",
-                   pure VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkQueueGlobalPriorityEXT") >>
-                      (VkQueueGlobalPriorityEXT <$> step readPrec)))
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT ::
-        VkQueueGlobalPriorityEXT
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT =
-        VkQueueGlobalPriorityEXT 128
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT ::
-        VkQueueGlobalPriorityEXT
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT =
-        VkQueueGlobalPriorityEXT 256
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT ::
-        VkQueueGlobalPriorityEXT
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT =
-        VkQueueGlobalPriorityEXT 512
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT ::
-        VkQueueGlobalPriorityEXT
-
-pattern VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT =
-        VkQueueGlobalPriorityEXT 1024
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkRasterizationOrderAMD.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkRasterizationOrderAMD.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkRasterizationOrderAMD.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkRasterizationOrderAMD
-       (VkRasterizationOrderAMD(VkRasterizationOrderAMD,
-                                VK_RASTERIZATION_ORDER_STRICT_AMD,
-                                VK_RASTERIZATION_ORDER_RELAXED_AMD))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRasterizationOrderAMD.html VkRasterizationOrderAMD registry at www.khronos.org>
-newtype VkRasterizationOrderAMD = VkRasterizationOrderAMD Int32
-                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkRasterizationOrderAMD where
-        showsPrec _ VK_RASTERIZATION_ORDER_STRICT_AMD
-          = showString "VK_RASTERIZATION_ORDER_STRICT_AMD"
-        showsPrec _ VK_RASTERIZATION_ORDER_RELAXED_AMD
-          = showString "VK_RASTERIZATION_ORDER_RELAXED_AMD"
-        showsPrec p (VkRasterizationOrderAMD x)
-          = showParen (p >= 11)
-              (showString "VkRasterizationOrderAMD " . showsPrec 11 x)
-
-instance Read VkRasterizationOrderAMD where
-        readPrec
-          = parens
-              (choose
-                 [("VK_RASTERIZATION_ORDER_STRICT_AMD",
-                   pure VK_RASTERIZATION_ORDER_STRICT_AMD),
-                  ("VK_RASTERIZATION_ORDER_RELAXED_AMD",
-                   pure VK_RASTERIZATION_ORDER_RELAXED_AMD)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkRasterizationOrderAMD") >>
-                      (VkRasterizationOrderAMD <$> step readPrec)))
-
-pattern VK_RASTERIZATION_ORDER_STRICT_AMD ::
-        VkRasterizationOrderAMD
-
-pattern VK_RASTERIZATION_ORDER_STRICT_AMD =
-        VkRasterizationOrderAMD 0
-
-pattern VK_RASTERIZATION_ORDER_RELAXED_AMD ::
-        VkRasterizationOrderAMD
-
-pattern VK_RASTERIZATION_ORDER_RELAXED_AMD =
-        VkRasterizationOrderAMD 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkRenderPassCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkRenderPassCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkRenderPassCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkRenderPassCreateFlagBits
-       (VkRenderPassCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkRenderPassCreateFlagBits = VkRenderPassCreateFlagBits VkFlags
-                                       deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                 FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkRenderPassCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkRenderPassCreateFlagBits x) = show x
-
-instance Read VkRenderPassCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkResult.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkResult.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkResult.hs
+++ /dev/null
@@ -1,190 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkResult
-       (VkResult(VkResult, VK_SUCCESS, VK_NOT_READY, VK_TIMEOUT,
-                 VK_EVENT_SET, VK_EVENT_RESET, VK_INCOMPLETE,
-                 VK_ERROR_OUT_OF_HOST_MEMORY, VK_ERROR_OUT_OF_DEVICE_MEMORY,
-                 VK_ERROR_INITIALIZATION_FAILED, VK_ERROR_DEVICE_LOST,
-                 VK_ERROR_MEMORY_MAP_FAILED, VK_ERROR_LAYER_NOT_PRESENT,
-                 VK_ERROR_EXTENSION_NOT_PRESENT, VK_ERROR_FEATURE_NOT_PRESENT,
-                 VK_ERROR_INCOMPATIBLE_DRIVER, VK_ERROR_TOO_MANY_OBJECTS,
-                 VK_ERROR_FORMAT_NOT_SUPPORTED, VK_ERROR_FRAGMENTED_POOL))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | API result codes
---
---   type = @enum@
---
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkResult.html VkResult registry at www.khronos.org>
-newtype VkResult = VkResult Int32
-                     deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkResult where
-        showsPrec _ VK_SUCCESS = showString "VK_SUCCESS"
-        showsPrec _ VK_NOT_READY = showString "VK_NOT_READY"
-        showsPrec _ VK_TIMEOUT = showString "VK_TIMEOUT"
-        showsPrec _ VK_EVENT_SET = showString "VK_EVENT_SET"
-        showsPrec _ VK_EVENT_RESET = showString "VK_EVENT_RESET"
-        showsPrec _ VK_INCOMPLETE = showString "VK_INCOMPLETE"
-        showsPrec _ VK_ERROR_OUT_OF_HOST_MEMORY
-          = showString "VK_ERROR_OUT_OF_HOST_MEMORY"
-        showsPrec _ VK_ERROR_OUT_OF_DEVICE_MEMORY
-          = showString "VK_ERROR_OUT_OF_DEVICE_MEMORY"
-        showsPrec _ VK_ERROR_INITIALIZATION_FAILED
-          = showString "VK_ERROR_INITIALIZATION_FAILED"
-        showsPrec _ VK_ERROR_DEVICE_LOST
-          = showString "VK_ERROR_DEVICE_LOST"
-        showsPrec _ VK_ERROR_MEMORY_MAP_FAILED
-          = showString "VK_ERROR_MEMORY_MAP_FAILED"
-        showsPrec _ VK_ERROR_LAYER_NOT_PRESENT
-          = showString "VK_ERROR_LAYER_NOT_PRESENT"
-        showsPrec _ VK_ERROR_EXTENSION_NOT_PRESENT
-          = showString "VK_ERROR_EXTENSION_NOT_PRESENT"
-        showsPrec _ VK_ERROR_FEATURE_NOT_PRESENT
-          = showString "VK_ERROR_FEATURE_NOT_PRESENT"
-        showsPrec _ VK_ERROR_INCOMPATIBLE_DRIVER
-          = showString "VK_ERROR_INCOMPATIBLE_DRIVER"
-        showsPrec _ VK_ERROR_TOO_MANY_OBJECTS
-          = showString "VK_ERROR_TOO_MANY_OBJECTS"
-        showsPrec _ VK_ERROR_FORMAT_NOT_SUPPORTED
-          = showString "VK_ERROR_FORMAT_NOT_SUPPORTED"
-        showsPrec _ VK_ERROR_FRAGMENTED_POOL
-          = showString "VK_ERROR_FRAGMENTED_POOL"
-        showsPrec p (VkResult x)
-          = showParen (p >= 11) (showString "VkResult " . showsPrec 11 x)
-
-instance Read VkResult where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SUCCESS", pure VK_SUCCESS),
-                  ("VK_NOT_READY", pure VK_NOT_READY),
-                  ("VK_TIMEOUT", pure VK_TIMEOUT),
-                  ("VK_EVENT_SET", pure VK_EVENT_SET),
-                  ("VK_EVENT_RESET", pure VK_EVENT_RESET),
-                  ("VK_INCOMPLETE", pure VK_INCOMPLETE),
-                  ("VK_ERROR_OUT_OF_HOST_MEMORY", pure VK_ERROR_OUT_OF_HOST_MEMORY),
-                  ("VK_ERROR_OUT_OF_DEVICE_MEMORY",
-                   pure VK_ERROR_OUT_OF_DEVICE_MEMORY),
-                  ("VK_ERROR_INITIALIZATION_FAILED",
-                   pure VK_ERROR_INITIALIZATION_FAILED),
-                  ("VK_ERROR_DEVICE_LOST", pure VK_ERROR_DEVICE_LOST),
-                  ("VK_ERROR_MEMORY_MAP_FAILED", pure VK_ERROR_MEMORY_MAP_FAILED),
-                  ("VK_ERROR_LAYER_NOT_PRESENT", pure VK_ERROR_LAYER_NOT_PRESENT),
-                  ("VK_ERROR_EXTENSION_NOT_PRESENT",
-                   pure VK_ERROR_EXTENSION_NOT_PRESENT),
-                  ("VK_ERROR_FEATURE_NOT_PRESENT",
-                   pure VK_ERROR_FEATURE_NOT_PRESENT),
-                  ("VK_ERROR_INCOMPATIBLE_DRIVER",
-                   pure VK_ERROR_INCOMPATIBLE_DRIVER),
-                  ("VK_ERROR_TOO_MANY_OBJECTS", pure VK_ERROR_TOO_MANY_OBJECTS),
-                  ("VK_ERROR_FORMAT_NOT_SUPPORTED",
-                   pure VK_ERROR_FORMAT_NOT_SUPPORTED),
-                  ("VK_ERROR_FRAGMENTED_POOL", pure VK_ERROR_FRAGMENTED_POOL)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkResult") >> (VkResult <$> step readPrec)))
-
--- | Command completed successfully
-pattern VK_SUCCESS :: VkResult
-
-pattern VK_SUCCESS = VkResult 0
-
--- | A fence or query has not yet completed
-pattern VK_NOT_READY :: VkResult
-
-pattern VK_NOT_READY = VkResult 1
-
--- | A wait operation has not completed in the specified time
-pattern VK_TIMEOUT :: VkResult
-
-pattern VK_TIMEOUT = VkResult 2
-
--- | An event is signaled
-pattern VK_EVENT_SET :: VkResult
-
-pattern VK_EVENT_SET = VkResult 3
-
--- | An event is unsignaled
-pattern VK_EVENT_RESET :: VkResult
-
-pattern VK_EVENT_RESET = VkResult 4
-
--- | A return array was too small for the result
-pattern VK_INCOMPLETE :: VkResult
-
-pattern VK_INCOMPLETE = VkResult 5
-
--- | A host memory allocation has failed
-pattern VK_ERROR_OUT_OF_HOST_MEMORY :: VkResult
-
-pattern VK_ERROR_OUT_OF_HOST_MEMORY = VkResult (-1)
-
--- | A device memory allocation has failed
-pattern VK_ERROR_OUT_OF_DEVICE_MEMORY :: VkResult
-
-pattern VK_ERROR_OUT_OF_DEVICE_MEMORY = VkResult (-2)
-
--- | Initialization of a object has failed
-pattern VK_ERROR_INITIALIZATION_FAILED :: VkResult
-
-pattern VK_ERROR_INITIALIZATION_FAILED = VkResult (-3)
-
--- | The logical device has been lost. See <<devsandqueues-lost-device>>
-pattern VK_ERROR_DEVICE_LOST :: VkResult
-
-pattern VK_ERROR_DEVICE_LOST = VkResult (-4)
-
--- | Mapping of a memory object has failed
-pattern VK_ERROR_MEMORY_MAP_FAILED :: VkResult
-
-pattern VK_ERROR_MEMORY_MAP_FAILED = VkResult (-5)
-
--- | Layer specified does not exist
-pattern VK_ERROR_LAYER_NOT_PRESENT :: VkResult
-
-pattern VK_ERROR_LAYER_NOT_PRESENT = VkResult (-6)
-
--- | Extension specified does not exist
-pattern VK_ERROR_EXTENSION_NOT_PRESENT :: VkResult
-
-pattern VK_ERROR_EXTENSION_NOT_PRESENT = VkResult (-7)
-
--- | Requested feature is not available on this device
-pattern VK_ERROR_FEATURE_NOT_PRESENT :: VkResult
-
-pattern VK_ERROR_FEATURE_NOT_PRESENT = VkResult (-8)
-
--- | Unable to find a Vulkan driver
-pattern VK_ERROR_INCOMPATIBLE_DRIVER :: VkResult
-
-pattern VK_ERROR_INCOMPATIBLE_DRIVER = VkResult (-9)
-
--- | Too many objects of the type have already been created
-pattern VK_ERROR_TOO_MANY_OBJECTS :: VkResult
-
-pattern VK_ERROR_TOO_MANY_OBJECTS = VkResult (-10)
-
--- | Requested format is not supported on this device
-pattern VK_ERROR_FORMAT_NOT_SUPPORTED :: VkResult
-
-pattern VK_ERROR_FORMAT_NOT_SUPPORTED = VkResult (-11)
-
--- | A requested pool allocation has failed due to fragmentation of the pool's memory
-pattern VK_ERROR_FRAGMENTED_POOL :: VkResult
-
-pattern VK_ERROR_FRAGMENTED_POOL = VkResult (-12)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSampleCountFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSampleCountFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSampleCountFlags.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-       (VkSampleCountBitmask(VkSampleCountBitmask, VkSampleCountFlags,
-                             VkSampleCountFlagBits, VK_SAMPLE_COUNT_1_BIT,
-                             VK_SAMPLE_COUNT_2_BIT, VK_SAMPLE_COUNT_4_BIT,
-                             VK_SAMPLE_COUNT_8_BIT, VK_SAMPLE_COUNT_16_BIT,
-                             VK_SAMPLE_COUNT_32_BIT, VK_SAMPLE_COUNT_64_BIT),
-        VkSampleCountFlags, VkSampleCountFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSampleCountBitmask (a ::
-                                FlagType) = VkSampleCountBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSampleCountFlags = VkSampleCountBitmask FlagMask
-
-type VkSampleCountFlagBits = VkSampleCountBitmask FlagBit
-
-pattern VkSampleCountFlagBits ::
-        VkFlags -> VkSampleCountBitmask FlagBit
-
-pattern VkSampleCountFlagBits n = VkSampleCountBitmask n
-
-pattern VkSampleCountFlags ::
-        VkFlags -> VkSampleCountBitmask FlagMask
-
-pattern VkSampleCountFlags n = VkSampleCountBitmask n
-
-deriving instance Bits (VkSampleCountBitmask FlagMask)
-
-deriving instance FiniteBits (VkSampleCountBitmask FlagMask)
-
-deriving instance Integral (VkSampleCountBitmask FlagMask)
-
-deriving instance Num (VkSampleCountBitmask FlagMask)
-
-deriving instance Bounded (VkSampleCountBitmask FlagMask)
-
-deriving instance Enum (VkSampleCountBitmask FlagMask)
-
-deriving instance Real (VkSampleCountBitmask FlagMask)
-
-instance Show (VkSampleCountBitmask a) where
-        showsPrec _ VK_SAMPLE_COUNT_1_BIT
-          = showString "VK_SAMPLE_COUNT_1_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_2_BIT
-          = showString "VK_SAMPLE_COUNT_2_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_4_BIT
-          = showString "VK_SAMPLE_COUNT_4_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_8_BIT
-          = showString "VK_SAMPLE_COUNT_8_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_16_BIT
-          = showString "VK_SAMPLE_COUNT_16_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_32_BIT
-          = showString "VK_SAMPLE_COUNT_32_BIT"
-        showsPrec _ VK_SAMPLE_COUNT_64_BIT
-          = showString "VK_SAMPLE_COUNT_64_BIT"
-        showsPrec p (VkSampleCountBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSampleCountBitmask " . showsPrec 11 x)
-
-instance Read (VkSampleCountBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLE_COUNT_1_BIT", pure VK_SAMPLE_COUNT_1_BIT),
-                  ("VK_SAMPLE_COUNT_2_BIT", pure VK_SAMPLE_COUNT_2_BIT),
-                  ("VK_SAMPLE_COUNT_4_BIT", pure VK_SAMPLE_COUNT_4_BIT),
-                  ("VK_SAMPLE_COUNT_8_BIT", pure VK_SAMPLE_COUNT_8_BIT),
-                  ("VK_SAMPLE_COUNT_16_BIT", pure VK_SAMPLE_COUNT_16_BIT),
-                  ("VK_SAMPLE_COUNT_32_BIT", pure VK_SAMPLE_COUNT_32_BIT),
-                  ("VK_SAMPLE_COUNT_64_BIT", pure VK_SAMPLE_COUNT_64_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSampleCountBitmask") >>
-                      (VkSampleCountBitmask <$> step readPrec)))
-
--- | Sample count 1 supported
---
---   bitpos = @0@
-pattern VK_SAMPLE_COUNT_1_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_1_BIT = VkSampleCountBitmask 1
-
--- | Sample count 2 supported
---
---   bitpos = @1@
-pattern VK_SAMPLE_COUNT_2_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_2_BIT = VkSampleCountBitmask 2
-
--- | Sample count 4 supported
---
---   bitpos = @2@
-pattern VK_SAMPLE_COUNT_4_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_4_BIT = VkSampleCountBitmask 4
-
--- | Sample count 8 supported
---
---   bitpos = @3@
-pattern VK_SAMPLE_COUNT_8_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_8_BIT = VkSampleCountBitmask 8
-
--- | Sample count 16 supported
---
---   bitpos = @4@
-pattern VK_SAMPLE_COUNT_16_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_16_BIT = VkSampleCountBitmask 16
-
--- | Sample count 32 supported
---
---   bitpos = @5@
-pattern VK_SAMPLE_COUNT_32_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_32_BIT = VkSampleCountBitmask 32
-
--- | Sample count 64 supported
---
---   bitpos = @6@
-pattern VK_SAMPLE_COUNT_64_BIT :: VkSampleCountBitmask a
-
-pattern VK_SAMPLE_COUNT_64_BIT = VkSampleCountBitmask 64
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerAddressMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerAddressMode.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerAddressMode.hs
+++ /dev/null
@@ -1,80 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerAddressMode
-       (VkSamplerAddressMode(VkSamplerAddressMode,
-                             VK_SAMPLER_ADDRESS_MODE_REPEAT,
-                             VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
-                             VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
-                             VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerAddressMode.html VkSamplerAddressMode registry at www.khronos.org>
-newtype VkSamplerAddressMode = VkSamplerAddressMode Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSamplerAddressMode where
-        showsPrec _ VK_SAMPLER_ADDRESS_MODE_REPEAT
-          = showString "VK_SAMPLER_ADDRESS_MODE_REPEAT"
-        showsPrec _ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT
-          = showString "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"
-        showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE
-          = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"
-        showsPrec _ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER
-          = showString "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"
-        showsPrec p (VkSamplerAddressMode x)
-          = showParen (p >= 11)
-              (showString "VkSamplerAddressMode " . showsPrec 11 x)
-
-instance Read VkSamplerAddressMode where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLER_ADDRESS_MODE_REPEAT",
-                   pure VK_SAMPLER_ADDRESS_MODE_REPEAT),
-                  ("VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT",
-                   pure VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT),
-                  ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE",
-                   pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE),
-                  ("VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER",
-                   pure VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSamplerAddressMode") >>
-                      (VkSamplerAddressMode <$> step readPrec)))
-
-pattern VK_SAMPLER_ADDRESS_MODE_REPEAT :: VkSamplerAddressMode
-
-pattern VK_SAMPLER_ADDRESS_MODE_REPEAT = VkSamplerAddressMode 0
-
-pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT ::
-        VkSamplerAddressMode
-
-pattern VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT =
-        VkSamplerAddressMode 1
-
-pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE ::
-        VkSamplerAddressMode
-
-pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE =
-        VkSamplerAddressMode 2
-
-pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER ::
-        VkSamplerAddressMode
-
-pattern VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER =
-        VkSamplerAddressMode 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerCreateFlagBits.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerCreateFlagBits.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerCreateFlagBits.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerCreateFlagBits
-       (VkSamplerCreateFlagBits(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkSamplerCreateFlagBits = VkSamplerCreateFlagBits VkFlags
-                                    deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                              FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkSamplerCreateFlagBits where
-        {-# INLINE show #-}
-        show (VkSamplerCreateFlagBits x) = show x
-
-instance Read VkSamplerCreateFlagBits where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerMipmapMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerMipmapMode.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerMipmapMode.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode
-       (VkSamplerMipmapMode(VkSamplerMipmapMode,
-                            VK_SAMPLER_MIPMAP_MODE_NEAREST, VK_SAMPLER_MIPMAP_MODE_LINEAR))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerMipmapMode.html VkSamplerMipmapMode registry at www.khronos.org>
-newtype VkSamplerMipmapMode = VkSamplerMipmapMode Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSamplerMipmapMode where
-        showsPrec _ VK_SAMPLER_MIPMAP_MODE_NEAREST
-          = showString "VK_SAMPLER_MIPMAP_MODE_NEAREST"
-        showsPrec _ VK_SAMPLER_MIPMAP_MODE_LINEAR
-          = showString "VK_SAMPLER_MIPMAP_MODE_LINEAR"
-        showsPrec p (VkSamplerMipmapMode x)
-          = showParen (p >= 11)
-              (showString "VkSamplerMipmapMode " . showsPrec 11 x)
-
-instance Read VkSamplerMipmapMode where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLER_MIPMAP_MODE_NEAREST",
-                   pure VK_SAMPLER_MIPMAP_MODE_NEAREST),
-                  ("VK_SAMPLER_MIPMAP_MODE_LINEAR",
-                   pure VK_SAMPLER_MIPMAP_MODE_LINEAR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSamplerMipmapMode") >>
-                      (VkSamplerMipmapMode <$> step readPrec)))
-
--- | Choose nearest mip level
-pattern VK_SAMPLER_MIPMAP_MODE_NEAREST :: VkSamplerMipmapMode
-
-pattern VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode 0
-
--- | Linear filter between mip levels
-pattern VK_SAMPLER_MIPMAP_MODE_LINEAR :: VkSamplerMipmapMode
-
-pattern VK_SAMPLER_MIPMAP_MODE_LINEAR = VkSamplerMipmapMode 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerReductionModeEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerReductionModeEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerReductionModeEXT.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerReductionModeEXT
-       (VkSamplerReductionModeEXT(VkSamplerReductionModeEXT,
-                                  VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
-                                  VK_SAMPLER_REDUCTION_MODE_MIN_EXT,
-                                  VK_SAMPLER_REDUCTION_MODE_MAX_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerReductionModeEXT.html VkSamplerReductionModeEXT registry at www.khronos.org>
-newtype VkSamplerReductionModeEXT = VkSamplerReductionModeEXT Int32
-                                      deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                Generic)
-
-instance Show VkSamplerReductionModeEXT where
-        showsPrec _ VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT
-          = showString "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT"
-        showsPrec _ VK_SAMPLER_REDUCTION_MODE_MIN_EXT
-          = showString "VK_SAMPLER_REDUCTION_MODE_MIN_EXT"
-        showsPrec _ VK_SAMPLER_REDUCTION_MODE_MAX_EXT
-          = showString "VK_SAMPLER_REDUCTION_MODE_MAX_EXT"
-        showsPrec p (VkSamplerReductionModeEXT x)
-          = showParen (p >= 11)
-              (showString "VkSamplerReductionModeEXT " . showsPrec 11 x)
-
-instance Read VkSamplerReductionModeEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT",
-                   pure VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT),
-                  ("VK_SAMPLER_REDUCTION_MODE_MIN_EXT",
-                   pure VK_SAMPLER_REDUCTION_MODE_MIN_EXT),
-                  ("VK_SAMPLER_REDUCTION_MODE_MAX_EXT",
-                   pure VK_SAMPLER_REDUCTION_MODE_MAX_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSamplerReductionModeEXT") >>
-                      (VkSamplerReductionModeEXT <$> step readPrec)))
-
-pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT ::
-        VkSamplerReductionModeEXT
-
-pattern VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT =
-        VkSamplerReductionModeEXT 0
-
-pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT ::
-        VkSamplerReductionModeEXT
-
-pattern VK_SAMPLER_REDUCTION_MODE_MIN_EXT =
-        VkSamplerReductionModeEXT 1
-
-pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT ::
-        VkSamplerReductionModeEXT
-
-pattern VK_SAMPLER_REDUCTION_MODE_MAX_EXT =
-        VkSamplerReductionModeEXT 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversion.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversion.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversion.hs
+++ /dev/null
@@ -1,98 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-       (VkSamplerYcbcrModelConversion(VkSamplerYcbcrModelConversion,
-                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
-                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
-                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
-                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
-                                      VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerYcbcrModelConversion.html VkSamplerYcbcrModelConversion registry at www.khronos.org>
-newtype VkSamplerYcbcrModelConversion = VkSamplerYcbcrModelConversion Int32
-                                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                    Generic)
-
-instance Show VkSamplerYcbcrModelConversion where
-        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY
-          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"
-        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY
-          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY"
-        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
-          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"
-        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
-          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"
-        showsPrec _ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
-          = showString "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"
-        showsPrec p (VkSamplerYcbcrModelConversion x)
-          = showParen (p >= 11)
-              (showString "VkSamplerYcbcrModelConversion " . showsPrec 11 x)
-
-instance Read VkSamplerYcbcrModelConversion where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY",
-                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY),
-                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY",
-                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY),
-                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709",
-                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709),
-                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601",
-                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601),
-                  ("VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020",
-                   pure VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSamplerYcbcrModelConversion") >>
-                      (VkSamplerYcbcrModelConversion <$> step readPrec)))
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY ::
-        VkSamplerYcbcrModelConversion
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY =
-        VkSamplerYcbcrModelConversion 0
-
--- | just range expansion
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY ::
-        VkSamplerYcbcrModelConversion
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY =
-        VkSamplerYcbcrModelConversion 1
-
--- | aka HD YUV
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 ::
-        VkSamplerYcbcrModelConversion
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 =
-        VkSamplerYcbcrModelConversion 2
-
--- | aka SD YUV
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 ::
-        VkSamplerYcbcrModelConversion
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 =
-        VkSamplerYcbcrModelConversion 3
-
--- | aka UHD YUV
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 ::
-        VkSamplerYcbcrModelConversion
-
-pattern VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 =
-        VkSamplerYcbcrModelConversion 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversionKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversionKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrModelConversionKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversionKHR
-       (VkSamplerYcbcrModelConversionKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkSamplerYcbcrModelConversionKHR = VkSamplerYcbcrModelConversionKHR VkFlags
-                                             deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                       FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkSamplerYcbcrModelConversionKHR where
-        {-# INLINE show #-}
-        show (VkSamplerYcbcrModelConversionKHR x) = show x
-
-instance Read VkSamplerYcbcrModelConversionKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRange.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRange.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRange.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-       (VkSamplerYcbcrRange(VkSamplerYcbcrRange,
-                            VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
-                            VK_SAMPLER_YCBCR_RANGE_ITU_NARROW))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerYcbcrRange.html VkSamplerYcbcrRange registry at www.khronos.org>
-newtype VkSamplerYcbcrRange = VkSamplerYcbcrRange Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSamplerYcbcrRange where
-        showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_FULL
-          = showString "VK_SAMPLER_YCBCR_RANGE_ITU_FULL"
-        showsPrec _ VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
-          = showString "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW"
-        showsPrec p (VkSamplerYcbcrRange x)
-          = showParen (p >= 11)
-              (showString "VkSamplerYcbcrRange " . showsPrec 11 x)
-
-instance Read VkSamplerYcbcrRange where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SAMPLER_YCBCR_RANGE_ITU_FULL",
-                   pure VK_SAMPLER_YCBCR_RANGE_ITU_FULL),
-                  ("VK_SAMPLER_YCBCR_RANGE_ITU_NARROW",
-                   pure VK_SAMPLER_YCBCR_RANGE_ITU_NARROW)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSamplerYcbcrRange") >>
-                      (VkSamplerYcbcrRange <$> step readPrec)))
-
--- | Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)
-pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL :: VkSamplerYcbcrRange
-
-pattern VK_SAMPLER_YCBCR_RANGE_ITU_FULL = VkSamplerYcbcrRange 0
-
--- | Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240
-pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW :: VkSamplerYcbcrRange
-
-pattern VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = VkSamplerYcbcrRange 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRangeKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRangeKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSamplerYcbcrRangeKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRangeKHR
-       (VkSamplerYcbcrRangeKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkSamplerYcbcrRangeKHR = VkSamplerYcbcrRangeKHR VkFlags
-                                   deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                             FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkSamplerYcbcrRangeKHR where
-        {-# INLINE show #-}
-        show (VkSamplerYcbcrRangeKHR x) = show x
-
-instance Read VkSamplerYcbcrRangeKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlagBitsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlagBitsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlagBitsKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlagBitsKHR
-       (VkSemaphoreImportFlagBitsKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkSemaphoreImportFlagBitsKHR = VkSemaphoreImportFlagBitsKHR VkFlags
-                                         deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                   FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkSemaphoreImportFlagBitsKHR where
-        {-# INLINE show #-}
-        show (VkSemaphoreImportFlagBitsKHR x) = show x
-
-instance Read VkSemaphoreImportFlagBitsKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSemaphoreImportFlags.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags
-       (VkSemaphoreImportBitmask(VkSemaphoreImportBitmask,
-                                 VkSemaphoreImportFlags, VkSemaphoreImportFlagBits,
-                                 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT),
-        VkSemaphoreImportFlags, VkSemaphoreImportFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSemaphoreImportBitmask (a ::
-                                    FlagType) = VkSemaphoreImportBitmask VkFlags
-                                                  deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSemaphoreImportFlags = VkSemaphoreImportBitmask FlagMask
-
-type VkSemaphoreImportFlagBits = VkSemaphoreImportBitmask FlagBit
-
-pattern VkSemaphoreImportFlagBits ::
-        VkFlags -> VkSemaphoreImportBitmask FlagBit
-
-pattern VkSemaphoreImportFlagBits n = VkSemaphoreImportBitmask n
-
-pattern VkSemaphoreImportFlags ::
-        VkFlags -> VkSemaphoreImportBitmask FlagMask
-
-pattern VkSemaphoreImportFlags n = VkSemaphoreImportBitmask n
-
-deriving instance Bits (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance FiniteBits (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance Integral (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance Num (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance Bounded (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance Enum (VkSemaphoreImportBitmask FlagMask)
-
-deriving instance Real (VkSemaphoreImportBitmask FlagMask)
-
-instance Show (VkSemaphoreImportBitmask a) where
-        showsPrec _ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
-          = showString "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT"
-        showsPrec p (VkSemaphoreImportBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSemaphoreImportBitmask " . showsPrec 11 x)
-
-instance Read (VkSemaphoreImportBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SEMAPHORE_IMPORT_TEMPORARY_BIT",
-                   pure VK_SEMAPHORE_IMPORT_TEMPORARY_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSemaphoreImportBitmask") >>
-                      (VkSemaphoreImportBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT ::
-        VkSemaphoreImportBitmask a
-
-pattern VK_SEMAPHORE_IMPORT_TEMPORARY_BIT =
-        VkSemaphoreImportBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkShaderInfoTypeAMD.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkShaderInfoTypeAMD.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkShaderInfoTypeAMD.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkShaderInfoTypeAMD
-       (VkShaderInfoTypeAMD(VkShaderInfoTypeAMD,
-                            VK_SHADER_INFO_TYPE_STATISTICS_AMD, VK_SHADER_INFO_TYPE_BINARY_AMD,
-                            VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderInfoTypeAMD.html VkShaderInfoTypeAMD registry at www.khronos.org>
-newtype VkShaderInfoTypeAMD = VkShaderInfoTypeAMD Int32
-                                deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkShaderInfoTypeAMD where
-        showsPrec _ VK_SHADER_INFO_TYPE_STATISTICS_AMD
-          = showString "VK_SHADER_INFO_TYPE_STATISTICS_AMD"
-        showsPrec _ VK_SHADER_INFO_TYPE_BINARY_AMD
-          = showString "VK_SHADER_INFO_TYPE_BINARY_AMD"
-        showsPrec _ VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
-          = showString "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD"
-        showsPrec p (VkShaderInfoTypeAMD x)
-          = showParen (p >= 11)
-              (showString "VkShaderInfoTypeAMD " . showsPrec 11 x)
-
-instance Read VkShaderInfoTypeAMD where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SHADER_INFO_TYPE_STATISTICS_AMD",
-                   pure VK_SHADER_INFO_TYPE_STATISTICS_AMD),
-                  ("VK_SHADER_INFO_TYPE_BINARY_AMD",
-                   pure VK_SHADER_INFO_TYPE_BINARY_AMD),
-                  ("VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD",
-                   pure VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkShaderInfoTypeAMD") >>
-                      (VkShaderInfoTypeAMD <$> step readPrec)))
-
-pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD :: VkShaderInfoTypeAMD
-
-pattern VK_SHADER_INFO_TYPE_STATISTICS_AMD = VkShaderInfoTypeAMD 0
-
-pattern VK_SHADER_INFO_TYPE_BINARY_AMD :: VkShaderInfoTypeAMD
-
-pattern VK_SHADER_INFO_TYPE_BINARY_AMD = VkShaderInfoTypeAMD 1
-
-pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD :: VkShaderInfoTypeAMD
-
-pattern VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = VkShaderInfoTypeAMD 2
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkShaderStageFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkShaderStageFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkShaderStageFlags.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-       (VkShaderStageBitmask(VkShaderStageBitmask, VkShaderStageFlags,
-                             VkShaderStageFlagBits, VK_SHADER_STAGE_VERTEX_BIT,
-                             VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
-                             VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
-                             VK_SHADER_STAGE_GEOMETRY_BIT, VK_SHADER_STAGE_FRAGMENT_BIT,
-                             VK_SHADER_STAGE_COMPUTE_BIT, VK_SHADER_STAGE_ALL_GRAPHICS,
-                             VK_SHADER_STAGE_ALL),
-        VkShaderStageFlags, VkShaderStageFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkShaderStageBitmask (a ::
-                                FlagType) = VkShaderStageBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkShaderStageFlags = VkShaderStageBitmask FlagMask
-
-type VkShaderStageFlagBits = VkShaderStageBitmask FlagBit
-
-pattern VkShaderStageFlagBits ::
-        VkFlags -> VkShaderStageBitmask FlagBit
-
-pattern VkShaderStageFlagBits n = VkShaderStageBitmask n
-
-pattern VkShaderStageFlags ::
-        VkFlags -> VkShaderStageBitmask FlagMask
-
-pattern VkShaderStageFlags n = VkShaderStageBitmask n
-
-deriving instance Bits (VkShaderStageBitmask FlagMask)
-
-deriving instance FiniteBits (VkShaderStageBitmask FlagMask)
-
-deriving instance Integral (VkShaderStageBitmask FlagMask)
-
-deriving instance Num (VkShaderStageBitmask FlagMask)
-
-deriving instance Bounded (VkShaderStageBitmask FlagMask)
-
-deriving instance Enum (VkShaderStageBitmask FlagMask)
-
-deriving instance Real (VkShaderStageBitmask FlagMask)
-
-instance Show (VkShaderStageBitmask a) where
-        showsPrec _ VK_SHADER_STAGE_VERTEX_BIT
-          = showString "VK_SHADER_STAGE_VERTEX_BIT"
-        showsPrec _ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
-          = showString "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT"
-        showsPrec _ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
-          = showString "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT"
-        showsPrec _ VK_SHADER_STAGE_GEOMETRY_BIT
-          = showString "VK_SHADER_STAGE_GEOMETRY_BIT"
-        showsPrec _ VK_SHADER_STAGE_FRAGMENT_BIT
-          = showString "VK_SHADER_STAGE_FRAGMENT_BIT"
-        showsPrec _ VK_SHADER_STAGE_COMPUTE_BIT
-          = showString "VK_SHADER_STAGE_COMPUTE_BIT"
-        showsPrec _ VK_SHADER_STAGE_ALL_GRAPHICS
-          = showString "VK_SHADER_STAGE_ALL_GRAPHICS"
-        showsPrec _ VK_SHADER_STAGE_ALL = showString "VK_SHADER_STAGE_ALL"
-        showsPrec p (VkShaderStageBitmask x)
-          = showParen (p >= 11)
-              (showString "VkShaderStageBitmask " . showsPrec 11 x)
-
-instance Read (VkShaderStageBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SHADER_STAGE_VERTEX_BIT", pure VK_SHADER_STAGE_VERTEX_BIT),
-                  ("VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT",
-                   pure VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT),
-                  ("VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT",
-                   pure VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT),
-                  ("VK_SHADER_STAGE_GEOMETRY_BIT",
-                   pure VK_SHADER_STAGE_GEOMETRY_BIT),
-                  ("VK_SHADER_STAGE_FRAGMENT_BIT",
-                   pure VK_SHADER_STAGE_FRAGMENT_BIT),
-                  ("VK_SHADER_STAGE_COMPUTE_BIT", pure VK_SHADER_STAGE_COMPUTE_BIT),
-                  ("VK_SHADER_STAGE_ALL_GRAPHICS",
-                   pure VK_SHADER_STAGE_ALL_GRAPHICS),
-                  ("VK_SHADER_STAGE_ALL", pure VK_SHADER_STAGE_ALL)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkShaderStageBitmask") >>
-                      (VkShaderStageBitmask <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_SHADER_STAGE_VERTEX_BIT :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_VERTEX_BIT = VkShaderStageBitmask 1
-
--- | bitpos = @1@
-pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT ::
-        VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT =
-        VkShaderStageBitmask 2
-
--- | bitpos = @2@
-pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT ::
-        VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT =
-        VkShaderStageBitmask 4
-
--- | bitpos = @3@
-pattern VK_SHADER_STAGE_GEOMETRY_BIT :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_GEOMETRY_BIT = VkShaderStageBitmask 8
-
--- | bitpos = @4@
-pattern VK_SHADER_STAGE_FRAGMENT_BIT :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_FRAGMENT_BIT = VkShaderStageBitmask 16
-
--- | bitpos = @5@
-pattern VK_SHADER_STAGE_COMPUTE_BIT :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_COMPUTE_BIT = VkShaderStageBitmask 32
-
-pattern VK_SHADER_STAGE_ALL_GRAPHICS :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_ALL_GRAPHICS = VkShaderStageBitmask 31
-
-pattern VK_SHADER_STAGE_ALL :: VkShaderStageBitmask a
-
-pattern VK_SHADER_STAGE_ALL = VkShaderStageBitmask 2147483647
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSharingMode.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSharingMode.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSharingMode.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSharingMode
-       (VkSharingMode(VkSharingMode, VK_SHARING_MODE_EXCLUSIVE,
-                      VK_SHARING_MODE_CONCURRENT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSharingMode.html VkSharingMode registry at www.khronos.org>
-newtype VkSharingMode = VkSharingMode Int32
-                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSharingMode where
-        showsPrec _ VK_SHARING_MODE_EXCLUSIVE
-          = showString "VK_SHARING_MODE_EXCLUSIVE"
-        showsPrec _ VK_SHARING_MODE_CONCURRENT
-          = showString "VK_SHARING_MODE_CONCURRENT"
-        showsPrec p (VkSharingMode x)
-          = showParen (p >= 11)
-              (showString "VkSharingMode " . showsPrec 11 x)
-
-instance Read VkSharingMode where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SHARING_MODE_EXCLUSIVE", pure VK_SHARING_MODE_EXCLUSIVE),
-                  ("VK_SHARING_MODE_CONCURRENT", pure VK_SHARING_MODE_CONCURRENT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSharingMode") >>
-                      (VkSharingMode <$> step readPrec)))
-
-pattern VK_SHARING_MODE_EXCLUSIVE :: VkSharingMode
-
-pattern VK_SHARING_MODE_EXCLUSIVE = VkSharingMode 0
-
-pattern VK_SHARING_MODE_CONCURRENT :: VkSharingMode
-
-pattern VK_SHARING_MODE_CONCURRENT = VkSharingMode 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSparseImageFormatFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSparseImageFormatFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSparseImageFormatFlags.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-       (VkSparseImageFormatBitmask(VkSparseImageFormatBitmask,
-                                   VkSparseImageFormatFlags, VkSparseImageFormatFlagBits,
-                                   VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
-                                   VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
-                                   VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT),
-        VkSparseImageFormatFlags, VkSparseImageFormatFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSparseImageFormatBitmask (a ::
-                                      FlagType) = VkSparseImageFormatBitmask VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSparseImageFormatFlags = VkSparseImageFormatBitmask FlagMask
-
-type VkSparseImageFormatFlagBits =
-     VkSparseImageFormatBitmask FlagBit
-
-pattern VkSparseImageFormatFlagBits ::
-        VkFlags -> VkSparseImageFormatBitmask FlagBit
-
-pattern VkSparseImageFormatFlagBits n =
-        VkSparseImageFormatBitmask n
-
-pattern VkSparseImageFormatFlags ::
-        VkFlags -> VkSparseImageFormatBitmask FlagMask
-
-pattern VkSparseImageFormatFlags n = VkSparseImageFormatBitmask n
-
-deriving instance Bits (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance FiniteBits (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance Integral (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance Num (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance Bounded (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance Enum (VkSparseImageFormatBitmask FlagMask)
-
-deriving instance Real (VkSparseImageFormatBitmask FlagMask)
-
-instance Show (VkSparseImageFormatBitmask a) where
-        showsPrec _ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT
-          = showString "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT"
-        showsPrec _ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT
-          = showString "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT"
-        showsPrec _ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
-          = showString "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT"
-        showsPrec p (VkSparseImageFormatBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSparseImageFormatBitmask " . showsPrec 11 x)
-
-instance Read (VkSparseImageFormatBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT",
-                   pure VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT),
-                  ("VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT",
-                   pure VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT),
-                  ("VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT",
-                   pure VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSparseImageFormatBitmask") >>
-                      (VkSparseImageFormatBitmask <$> step readPrec)))
-
--- | Image uses a single mip tail region for all array layers
---
---   bitpos = @0@
-pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT ::
-        VkSparseImageFormatBitmask a
-
-pattern VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT =
-        VkSparseImageFormatBitmask 1
-
--- | Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels.
---
---   bitpos = @1@
-pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT ::
-        VkSparseImageFormatBitmask a
-
-pattern VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT =
-        VkSparseImageFormatBitmask 2
-
--- | Image uses a non-standard sparse image block dimensions
---
---   bitpos = @2@
-pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT ::
-        VkSparseImageFormatBitmask a
-
-pattern VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT =
-        VkSparseImageFormatBitmask 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSparseMemoryBindFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSparseMemoryBindFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSparseMemoryBindFlags.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags
-       (VkSparseMemoryBindBitmask(VkSparseMemoryBindBitmask,
-                                  VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits,
-                                  VK_SPARSE_MEMORY_BIND_METADATA_BIT),
-        VkSparseMemoryBindFlags, VkSparseMemoryBindFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSparseMemoryBindBitmask (a ::
-                                     FlagType) = VkSparseMemoryBindBitmask VkFlags
-                                                   deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSparseMemoryBindFlags = VkSparseMemoryBindBitmask FlagMask
-
-type VkSparseMemoryBindFlagBits = VkSparseMemoryBindBitmask FlagBit
-
-pattern VkSparseMemoryBindFlagBits ::
-        VkFlags -> VkSparseMemoryBindBitmask FlagBit
-
-pattern VkSparseMemoryBindFlagBits n = VkSparseMemoryBindBitmask n
-
-pattern VkSparseMemoryBindFlags ::
-        VkFlags -> VkSparseMemoryBindBitmask FlagMask
-
-pattern VkSparseMemoryBindFlags n = VkSparseMemoryBindBitmask n
-
-deriving instance Bits (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance FiniteBits (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance Integral (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance Num (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance Bounded (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance Enum (VkSparseMemoryBindBitmask FlagMask)
-
-deriving instance Real (VkSparseMemoryBindBitmask FlagMask)
-
-instance Show (VkSparseMemoryBindBitmask a) where
-        showsPrec _ VK_SPARSE_MEMORY_BIND_METADATA_BIT
-          = showString "VK_SPARSE_MEMORY_BIND_METADATA_BIT"
-        showsPrec p (VkSparseMemoryBindBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSparseMemoryBindBitmask " . showsPrec 11 x)
-
-instance Read (VkSparseMemoryBindBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SPARSE_MEMORY_BIND_METADATA_BIT",
-                   pure VK_SPARSE_MEMORY_BIND_METADATA_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSparseMemoryBindBitmask") >>
-                      (VkSparseMemoryBindBitmask <$> step readPrec)))
-
--- | Operation binds resource metadata to memory
---
---   bitpos = @0@
-pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT ::
-        VkSparseMemoryBindBitmask a
-
-pattern VK_SPARSE_MEMORY_BIND_METADATA_BIT =
-        VkSparseMemoryBindBitmask 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkStencilFaceFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkStencilFaceFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkStencilFaceFlags.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkStencilFaceFlags
-       (VkStencilFaceBitmask(VkStencilFaceBitmask, VkStencilFaceFlags,
-                             VkStencilFaceFlagBits, VK_STENCIL_FACE_FRONT_BIT,
-                             VK_STENCIL_FACE_BACK_BIT, VK_STENCIL_FRONT_AND_BACK),
-        VkStencilFaceFlags, VkStencilFaceFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkStencilFaceBitmask (a ::
-                                FlagType) = VkStencilFaceBitmask VkFlags
-                                              deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkStencilFaceFlags = VkStencilFaceBitmask FlagMask
-
-type VkStencilFaceFlagBits = VkStencilFaceBitmask FlagBit
-
-pattern VkStencilFaceFlagBits ::
-        VkFlags -> VkStencilFaceBitmask FlagBit
-
-pattern VkStencilFaceFlagBits n = VkStencilFaceBitmask n
-
-pattern VkStencilFaceFlags ::
-        VkFlags -> VkStencilFaceBitmask FlagMask
-
-pattern VkStencilFaceFlags n = VkStencilFaceBitmask n
-
-deriving instance Bits (VkStencilFaceBitmask FlagMask)
-
-deriving instance FiniteBits (VkStencilFaceBitmask FlagMask)
-
-deriving instance Integral (VkStencilFaceBitmask FlagMask)
-
-deriving instance Num (VkStencilFaceBitmask FlagMask)
-
-deriving instance Bounded (VkStencilFaceBitmask FlagMask)
-
-deriving instance Enum (VkStencilFaceBitmask FlagMask)
-
-deriving instance Real (VkStencilFaceBitmask FlagMask)
-
-instance Show (VkStencilFaceBitmask a) where
-        showsPrec _ VK_STENCIL_FACE_FRONT_BIT
-          = showString "VK_STENCIL_FACE_FRONT_BIT"
-        showsPrec _ VK_STENCIL_FACE_BACK_BIT
-          = showString "VK_STENCIL_FACE_BACK_BIT"
-        showsPrec _ VK_STENCIL_FRONT_AND_BACK
-          = showString "VK_STENCIL_FRONT_AND_BACK"
-        showsPrec p (VkStencilFaceBitmask x)
-          = showParen (p >= 11)
-              (showString "VkStencilFaceBitmask " . showsPrec 11 x)
-
-instance Read (VkStencilFaceBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_STENCIL_FACE_FRONT_BIT", pure VK_STENCIL_FACE_FRONT_BIT),
-                  ("VK_STENCIL_FACE_BACK_BIT", pure VK_STENCIL_FACE_BACK_BIT),
-                  ("VK_STENCIL_FRONT_AND_BACK", pure VK_STENCIL_FRONT_AND_BACK)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkStencilFaceBitmask") >>
-                      (VkStencilFaceBitmask <$> step readPrec)))
-
--- | Front face
---
---   bitpos = @0@
-pattern VK_STENCIL_FACE_FRONT_BIT :: VkStencilFaceBitmask a
-
-pattern VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceBitmask 1
-
--- | Back face
---
---   bitpos = @1@
-pattern VK_STENCIL_FACE_BACK_BIT :: VkStencilFaceBitmask a
-
-pattern VK_STENCIL_FACE_BACK_BIT = VkStencilFaceBitmask 2
-
--- | Front and back faces
-pattern VK_STENCIL_FRONT_AND_BACK :: VkStencilFaceBitmask a
-
-pattern VK_STENCIL_FRONT_AND_BACK = VkStencilFaceBitmask 3
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkStencilOp.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkStencilOp.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkStencilOp.hs
+++ /dev/null
@@ -1,98 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkStencilOp
-       (VkStencilOp(VkStencilOp, VK_STENCIL_OP_KEEP, VK_STENCIL_OP_ZERO,
-                    VK_STENCIL_OP_REPLACE, VK_STENCIL_OP_INCREMENT_AND_CLAMP,
-                    VK_STENCIL_OP_DECREMENT_AND_CLAMP, VK_STENCIL_OP_INVERT,
-                    VK_STENCIL_OP_INCREMENT_AND_WRAP,
-                    VK_STENCIL_OP_DECREMENT_AND_WRAP))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkStencilOp.html VkStencilOp registry at www.khronos.org>
-newtype VkStencilOp = VkStencilOp Int32
-                        deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkStencilOp where
-        showsPrec _ VK_STENCIL_OP_KEEP = showString "VK_STENCIL_OP_KEEP"
-        showsPrec _ VK_STENCIL_OP_ZERO = showString "VK_STENCIL_OP_ZERO"
-        showsPrec _ VK_STENCIL_OP_REPLACE
-          = showString "VK_STENCIL_OP_REPLACE"
-        showsPrec _ VK_STENCIL_OP_INCREMENT_AND_CLAMP
-          = showString "VK_STENCIL_OP_INCREMENT_AND_CLAMP"
-        showsPrec _ VK_STENCIL_OP_DECREMENT_AND_CLAMP
-          = showString "VK_STENCIL_OP_DECREMENT_AND_CLAMP"
-        showsPrec _ VK_STENCIL_OP_INVERT
-          = showString "VK_STENCIL_OP_INVERT"
-        showsPrec _ VK_STENCIL_OP_INCREMENT_AND_WRAP
-          = showString "VK_STENCIL_OP_INCREMENT_AND_WRAP"
-        showsPrec _ VK_STENCIL_OP_DECREMENT_AND_WRAP
-          = showString "VK_STENCIL_OP_DECREMENT_AND_WRAP"
-        showsPrec p (VkStencilOp x)
-          = showParen (p >= 11) (showString "VkStencilOp " . showsPrec 11 x)
-
-instance Read VkStencilOp where
-        readPrec
-          = parens
-              (choose
-                 [("VK_STENCIL_OP_KEEP", pure VK_STENCIL_OP_KEEP),
-                  ("VK_STENCIL_OP_ZERO", pure VK_STENCIL_OP_ZERO),
-                  ("VK_STENCIL_OP_REPLACE", pure VK_STENCIL_OP_REPLACE),
-                  ("VK_STENCIL_OP_INCREMENT_AND_CLAMP",
-                   pure VK_STENCIL_OP_INCREMENT_AND_CLAMP),
-                  ("VK_STENCIL_OP_DECREMENT_AND_CLAMP",
-                   pure VK_STENCIL_OP_DECREMENT_AND_CLAMP),
-                  ("VK_STENCIL_OP_INVERT", pure VK_STENCIL_OP_INVERT),
-                  ("VK_STENCIL_OP_INCREMENT_AND_WRAP",
-                   pure VK_STENCIL_OP_INCREMENT_AND_WRAP),
-                  ("VK_STENCIL_OP_DECREMENT_AND_WRAP",
-                   pure VK_STENCIL_OP_DECREMENT_AND_WRAP)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkStencilOp") >> (VkStencilOp <$> step readPrec)))
-
-pattern VK_STENCIL_OP_KEEP :: VkStencilOp
-
-pattern VK_STENCIL_OP_KEEP = VkStencilOp 0
-
-pattern VK_STENCIL_OP_ZERO :: VkStencilOp
-
-pattern VK_STENCIL_OP_ZERO = VkStencilOp 1
-
-pattern VK_STENCIL_OP_REPLACE :: VkStencilOp
-
-pattern VK_STENCIL_OP_REPLACE = VkStencilOp 2
-
-pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP :: VkStencilOp
-
-pattern VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp 3
-
-pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP :: VkStencilOp
-
-pattern VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp 4
-
-pattern VK_STENCIL_OP_INVERT :: VkStencilOp
-
-pattern VK_STENCIL_OP_INVERT = VkStencilOp 5
-
-pattern VK_STENCIL_OP_INCREMENT_AND_WRAP :: VkStencilOp
-
-pattern VK_STENCIL_OP_INCREMENT_AND_WRAP = VkStencilOp 6
-
-pattern VK_STENCIL_OP_DECREMENT_AND_WRAP :: VkStencilOp
-
-pattern VK_STENCIL_OP_DECREMENT_AND_WRAP = VkStencilOp 7
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkStructureType.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkStructureType.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkStructureType.hs
+++ /dev/null
@@ -1,559 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkStructureType
-       (VkStructureType(VkStructureType,
-                        VK_STRUCTURE_TYPE_APPLICATION_INFO,
-                        VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_SUBMIT_INFO,
-                        VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
-                        VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
-                        VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
-                        VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
-                        VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
-                        VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
-                        VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
-                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
-                        VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
-                        VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
-                        VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
-                        VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
-                        VK_STRUCTURE_TYPE_MEMORY_BARRIER,
-                        VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
-                        VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | Structure type enumerant
---
---   type = @enum@
---
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkStructureType.html VkStructureType registry at www.khronos.org>
-newtype VkStructureType = VkStructureType Int32
-                            deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkStructureType where
-        showsPrec _ VK_STRUCTURE_TYPE_APPLICATION_INFO
-          = showString "VK_STRUCTURE_TYPE_APPLICATION_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_SUBMIT_INFO
-          = showString "VK_STRUCTURE_TYPE_SUBMIT_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
-          = showString "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
-          = showString "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"
-        showsPrec _ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
-          = showString "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"
-        showsPrec _
-          VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
-          = showString
-              "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
-          = showString "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
-          = showString "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"
-        showsPrec _ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
-          = showString "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"
-        showsPrec _ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
-          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
-          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
-          = showString "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
-          = showString "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
-          = showString "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"
-        showsPrec _ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
-          = showString "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"
-        showsPrec _ VK_STRUCTURE_TYPE_MEMORY_BARRIER
-          = showString "VK_STRUCTURE_TYPE_MEMORY_BARRIER"
-        showsPrec _ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"
-        showsPrec _ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
-          = showString "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"
-        showsPrec p (VkStructureType x)
-          = showParen (p >= 11)
-              (showString "VkStructureType " . showsPrec 11 x)
-
-instance Read VkStructureType where
-        readPrec
-          = parens
-              (choose
-                 [("VK_STRUCTURE_TYPE_APPLICATION_INFO",
-                   pure VK_STRUCTURE_TYPE_APPLICATION_INFO),
-                  ("VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_SUBMIT_INFO",
-                   pure VK_STRUCTURE_TYPE_SUBMIT_INFO),
-                  ("VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO",
-                   pure VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO),
-                  ("VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE",
-                   pure VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE),
-                  ("VK_STRUCTURE_TYPE_BIND_SPARSE_INFO",
-                   pure VK_STRUCTURE_TYPE_BIND_SPARSE_INFO),
-                  ("VK_STRUCTURE_TYPE_FENCE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_FENCE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_EVENT_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_EVENT_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO",
-                   pure VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO),
-                  ("VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET",
-                   pure VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET),
-                  ("VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET",
-                   pure VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET),
-                  ("VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO",
-                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO),
-                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO",
-                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO),
-                  ("VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO",
-                   pure VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO),
-                  ("VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO",
-                   pure VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO),
-                  ("VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER",
-                   pure VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER),
-                  ("VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER",
-                   pure VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER),
-                  ("VK_STRUCTURE_TYPE_MEMORY_BARRIER",
-                   pure VK_STRUCTURE_TYPE_MEMORY_BARRIER),
-                  ("VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO),
-                  ("VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO",
-                   pure VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkStructureType") >>
-                      (VkStructureType <$> step readPrec)))
-
-pattern VK_STRUCTURE_TYPE_APPLICATION_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_APPLICATION_INFO = VkStructureType 0
-
-pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = VkStructureType 1
-
-pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO =
-        VkStructureType 2
-
-pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = VkStructureType 3
-
-pattern VK_STRUCTURE_TYPE_SUBMIT_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SUBMIT_INFO = VkStructureType 4
-
-pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = VkStructureType 5
-
-pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = VkStructureType 6
-
-pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = VkStructureType 7
-
-pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = VkStructureType 8
-
-pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = VkStructureType 9
-
-pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = VkStructureType 10
-
-pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO =
-        VkStructureType 11
-
-pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = VkStructureType 12
-
-pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO =
-        VkStructureType 13
-
-pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = VkStructureType 14
-
-pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO =
-        VkStructureType 15
-
-pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO =
-        VkStructureType 16
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO =
-        VkStructureType 17
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO =
-        VkStructureType 18
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO =
-        VkStructureType 19
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
-        = VkStructureType 20
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO =
-        VkStructureType 21
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO =
-        VkStructureType 22
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
-        = VkStructureType 23
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO =
-        VkStructureType 24
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-        :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
-        = VkStructureType 25
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO =
-        VkStructureType 26
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO =
-        VkStructureType 27
-
-pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO =
-        VkStructureType 28
-
-pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO =
-        VkStructureType 29
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO =
-        VkStructureType 30
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = VkStructureType 31
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO =
-        VkStructureType 32
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO =
-        VkStructureType 33
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO =
-        VkStructureType 34
-
-pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = VkStructureType 35
-
-pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = VkStructureType 36
-
-pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO =
-        VkStructureType 37
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO =
-        VkStructureType 38
-
-pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO =
-        VkStructureType 39
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO =
-        VkStructureType 40
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO =
-        VkStructureType 41
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO =
-        VkStructureType 42
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO =
-        VkStructureType 43
-
-pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER =
-        VkStructureType 44
-
-pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = VkStructureType 45
-
-pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER :: VkStructureType
-
-pattern VK_STRUCTURE_TYPE_MEMORY_BARRIER = VkStructureType 46
-
--- | Reserved for internal use by the loader, layers, and ICDs
-pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO =
-        VkStructureType 47
-
--- | Reserved for internal use by the loader, layers, and ICDs
-pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO ::
-        VkStructureType
-
-pattern VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO =
-        VkStructureType 48
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSubgroupFeatureFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSubgroupFeatureFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSubgroupFeatureFlags.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSubgroupFeatureFlags
-       (VkSubgroupFeatureBitmask(VkSubgroupFeatureBitmask,
-                                 VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits,
-                                 VK_SUBGROUP_FEATURE_BASIC_BIT, VK_SUBGROUP_FEATURE_VOTE_BIT,
-                                 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, VK_SUBGROUP_FEATURE_BALLOT_BIT,
-                                 VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
-                                 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
-                                 VK_SUBGROUP_FEATURE_CLUSTERED_BIT, VK_SUBGROUP_FEATURE_QUAD_BIT),
-        VkSubgroupFeatureFlags, VkSubgroupFeatureFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSubgroupFeatureBitmask (a ::
-                                    FlagType) = VkSubgroupFeatureBitmask VkFlags
-                                                  deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSubgroupFeatureFlags = VkSubgroupFeatureBitmask FlagMask
-
-type VkSubgroupFeatureFlagBits = VkSubgroupFeatureBitmask FlagBit
-
-pattern VkSubgroupFeatureFlagBits ::
-        VkFlags -> VkSubgroupFeatureBitmask FlagBit
-
-pattern VkSubgroupFeatureFlagBits n = VkSubgroupFeatureBitmask n
-
-pattern VkSubgroupFeatureFlags ::
-        VkFlags -> VkSubgroupFeatureBitmask FlagMask
-
-pattern VkSubgroupFeatureFlags n = VkSubgroupFeatureBitmask n
-
-deriving instance Bits (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance FiniteBits (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance Integral (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance Num (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance Bounded (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance Enum (VkSubgroupFeatureBitmask FlagMask)
-
-deriving instance Real (VkSubgroupFeatureBitmask FlagMask)
-
-instance Show (VkSubgroupFeatureBitmask a) where
-        showsPrec _ VK_SUBGROUP_FEATURE_BASIC_BIT
-          = showString "VK_SUBGROUP_FEATURE_BASIC_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_VOTE_BIT
-          = showString "VK_SUBGROUP_FEATURE_VOTE_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
-          = showString "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_BALLOT_BIT
-          = showString "VK_SUBGROUP_FEATURE_BALLOT_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_BIT
-          = showString "VK_SUBGROUP_FEATURE_SHUFFLE_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
-          = showString "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_CLUSTERED_BIT
-          = showString "VK_SUBGROUP_FEATURE_CLUSTERED_BIT"
-        showsPrec _ VK_SUBGROUP_FEATURE_QUAD_BIT
-          = showString "VK_SUBGROUP_FEATURE_QUAD_BIT"
-        showsPrec p (VkSubgroupFeatureBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSubgroupFeatureBitmask " . showsPrec 11 x)
-
-instance Read (VkSubgroupFeatureBitmask a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SUBGROUP_FEATURE_BASIC_BIT",
-                   pure VK_SUBGROUP_FEATURE_BASIC_BIT),
-                  ("VK_SUBGROUP_FEATURE_VOTE_BIT",
-                   pure VK_SUBGROUP_FEATURE_VOTE_BIT),
-                  ("VK_SUBGROUP_FEATURE_ARITHMETIC_BIT",
-                   pure VK_SUBGROUP_FEATURE_ARITHMETIC_BIT),
-                  ("VK_SUBGROUP_FEATURE_BALLOT_BIT",
-                   pure VK_SUBGROUP_FEATURE_BALLOT_BIT),
-                  ("VK_SUBGROUP_FEATURE_SHUFFLE_BIT",
-                   pure VK_SUBGROUP_FEATURE_SHUFFLE_BIT),
-                  ("VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT",
-                   pure VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT),
-                  ("VK_SUBGROUP_FEATURE_CLUSTERED_BIT",
-                   pure VK_SUBGROUP_FEATURE_CLUSTERED_BIT),
-                  ("VK_SUBGROUP_FEATURE_QUAD_BIT",
-                   pure VK_SUBGROUP_FEATURE_QUAD_BIT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSubgroupFeatureBitmask") >>
-                      (VkSubgroupFeatureBitmask <$> step readPrec)))
-
--- | Basic subgroup operations
---
---   bitpos = @0@
-pattern VK_SUBGROUP_FEATURE_BASIC_BIT :: VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_BASIC_BIT = VkSubgroupFeatureBitmask 1
-
--- | Vote subgroup operations
---
---   bitpos = @1@
-pattern VK_SUBGROUP_FEATURE_VOTE_BIT :: VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_VOTE_BIT = VkSubgroupFeatureBitmask 2
-
--- | Arithmetic subgroup operations
---
---   bitpos = @2@
-pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT ::
-        VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_ARITHMETIC_BIT =
-        VkSubgroupFeatureBitmask 4
-
--- | Ballot subgroup operations
---
---   bitpos = @3@
-pattern VK_SUBGROUP_FEATURE_BALLOT_BIT ::
-        VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_BALLOT_BIT = VkSubgroupFeatureBitmask 8
-
--- | Shuffle subgroup operations
---
---   bitpos = @4@
-pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT ::
-        VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_SHUFFLE_BIT =
-        VkSubgroupFeatureBitmask 16
-
--- | Shuffle relative subgroup operations
---
---   bitpos = @5@
-pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT ::
-        VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT =
-        VkSubgroupFeatureBitmask 32
-
--- | Clustered subgroup operations
---
---   bitpos = @6@
-pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT ::
-        VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_CLUSTERED_BIT =
-        VkSubgroupFeatureBitmask 64
-
--- | Quad subgroup operations
---
---   bitpos = @7@
-pattern VK_SUBGROUP_FEATURE_QUAD_BIT :: VkSubgroupFeatureBitmask a
-
-pattern VK_SUBGROUP_FEATURE_QUAD_BIT = VkSubgroupFeatureBitmask 128
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassContents.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassContents.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassContents.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSubpassContents
-       (VkSubpassContents(VkSubpassContents, VK_SUBPASS_CONTENTS_INLINE,
-                          VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubpassContents.html VkSubpassContents registry at www.khronos.org>
-newtype VkSubpassContents = VkSubpassContents Int32
-                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSubpassContents where
-        showsPrec _ VK_SUBPASS_CONTENTS_INLINE
-          = showString "VK_SUBPASS_CONTENTS_INLINE"
-        showsPrec _ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
-          = showString "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS"
-        showsPrec p (VkSubpassContents x)
-          = showParen (p >= 11)
-              (showString "VkSubpassContents " . showsPrec 11 x)
-
-instance Read VkSubpassContents where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SUBPASS_CONTENTS_INLINE", pure VK_SUBPASS_CONTENTS_INLINE),
-                  ("VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS",
-                   pure VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSubpassContents") >>
-                      (VkSubpassContents <$> step readPrec)))
-
-pattern VK_SUBPASS_CONTENTS_INLINE :: VkSubpassContents
-
-pattern VK_SUBPASS_CONTENTS_INLINE = VkSubpassContents 0
-
-pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS ::
-        VkSubpassContents
-
-pattern VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS =
-        VkSubpassContents 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassDescriptionFlags.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassDescriptionFlags.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSubpassDescriptionFlags.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags
-       (VkSubpassDescriptionBitmask(VkSubpassDescriptionBitmask,
-                                    VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits),
-        VkSubpassDescriptionFlags, VkSubpassDescriptionFlagBits)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSubpassDescriptionBitmask (a ::
-                                       FlagType) = VkSubpassDescriptionBitmask VkFlags
-                                                     deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSubpassDescriptionFlags =
-     VkSubpassDescriptionBitmask FlagMask
-
-type VkSubpassDescriptionFlagBits =
-     VkSubpassDescriptionBitmask FlagBit
-
-pattern VkSubpassDescriptionFlagBits ::
-        VkFlags -> VkSubpassDescriptionBitmask FlagBit
-
-pattern VkSubpassDescriptionFlagBits n =
-        VkSubpassDescriptionBitmask n
-
-pattern VkSubpassDescriptionFlags ::
-        VkFlags -> VkSubpassDescriptionBitmask FlagMask
-
-pattern VkSubpassDescriptionFlags n = VkSubpassDescriptionBitmask n
-
-deriving instance Bits (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance FiniteBits (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance Integral (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance Num (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance Bounded (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance Enum (VkSubpassDescriptionBitmask FlagMask)
-
-deriving instance Real (VkSubpassDescriptionBitmask FlagMask)
-
-instance Show (VkSubpassDescriptionBitmask a) where
-        showsPrec p (VkSubpassDescriptionBitmask x)
-          = showParen (p >= 11)
-              (showString "VkSubpassDescriptionBitmask " . showsPrec 11 x)
-
-instance Read (VkSubpassDescriptionBitmask a) where
-        readPrec
-          = parens
-              (choose [] +++
-                 prec 10
-                   (expectP (Ident "VkSubpassDescriptionBitmask") >>
-                      (VkSubpassDescriptionBitmask <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceCounterFlagsEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceCounterFlagsEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceCounterFlagsEXT.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT
-       (VkSurfaceCounterBitmaskEXT(VkSurfaceCounterBitmaskEXT,
-                                   VkSurfaceCounterFlagsEXT, VkSurfaceCounterFlagBitsEXT,
-                                   VK_SURFACE_COUNTER_VBLANK_EXT),
-        VkSurfaceCounterFlagsEXT, VkSurfaceCounterFlagBitsEXT)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSurfaceCounterBitmaskEXT (a ::
-                                      FlagType) = VkSurfaceCounterBitmaskEXT VkFlags
-                                                    deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSurfaceCounterFlagsEXT = VkSurfaceCounterBitmaskEXT FlagMask
-
-type VkSurfaceCounterFlagBitsEXT =
-     VkSurfaceCounterBitmaskEXT FlagBit
-
-pattern VkSurfaceCounterFlagBitsEXT ::
-        VkFlags -> VkSurfaceCounterBitmaskEXT FlagBit
-
-pattern VkSurfaceCounterFlagBitsEXT n =
-        VkSurfaceCounterBitmaskEXT n
-
-pattern VkSurfaceCounterFlagsEXT ::
-        VkFlags -> VkSurfaceCounterBitmaskEXT FlagMask
-
-pattern VkSurfaceCounterFlagsEXT n = VkSurfaceCounterBitmaskEXT n
-
-deriving instance Bits (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance FiniteBits (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance Integral (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance Num (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance Bounded (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance Enum (VkSurfaceCounterBitmaskEXT FlagMask)
-
-deriving instance Real (VkSurfaceCounterBitmaskEXT FlagMask)
-
-instance Show (VkSurfaceCounterBitmaskEXT a) where
-        showsPrec _ VK_SURFACE_COUNTER_VBLANK_EXT
-          = showString "VK_SURFACE_COUNTER_VBLANK_EXT"
-        showsPrec p (VkSurfaceCounterBitmaskEXT x)
-          = showParen (p >= 11)
-              (showString "VkSurfaceCounterBitmaskEXT " . showsPrec 11 x)
-
-instance Read (VkSurfaceCounterBitmaskEXT a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SURFACE_COUNTER_VBLANK_EXT",
-                   pure VK_SURFACE_COUNTER_VBLANK_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSurfaceCounterBitmaskEXT") >>
-                      (VkSurfaceCounterBitmaskEXT <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_SURFACE_COUNTER_VBLANK_EXT ::
-        VkSurfaceCounterBitmaskEXT a
-
-pattern VK_SURFACE_COUNTER_VBLANK_EXT =
-        VkSurfaceCounterBitmaskEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceTransformFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceTransformFlagsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSurfaceTransformFlagsKHR.hs
+++ /dev/null
@@ -1,191 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-       (VkSurfaceTransformBitmaskKHR(VkSurfaceTransformBitmaskKHR,
-                                     VkSurfaceTransformFlagsKHR, VkSurfaceTransformFlagBitsKHR,
-                                     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
-                                     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR),
-        VkSurfaceTransformFlagsKHR, VkSurfaceTransformFlagBitsKHR)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSurfaceTransformBitmaskKHR (a ::
-                                        FlagType) = VkSurfaceTransformBitmaskKHR VkFlags
-                                                      deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSurfaceTransformFlagsKHR =
-     VkSurfaceTransformBitmaskKHR FlagMask
-
-type VkSurfaceTransformFlagBitsKHR =
-     VkSurfaceTransformBitmaskKHR FlagBit
-
-pattern VkSurfaceTransformFlagBitsKHR ::
-        VkFlags -> VkSurfaceTransformBitmaskKHR FlagBit
-
-pattern VkSurfaceTransformFlagBitsKHR n =
-        VkSurfaceTransformBitmaskKHR n
-
-pattern VkSurfaceTransformFlagsKHR ::
-        VkFlags -> VkSurfaceTransformBitmaskKHR FlagMask
-
-pattern VkSurfaceTransformFlagsKHR n =
-        VkSurfaceTransformBitmaskKHR n
-
-deriving instance Bits (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance
-         FiniteBits (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance Integral (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance Num (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance Bounded (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance Enum (VkSurfaceTransformBitmaskKHR FlagMask)
-
-deriving instance Real (VkSurfaceTransformBitmaskKHR FlagMask)
-
-instance Show (VkSurfaceTransformBitmaskKHR a) where
-        showsPrec _ VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR"
-        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR"
-        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR"
-        showsPrec _ VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR"
-        showsPrec _ VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR"
-        showsPrec _
-          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR
-          = showString
-              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"
-        showsPrec _
-          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
-          = showString
-              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"
-        showsPrec _
-          VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
-          = showString
-              "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"
-        showsPrec _ VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
-          = showString "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"
-        showsPrec p (VkSurfaceTransformBitmaskKHR x)
-          = showParen (p >= 11)
-              (showString "VkSurfaceTransformBitmaskKHR " . showsPrec 11 x)
-
-instance Read (VkSurfaceTransformBitmaskKHR a) where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR),
-                  ("VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR",
-                   pure VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSurfaceTransformBitmaskKHR") >>
-                      (VkSurfaceTransformBitmaskKHR <$> step readPrec)))
-
--- | bitpos = @0@
-pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 1
-
--- | bitpos = @1@
-pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 2
-
--- | bitpos = @2@
-pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 4
-
--- | bitpos = @3@
-pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 8
-
--- | bitpos = @4@
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 16
-
--- | bitpos = @5@
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 32
-
--- | bitpos = @6@
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
-        :: VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 64
-
--- | bitpos = @7@
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
-        :: VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 128
-
--- | bitpos = @8@
-pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR ::
-        VkSurfaceTransformBitmaskKHR a
-
-pattern VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR =
-        VkSurfaceTransformBitmaskKHR 256
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSwapchainCreateFlagsKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSwapchainCreateFlagsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSwapchainCreateFlagsKHR.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE KindSignatures             #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE Strict                     #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-module Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
-       (VkSwapchainCreateBitmaskKHR(VkSwapchainCreateBitmaskKHR,
-                                    VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR),
-        VkSwapchainCreateFlagsKHR, VkSwapchainCreateFlagBitsKHR)
-       where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (FlagBit, FlagMask, FlagType)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags (..))
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
-newtype VkSwapchainCreateBitmaskKHR (a ::
-                                       FlagType) = VkSwapchainCreateBitmaskKHR VkFlags
-                                                     deriving (Eq, Ord, Storable, Data, Generic)
-
-type VkSwapchainCreateFlagsKHR =
-     VkSwapchainCreateBitmaskKHR FlagMask
-
-type VkSwapchainCreateFlagBitsKHR =
-     VkSwapchainCreateBitmaskKHR FlagBit
-
-pattern VkSwapchainCreateFlagBitsKHR ::
-        VkFlags -> VkSwapchainCreateBitmaskKHR FlagBit
-
-pattern VkSwapchainCreateFlagBitsKHR n =
-        VkSwapchainCreateBitmaskKHR n
-
-pattern VkSwapchainCreateFlagsKHR ::
-        VkFlags -> VkSwapchainCreateBitmaskKHR FlagMask
-
-pattern VkSwapchainCreateFlagsKHR n = VkSwapchainCreateBitmaskKHR n
-
-deriving instance Bits (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance FiniteBits (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance Integral (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance Num (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance Bounded (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance Enum (VkSwapchainCreateBitmaskKHR FlagMask)
-
-deriving instance Real (VkSwapchainCreateBitmaskKHR FlagMask)
-
-instance Show (VkSwapchainCreateBitmaskKHR a) where
-        showsPrec p (VkSwapchainCreateBitmaskKHR x)
-          = showParen (p >= 11)
-              (showString "VkSwapchainCreateBitmaskKHR " . showsPrec 11 x)
-
-instance Read (VkSwapchainCreateBitmaskKHR a) where
-        readPrec
-          = parens
-              (choose [] +++
-                 prec 10
-                   (expectP (Ident "VkSwapchainCreateBitmaskKHR") >>
-                      (VkSwapchainCreateBitmaskKHR <$> step readPrec)))
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkSystemAllocationScope.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkSystemAllocationScope.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkSystemAllocationScope.hs
+++ /dev/null
@@ -1,92 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-       (VkSystemAllocationScope(VkSystemAllocationScope,
-                                VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
-                                VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
-                                VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
-                                VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
-                                VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSystemAllocationScope.html VkSystemAllocationScope registry at www.khronos.org>
-newtype VkSystemAllocationScope = VkSystemAllocationScope Int32
-                                    deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkSystemAllocationScope where
-        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND
-          = showString "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"
-        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT
-          = showString "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"
-        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_CACHE
-          = showString "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"
-        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE
-          = showString "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"
-        showsPrec _ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
-          = showString "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE"
-        showsPrec p (VkSystemAllocationScope x)
-          = showParen (p >= 11)
-              (showString "VkSystemAllocationScope " . showsPrec 11 x)
-
-instance Read VkSystemAllocationScope where
-        readPrec
-          = parens
-              (choose
-                 [("VK_SYSTEM_ALLOCATION_SCOPE_COMMAND",
-                   pure VK_SYSTEM_ALLOCATION_SCOPE_COMMAND),
-                  ("VK_SYSTEM_ALLOCATION_SCOPE_OBJECT",
-                   pure VK_SYSTEM_ALLOCATION_SCOPE_OBJECT),
-                  ("VK_SYSTEM_ALLOCATION_SCOPE_CACHE",
-                   pure VK_SYSTEM_ALLOCATION_SCOPE_CACHE),
-                  ("VK_SYSTEM_ALLOCATION_SCOPE_DEVICE",
-                   pure VK_SYSTEM_ALLOCATION_SCOPE_DEVICE),
-                  ("VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE",
-                   pure VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkSystemAllocationScope") >>
-                      (VkSystemAllocationScope <$> step readPrec)))
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND ::
-        VkSystemAllocationScope
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_COMMAND =
-        VkSystemAllocationScope 0
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT ::
-        VkSystemAllocationScope
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_OBJECT =
-        VkSystemAllocationScope 1
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE :: VkSystemAllocationScope
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_CACHE =
-        VkSystemAllocationScope 2
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE ::
-        VkSystemAllocationScope
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_DEVICE =
-        VkSystemAllocationScope 3
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE ::
-        VkSystemAllocationScope
-
-pattern VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE =
-        VkSystemAllocationScope 4
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOrigin.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOrigin.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOrigin.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin
-       (VkTessellationDomainOrigin(VkTessellationDomainOrigin,
-                                   VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
-                                   VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkTessellationDomainOrigin.html VkTessellationDomainOrigin registry at www.khronos.org>
-newtype VkTessellationDomainOrigin = VkTessellationDomainOrigin Int32
-                                       deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                 Generic)
-
-instance Show VkTessellationDomainOrigin where
-        showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT
-          = showString "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT"
-        showsPrec _ VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
-          = showString "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT"
-        showsPrec p (VkTessellationDomainOrigin x)
-          = showParen (p >= 11)
-              (showString "VkTessellationDomainOrigin " . showsPrec 11 x)
-
-instance Read VkTessellationDomainOrigin where
-        readPrec
-          = parens
-              (choose
-                 [("VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT",
-                   pure VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT),
-                  ("VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT",
-                   pure VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkTessellationDomainOrigin") >>
-                      (VkTessellationDomainOrigin <$> step readPrec)))
-
-pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT ::
-        VkTessellationDomainOrigin
-
-pattern VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT =
-        VkTessellationDomainOrigin 0
-
-pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT ::
-        VkTessellationDomainOrigin
-
-pattern VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT =
-        VkTessellationDomainOrigin 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOriginKHR.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOriginKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkTessellationDomainOriginKHR.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkTessellationDomainOriginKHR
-       (VkTessellationDomainOriginKHR(..)) where
-import           Data.Bits                       (Bits, FiniteBits)
-import           Data.Coerce                     (coerce)
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           Graphics.Vulkan.Types.BaseTypes (VkFlags)
-
-newtype VkTessellationDomainOriginKHR = VkTessellationDomainOriginKHR VkFlags
-                                          deriving (Eq, Ord, Num, Bounded, Enum, Integral, Bits,
-                                                    FiniteBits, Storable, Real, Data, Generic)
-
-instance Show VkTessellationDomainOriginKHR where
-        {-# INLINE show #-}
-        show (VkTessellationDomainOriginKHR x) = show x
-
-instance Read VkTessellationDomainOriginKHR where
-        {-# INLINE readsPrec #-}
-        readsPrec = coerce (readsPrec :: Int -> ReadS VkFlags)
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCacheHeaderVersionEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCacheHeaderVersionEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCacheHeaderVersionEXT.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkValidationCacheHeaderVersionEXT
-       (VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT,
-                                          VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkValidationCacheHeaderVersionEXT.html VkValidationCacheHeaderVersionEXT registry at www.khronos.org>
-newtype VkValidationCacheHeaderVersionEXT = VkValidationCacheHeaderVersionEXT Int32
-                                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                        Generic)
-
-instance Show VkValidationCacheHeaderVersionEXT where
-        showsPrec _ VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
-          = showString "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"
-        showsPrec p (VkValidationCacheHeaderVersionEXT x)
-          = showParen (p >= 11)
-              (showString "VkValidationCacheHeaderVersionEXT " . showsPrec 11 x)
-
-instance Read VkValidationCacheHeaderVersionEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT",
-                   pure VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkValidationCacheHeaderVersionEXT") >>
-                      (VkValidationCacheHeaderVersionEXT <$> step readPrec)))
-
-pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT ::
-        VkValidationCacheHeaderVersionEXT
-
-pattern VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT =
-        VkValidationCacheHeaderVersionEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCheckEXT.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCheckEXT.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkValidationCheckEXT.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkValidationCheckEXT
-       (VkValidationCheckEXT(VkValidationCheckEXT,
-                             VK_VALIDATION_CHECK_ALL_EXT, VK_VALIDATION_CHECK_SHADERS_EXT))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkValidationCheckEXT.html VkValidationCheckEXT registry at www.khronos.org>
-newtype VkValidationCheckEXT = VkValidationCheckEXT Int32
-                                 deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkValidationCheckEXT where
-        showsPrec _ VK_VALIDATION_CHECK_ALL_EXT
-          = showString "VK_VALIDATION_CHECK_ALL_EXT"
-        showsPrec _ VK_VALIDATION_CHECK_SHADERS_EXT
-          = showString "VK_VALIDATION_CHECK_SHADERS_EXT"
-        showsPrec p (VkValidationCheckEXT x)
-          = showParen (p >= 11)
-              (showString "VkValidationCheckEXT " . showsPrec 11 x)
-
-instance Read VkValidationCheckEXT where
-        readPrec
-          = parens
-              (choose
-                 [("VK_VALIDATION_CHECK_ALL_EXT", pure VK_VALIDATION_CHECK_ALL_EXT),
-                  ("VK_VALIDATION_CHECK_SHADERS_EXT",
-                   pure VK_VALIDATION_CHECK_SHADERS_EXT)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkValidationCheckEXT") >>
-                      (VkValidationCheckEXT <$> step readPrec)))
-
-pattern VK_VALIDATION_CHECK_ALL_EXT :: VkValidationCheckEXT
-
-pattern VK_VALIDATION_CHECK_ALL_EXT = VkValidationCheckEXT 0
-
-pattern VK_VALIDATION_CHECK_SHADERS_EXT :: VkValidationCheckEXT
-
-pattern VK_VALIDATION_CHECK_SHADERS_EXT = VkValidationCheckEXT 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkVertexInputRate.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkVertexInputRate.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkVertexInputRate.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkVertexInputRate
-       (VkVertexInputRate(VkVertexInputRate, VK_VERTEX_INPUT_RATE_VERTEX,
-                          VK_VERTEX_INPUT_RATE_INSTANCE))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkVertexInputRate.html VkVertexInputRate registry at www.khronos.org>
-newtype VkVertexInputRate = VkVertexInputRate Int32
-                              deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data, Generic)
-
-instance Show VkVertexInputRate where
-        showsPrec _ VK_VERTEX_INPUT_RATE_VERTEX
-          = showString "VK_VERTEX_INPUT_RATE_VERTEX"
-        showsPrec _ VK_VERTEX_INPUT_RATE_INSTANCE
-          = showString "VK_VERTEX_INPUT_RATE_INSTANCE"
-        showsPrec p (VkVertexInputRate x)
-          = showParen (p >= 11)
-              (showString "VkVertexInputRate " . showsPrec 11 x)
-
-instance Read VkVertexInputRate where
-        readPrec
-          = parens
-              (choose
-                 [("VK_VERTEX_INPUT_RATE_VERTEX", pure VK_VERTEX_INPUT_RATE_VERTEX),
-                  ("VK_VERTEX_INPUT_RATE_INSTANCE",
-                   pure VK_VERTEX_INPUT_RATE_INSTANCE)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkVertexInputRate") >>
-                      (VkVertexInputRate <$> step readPrec)))
-
-pattern VK_VERTEX_INPUT_RATE_VERTEX :: VkVertexInputRate
-
-pattern VK_VERTEX_INPUT_RATE_VERTEX = VkVertexInputRate 0
-
-pattern VK_VERTEX_INPUT_RATE_INSTANCE :: VkVertexInputRate
-
-pattern VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate 1
diff --git a/src-gen/Graphics/Vulkan/Types/Enum/VkViewportCoordinateSwizzleNV.hs b/src-gen/Graphics/Vulkan/Types/Enum/VkViewportCoordinateSwizzleNV.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Enum/VkViewportCoordinateSwizzleNV.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# OPTIONS_HADDOCK ignore-exports#-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE Strict                     #-}
-module Graphics.Vulkan.Types.Enum.VkViewportCoordinateSwizzleNV
-       (VkViewportCoordinateSwizzleNV(VkViewportCoordinateSwizzleNV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
-                                      VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV))
-       where
-import           Data.Data                       (Data)
-import           Foreign.Storable                (Storable)
-import           GHC.Generics                    (Generic)
-import           GHC.Read                        (choose, expectP)
-import           Graphics.Vulkan.Marshal         (Int32)
-import           Text.ParserCombinators.ReadPrec (prec, step, (+++))
-import           Text.Read                       (Read (..), parens)
-import           Text.Read.Lex                   (Lexeme (..))
-
--- | type = @enum@
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkViewportCoordinateSwizzleNV.html VkViewportCoordinateSwizzleNV registry at www.khronos.org>
-newtype VkViewportCoordinateSwizzleNV = VkViewportCoordinateSwizzleNV Int32
-                                          deriving (Eq, Ord, Num, Bounded, Storable, Enum, Data,
-                                                    Generic)
-
-instance Show VkViewportCoordinateSwizzleNV where
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV"
-        showsPrec _ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
-          = showString "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV"
-        showsPrec p (VkViewportCoordinateSwizzleNV x)
-          = showParen (p >= 11)
-              (showString "VkViewportCoordinateSwizzleNV " . showsPrec 11 x)
-
-instance Read VkViewportCoordinateSwizzleNV where
-        readPrec
-          = parens
-              (choose
-                 [("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV),
-                  ("VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV",
-                   pure VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV)]
-                 +++
-                 prec 10
-                   (expectP (Ident "VkViewportCoordinateSwizzleNV") >>
-                      (VkViewportCoordinateSwizzleNV <$> step readPrec)))
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV =
-        VkViewportCoordinateSwizzleNV 0
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV =
-        VkViewportCoordinateSwizzleNV 1
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV =
-        VkViewportCoordinateSwizzleNV 2
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV =
-        VkViewportCoordinateSwizzleNV 3
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV =
-        VkViewportCoordinateSwizzleNV 4
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV =
-        VkViewportCoordinateSwizzleNV 5
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV =
-        VkViewportCoordinateSwizzleNV 6
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV ::
-        VkViewportCoordinateSwizzleNV
-
-pattern VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV =
-        VkViewportCoordinateSwizzleNV 7
diff --git a/src-gen/Graphics/Vulkan/Types/Funcpointers.hs b/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
--- a/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
+++ b/src-gen/Graphics/Vulkan/Types/Funcpointers.hs
@@ -22,26 +22,18 @@
         unwrapVkVoidFunction)
        where
 import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                    (VkBool32 (..),
-                                                                                    VkFlags (..))
-import           Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT
-                                                                                    (VkDebugReportBitmaskEXT (..),
-                                                                                    VkDebugReportFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-                                                                                    (VkDebugReportObjectTypeEXT (..))
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT
-                                                                                    (VkDebugUtilsMessageSeverityBitmaskEXT (..),
-                                                                                    VkDebugUtilsMessageSeverityFlagBitsEXT)
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT
-                                                                                    (VkDebugUtilsMessageTypeBitmaskEXT (..),
-                                                                                    VkDebugUtilsMessageTypeFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-                                                                                    (VkInternalAllocationType (..))
-import           Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-                                                                                    (VkSystemAllocationScope (..))
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT
-                                                                                    (VkDebugUtilsMessengerCallbackDataEXT (..))
+import           Graphics.Vulkan.Types.BaseTypes                                 (VkBool32 (..),
+                                                                                  VkFlags (..))
+import           Graphics.Vulkan.Types.Enum.Debug                                (VkDebugReportBitmaskEXT (..),
+                                                                                  VkDebugReportFlagsEXT,
+                                                                                  VkDebugReportObjectTypeEXT (..),
+                                                                                  VkDebugUtilsMessageSeverityBitmaskEXT (..),
+                                                                                  VkDebugUtilsMessageSeverityFlagBitsEXT,
+                                                                                  VkDebugUtilsMessageTypeBitmaskEXT (..),
+                                                                                  VkDebugUtilsMessageTypeFlagsEXT)
+import           Graphics.Vulkan.Types.Enum.InternalAllocationType               (VkInternalAllocationType (..))
+import           Graphics.Vulkan.Types.Enum.SystemAllocationScope                (VkSystemAllocationScope (..))
+import           Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT (VkDebugUtilsMessengerCallbackDataEXT (..))
 
 type HS_vkAllocationFunction =
      Ptr Void ->
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/AcquireNextImageInfoKHR.hsc
@@ -0,0 +1,332 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
+       (VkAcquireNextImageInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkFence, VkSemaphore,
+                                                           VkSwapchainKHR)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkAcquireNextImageInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSwapchainKHR swapchain;
+--   >     uint64_t                         timeout;
+--   >     VkSemaphore semaphore;
+--   >     VkFence fence;
+--   >     uint32_t                         deviceMask;
+--   > } VkAcquireNextImageInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAcquireNextImageInfoKHR VkAcquireNextImageInfoKHR registry at www.khronos.org>
+data VkAcquireNextImageInfoKHR = VkAcquireNextImageInfoKHR## Addr##
+                                                            ByteArray##
+
+instance Eq VkAcquireNextImageInfoKHR where
+        (VkAcquireNextImageInfoKHR## a _) ==
+          x@(VkAcquireNextImageInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAcquireNextImageInfoKHR where
+        (VkAcquireNextImageInfoKHR## a _) `compare`
+          x@(VkAcquireNextImageInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAcquireNextImageInfoKHR where
+        sizeOf ~_ = #{size VkAcquireNextImageInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkAcquireNextImageInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAcquireNextImageInfoKHR where
+        unsafeAddr (VkAcquireNextImageInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAcquireNextImageInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAcquireNextImageInfoKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAcquireNextImageInfoKHR where
+        type StructFields VkAcquireNextImageInfoKHR =
+             '["sType", "pNext", "swapchain", "timeout", "semaphore", "fence", -- ' closing tick for hsc2hs
+               "deviceMask"]
+        type CUnionType VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAcquireNextImageInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkAcquireNextImageInfoKHR where
+        type FieldType "sType" VkAcquireNextImageInfoKHR = VkStructureType
+        type FieldOptional "sType" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, sType}
+        type FieldIsArray "sType" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkAcquireNextImageInfoKHR where
+        type FieldType "pNext" VkAcquireNextImageInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, pNext}
+        type FieldIsArray "pNext" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchain" VkAcquireNextImageInfoKHR where
+        type FieldType "swapchain" VkAcquireNextImageInfoKHR =
+             VkSwapchainKHR
+        type FieldOptional "swapchain" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "swapchain" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, swapchain}
+        type FieldIsArray "swapchain" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchain" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, swapchain})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchain" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         HasField "timeout" VkAcquireNextImageInfoKHR where
+        type FieldType "timeout" VkAcquireNextImageInfoKHR = Word64
+        type FieldOptional "timeout" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "timeout" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, timeout}
+        type FieldIsArray "timeout" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, timeout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timeout" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, timeout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, timeout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timeout" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, timeout}
+
+instance {-# OVERLAPPING #-}
+         HasField "semaphore" VkAcquireNextImageInfoKHR where
+        type FieldType "semaphore" VkAcquireNextImageInfoKHR = VkSemaphore
+        type FieldOptional "semaphore" VkAcquireNextImageInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "semaphore" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, semaphore}
+        type FieldIsArray "semaphore" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "semaphore" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, semaphore})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "semaphore" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         HasField "fence" VkAcquireNextImageInfoKHR where
+        type FieldType "fence" VkAcquireNextImageInfoKHR = VkFence
+        type FieldOptional "fence" VkAcquireNextImageInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "fence" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, fence}
+        type FieldIsArray "fence" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fence" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, fence})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fence" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceMask" VkAcquireNextImageInfoKHR where
+        type FieldType "deviceMask" VkAcquireNextImageInfoKHR = Word32
+        type FieldOptional "deviceMask" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceMask" VkAcquireNextImageInfoKHR =
+             #{offset VkAcquireNextImageInfoKHR, deviceMask}
+        type FieldIsArray "deviceMask" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAcquireNextImageInfoKHR, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceMask" VkAcquireNextImageInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, deviceMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceMask" VkAcquireNextImageInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, deviceMask}
+
+instance Show VkAcquireNextImageInfoKHR where
+        showsPrec d x
+          = showString "VkAcquireNextImageInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchain = " .
+                            showsPrec d (getField @"swapchain" x) .
+                              showString ", " .
+                                showString "timeout = " .
+                                  showsPrec d (getField @"timeout" x) .
+                                    showString ", " .
+                                      showString "semaphore = " .
+                                        showsPrec d (getField @"semaphore" x) .
+                                          showString ", " .
+                                            showString "fence = " .
+                                              showsPrec d (getField @"fence" x) .
+                                                showString ", " .
+                                                  showString "deviceMask = " .
+                                                    showsPrec d (getField @"deviceMask" x) .
+                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc b/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/AllocationCallbacks.hsc
@@ -0,0 +1,301 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.AllocationCallbacks
+       (VkAllocationCallbacks(..)) where
+import           Foreign.Storable                   (Storable (..))
+import           GHC.Base                           (Addr##, ByteArray##,
+                                                     byteArrayContents##,
+                                                     plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Funcpointers (PFN_vkAllocationFunction,
+                                                     PFN_vkFreeFunction,
+                                                     PFN_vkInternalAllocationNotification,
+                                                     PFN_vkInternalFreeNotification,
+                                                     PFN_vkReallocationFunction)
+import           System.IO.Unsafe                   (unsafeDupablePerformIO)
+
+-- | > typedef struct VkAllocationCallbacks {
+--   >     void*           pUserData;
+--   >     PFN_vkAllocationFunction   pfnAllocation;
+--   >     PFN_vkReallocationFunction pfnReallocation;
+--   >     PFN_vkFreeFunction    pfnFree;
+--   >     PFN_vkInternalAllocationNotification pfnInternalAllocation;
+--   >     PFN_vkInternalFreeNotification pfnInternalFree;
+--   > } VkAllocationCallbacks;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAllocationCallbacks VkAllocationCallbacks registry at www.khronos.org>
+data VkAllocationCallbacks = VkAllocationCallbacks## Addr##
+                                                    ByteArray##
+
+instance Eq VkAllocationCallbacks where
+        (VkAllocationCallbacks## a _) == x@(VkAllocationCallbacks## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAllocationCallbacks where
+        (VkAllocationCallbacks## a _) `compare`
+          x@(VkAllocationCallbacks## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAllocationCallbacks where
+        sizeOf ~_ = #{size VkAllocationCallbacks}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkAllocationCallbacks}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAllocationCallbacks where
+        unsafeAddr (VkAllocationCallbacks## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAllocationCallbacks## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAllocationCallbacks## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAllocationCallbacks where
+        type StructFields VkAllocationCallbacks =
+             '["pUserData", "pfnAllocation", "pfnReallocation", "pfnFree", -- ' closing tick for hsc2hs
+               "pfnInternalAllocation", "pfnInternalFree"]
+        type CUnionType VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAllocationCallbacks = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "pUserData" VkAllocationCallbacks where
+        type FieldType "pUserData" VkAllocationCallbacks = Ptr Void
+        type FieldOptional "pUserData" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pUserData" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pUserData}
+        type FieldIsArray "pUserData" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAllocationCallbacks, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pUserData" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pUserData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pUserData" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pUserData}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnAllocation" VkAllocationCallbacks where
+        type FieldType "pfnAllocation" VkAllocationCallbacks =
+             PFN_vkAllocationFunction
+        type FieldOptional "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pfnAllocation" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pfnAllocation}
+        type FieldIsArray "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAllocationCallbacks, pfnAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnAllocation" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pfnAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnAllocation" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pfnAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnReallocation" VkAllocationCallbacks where
+        type FieldType "pfnReallocation" VkAllocationCallbacks =
+             PFN_vkReallocationFunction
+        type FieldOptional "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pfnReallocation" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pfnReallocation}
+        type FieldIsArray "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAllocationCallbacks, pfnReallocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnReallocation" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnReallocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pfnReallocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnReallocation" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pfnReallocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnFree" VkAllocationCallbacks where
+        type FieldType "pfnFree" VkAllocationCallbacks = PFN_vkFreeFunction
+        type FieldOptional "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pfnFree" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pfnFree}
+        type FieldIsArray "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkAllocationCallbacks, pfnFree}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnFree" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnFree})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pfnFree}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnFree" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pfnFree}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnInternalAllocation" VkAllocationCallbacks where
+        type FieldType "pfnInternalAllocation" VkAllocationCallbacks =
+             PFN_vkInternalAllocationNotification
+        type FieldOptional "pfnInternalAllocation" VkAllocationCallbacks =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pfnInternalAllocation" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pfnInternalAllocation}
+        type FieldIsArray "pfnInternalAllocation" VkAllocationCallbacks =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAllocationCallbacks, pfnInternalAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnInternalAllocation" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnInternalAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pfnInternalAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnInternalAllocation" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pfnInternalAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnInternalFree" VkAllocationCallbacks where
+        type FieldType "pfnInternalFree" VkAllocationCallbacks =
+             PFN_vkInternalFreeNotification
+        type FieldOptional "pfnInternalFree" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pfnInternalFree" VkAllocationCallbacks =
+             #{offset VkAllocationCallbacks, pfnInternalFree}
+        type FieldIsArray "pfnInternalFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAllocationCallbacks, pfnInternalFree}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnInternalFree" VkAllocationCallbacks where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnInternalFree})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAllocationCallbacks, pfnInternalFree}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnInternalFree" VkAllocationCallbacks where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAllocationCallbacks, pfnInternalFree}
+
+instance Show VkAllocationCallbacks where
+        showsPrec d x
+          = showString "VkAllocationCallbacks {" .
+              showString "pUserData = " .
+                showsPrec d (getField @"pUserData" x) .
+                  showString ", " .
+                    showString "pfnAllocation = " .
+                      showsPrec d (getField @"pfnAllocation" x) .
+                        showString ", " .
+                          showString "pfnReallocation = " .
+                            showsPrec d (getField @"pfnReallocation" x) .
+                              showString ", " .
+                                showString "pfnFree = " .
+                                  showsPrec d (getField @"pfnFree" x) .
+                                    showString ", " .
+                                      showString "pfnInternalAllocation = " .
+                                        showsPrec d (getField @"pfnInternalAllocation" x) .
+                                          showString ", " .
+                                            showString "pfnInternalFree = " .
+                                              showsPrec d (getField @"pfnInternalFree" x) .
+                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ApplicationInfo.hsc
@@ -0,0 +1,323 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.ApplicationInfo
+       (VkApplicationInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkApplicationInfo {
+--   >     VkStructureType sType;
+--   >     const void*     pNext;
+--   >     const char*     pApplicationName;
+--   >     uint32_t        applicationVersion;
+--   >     const char*     pEngineName;
+--   >     uint32_t        engineVersion;
+--   >     uint32_t        apiVersion;
+--   > } VkApplicationInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkApplicationInfo VkApplicationInfo registry at www.khronos.org>
+data VkApplicationInfo = VkApplicationInfo## Addr## ByteArray##
+
+instance Eq VkApplicationInfo where
+        (VkApplicationInfo## a _) == x@(VkApplicationInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkApplicationInfo where
+        (VkApplicationInfo## a _) `compare` x@(VkApplicationInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkApplicationInfo where
+        sizeOf ~_ = #{size VkApplicationInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkApplicationInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkApplicationInfo where
+        unsafeAddr (VkApplicationInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkApplicationInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkApplicationInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkApplicationInfo where
+        type StructFields VkApplicationInfo =
+             '["sType", "pNext", "pApplicationName", "applicationVersion", -- ' closing tick for hsc2hs
+               "pEngineName", "engineVersion", "apiVersion"]
+        type CUnionType VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkApplicationInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkApplicationInfo
+         where
+        type FieldType "sType" VkApplicationInfo = VkStructureType
+        type FieldOptional "sType" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkApplicationInfo =
+             #{offset VkApplicationInfo, sType}
+        type FieldIsArray "sType" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkApplicationInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkApplicationInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkApplicationInfo
+         where
+        type FieldType "pNext" VkApplicationInfo = Ptr Void
+        type FieldOptional "pNext" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkApplicationInfo =
+             #{offset VkApplicationInfo, pNext}
+        type FieldIsArray "pNext" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkApplicationInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkApplicationInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pApplicationName" VkApplicationInfo where
+        type FieldType "pApplicationName" VkApplicationInfo = CString
+        type FieldOptional "pApplicationName" VkApplicationInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pApplicationName" VkApplicationInfo =
+             #{offset VkApplicationInfo, pApplicationName}
+        type FieldIsArray "pApplicationName" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkApplicationInfo, pApplicationName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pApplicationName" VkApplicationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pApplicationName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, pApplicationName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pApplicationName" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, pApplicationName}
+
+instance {-# OVERLAPPING #-}
+         HasField "applicationVersion" VkApplicationInfo where
+        type FieldType "applicationVersion" VkApplicationInfo = Word32
+        type FieldOptional "applicationVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "applicationVersion" VkApplicationInfo =
+             #{offset VkApplicationInfo, applicationVersion}
+        type FieldIsArray "applicationVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkApplicationInfo, applicationVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "applicationVersion" VkApplicationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, applicationVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, applicationVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "applicationVersion" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, applicationVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "pEngineName" VkApplicationInfo where
+        type FieldType "pEngineName" VkApplicationInfo = CString
+        type FieldOptional "pEngineName" VkApplicationInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pEngineName" VkApplicationInfo =
+             #{offset VkApplicationInfo, pEngineName}
+        type FieldIsArray "pEngineName" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkApplicationInfo, pEngineName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pEngineName" VkApplicationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pEngineName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, pEngineName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pEngineName" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, pEngineName}
+
+instance {-# OVERLAPPING #-}
+         HasField "engineVersion" VkApplicationInfo where
+        type FieldType "engineVersion" VkApplicationInfo = Word32
+        type FieldOptional "engineVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "engineVersion" VkApplicationInfo =
+             #{offset VkApplicationInfo, engineVersion}
+        type FieldIsArray "engineVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkApplicationInfo, engineVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "engineVersion" VkApplicationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, engineVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, engineVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "engineVersion" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, engineVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "apiVersion" VkApplicationInfo where
+        type FieldType "apiVersion" VkApplicationInfo = Word32
+        type FieldOptional "apiVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "apiVersion" VkApplicationInfo =
+             #{offset VkApplicationInfo, apiVersion}
+        type FieldIsArray "apiVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkApplicationInfo, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "apiVersion" VkApplicationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, apiVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkApplicationInfo, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "apiVersion" VkApplicationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkApplicationInfo, apiVersion}
+
+instance Show VkApplicationInfo where
+        showsPrec d x
+          = showString "VkApplicationInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pApplicationName = " .
+                            showsPrec d (getField @"pApplicationName" x) .
+                              showString ", " .
+                                showString "applicationVersion = " .
+                                  showsPrec d (getField @"applicationVersion" x) .
+                                    showString ", " .
+                                      showString "pEngineName = " .
+                                        showsPrec d (getField @"pEngineName" x) .
+                                          showString ", " .
+                                            showString "engineVersion = " .
+                                              showsPrec d (getField @"engineVersion" x) .
+                                                showString ", " .
+                                                  showString "apiVersion = " .
+                                                    showsPrec d (getField @"apiVersion" x) .
+                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Attachment.hsc
@@ -0,0 +1,685 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Attachment
+       (VkAttachmentDescription(..), VkAttachmentReference(..),
+        VkAttachmentSampleLocationsEXT(..))
+       where
+import           Foreign.Storable                            (Storable (..))
+import           GHC.Base                                    (Addr##, ByteArray##,
+                                                              byteArrayContents##,
+                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Attachment       (VkAttachmentDescriptionFlags,
+                                                              VkAttachmentLoadOp,
+                                                              VkAttachmentStoreOp)
+import           Graphics.Vulkan.Types.Enum.Format           (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Image            (VkImageLayout)
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
+import           Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
+import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkAttachmentDescription {
+--   >     VkAttachmentDescriptionFlags flags;
+--   >     VkFormat               format;
+--   >     VkSampleCountFlagBits  samples;
+--   >     VkAttachmentLoadOp     loadOp;
+--   >     VkAttachmentStoreOp    storeOp;
+--   >     VkAttachmentLoadOp     stencilLoadOp;
+--   >     VkAttachmentStoreOp    stencilStoreOp;
+--   >     VkImageLayout          initialLayout;
+--   >     VkImageLayout          finalLayout;
+--   > } VkAttachmentDescription;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentDescription VkAttachmentDescription registry at www.khronos.org>
+data VkAttachmentDescription = VkAttachmentDescription## Addr##
+                                                        ByteArray##
+
+instance Eq VkAttachmentDescription where
+        (VkAttachmentDescription## a _) == x@(VkAttachmentDescription## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAttachmentDescription where
+        (VkAttachmentDescription## a _) `compare`
+          x@(VkAttachmentDescription## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAttachmentDescription where
+        sizeOf ~_ = #{size VkAttachmentDescription}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkAttachmentDescription}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAttachmentDescription where
+        unsafeAddr (VkAttachmentDescription## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAttachmentDescription## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAttachmentDescription## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAttachmentDescription where
+        type StructFields VkAttachmentDescription =
+             '["flags", "format", "samples", "loadOp", "storeOp", -- ' closing tick for hsc2hs
+               "stencilLoadOp", "stencilStoreOp", "initialLayout", "finalLayout"]
+        type CUnionType VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAttachmentDescription = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkAttachmentDescription where
+        type FieldType "flags" VkAttachmentDescription =
+             VkAttachmentDescriptionFlags
+        type FieldOptional "flags" VkAttachmentDescription = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, flags}
+        type FieldIsArray "flags" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkAttachmentDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkAttachmentDescription where
+        type FieldType "format" VkAttachmentDescription = VkFormat
+        type FieldOptional "format" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, format}
+        type FieldIsArray "format" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkAttachmentDescription, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "samples" VkAttachmentDescription where
+        type FieldType "samples" VkAttachmentDescription =
+             VkSampleCountFlagBits
+        type FieldOptional "samples" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samples" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, samples}
+        type FieldIsArray "samples" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samples" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samples" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "loadOp" VkAttachmentDescription where
+        type FieldType "loadOp" VkAttachmentDescription =
+             VkAttachmentLoadOp
+        type FieldOptional "loadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "loadOp" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, loadOp}
+        type FieldIsArray "loadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkAttachmentDescription, loadOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "loadOp" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, loadOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, loadOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "loadOp" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, loadOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "storeOp" VkAttachmentDescription where
+        type FieldType "storeOp" VkAttachmentDescription =
+             VkAttachmentStoreOp
+        type FieldOptional "storeOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storeOp" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, storeOp}
+        type FieldIsArray "storeOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, storeOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storeOp" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, storeOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, storeOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storeOp" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, storeOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "stencilLoadOp" VkAttachmentDescription where
+        type FieldType "stencilLoadOp" VkAttachmentDescription =
+             VkAttachmentLoadOp
+        type FieldOptional "stencilLoadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stencilLoadOp" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, stencilLoadOp}
+        type FieldIsArray "stencilLoadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, stencilLoadOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stencilLoadOp" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, stencilLoadOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, stencilLoadOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stencilLoadOp" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, stencilLoadOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "stencilStoreOp" VkAttachmentDescription where
+        type FieldType "stencilStoreOp" VkAttachmentDescription =
+             VkAttachmentStoreOp
+        type FieldOptional "stencilStoreOp" VkAttachmentDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stencilStoreOp" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, stencilStoreOp}
+        type FieldIsArray "stencilStoreOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, stencilStoreOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stencilStoreOp" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, stencilStoreOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, stencilStoreOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stencilStoreOp" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, stencilStoreOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "initialLayout" VkAttachmentDescription where
+        type FieldType "initialLayout" VkAttachmentDescription =
+             VkImageLayout
+        type FieldOptional "initialLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "initialLayout" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, initialLayout}
+        type FieldIsArray "initialLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, initialLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "initialLayout" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, initialLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, initialLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "initialLayout" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, initialLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "finalLayout" VkAttachmentDescription where
+        type FieldType "finalLayout" VkAttachmentDescription =
+             VkImageLayout
+        type FieldOptional "finalLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "finalLayout" VkAttachmentDescription =
+             #{offset VkAttachmentDescription, finalLayout}
+        type FieldIsArray "finalLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentDescription, finalLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "finalLayout" VkAttachmentDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, finalLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentDescription, finalLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "finalLayout" VkAttachmentDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentDescription, finalLayout}
+
+instance Show VkAttachmentDescription where
+        showsPrec d x
+          = showString "VkAttachmentDescription {" .
+              showString "flags = " .
+                showsPrec d (getField @"flags" x) .
+                  showString ", " .
+                    showString "format = " .
+                      showsPrec d (getField @"format" x) .
+                        showString ", " .
+                          showString "samples = " .
+                            showsPrec d (getField @"samples" x) .
+                              showString ", " .
+                                showString "loadOp = " .
+                                  showsPrec d (getField @"loadOp" x) .
+                                    showString ", " .
+                                      showString "storeOp = " .
+                                        showsPrec d (getField @"storeOp" x) .
+                                          showString ", " .
+                                            showString "stencilLoadOp = " .
+                                              showsPrec d (getField @"stencilLoadOp" x) .
+                                                showString ", " .
+                                                  showString "stencilStoreOp = " .
+                                                    showsPrec d (getField @"stencilStoreOp" x) .
+                                                      showString ", " .
+                                                        showString "initialLayout = " .
+                                                          showsPrec d (getField @"initialLayout" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "finalLayout = " .
+                                                                showsPrec d
+                                                                  (getField @"finalLayout" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkAttachmentReference {
+--   >     uint32_t               attachment;
+--   >     VkImageLayout          layout;
+--   > } VkAttachmentReference;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentReference VkAttachmentReference registry at www.khronos.org>
+data VkAttachmentReference = VkAttachmentReference## Addr##
+                                                    ByteArray##
+
+instance Eq VkAttachmentReference where
+        (VkAttachmentReference## a _) == x@(VkAttachmentReference## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAttachmentReference where
+        (VkAttachmentReference## a _) `compare`
+          x@(VkAttachmentReference## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAttachmentReference where
+        sizeOf ~_ = #{size VkAttachmentReference}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkAttachmentReference}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAttachmentReference where
+        unsafeAddr (VkAttachmentReference## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAttachmentReference## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAttachmentReference## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAttachmentReference where
+        type StructFields VkAttachmentReference = '["attachment", "layout"] -- ' closing tick for hsc2hs
+        type CUnionType VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAttachmentReference = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "attachment" VkAttachmentReference where
+        type FieldType "attachment" VkAttachmentReference = Word32
+        type FieldOptional "attachment" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "attachment" VkAttachmentReference =
+             #{offset VkAttachmentReference, attachment}
+        type FieldIsArray "attachment" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentReference, attachment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachment" VkAttachmentReference where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentReference, attachment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentReference, attachment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachment" VkAttachmentReference where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentReference, attachment}
+
+instance {-# OVERLAPPING #-}
+         HasField "layout" VkAttachmentReference where
+        type FieldType "layout" VkAttachmentReference = VkImageLayout
+        type FieldOptional "layout" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layout" VkAttachmentReference =
+             #{offset VkAttachmentReference, layout}
+        type FieldIsArray "layout" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkAttachmentReference, layout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layout" VkAttachmentReference where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentReference, layout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentReference, layout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layout" VkAttachmentReference where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentReference, layout}
+
+instance Show VkAttachmentReference where
+        showsPrec d x
+          = showString "VkAttachmentReference {" .
+              showString "attachment = " .
+                showsPrec d (getField @"attachment" x) .
+                  showString ", " .
+                    showString "layout = " .
+                      showsPrec d (getField @"layout" x) . showChar '}'
+
+-- | > typedef struct VkAttachmentSampleLocationsEXT {
+--   >     uint32_t                         attachmentIndex;
+--   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
+--   > } VkAttachmentSampleLocationsEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAttachmentSampleLocationsEXT VkAttachmentSampleLocationsEXT registry at www.khronos.org>
+data VkAttachmentSampleLocationsEXT = VkAttachmentSampleLocationsEXT## Addr##
+                                                                      ByteArray##
+
+instance Eq VkAttachmentSampleLocationsEXT where
+        (VkAttachmentSampleLocationsEXT## a _) ==
+          x@(VkAttachmentSampleLocationsEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAttachmentSampleLocationsEXT where
+        (VkAttachmentSampleLocationsEXT## a _) `compare`
+          x@(VkAttachmentSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAttachmentSampleLocationsEXT where
+        sizeOf ~_ = #{size VkAttachmentSampleLocationsEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkAttachmentSampleLocationsEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAttachmentSampleLocationsEXT where
+        unsafeAddr (VkAttachmentSampleLocationsEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAttachmentSampleLocationsEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAttachmentSampleLocationsEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAttachmentSampleLocationsEXT where
+        type StructFields VkAttachmentSampleLocationsEXT =
+             '["attachmentIndex", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
+        type CUnionType VkAttachmentSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAttachmentSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAttachmentSampleLocationsEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "attachmentIndex" VkAttachmentSampleLocationsEXT where
+        type FieldType "attachmentIndex" VkAttachmentSampleLocationsEXT =
+             Word32
+        type FieldOptional "attachmentIndex" VkAttachmentSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "attachmentIndex" VkAttachmentSampleLocationsEXT =
+             #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
+        type FieldIsArray "attachmentIndex" VkAttachmentSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachmentIndex" VkAttachmentSampleLocationsEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentSampleLocationsEXT, attachmentIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachmentIndex" VkAttachmentSampleLocationsEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT where
+        type FieldType "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
+             = VkSampleLocationsInfoEXT
+        type FieldOptional "sampleLocationsInfo"
+               VkAttachmentSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsInfo"
+               VkAttachmentSampleLocationsEXT
+             =
+             #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
+        type FieldIsArray "sampleLocationsInfo"
+               VkAttachmentSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
+
+instance Show VkAttachmentSampleLocationsEXT where
+        showsPrec d x
+          = showString "VkAttachmentSampleLocationsEXT {" .
+              showString "attachmentIndex = " .
+                showsPrec d (getField @"attachmentIndex" x) .
+                  showString ", " .
+                    showString "sampleLocationsInfo = " .
+                      showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc
@@ -0,0 +1,1961 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Bind
+       (VkBindBufferMemoryDeviceGroupInfo(..),
+        VkBindBufferMemoryDeviceGroupInfoKHR, VkBindBufferMemoryInfo(..),
+        VkBindBufferMemoryInfoKHR, VkBindImageMemoryDeviceGroupInfo(..),
+        VkBindImageMemoryDeviceGroupInfoKHR, VkBindImageMemoryInfo(..),
+        VkBindImageMemoryInfoKHR, VkBindImageMemorySwapchainInfoKHR(..),
+        VkBindImagePlaneMemoryInfo(..), VkBindImagePlaneMemoryInfoKHR,
+        VkBindSparseInfo(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlagBits)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer,
+                                                           VkDeviceMemory,
+                                                           VkImage, VkSemaphore,
+                                                           VkSwapchainKHR)
+import           Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
+import           Graphics.Vulkan.Types.Struct.Sparse      (VkSparseBufferMemoryBindInfo,
+                                                           VkSparseImageMemoryBindInfo,
+                                                           VkSparseImageOpaqueMemoryBindInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkBindBufferMemoryDeviceGroupInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         deviceIndexCount;
+--   >     const uint32_t*  pDeviceIndices;
+--   > } VkBindBufferMemoryDeviceGroupInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfo registry at www.khronos.org>
+data VkBindBufferMemoryDeviceGroupInfo = VkBindBufferMemoryDeviceGroupInfo## Addr##
+                                                                            ByteArray##
+
+instance Eq VkBindBufferMemoryDeviceGroupInfo where
+        (VkBindBufferMemoryDeviceGroupInfo## a _) ==
+          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindBufferMemoryDeviceGroupInfo where
+        (VkBindBufferMemoryDeviceGroupInfo## a _) `compare`
+          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindBufferMemoryDeviceGroupInfo where
+        sizeOf ~_ = #{size VkBindBufferMemoryDeviceGroupInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkBindBufferMemoryDeviceGroupInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindBufferMemoryDeviceGroupInfo where
+        unsafeAddr (VkBindBufferMemoryDeviceGroupInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindBufferMemoryDeviceGroupInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindBufferMemoryDeviceGroupInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindBufferMemoryDeviceGroupInfo where
+        type StructFields VkBindBufferMemoryDeviceGroupInfo =
+             '["sType", "pNext", "deviceIndexCount", "pDeviceIndices"] -- ' closing tick for hsc2hs
+        type CUnionType VkBindBufferMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindBufferMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindBufferMemoryDeviceGroupInfo =
+             '[VkBindBufferMemoryInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBindBufferMemoryDeviceGroupInfo where
+        type FieldType "sType" VkBindBufferMemoryDeviceGroupInfo =
+             VkStructureType
+        type FieldOptional "sType" VkBindBufferMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindBufferMemoryDeviceGroupInfo =
+             #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
+        type FieldIsArray "sType" VkBindBufferMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindBufferMemoryDeviceGroupInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindBufferMemoryDeviceGroupInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBindBufferMemoryDeviceGroupInfo where
+        type FieldType "pNext" VkBindBufferMemoryDeviceGroupInfo = Ptr Void
+        type FieldOptional "pNext" VkBindBufferMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindBufferMemoryDeviceGroupInfo =
+             #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
+        type FieldIsArray "pNext" VkBindBufferMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindBufferMemoryDeviceGroupInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindBufferMemoryDeviceGroupInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo where
+        type FieldType "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
+             = Word32
+        type FieldOptional "deviceIndexCount"
+               VkBindBufferMemoryDeviceGroupInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "deviceIndexCount"
+               VkBindBufferMemoryDeviceGroupInfo
+             =
+             #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
+        type FieldIsArray "deviceIndexCount"
+               VkBindBufferMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo where
+        type FieldType "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo =
+             Ptr Word32
+        type FieldOptional "pDeviceIndices"
+               VkBindBufferMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
+             =
+             #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
+        type FieldIsArray "pDeviceIndices"
+               VkBindBufferMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance Show VkBindBufferMemoryDeviceGroupInfo where
+        showsPrec d x
+          = showString "VkBindBufferMemoryDeviceGroupInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "deviceIndexCount = " .
+                            showsPrec d (getField @"deviceIndexCount" x) .
+                              showString ", " .
+                                showString "pDeviceIndices = " .
+                                  showsPrec d (getField @"pDeviceIndices" x) . showChar '}'
+
+-- | Alias for `VkBindBufferMemoryDeviceGroupInfo`
+type VkBindBufferMemoryDeviceGroupInfoKHR =
+     VkBindBufferMemoryDeviceGroupInfo
+
+-- | > typedef struct VkBindBufferMemoryInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBuffer                         buffer;
+--   >     VkDeviceMemory                   memory;
+--   >     VkDeviceSize                     memoryOffset;
+--   > } VkBindBufferMemoryInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindBufferMemoryInfo VkBindBufferMemoryInfo registry at www.khronos.org>
+data VkBindBufferMemoryInfo = VkBindBufferMemoryInfo## Addr##
+                                                      ByteArray##
+
+instance Eq VkBindBufferMemoryInfo where
+        (VkBindBufferMemoryInfo## a _) == x@(VkBindBufferMemoryInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindBufferMemoryInfo where
+        (VkBindBufferMemoryInfo## a _) `compare`
+          x@(VkBindBufferMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindBufferMemoryInfo where
+        sizeOf ~_ = #{size VkBindBufferMemoryInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBindBufferMemoryInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindBufferMemoryInfo where
+        unsafeAddr (VkBindBufferMemoryInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindBufferMemoryInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindBufferMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindBufferMemoryInfo where
+        type StructFields VkBindBufferMemoryInfo =
+             '["sType", "pNext", "buffer", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
+        type CUnionType VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindBufferMemoryInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBindBufferMemoryInfo where
+        type FieldType "sType" VkBindBufferMemoryInfo = VkStructureType
+        type FieldOptional "sType" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindBufferMemoryInfo =
+             #{offset VkBindBufferMemoryInfo, sType}
+        type FieldIsArray "sType" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindBufferMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindBufferMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindBufferMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBindBufferMemoryInfo where
+        type FieldType "pNext" VkBindBufferMemoryInfo = Ptr Void
+        type FieldOptional "pNext" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindBufferMemoryInfo =
+             #{offset VkBindBufferMemoryInfo, pNext}
+        type FieldIsArray "pNext" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindBufferMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindBufferMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindBufferMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkBindBufferMemoryInfo where
+        type FieldType "buffer" VkBindBufferMemoryInfo = VkBuffer
+        type FieldOptional "buffer" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkBindBufferMemoryInfo =
+             #{offset VkBindBufferMemoryInfo, buffer}
+        type FieldIsArray "buffer" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindBufferMemoryInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkBindBufferMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkBindBufferMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "memory" VkBindBufferMemoryInfo where
+        type FieldType "memory" VkBindBufferMemoryInfo = VkDeviceMemory
+        type FieldOptional "memory" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkBindBufferMemoryInfo =
+             #{offset VkBindBufferMemoryInfo, memory}
+        type FieldIsArray "memory" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindBufferMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkBindBufferMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkBindBufferMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryOffset" VkBindBufferMemoryInfo where
+        type FieldType "memoryOffset" VkBindBufferMemoryInfo = VkDeviceSize
+        type FieldOptional "memoryOffset" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryOffset" VkBindBufferMemoryInfo =
+             #{offset VkBindBufferMemoryInfo, memoryOffset}
+        type FieldIsArray "memoryOffset" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindBufferMemoryInfo, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryOffset" VkBindBufferMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, memoryOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindBufferMemoryInfo, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryOffset" VkBindBufferMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindBufferMemoryInfo, memoryOffset}
+
+instance Show VkBindBufferMemoryInfo where
+        showsPrec d x
+          = showString "VkBindBufferMemoryInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "buffer = " .
+                            showsPrec d (getField @"buffer" x) .
+                              showString ", " .
+                                showString "memory = " .
+                                  showsPrec d (getField @"memory" x) .
+                                    showString ", " .
+                                      showString "memoryOffset = " .
+                                        showsPrec d (getField @"memoryOffset" x) . showChar '}'
+
+-- | Alias for `VkBindBufferMemoryInfo`
+type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo
+
+-- | > typedef struct VkBindImageMemoryDeviceGroupInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         deviceIndexCount;
+--   >     const uint32_t*  pDeviceIndices;
+--   >     uint32_t         splitInstanceBindRegionCount;
+--   >     const VkRect2D*  pSplitInstanceBindRegions;
+--   > } VkBindImageMemoryDeviceGroupInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfo registry at www.khronos.org>
+data VkBindImageMemoryDeviceGroupInfo = VkBindImageMemoryDeviceGroupInfo## Addr##
+                                                                          ByteArray##
+
+instance Eq VkBindImageMemoryDeviceGroupInfo where
+        (VkBindImageMemoryDeviceGroupInfo## a _) ==
+          x@(VkBindImageMemoryDeviceGroupInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindImageMemoryDeviceGroupInfo where
+        (VkBindImageMemoryDeviceGroupInfo## a _) `compare`
+          x@(VkBindImageMemoryDeviceGroupInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindImageMemoryDeviceGroupInfo where
+        sizeOf ~_ = #{size VkBindImageMemoryDeviceGroupInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkBindImageMemoryDeviceGroupInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindImageMemoryDeviceGroupInfo where
+        unsafeAddr (VkBindImageMemoryDeviceGroupInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindImageMemoryDeviceGroupInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindImageMemoryDeviceGroupInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindImageMemoryDeviceGroupInfo where
+        type StructFields VkBindImageMemoryDeviceGroupInfo =
+             '["sType", "pNext", "deviceIndexCount", "pDeviceIndices", -- ' closing tick for hsc2hs
+               "splitInstanceBindRegionCount", "pSplitInstanceBindRegions"]
+        type CUnionType VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindImageMemoryDeviceGroupInfo =
+             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBindImageMemoryDeviceGroupInfo where
+        type FieldType "sType" VkBindImageMemoryDeviceGroupInfo =
+             VkStructureType
+        type FieldOptional "sType" VkBindImageMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindImageMemoryDeviceGroupInfo =
+             #{offset VkBindImageMemoryDeviceGroupInfo, sType}
+        type FieldIsArray "sType" VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindImageMemoryDeviceGroupInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindImageMemoryDeviceGroupInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBindImageMemoryDeviceGroupInfo where
+        type FieldType "pNext" VkBindImageMemoryDeviceGroupInfo = Ptr Void
+        type FieldOptional "pNext" VkBindImageMemoryDeviceGroupInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindImageMemoryDeviceGroupInfo =
+             #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
+        type FieldIsArray "pNext" VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindImageMemoryDeviceGroupInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindImageMemoryDeviceGroupInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo where
+        type FieldType "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
+             = Word32
+        type FieldOptional "deviceIndexCount"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "deviceIndexCount"
+               VkBindImageMemoryDeviceGroupInfo
+             =
+             #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
+        type FieldIsArray "deviceIndexCount"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo where
+        type FieldType "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo =
+             Ptr Word32
+        type FieldOptional "pDeviceIndices"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
+             =
+             #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
+        type FieldIsArray "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         HasField "splitInstanceBindRegionCount"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        type FieldType "splitInstanceBindRegionCount"
+               VkBindImageMemoryDeviceGroupInfo
+             = Word32
+        type FieldOptional "splitInstanceBindRegionCount"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "splitInstanceBindRegionCount"
+               VkBindImageMemoryDeviceGroupInfo
+             =
+             #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
+        type FieldIsArray "splitInstanceBindRegionCount"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "splitInstanceBindRegionCount"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "splitInstanceBindRegionCount"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSplitInstanceBindRegions"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        type FieldType "pSplitInstanceBindRegions"
+               VkBindImageMemoryDeviceGroupInfo
+             = Ptr VkRect2D
+        type FieldOptional "pSplitInstanceBindRegions"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSplitInstanceBindRegions"
+               VkBindImageMemoryDeviceGroupInfo
+             =
+             #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
+        type FieldIsArray "pSplitInstanceBindRegions"
+               VkBindImageMemoryDeviceGroupInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSplitInstanceBindRegions"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSplitInstanceBindRegions"
+           VkBindImageMemoryDeviceGroupInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
+
+instance Show VkBindImageMemoryDeviceGroupInfo where
+        showsPrec d x
+          = showString "VkBindImageMemoryDeviceGroupInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "deviceIndexCount = " .
+                            showsPrec d (getField @"deviceIndexCount" x) .
+                              showString ", " .
+                                showString "pDeviceIndices = " .
+                                  showsPrec d (getField @"pDeviceIndices" x) .
+                                    showString ", " .
+                                      showString "splitInstanceBindRegionCount = " .
+                                        showsPrec d (getField @"splitInstanceBindRegionCount" x) .
+                                          showString ", " .
+                                            showString "pSplitInstanceBindRegions = " .
+                                              showsPrec d (getField @"pSplitInstanceBindRegions" x)
+                                                . showChar '}'
+
+-- | Alias for `VkBindImageMemoryDeviceGroupInfo`
+type VkBindImageMemoryDeviceGroupInfoKHR =
+     VkBindImageMemoryDeviceGroupInfo
+
+-- | > typedef struct VkBindImageMemoryInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkImage                          image;
+--   >     VkDeviceMemory                   memory;
+--   >     VkDeviceSize                     memoryOffset;
+--   > } VkBindImageMemoryInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemoryInfo VkBindImageMemoryInfo registry at www.khronos.org>
+data VkBindImageMemoryInfo = VkBindImageMemoryInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkBindImageMemoryInfo where
+        (VkBindImageMemoryInfo## a _) == x@(VkBindImageMemoryInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindImageMemoryInfo where
+        (VkBindImageMemoryInfo## a _) `compare`
+          x@(VkBindImageMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindImageMemoryInfo where
+        sizeOf ~_ = #{size VkBindImageMemoryInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBindImageMemoryInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindImageMemoryInfo where
+        unsafeAddr (VkBindImageMemoryInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindImageMemoryInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindImageMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindImageMemoryInfo where
+        type StructFields VkBindImageMemoryInfo =
+             '["sType", "pNext", "image", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
+        type CUnionType VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindImageMemoryInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkBindImageMemoryInfo
+         where
+        type FieldType "sType" VkBindImageMemoryInfo = VkStructureType
+        type FieldOptional "sType" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindImageMemoryInfo =
+             #{offset VkBindImageMemoryInfo, sType}
+        type FieldIsArray "sType" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindImageMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindImageMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindImageMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkBindImageMemoryInfo
+         where
+        type FieldType "pNext" VkBindImageMemoryInfo = Ptr Void
+        type FieldOptional "pNext" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindImageMemoryInfo =
+             #{offset VkBindImageMemoryInfo, pNext}
+        type FieldIsArray "pNext" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindImageMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindImageMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindImageMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "image" VkBindImageMemoryInfo
+         where
+        type FieldType "image" VkBindImageMemoryInfo = VkImage
+        type FieldOptional "image" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkBindImageMemoryInfo =
+             #{offset VkBindImageMemoryInfo, image}
+        type FieldIsArray "image" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindImageMemoryInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkBindImageMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkBindImageMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryInfo, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "memory" VkBindImageMemoryInfo where
+        type FieldType "memory" VkBindImageMemoryInfo = VkDeviceMemory
+        type FieldOptional "memory" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkBindImageMemoryInfo =
+             #{offset VkBindImageMemoryInfo, memory}
+        type FieldIsArray "memory" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindImageMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkBindImageMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkBindImageMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryInfo, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryOffset" VkBindImageMemoryInfo where
+        type FieldType "memoryOffset" VkBindImageMemoryInfo = VkDeviceSize
+        type FieldOptional "memoryOffset" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryOffset" VkBindImageMemoryInfo =
+             #{offset VkBindImageMemoryInfo, memoryOffset}
+        type FieldIsArray "memoryOffset" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemoryInfo, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryOffset" VkBindImageMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, memoryOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemoryInfo, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryOffset" VkBindImageMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemoryInfo, memoryOffset}
+
+instance Show VkBindImageMemoryInfo where
+        showsPrec d x
+          = showString "VkBindImageMemoryInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "image = " .
+                            showsPrec d (getField @"image" x) .
+                              showString ", " .
+                                showString "memory = " .
+                                  showsPrec d (getField @"memory" x) .
+                                    showString ", " .
+                                      showString "memoryOffset = " .
+                                        showsPrec d (getField @"memoryOffset" x) . showChar '}'
+
+-- | Alias for `VkBindImageMemoryInfo`
+type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo
+
+-- | > typedef struct VkBindImageMemorySwapchainInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSwapchainKHR swapchain;
+--   >     uint32_t                         imageIndex;
+--   > } VkBindImageMemorySwapchainInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImageMemorySwapchainInfoKHR VkBindImageMemorySwapchainInfoKHR registry at www.khronos.org>
+data VkBindImageMemorySwapchainInfoKHR = VkBindImageMemorySwapchainInfoKHR## Addr##
+                                                                            ByteArray##
+
+instance Eq VkBindImageMemorySwapchainInfoKHR where
+        (VkBindImageMemorySwapchainInfoKHR## a _) ==
+          x@(VkBindImageMemorySwapchainInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindImageMemorySwapchainInfoKHR where
+        (VkBindImageMemorySwapchainInfoKHR## a _) `compare`
+          x@(VkBindImageMemorySwapchainInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindImageMemorySwapchainInfoKHR where
+        sizeOf ~_ = #{size VkBindImageMemorySwapchainInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkBindImageMemorySwapchainInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindImageMemorySwapchainInfoKHR where
+        unsafeAddr (VkBindImageMemorySwapchainInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindImageMemorySwapchainInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindImageMemorySwapchainInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindImageMemorySwapchainInfoKHR where
+        type StructFields VkBindImageMemorySwapchainInfoKHR =
+             '["sType", "pNext", "swapchain", "imageIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkBindImageMemorySwapchainInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindImageMemorySwapchainInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindImageMemorySwapchainInfoKHR =
+             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBindImageMemorySwapchainInfoKHR where
+        type FieldType "sType" VkBindImageMemorySwapchainInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindImageMemorySwapchainInfoKHR =
+             #{offset VkBindImageMemorySwapchainInfoKHR, sType}
+        type FieldIsArray "sType" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemorySwapchainInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindImageMemorySwapchainInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindImageMemorySwapchainInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBindImageMemorySwapchainInfoKHR where
+        type FieldType "pNext" VkBindImageMemorySwapchainInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindImageMemorySwapchainInfoKHR =
+             #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
+        type FieldIsArray "pNext" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindImageMemorySwapchainInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindImageMemorySwapchainInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchain" VkBindImageMemorySwapchainInfoKHR where
+        type FieldType "swapchain" VkBindImageMemorySwapchainInfoKHR =
+             VkSwapchainKHR
+        type FieldOptional "swapchain" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "swapchain" VkBindImageMemorySwapchainInfoKHR =
+             #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
+        type FieldIsArray "swapchain" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchain" VkBindImageMemorySwapchainInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, swapchain})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchain" VkBindImageMemorySwapchainInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
+        type FieldType "imageIndex" VkBindImageMemorySwapchainInfoKHR =
+             Word32
+        type FieldOptional "imageIndex" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageIndex" VkBindImageMemorySwapchainInfoKHR =
+             #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
+        type FieldIsArray "imageIndex" VkBindImageMemorySwapchainInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
+
+instance Show VkBindImageMemorySwapchainInfoKHR where
+        showsPrec d x
+          = showString "VkBindImageMemorySwapchainInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchain = " .
+                            showsPrec d (getField @"swapchain" x) .
+                              showString ", " .
+                                showString "imageIndex = " .
+                                  showsPrec d (getField @"imageIndex" x) . showChar '}'
+
+-- | > typedef struct VkBindImagePlaneMemoryInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkImageAspectFlagBits            planeAspect;
+--   > } VkBindImagePlaneMemoryInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfo registry at www.khronos.org>
+data VkBindImagePlaneMemoryInfo = VkBindImagePlaneMemoryInfo## Addr##
+                                                              ByteArray##
+
+instance Eq VkBindImagePlaneMemoryInfo where
+        (VkBindImagePlaneMemoryInfo## a _) ==
+          x@(VkBindImagePlaneMemoryInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindImagePlaneMemoryInfo where
+        (VkBindImagePlaneMemoryInfo## a _) `compare`
+          x@(VkBindImagePlaneMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindImagePlaneMemoryInfo where
+        sizeOf ~_ = #{size VkBindImagePlaneMemoryInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBindImagePlaneMemoryInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindImagePlaneMemoryInfo where
+        unsafeAddr (VkBindImagePlaneMemoryInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindImagePlaneMemoryInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindImagePlaneMemoryInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindImagePlaneMemoryInfo where
+        type StructFields VkBindImagePlaneMemoryInfo =
+             '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
+        type CUnionType VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindImagePlaneMemoryInfo =
+             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBindImagePlaneMemoryInfo where
+        type FieldType "sType" VkBindImagePlaneMemoryInfo = VkStructureType
+        type FieldOptional "sType" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindImagePlaneMemoryInfo =
+             #{offset VkBindImagePlaneMemoryInfo, sType}
+        type FieldIsArray "sType" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImagePlaneMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBindImagePlaneMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBindImagePlaneMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBindImagePlaneMemoryInfo where
+        type FieldType "pNext" VkBindImagePlaneMemoryInfo = Ptr Void
+        type FieldOptional "pNext" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindImagePlaneMemoryInfo =
+             #{offset VkBindImagePlaneMemoryInfo, pNext}
+        type FieldIsArray "pNext" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImagePlaneMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBindImagePlaneMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBindImagePlaneMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "planeAspect" VkBindImagePlaneMemoryInfo where
+        type FieldType "planeAspect" VkBindImagePlaneMemoryInfo =
+             VkImageAspectFlagBits
+        type FieldOptional "planeAspect" VkBindImagePlaneMemoryInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "planeAspect" VkBindImagePlaneMemoryInfo =
+             #{offset VkBindImagePlaneMemoryInfo, planeAspect}
+        type FieldIsArray "planeAspect" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindImagePlaneMemoryInfo, planeAspect}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "planeAspect" VkBindImagePlaneMemoryInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, planeAspect})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, planeAspect}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "planeAspect" VkBindImagePlaneMemoryInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, planeAspect}
+
+instance Show VkBindImagePlaneMemoryInfo where
+        showsPrec d x
+          = showString "VkBindImagePlaneMemoryInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "planeAspect = " .
+                            showsPrec d (getField @"planeAspect" x) . showChar '}'
+
+-- | Alias for `VkBindImagePlaneMemoryInfo`
+type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo
+
+-- | > typedef struct VkBindSparseInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     uint32_t               waitSemaphoreCount;
+--   >     const VkSemaphore*     pWaitSemaphores;
+--   >     uint32_t               bufferBindCount;
+--   >     const VkSparseBufferMemoryBindInfo* pBufferBinds;
+--   >     uint32_t               imageOpaqueBindCount;
+--   >     const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
+--   >     uint32_t               imageBindCount;
+--   >     const VkSparseImageMemoryBindInfo* pImageBinds;
+--   >     uint32_t               signalSemaphoreCount;
+--   >     const VkSemaphore*     pSignalSemaphores;
+--   > } VkBindSparseInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBindSparseInfo VkBindSparseInfo registry at www.khronos.org>
+data VkBindSparseInfo = VkBindSparseInfo## Addr## ByteArray##
+
+instance Eq VkBindSparseInfo where
+        (VkBindSparseInfo## a _) == x@(VkBindSparseInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBindSparseInfo where
+        (VkBindSparseInfo## a _) `compare` x@(VkBindSparseInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBindSparseInfo where
+        sizeOf ~_ = #{size VkBindSparseInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBindSparseInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBindSparseInfo where
+        unsafeAddr (VkBindSparseInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBindSparseInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBindSparseInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBindSparseInfo where
+        type StructFields VkBindSparseInfo =
+             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
+               "bufferBindCount", "pBufferBinds", "imageOpaqueBindCount",
+               "pImageOpaqueBinds", "imageBindCount", "pImageBinds",
+               "signalSemaphoreCount", "pSignalSemaphores"]
+        type CUnionType VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBindSparseInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkBindSparseInfo
+         where
+        type FieldType "sType" VkBindSparseInfo = VkStructureType
+        type FieldOptional "sType" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, sType}
+        type FieldIsArray "sType" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkBindSparseInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-} CanWriteField "sType" VkBindSparseInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkBindSparseInfo
+         where
+        type FieldType "pNext" VkBindSparseInfo = Ptr Void
+        type FieldOptional "pNext" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pNext}
+        type FieldIsArray "pNext" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkBindSparseInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanWriteField "pNext" VkBindSparseInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "waitSemaphoreCount" VkBindSparseInfo where
+        type FieldType "waitSemaphoreCount" VkBindSparseInfo = Word32
+        type FieldOptional "waitSemaphoreCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "waitSemaphoreCount" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, waitSemaphoreCount}
+        type FieldIsArray "waitSemaphoreCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "waitSemaphoreCount" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, waitSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "waitSemaphoreCount" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitSemaphores" VkBindSparseInfo where
+        type FieldType "pWaitSemaphores" VkBindSparseInfo = Ptr VkSemaphore
+        type FieldOptional "pWaitSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitSemaphores" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pWaitSemaphores}
+        type FieldIsArray "pWaitSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitSemaphores" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pWaitSemaphores})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitSemaphores" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferBindCount" VkBindSparseInfo where
+        type FieldType "bufferBindCount" VkBindSparseInfo = Word32
+        type FieldOptional "bufferBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "bufferBindCount" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, bufferBindCount}
+        type FieldIsArray "bufferBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, bufferBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferBindCount" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, bufferBindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, bufferBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferBindCount" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, bufferBindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBufferBinds" VkBindSparseInfo where
+        type FieldType "pBufferBinds" VkBindSparseInfo =
+             Ptr VkSparseBufferMemoryBindInfo
+        type FieldOptional "pBufferBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBufferBinds" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pBufferBinds}
+        type FieldIsArray "pBufferBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindSparseInfo, pBufferBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBufferBinds" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pBufferBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pBufferBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBufferBinds" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pBufferBinds}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageOpaqueBindCount" VkBindSparseInfo where
+        type FieldType "imageOpaqueBindCount" VkBindSparseInfo = Word32
+        type FieldOptional "imageOpaqueBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "imageOpaqueBindCount" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, imageOpaqueBindCount}
+        type FieldIsArray "imageOpaqueBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, imageOpaqueBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageOpaqueBindCount" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, imageOpaqueBindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, imageOpaqueBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageOpaqueBindCount" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, imageOpaqueBindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pImageOpaqueBinds" VkBindSparseInfo where
+        type FieldType "pImageOpaqueBinds" VkBindSparseInfo =
+             Ptr VkSparseImageOpaqueMemoryBindInfo
+        type FieldOptional "pImageOpaqueBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pImageOpaqueBinds" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pImageOpaqueBinds}
+        type FieldIsArray "pImageOpaqueBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, pImageOpaqueBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pImageOpaqueBinds" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pImageOpaqueBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pImageOpaqueBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pImageOpaqueBinds" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pImageOpaqueBinds}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageBindCount" VkBindSparseInfo where
+        type FieldType "imageBindCount" VkBindSparseInfo = Word32
+        type FieldOptional "imageBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "imageBindCount" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, imageBindCount}
+        type FieldIsArray "imageBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, imageBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageBindCount" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, imageBindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, imageBindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageBindCount" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, imageBindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pImageBinds" VkBindSparseInfo where
+        type FieldType "pImageBinds" VkBindSparseInfo =
+             Ptr VkSparseImageMemoryBindInfo
+        type FieldOptional "pImageBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pImageBinds" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pImageBinds}
+        type FieldIsArray "pImageBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBindSparseInfo, pImageBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pImageBinds" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pImageBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pImageBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pImageBinds" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pImageBinds}
+
+instance {-# OVERLAPPING #-}
+         HasField "signalSemaphoreCount" VkBindSparseInfo where
+        type FieldType "signalSemaphoreCount" VkBindSparseInfo = Word32
+        type FieldOptional "signalSemaphoreCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "signalSemaphoreCount" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, signalSemaphoreCount}
+        type FieldIsArray "signalSemaphoreCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "signalSemaphoreCount" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, signalSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "signalSemaphoreCount" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSignalSemaphores" VkBindSparseInfo where
+        type FieldType "pSignalSemaphores" VkBindSparseInfo =
+             Ptr VkSemaphore
+        type FieldOptional "pSignalSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSignalSemaphores" VkBindSparseInfo =
+             #{offset VkBindSparseInfo, pSignalSemaphores}
+        type FieldIsArray "pSignalSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBindSparseInfo, pSignalSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSignalSemaphores" VkBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pSignalSemaphores})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBindSparseInfo, pSignalSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSignalSemaphores" VkBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBindSparseInfo, pSignalSemaphores}
+
+instance Show VkBindSparseInfo where
+        showsPrec d x
+          = showString "VkBindSparseInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "waitSemaphoreCount = " .
+                            showsPrec d (getField @"waitSemaphoreCount" x) .
+                              showString ", " .
+                                showString "pWaitSemaphores = " .
+                                  showsPrec d (getField @"pWaitSemaphores" x) .
+                                    showString ", " .
+                                      showString "bufferBindCount = " .
+                                        showsPrec d (getField @"bufferBindCount" x) .
+                                          showString ", " .
+                                            showString "pBufferBinds = " .
+                                              showsPrec d (getField @"pBufferBinds" x) .
+                                                showString ", " .
+                                                  showString "imageOpaqueBindCount = " .
+                                                    showsPrec d (getField @"imageOpaqueBindCount" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pImageOpaqueBinds = " .
+                                                          showsPrec d
+                                                            (getField @"pImageOpaqueBinds" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "imageBindCount = " .
+                                                                showsPrec d
+                                                                  (getField @"imageBindCount" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "pImageBinds = " .
+                                                                      showsPrec d
+                                                                        (getField @"pImageBinds" x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "signalSemaphoreCount = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"signalSemaphoreCount"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "pSignalSemaphores = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"pSignalSemaphores"
+                                                                                       x)
+                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Buffer.hsc
@@ -0,0 +1,1661 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Buffer
+       (VkBufferCopy(..), VkBufferCreateInfo(..), VkBufferImageCopy(..),
+        VkBufferMemoryBarrier(..), VkBufferMemoryRequirementsInfo2(..),
+        VkBufferMemoryRequirementsInfo2KHR, VkBufferViewCreateInfo(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import           Graphics.Vulkan.Types.Bitmasks           (VkBufferViewCreateFlags)
+import           Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
+import           Graphics.Vulkan.Types.Enum.Buffer        (VkBufferCreateFlags,
+                                                           VkBufferUsageFlags)
+import           Graphics.Vulkan.Types.Enum.Format        (VkFormat)
+import           Graphics.Vulkan.Types.Enum.SharingMode   (VkSharingMode)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer)
+import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import           Graphics.Vulkan.Types.Struct.Image       (VkImageSubresourceLayers)
+import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkBufferCopy {
+--   >     VkDeviceSize           srcOffset;
+--   >     VkDeviceSize           dstOffset;
+--   >     VkDeviceSize           size;
+--   > } VkBufferCopy;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferCopy VkBufferCopy registry at www.khronos.org>
+data VkBufferCopy = VkBufferCopy## Addr## ByteArray##
+
+instance Eq VkBufferCopy where
+        (VkBufferCopy## a _) == x@(VkBufferCopy## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferCopy where
+        (VkBufferCopy## a _) `compare` x@(VkBufferCopy## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferCopy where
+        sizeOf ~_ = #{size VkBufferCopy}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBufferCopy}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferCopy where
+        unsafeAddr (VkBufferCopy## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferCopy## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferCopy## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferCopy where
+        type StructFields VkBufferCopy =
+             '["srcOffset", "dstOffset", "size"] -- ' closing tick for hsc2hs
+        type CUnionType VkBufferCopy = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferCopy = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferCopy = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "srcOffset" VkBufferCopy
+         where
+        type FieldType "srcOffset" VkBufferCopy = VkDeviceSize
+        type FieldOptional "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcOffset" VkBufferCopy =
+             #{offset VkBufferCopy, srcOffset}
+        type FieldIsArray "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} CanReadField "srcOffset" VkBufferCopy
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, srcOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkBufferCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} HasField "dstOffset" VkBufferCopy
+         where
+        type FieldType "dstOffset" VkBufferCopy = VkDeviceSize
+        type FieldOptional "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstOffset" VkBufferCopy =
+             #{offset VkBufferCopy, dstOffset}
+        type FieldIsArray "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkBufferCopy
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, dstOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkBufferCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkBufferCopy where
+        type FieldType "size" VkBufferCopy = VkDeviceSize
+        type FieldOptional "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkBufferCopy =
+             #{offset VkBufferCopy, size}
+        type FieldIsArray "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCopy, size}
+
+instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCopy, size}
+
+instance {-# OVERLAPPING #-} CanWriteField "size" VkBufferCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCopy, size}
+
+instance Show VkBufferCopy where
+        showsPrec d x
+          = showString "VkBufferCopy {" .
+              showString "srcOffset = " .
+                showsPrec d (getField @"srcOffset" x) .
+                  showString ", " .
+                    showString "dstOffset = " .
+                      showsPrec d (getField @"dstOffset" x) .
+                        showString ", " .
+                          showString "size = " .
+                            showsPrec d (getField @"size" x) . showChar '}'
+
+-- | > typedef struct VkBufferCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkBufferCreateFlags    flags;
+--   >     VkDeviceSize           size;
+--   >     VkBufferUsageFlags     usage;
+--   >     VkSharingMode          sharingMode;
+--   >     uint32_t               queueFamilyIndexCount;
+--   >     const uint32_t*        pQueueFamilyIndices;
+--   > } VkBufferCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferCreateInfo VkBufferCreateInfo registry at www.khronos.org>
+data VkBufferCreateInfo = VkBufferCreateInfo## Addr## ByteArray##
+
+instance Eq VkBufferCreateInfo where
+        (VkBufferCreateInfo## a _) == x@(VkBufferCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferCreateInfo where
+        (VkBufferCreateInfo## a _) `compare` x@(VkBufferCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferCreateInfo where
+        sizeOf ~_ = #{size VkBufferCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBufferCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferCreateInfo where
+        unsafeAddr (VkBufferCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferCreateInfo where
+        type StructFields VkBufferCreateInfo =
+             '["sType", "pNext", "flags", "size", "usage", "sharingMode", -- ' closing tick for hsc2hs
+               "queueFamilyIndexCount", "pQueueFamilyIndices"]
+        type CUnionType VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkBufferCreateInfo
+         where
+        type FieldType "sType" VkBufferCreateInfo = VkStructureType
+        type FieldOptional "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, sType}
+        type FieldIsArray "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkBufferCreateInfo
+         where
+        type FieldType "pNext" VkBufferCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, pNext}
+        type FieldIsArray "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkBufferCreateInfo
+         where
+        type FieldType "flags" VkBufferCreateInfo = VkBufferCreateFlags
+        type FieldOptional "flags" VkBufferCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, flags}
+        type FieldIsArray "flags" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} HasField "size" VkBufferCreateInfo
+         where
+        type FieldType "size" VkBufferCreateInfo = VkDeviceSize
+        type FieldOptional "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, size}
+        type FieldIsArray "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, size}
+
+instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, size}
+
+instance {-# OVERLAPPING #-} HasField "usage" VkBufferCreateInfo
+         where
+        type FieldType "usage" VkBufferCreateInfo = VkBufferUsageFlags
+        type FieldOptional "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, usage}
+        type FieldIsArray "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "sharingMode" VkBufferCreateInfo where
+        type FieldType "sharingMode" VkBufferCreateInfo = VkSharingMode
+        type FieldOptional "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sharingMode" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, sharingMode}
+        type FieldIsArray "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sharingMode" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, sharingMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sharingMode" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndexCount" VkBufferCreateInfo where
+        type FieldType "queueFamilyIndexCount" VkBufferCreateInfo = Word32
+        type FieldOptional "queueFamilyIndexCount" VkBufferCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndexCount" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, queueFamilyIndexCount}
+        type FieldIsArray "queueFamilyIndexCount" VkBufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndexCount" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, queueFamilyIndexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndexCount" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueueFamilyIndices" VkBufferCreateInfo where
+        type FieldType "pQueueFamilyIndices" VkBufferCreateInfo =
+             Ptr Word32
+        type FieldOptional "pQueueFamilyIndices" VkBufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pQueueFamilyIndices" VkBufferCreateInfo =
+             #{offset VkBufferCreateInfo, pQueueFamilyIndices}
+        type FieldIsArray "pQueueFamilyIndices" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferCreateInfo, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueueFamilyIndices" VkBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, pQueueFamilyIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferCreateInfo, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueueFamilyIndices" VkBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferCreateInfo, pQueueFamilyIndices}
+
+instance Show VkBufferCreateInfo where
+        showsPrec d x
+          = showString "VkBufferCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "size = " .
+                                  showsPrec d (getField @"size" x) .
+                                    showString ", " .
+                                      showString "usage = " .
+                                        showsPrec d (getField @"usage" x) .
+                                          showString ", " .
+                                            showString "sharingMode = " .
+                                              showsPrec d (getField @"sharingMode" x) .
+                                                showString ", " .
+                                                  showString "queueFamilyIndexCount = " .
+                                                    showsPrec d
+                                                      (getField @"queueFamilyIndexCount" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pQueueFamilyIndices = " .
+                                                          showsPrec d
+                                                            (getField @"pQueueFamilyIndices" x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkBufferImageCopy {
+--   >     VkDeviceSize           bufferOffset;
+--   >     uint32_t               bufferRowLength;
+--   >     uint32_t               bufferImageHeight;
+--   >     VkImageSubresourceLayers imageSubresource;
+--   >     VkOffset3D             imageOffset;
+--   >     VkExtent3D             imageExtent;
+--   > } VkBufferImageCopy;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferImageCopy VkBufferImageCopy registry at www.khronos.org>
+data VkBufferImageCopy = VkBufferImageCopy## Addr## ByteArray##
+
+instance Eq VkBufferImageCopy where
+        (VkBufferImageCopy## a _) == x@(VkBufferImageCopy## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferImageCopy where
+        (VkBufferImageCopy## a _) `compare` x@(VkBufferImageCopy## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferImageCopy where
+        sizeOf ~_ = #{size VkBufferImageCopy}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBufferImageCopy}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferImageCopy where
+        unsafeAddr (VkBufferImageCopy## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferImageCopy## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferImageCopy## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferImageCopy where
+        type StructFields VkBufferImageCopy =
+             '["bufferOffset", "bufferRowLength", "bufferImageHeight", -- ' closing tick for hsc2hs
+               "imageSubresource", "imageOffset", "imageExtent"]
+        type CUnionType VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferImageCopy = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferOffset" VkBufferImageCopy where
+        type FieldType "bufferOffset" VkBufferImageCopy = VkDeviceSize
+        type FieldOptional "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bufferOffset" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, bufferOffset}
+        type FieldIsArray "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferImageCopy, bufferOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferOffset" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, bufferOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferOffset" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, bufferOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferRowLength" VkBufferImageCopy where
+        type FieldType "bufferRowLength" VkBufferImageCopy = Word32
+        type FieldOptional "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bufferRowLength" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, bufferRowLength}
+        type FieldIsArray "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferImageCopy, bufferRowLength}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferRowLength" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferRowLength})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, bufferRowLength}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferRowLength" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, bufferRowLength}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferImageHeight" VkBufferImageCopy where
+        type FieldType "bufferImageHeight" VkBufferImageCopy = Word32
+        type FieldOptional "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bufferImageHeight" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, bufferImageHeight}
+        type FieldIsArray "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferImageCopy, bufferImageHeight}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferImageHeight" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferImageHeight})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, bufferImageHeight}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferImageHeight" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, bufferImageHeight}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageSubresource" VkBufferImageCopy where
+        type FieldType "imageSubresource" VkBufferImageCopy =
+             VkImageSubresourceLayers
+        type FieldOptional "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageSubresource" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, imageSubresource}
+        type FieldIsArray "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferImageCopy, imageSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageSubresource" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, imageSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageSubresource" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, imageSubresource}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageOffset" VkBufferImageCopy where
+        type FieldType "imageOffset" VkBufferImageCopy = VkOffset3D
+        type FieldOptional "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageOffset" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, imageOffset}
+        type FieldIsArray "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferImageCopy, imageOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageOffset" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, imageOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageOffset" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, imageOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageExtent" VkBufferImageCopy where
+        type FieldType "imageExtent" VkBufferImageCopy = VkExtent3D
+        type FieldOptional "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageExtent" VkBufferImageCopy =
+             #{offset VkBufferImageCopy, imageExtent}
+        type FieldIsArray "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferImageCopy, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageExtent" VkBufferImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferImageCopy, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageExtent" VkBufferImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferImageCopy, imageExtent}
+
+instance Show VkBufferImageCopy where
+        showsPrec d x
+          = showString "VkBufferImageCopy {" .
+              showString "bufferOffset = " .
+                showsPrec d (getField @"bufferOffset" x) .
+                  showString ", " .
+                    showString "bufferRowLength = " .
+                      showsPrec d (getField @"bufferRowLength" x) .
+                        showString ", " .
+                          showString "bufferImageHeight = " .
+                            showsPrec d (getField @"bufferImageHeight" x) .
+                              showString ", " .
+                                showString "imageSubresource = " .
+                                  showsPrec d (getField @"imageSubresource" x) .
+                                    showString ", " .
+                                      showString "imageOffset = " .
+                                        showsPrec d (getField @"imageOffset" x) .
+                                          showString ", " .
+                                            showString "imageExtent = " .
+                                              showsPrec d (getField @"imageExtent" x) . showChar '}'
+
+-- | > typedef struct VkBufferMemoryBarrier {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkAccessFlags          srcAccessMask;
+--   >     VkAccessFlags          dstAccessMask;
+--   >     uint32_t               srcQueueFamilyIndex;
+--   >     uint32_t               dstQueueFamilyIndex;
+--   >     VkBuffer               buffer;
+--   >     VkDeviceSize           offset;
+--   >     VkDeviceSize           size;
+--   > } VkBufferMemoryBarrier;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferMemoryBarrier VkBufferMemoryBarrier registry at www.khronos.org>
+data VkBufferMemoryBarrier = VkBufferMemoryBarrier## Addr##
+                                                    ByteArray##
+
+instance Eq VkBufferMemoryBarrier where
+        (VkBufferMemoryBarrier## a _) == x@(VkBufferMemoryBarrier## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferMemoryBarrier where
+        (VkBufferMemoryBarrier## a _) `compare`
+          x@(VkBufferMemoryBarrier## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferMemoryBarrier where
+        sizeOf ~_ = #{size VkBufferMemoryBarrier}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBufferMemoryBarrier}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferMemoryBarrier where
+        unsafeAddr (VkBufferMemoryBarrier## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferMemoryBarrier## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferMemoryBarrier where
+        type StructFields VkBufferMemoryBarrier =
+             '["sType", "pNext", "srcAccessMask", "dstAccessMask", -- ' closing tick for hsc2hs
+               "srcQueueFamilyIndex", "dstQueueFamilyIndex", "buffer", "offset",
+               "size"]
+        type CUnionType VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferMemoryBarrier = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkBufferMemoryBarrier
+         where
+        type FieldType "sType" VkBufferMemoryBarrier = VkStructureType
+        type FieldOptional "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, sType}
+        type FieldIsArray "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkBufferMemoryBarrier
+         where
+        type FieldType "pNext" VkBufferMemoryBarrier = Ptr Void
+        type FieldOptional "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, pNext}
+        type FieldIsArray "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcAccessMask" VkBufferMemoryBarrier where
+        type FieldType "srcAccessMask" VkBufferMemoryBarrier =
+             VkAccessFlags
+        type FieldOptional "srcAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "srcAccessMask" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, srcAccessMask}
+        type FieldIsArray "srcAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcAccessMask" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, srcAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcAccessMask" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstAccessMask" VkBufferMemoryBarrier where
+        type FieldType "dstAccessMask" VkBufferMemoryBarrier =
+             VkAccessFlags
+        type FieldOptional "dstAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dstAccessMask" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, dstAccessMask}
+        type FieldIsArray "dstAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstAccessMask" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, dstAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstAccessMask" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
+        type FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier = Word32
+        type FieldOptional "srcQueueFamilyIndex" VkBufferMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcQueueFamilyIndex" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
+        type FieldIsArray "srcQueueFamilyIndex" VkBufferMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
+        type FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier = Word32
+        type FieldOptional "dstQueueFamilyIndex" VkBufferMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstQueueFamilyIndex" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
+        type FieldIsArray "dstQueueFamilyIndex" VkBufferMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkBufferMemoryBarrier where
+        type FieldType "buffer" VkBufferMemoryBarrier = VkBuffer
+        type FieldOptional "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, buffer}
+        type FieldIsArray "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferMemoryBarrier, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkBufferMemoryBarrier where
+        type FieldType "offset" VkBufferMemoryBarrier = VkDeviceSize
+        type FieldOptional "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, offset}
+        type FieldIsArray "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferMemoryBarrier, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, offset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkBufferMemoryBarrier
+         where
+        type FieldType "size" VkBufferMemoryBarrier = VkDeviceSize
+        type FieldOptional "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkBufferMemoryBarrier =
+             #{offset VkBufferMemoryBarrier, size}
+        type FieldIsArray "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferMemoryBarrier, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkBufferMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryBarrier, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkBufferMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryBarrier, size}
+
+instance Show VkBufferMemoryBarrier where
+        showsPrec d x
+          = showString "VkBufferMemoryBarrier {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcAccessMask = " .
+                            showsPrec d (getField @"srcAccessMask" x) .
+                              showString ", " .
+                                showString "dstAccessMask = " .
+                                  showsPrec d (getField @"dstAccessMask" x) .
+                                    showString ", " .
+                                      showString "srcQueueFamilyIndex = " .
+                                        showsPrec d (getField @"srcQueueFamilyIndex" x) .
+                                          showString ", " .
+                                            showString "dstQueueFamilyIndex = " .
+                                              showsPrec d (getField @"dstQueueFamilyIndex" x) .
+                                                showString ", " .
+                                                  showString "buffer = " .
+                                                    showsPrec d (getField @"buffer" x) .
+                                                      showString ", " .
+                                                        showString "offset = " .
+                                                          showsPrec d (getField @"offset" x) .
+                                                            showString ", " .
+                                                              showString "size = " .
+                                                                showsPrec d (getField @"size" x) .
+                                                                  showChar '}'
+
+-- | > typedef struct VkBufferMemoryRequirementsInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                                                          pNext;
+--   >     VkBuffer                                                             buffer;
+--   > } VkBufferMemoryRequirementsInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2 registry at www.khronos.org>
+data VkBufferMemoryRequirementsInfo2 = VkBufferMemoryRequirementsInfo2## Addr##
+                                                                        ByteArray##
+
+instance Eq VkBufferMemoryRequirementsInfo2 where
+        (VkBufferMemoryRequirementsInfo2## a _) ==
+          x@(VkBufferMemoryRequirementsInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferMemoryRequirementsInfo2 where
+        (VkBufferMemoryRequirementsInfo2## a _) `compare`
+          x@(VkBufferMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferMemoryRequirementsInfo2 where
+        sizeOf ~_ = #{size VkBufferMemoryRequirementsInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkBufferMemoryRequirementsInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferMemoryRequirementsInfo2 where
+        unsafeAddr (VkBufferMemoryRequirementsInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferMemoryRequirementsInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferMemoryRequirementsInfo2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferMemoryRequirementsInfo2 where
+        type StructFields VkBufferMemoryRequirementsInfo2 =
+             '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
+        type CUnionType VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBufferMemoryRequirementsInfo2 where
+        type FieldType "sType" VkBufferMemoryRequirementsInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBufferMemoryRequirementsInfo2 =
+             #{offset VkBufferMemoryRequirementsInfo2, sType}
+        type FieldIsArray "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBufferMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBufferMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBufferMemoryRequirementsInfo2 where
+        type FieldType "pNext" VkBufferMemoryRequirementsInfo2 = Ptr Void
+        type FieldOptional "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBufferMemoryRequirementsInfo2 =
+             #{offset VkBufferMemoryRequirementsInfo2, pNext}
+        type FieldIsArray "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBufferMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBufferMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkBufferMemoryRequirementsInfo2 where
+        type FieldType "buffer" VkBufferMemoryRequirementsInfo2 = VkBuffer
+        type FieldOptional "buffer" VkBufferMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkBufferMemoryRequirementsInfo2 =
+             #{offset VkBufferMemoryRequirementsInfo2, buffer}
+        type FieldIsArray "buffer" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkBufferMemoryRequirementsInfo2, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkBufferMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkBufferMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, buffer}
+
+instance Show VkBufferMemoryRequirementsInfo2 where
+        showsPrec d x
+          = showString "VkBufferMemoryRequirementsInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "buffer = " .
+                            showsPrec d (getField @"buffer" x) . showChar '}'
+
+-- | Alias for `VkBufferMemoryRequirementsInfo2`
+type VkBufferMemoryRequirementsInfo2KHR =
+     VkBufferMemoryRequirementsInfo2
+
+-- | > typedef struct VkBufferViewCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkBufferViewCreateFlagsflags;
+--   >     VkBuffer               buffer;
+--   >     VkFormat               format;
+--   >     VkDeviceSize           offset;
+--   >     VkDeviceSize           range;
+--   > } VkBufferViewCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkBufferViewCreateInfo VkBufferViewCreateInfo registry at www.khronos.org>
+data VkBufferViewCreateInfo = VkBufferViewCreateInfo## Addr##
+                                                      ByteArray##
+
+instance Eq VkBufferViewCreateInfo where
+        (VkBufferViewCreateInfo## a _) == x@(VkBufferViewCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkBufferViewCreateInfo where
+        (VkBufferViewCreateInfo## a _) `compare`
+          x@(VkBufferViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkBufferViewCreateInfo where
+        sizeOf ~_ = #{size VkBufferViewCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkBufferViewCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkBufferViewCreateInfo where
+        unsafeAddr (VkBufferViewCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkBufferViewCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkBufferViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkBufferViewCreateInfo where
+        type StructFields VkBufferViewCreateInfo =
+             '["sType", "pNext", "flags", "buffer", "format", "offset", "range"] -- ' closing tick for hsc2hs
+        type CUnionType VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkBufferViewCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkBufferViewCreateInfo where
+        type FieldType "sType" VkBufferViewCreateInfo = VkStructureType
+        type FieldOptional "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, sType}
+        type FieldIsArray "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkBufferViewCreateInfo where
+        type FieldType "pNext" VkBufferViewCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, pNext}
+        type FieldIsArray "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkBufferViewCreateInfo where
+        type FieldType "flags" VkBufferViewCreateInfo =
+             VkBufferViewCreateFlags
+        type FieldOptional "flags" VkBufferViewCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, flags}
+        type FieldIsArray "flags" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkBufferViewCreateInfo where
+        type FieldType "buffer" VkBufferViewCreateInfo = VkBuffer
+        type FieldOptional "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, buffer}
+        type FieldIsArray "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkBufferViewCreateInfo where
+        type FieldType "format" VkBufferViewCreateInfo = VkFormat
+        type FieldOptional "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, format}
+        type FieldIsArray "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkBufferViewCreateInfo where
+        type FieldType "offset" VkBufferViewCreateInfo = VkDeviceSize
+        type FieldOptional "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, offset}
+        type FieldIsArray "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         HasField "range" VkBufferViewCreateInfo where
+        type FieldType "range" VkBufferViewCreateInfo = VkDeviceSize
+        type FieldOptional "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "range" VkBufferViewCreateInfo =
+             #{offset VkBufferViewCreateInfo, range}
+        type FieldIsArray "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkBufferViewCreateInfo, range}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "range" VkBufferViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, range})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkBufferViewCreateInfo, range}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "range" VkBufferViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkBufferViewCreateInfo, range}
+
+instance Show VkBufferViewCreateInfo where
+        showsPrec d x
+          = showString "VkBufferViewCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "buffer = " .
+                                  showsPrec d (getField @"buffer" x) .
+                                    showString ", " .
+                                      showString "format = " .
+                                        showsPrec d (getField @"format" x) .
+                                          showString ", " .
+                                            showString "offset = " .
+                                              showsPrec d (getField @"offset" x) .
+                                                showString ", " .
+                                                  showString "range = " .
+                                                    showsPrec d (getField @"range" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Clear.hsc
@@ -0,0 +1,913 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Clear
+       (VkClearAttachment(..), VkClearColorValue(..),
+        VkClearDepthStencilValue(..), VkClearRect(..), VkClearValue(..))
+       where
+import           Foreign.Storable                  (Storable (..))
+import           GHC.Base                          (Addr##, ByteArray##, Proxy##,
+                                                    byteArrayContents##,
+                                                    plusAddr##, proxy##)
+import           GHC.TypeLits                      (KnownNat, natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Image  (VkImageAspectFlags)
+import           Graphics.Vulkan.Types.Struct.Rect (VkRect2D)
+import           System.IO.Unsafe                  (unsafeDupablePerformIO)
+
+-- | > typedef struct VkClearAttachment {
+--   >     VkImageAspectFlags     aspectMask;
+--   >     uint32_t               colorAttachment;
+--   >     VkClearValue           clearValue;
+--   > } VkClearAttachment;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearAttachment VkClearAttachment registry at www.khronos.org>
+data VkClearAttachment = VkClearAttachment## Addr## ByteArray##
+
+instance Eq VkClearAttachment where
+        (VkClearAttachment## a _) == x@(VkClearAttachment## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkClearAttachment where
+        (VkClearAttachment## a _) `compare` x@(VkClearAttachment## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkClearAttachment where
+        sizeOf ~_ = #{size VkClearAttachment}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkClearAttachment}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkClearAttachment where
+        unsafeAddr (VkClearAttachment## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkClearAttachment## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkClearAttachment## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkClearAttachment where
+        type StructFields VkClearAttachment =
+             '["aspectMask", "colorAttachment", "clearValue"] -- ' closing tick for hsc2hs
+        type CUnionType VkClearAttachment = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkClearAttachment = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkClearAttachment = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkClearAttachment where
+        type FieldType "aspectMask" VkClearAttachment = VkImageAspectFlags
+        type FieldOptional "aspectMask" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkClearAttachment =
+             #{offset VkClearAttachment, aspectMask}
+        type FieldIsArray "aspectMask" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearAttachment, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkClearAttachment where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearAttachment, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkClearAttachment where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearAttachment, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "colorAttachment" VkClearAttachment where
+        type FieldType "colorAttachment" VkClearAttachment = Word32
+        type FieldOptional "colorAttachment" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "colorAttachment" VkClearAttachment =
+             #{offset VkClearAttachment, colorAttachment}
+        type FieldIsArray "colorAttachment" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkClearAttachment, colorAttachment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "colorAttachment" VkClearAttachment where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, colorAttachment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearAttachment, colorAttachment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "colorAttachment" VkClearAttachment where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearAttachment, colorAttachment}
+
+instance {-# OVERLAPPING #-}
+         HasField "clearValue" VkClearAttachment where
+        type FieldType "clearValue" VkClearAttachment = VkClearValue
+        type FieldOptional "clearValue" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "clearValue" VkClearAttachment =
+             #{offset VkClearAttachment, clearValue}
+        type FieldIsArray "clearValue" VkClearAttachment = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearAttachment, clearValue}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "clearValue" VkClearAttachment where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, clearValue})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearAttachment, clearValue}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "clearValue" VkClearAttachment where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearAttachment, clearValue}
+
+instance Show VkClearAttachment where
+        showsPrec d x
+          = showString "VkClearAttachment {" .
+              showString "aspectMask = " .
+                showsPrec d (getField @"aspectMask" x) .
+                  showString ", " .
+                    showString "colorAttachment = " .
+                      showsPrec d (getField @"colorAttachment" x) .
+                        showString ", " .
+                          showString "clearValue = " .
+                            showsPrec d (getField @"clearValue" x) . showChar '}'
+
+-- | // Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
+--
+--   > typedef union VkClearColorValue {
+--   >     float                  float32[4];
+--   >     int32_t                int32[4];
+--   >     uint32_t               uint32[4];
+--   > } VkClearColorValue;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearColorValue VkClearColorValue registry at www.khronos.org>
+data VkClearColorValue = VkClearColorValue## Addr## ByteArray##
+
+instance Eq VkClearColorValue where
+        (VkClearColorValue## a _) == x@(VkClearColorValue## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkClearColorValue where
+        (VkClearColorValue## a _) `compare` x@(VkClearColorValue## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkClearColorValue where
+        sizeOf ~_ = #{size VkClearColorValue}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkClearColorValue}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkClearColorValue where
+        unsafeAddr (VkClearColorValue## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkClearColorValue## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkClearColorValue## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkClearColorValue where
+        type StructFields VkClearColorValue =
+             '["float32", "int32", "uint32"] -- ' closing tick for hsc2hs
+        type CUnionType VkClearColorValue = 'True -- ' closing tick for hsc2hs
+        type ReturnedOnly VkClearColorValue = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkClearColorValue = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "float32" VkClearColorValue
+         where
+        type FieldType "float32" VkClearColorValue =
+             #{type float}
+        type FieldOptional "float32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "float32" VkClearColorValue =
+             #{offset VkClearColorValue, float32}
+        type FieldIsArray "float32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearColorValue, float32}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>
+         CanReadFieldArray "float32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "float32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "float32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "float32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "float32" 3 VkClearColorValue #-}
+        type FieldArrayLength "float32" VkClearColorValue = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkClearColorValue, float32} +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkClearColorValue, float32} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>
+         CanWriteFieldArray "float32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "float32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "float32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "float32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "float32" 3 VkClearColorValue #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkClearColorValue, float32} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "int32" VkClearColorValue
+         where
+        type FieldType "int32" VkClearColorValue = Int32
+        type FieldOptional "int32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "int32" VkClearColorValue =
+             #{offset VkClearColorValue, int32}
+        type FieldIsArray "int32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearColorValue, int32}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>
+         CanReadFieldArray "int32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "int32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "int32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "int32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "int32" 3 VkClearColorValue #-}
+        type FieldArrayLength "int32" VkClearColorValue = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkClearColorValue, int32} +
+                      sizeOf (undefined :: Int32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkClearColorValue, int32} +
+                 sizeOf (undefined :: Int32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>
+         CanWriteFieldArray "int32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "int32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "int32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "int32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "int32" 3 VkClearColorValue #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkClearColorValue, int32} +
+                 sizeOf (undefined :: Int32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "uint32" VkClearColorValue
+         where
+        type FieldType "uint32" VkClearColorValue = Word32
+        type FieldOptional "uint32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "uint32" VkClearColorValue =
+             #{offset VkClearColorValue, uint32}
+        type FieldIsArray "uint32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearColorValue, uint32}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>
+         CanReadFieldArray "uint32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "uint32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "uint32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "uint32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "uint32" 3 VkClearColorValue #-}
+        type FieldArrayLength "uint32" VkClearColorValue = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkClearColorValue, uint32} +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkClearColorValue, uint32} +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>
+         CanWriteFieldArray "uint32" idx VkClearColorValue
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "uint32" 0 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "uint32" 1 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "uint32" 2 VkClearColorValue #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "uint32" 3 VkClearColorValue #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkClearColorValue, uint32} +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkClearColorValue where
+        showsPrec d x
+          = showString "VkClearColorValue {" .
+              (showString "float32 = [" .
+                 showsPrec d
+                   (let s = sizeOf
+                              (undefined :: FieldType "float32" VkClearColorValue)
+                        o = fieldOffset @"float32" @VkClearColorValue
+                        f i
+                          = peekByteOff (unsafePtr x) i ::
+                              IO (FieldType "float32" VkClearColorValue)
+                      in
+                      unsafeDupablePerformIO . mapM f $
+                        map (\ i -> o + i * s) [0 .. 4 - 1])
+                   . showChar ']')
+                .
+                showString ", " .
+                  (showString "int32 = [" .
+                     showsPrec d
+                       (let s = sizeOf (undefined :: FieldType "int32" VkClearColorValue)
+                            o = fieldOffset @"int32" @VkClearColorValue
+                            f i
+                              = peekByteOff (unsafePtr x) i ::
+                                  IO (FieldType "int32" VkClearColorValue)
+                          in
+                          unsafeDupablePerformIO . mapM f $
+                            map (\ i -> o + i * s) [0 .. 4 - 1])
+                       . showChar ']')
+                    .
+                    showString ", " .
+                      (showString "uint32 = [" .
+                         showsPrec d
+                           (let s = sizeOf (undefined :: FieldType "uint32" VkClearColorValue)
+                                o = fieldOffset @"uint32" @VkClearColorValue
+                                f i
+                                  = peekByteOff (unsafePtr x) i ::
+                                      IO (FieldType "uint32" VkClearColorValue)
+                              in
+                              unsafeDupablePerformIO . mapM f $
+                                map (\ i -> o + i * s) [0 .. 4 - 1])
+                           . showChar ']')
+                        . showChar '}'
+
+-- | > typedef struct VkClearDepthStencilValue {
+--   >     float                  depth;
+--   >     uint32_t               stencil;
+--   > } VkClearDepthStencilValue;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearDepthStencilValue VkClearDepthStencilValue registry at www.khronos.org>
+data VkClearDepthStencilValue = VkClearDepthStencilValue## Addr##
+                                                          ByteArray##
+
+instance Eq VkClearDepthStencilValue where
+        (VkClearDepthStencilValue## a _) ==
+          x@(VkClearDepthStencilValue## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkClearDepthStencilValue where
+        (VkClearDepthStencilValue## a _) `compare`
+          x@(VkClearDepthStencilValue## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkClearDepthStencilValue where
+        sizeOf ~_ = #{size VkClearDepthStencilValue}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkClearDepthStencilValue}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkClearDepthStencilValue where
+        unsafeAddr (VkClearDepthStencilValue## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkClearDepthStencilValue## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkClearDepthStencilValue## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkClearDepthStencilValue where
+        type StructFields VkClearDepthStencilValue = '["depth", "stencil"] -- ' closing tick for hsc2hs
+        type CUnionType VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkClearDepthStencilValue = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "depth" VkClearDepthStencilValue where
+        type FieldType "depth" VkClearDepthStencilValue =
+             #{type float}
+        type FieldOptional "depth" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depth" VkClearDepthStencilValue =
+             #{offset VkClearDepthStencilValue, depth}
+        type FieldIsArray "depth" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearDepthStencilValue, depth}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depth" VkClearDepthStencilValue where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearDepthStencilValue, depth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearDepthStencilValue, depth}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depth" VkClearDepthStencilValue where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearDepthStencilValue, depth}
+
+instance {-# OVERLAPPING #-}
+         HasField "stencil" VkClearDepthStencilValue where
+        type FieldType "stencil" VkClearDepthStencilValue = Word32
+        type FieldOptional "stencil" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stencil" VkClearDepthStencilValue =
+             #{offset VkClearDepthStencilValue, stencil}
+        type FieldIsArray "stencil" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkClearDepthStencilValue, stencil}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stencil" VkClearDepthStencilValue where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearDepthStencilValue, stencil})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearDepthStencilValue, stencil}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stencil" VkClearDepthStencilValue where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearDepthStencilValue, stencil}
+
+instance Show VkClearDepthStencilValue where
+        showsPrec d x
+          = showString "VkClearDepthStencilValue {" .
+              showString "depth = " .
+                showsPrec d (getField @"depth" x) .
+                  showString ", " .
+                    showString "stencil = " .
+                      showsPrec d (getField @"stencil" x) . showChar '}'
+
+-- | > typedef struct VkClearRect {
+--   >     VkRect2D       rect;
+--   >     uint32_t       baseArrayLayer;
+--   >     uint32_t       layerCount;
+--   > } VkClearRect;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearRect VkClearRect registry at www.khronos.org>
+data VkClearRect = VkClearRect## Addr## ByteArray##
+
+instance Eq VkClearRect where
+        (VkClearRect## a _) == x@(VkClearRect## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkClearRect where
+        (VkClearRect## a _) `compare` x@(VkClearRect## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkClearRect where
+        sizeOf ~_ = #{size VkClearRect}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkClearRect}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkClearRect where
+        unsafeAddr (VkClearRect## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkClearRect## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkClearRect## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkClearRect where
+        type StructFields VkClearRect =
+             '["rect", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
+        type CUnionType VkClearRect = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkClearRect = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkClearRect = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "rect" VkClearRect where
+        type FieldType "rect" VkClearRect = VkRect2D
+        type FieldOptional "rect" VkClearRect = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "rect" VkClearRect =
+             #{offset VkClearRect, rect}
+        type FieldIsArray "rect" VkClearRect = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearRect, rect}
+
+instance {-# OVERLAPPING #-} CanReadField "rect" VkClearRect where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearRect, rect})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkClearRect, rect}
+
+instance {-# OVERLAPPING #-} CanWriteField "rect" VkClearRect where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearRect, rect}
+
+instance {-# OVERLAPPING #-} HasField "baseArrayLayer" VkClearRect
+         where
+        type FieldType "baseArrayLayer" VkClearRect = Word32
+        type FieldOptional "baseArrayLayer" VkClearRect = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "baseArrayLayer" VkClearRect =
+             #{offset VkClearRect, baseArrayLayer}
+        type FieldIsArray "baseArrayLayer" VkClearRect = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearRect, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "baseArrayLayer" VkClearRect where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearRect, baseArrayLayer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearRect, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "baseArrayLayer" VkClearRect where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearRect, baseArrayLayer}
+
+instance {-# OVERLAPPING #-} HasField "layerCount" VkClearRect
+         where
+        type FieldType "layerCount" VkClearRect = Word32
+        type FieldOptional "layerCount" VkClearRect = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layerCount" VkClearRect =
+             #{offset VkClearRect, layerCount}
+        type FieldIsArray "layerCount" VkClearRect = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearRect, layerCount}
+
+instance {-# OVERLAPPING #-} CanReadField "layerCount" VkClearRect
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearRect, layerCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearRect, layerCount}
+
+instance {-# OVERLAPPING #-} CanWriteField "layerCount" VkClearRect
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearRect, layerCount}
+
+instance Show VkClearRect where
+        showsPrec d x
+          = showString "VkClearRect {" .
+              showString "rect = " .
+                showsPrec d (getField @"rect" x) .
+                  showString ", " .
+                    showString "baseArrayLayer = " .
+                      showsPrec d (getField @"baseArrayLayer" x) .
+                        showString ", " .
+                          showString "layerCount = " .
+                            showsPrec d (getField @"layerCount" x) . showChar '}'
+
+-- | // Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.
+--
+--   > typedef union VkClearValue {
+--   >     VkClearColorValue      color;
+--   >     VkClearDepthStencilValue depthStencil;
+--   > } VkClearValue;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkClearValue VkClearValue registry at www.khronos.org>
+data VkClearValue = VkClearValue## Addr## ByteArray##
+
+instance Eq VkClearValue where
+        (VkClearValue## a _) == x@(VkClearValue## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkClearValue where
+        (VkClearValue## a _) `compare` x@(VkClearValue## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkClearValue where
+        sizeOf ~_ = #{size VkClearValue}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkClearValue}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkClearValue where
+        unsafeAddr (VkClearValue## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkClearValue## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkClearValue## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkClearValue where
+        type StructFields VkClearValue = '["color", "depthStencil"] -- ' closing tick for hsc2hs
+        type CUnionType VkClearValue = 'True -- ' closing tick for hsc2hs
+        type ReturnedOnly VkClearValue = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkClearValue = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "color" VkClearValue where
+        type FieldType "color" VkClearValue = VkClearColorValue
+        type FieldOptional "color" VkClearValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "color" VkClearValue =
+             #{offset VkClearValue, color}
+        type FieldIsArray "color" VkClearValue = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearValue, color}
+
+instance {-# OVERLAPPING #-} CanReadField "color" VkClearValue
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearValue, color})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearValue, color}
+
+instance {-# OVERLAPPING #-} CanWriteField "color" VkClearValue
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearValue, color}
+
+instance {-# OVERLAPPING #-} HasField "depthStencil" VkClearValue
+         where
+        type FieldType "depthStencil" VkClearValue =
+             VkClearDepthStencilValue
+        type FieldOptional "depthStencil" VkClearValue = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthStencil" VkClearValue =
+             #{offset VkClearValue, depthStencil}
+        type FieldIsArray "depthStencil" VkClearValue = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkClearValue, depthStencil}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthStencil" VkClearValue where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkClearValue, depthStencil})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkClearValue, depthStencil}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthStencil" VkClearValue where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkClearValue, depthStencil}
+
+instance Show VkClearValue where
+        showsPrec d x
+          = showString "VkClearValue {" .
+              showString "color = " .
+                showsPrec d (getField @"color" x) .
+                  showString ", " .
+                    showString "depthStencil = " .
+                      showsPrec d (getField @"depthStencil" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Cmd.hsc
@@ -0,0 +1,906 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Cmd
+       (VkCmdProcessCommandsInfoNVX(..),
+        VkCmdReserveSpaceForCommandsInfoNVX(..))
+       where
+import           Foreign.Storable                              (Storable (..))
+import           GHC.Base                                      (Addr##,
+                                                                ByteArray##,
+                                                                byteArrayContents##,
+                                                                plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                 (VkBuffer,
+                                                                VkCommandBuffer,
+                                                                VkIndirectCommandsLayoutNVX,
+                                                                VkObjectTableNVX)
+import           Graphics.Vulkan.Types.Struct.IndirectCommands (VkIndirectCommandsTokenNVX)
+import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+
+-- | > typedef struct VkCmdProcessCommandsInfoNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkObjectTableNVX                                         objectTable;
+--   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
+--   >     uint32_t                                                 indirectCommandsTokenCount;
+--   >     const VkIndirectCommandsTokenNVX*       pIndirectCommandsTokens;
+--   >     uint32_t                                                 maxSequencesCount;
+--   >     VkCommandBuffer                          targetCommandBuffer;
+--   >     VkBuffer                                 sequencesCountBuffer;
+--   >     VkDeviceSize                             sequencesCountOffset;
+--   >     VkBuffer                                 sequencesIndexBuffer;
+--   >     VkDeviceSize                             sequencesIndexOffset;
+--   > } VkCmdProcessCommandsInfoNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdProcessCommandsInfoNVX VkCmdProcessCommandsInfoNVX registry at www.khronos.org>
+data VkCmdProcessCommandsInfoNVX = VkCmdProcessCommandsInfoNVX## Addr##
+                                                                ByteArray##
+
+instance Eq VkCmdProcessCommandsInfoNVX where
+        (VkCmdProcessCommandsInfoNVX## a _) ==
+          x@(VkCmdProcessCommandsInfoNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCmdProcessCommandsInfoNVX where
+        (VkCmdProcessCommandsInfoNVX## a _) `compare`
+          x@(VkCmdProcessCommandsInfoNVX## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCmdProcessCommandsInfoNVX where
+        sizeOf ~_ = #{size VkCmdProcessCommandsInfoNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkCmdProcessCommandsInfoNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCmdProcessCommandsInfoNVX where
+        unsafeAddr (VkCmdProcessCommandsInfoNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCmdProcessCommandsInfoNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCmdProcessCommandsInfoNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCmdProcessCommandsInfoNVX where
+        type StructFields VkCmdProcessCommandsInfoNVX =
+             '["sType", "pNext", "objectTable", "indirectCommandsLayout", -- ' closing tick for hsc2hs
+               "indirectCommandsTokenCount", "pIndirectCommandsTokens",
+               "maxSequencesCount", "targetCommandBuffer", "sequencesCountBuffer",
+               "sequencesCountOffset", "sequencesIndexBuffer",
+               "sequencesIndexOffset"]
+        type CUnionType VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCmdProcessCommandsInfoNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCmdProcessCommandsInfoNVX where
+        type FieldType "sType" VkCmdProcessCommandsInfoNVX =
+             VkStructureType
+        type FieldOptional "sType" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCmdProcessCommandsInfoNVX =
+             #{offset VkCmdProcessCommandsInfoNVX, sType}
+        type FieldIsArray "sType" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCmdProcessCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCmdProcessCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCmdProcessCommandsInfoNVX where
+        type FieldType "pNext" VkCmdProcessCommandsInfoNVX = Ptr Void
+        type FieldOptional "pNext" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCmdProcessCommandsInfoNVX =
+             #{offset VkCmdProcessCommandsInfoNVX, pNext}
+        type FieldIsArray "pNext" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCmdProcessCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCmdProcessCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectTable" VkCmdProcessCommandsInfoNVX where
+        type FieldType "objectTable" VkCmdProcessCommandsInfoNVX =
+             VkObjectTableNVX
+        type FieldOptional "objectTable" VkCmdProcessCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectTable" VkCmdProcessCommandsInfoNVX =
+             #{offset VkCmdProcessCommandsInfoNVX, objectTable}
+        type FieldIsArray "objectTable" VkCmdProcessCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectTable" VkCmdProcessCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, objectTable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectTable" VkCmdProcessCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         HasField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX where
+        type FieldType "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
+             = VkIndirectCommandsLayoutNVX
+        type FieldOptional "indirectCommandsLayout"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "indirectCommandsLayout"
+               VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
+        type FieldIsArray "indirectCommandsLayout"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "indirectCommandsTokenCount" VkCmdProcessCommandsInfoNVX
+         where
+        type FieldType "indirectCommandsTokenCount"
+               VkCmdProcessCommandsInfoNVX
+             = Word32
+        type FieldOptional "indirectCommandsTokenCount"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "indirectCommandsTokenCount"
+               VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
+        type FieldIsArray "indirectCommandsTokenCount"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "indirectCommandsTokenCount"
+           VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "indirectCommandsTokenCount"
+           VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
+         where
+        type FieldType "pIndirectCommandsTokens"
+               VkCmdProcessCommandsInfoNVX
+             = Ptr VkIndirectCommandsTokenNVX
+        type FieldOptional "pIndirectCommandsTokens"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pIndirectCommandsTokens"
+               VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
+        type FieldIsArray "pIndirectCommandsTokens"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
+        type FieldType "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
+             Word32
+        type FieldOptional "maxSequencesCount" VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
+             #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
+        type FieldIsArray "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX where
+        type FieldType "targetCommandBuffer" VkCmdProcessCommandsInfoNVX =
+             VkCommandBuffer
+        type FieldOptional "targetCommandBuffer"
+               VkCmdProcessCommandsInfoNVX
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
+        type FieldIsArray "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX where
+        type FieldType "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX =
+             VkBuffer
+        type FieldOptional "sequencesCountBuffer"
+               VkCmdProcessCommandsInfoNVX
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
+        type FieldIsArray "sequencesCountBuffer"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX where
+        type FieldType "sequencesCountOffset" VkCmdProcessCommandsInfoNVX =
+             VkDeviceSize
+        type FieldOptional "sequencesCountOffset"
+               VkCmdProcessCommandsInfoNVX
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
+        type FieldIsArray "sequencesCountOffset"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX where
+        type FieldType "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX =
+             VkBuffer
+        type FieldOptional "sequencesIndexBuffer"
+               VkCmdProcessCommandsInfoNVX
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
+        type FieldIsArray "sequencesIndexBuffer"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX where
+        type FieldType "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX =
+             VkDeviceSize
+        type FieldOptional "sequencesIndexOffset"
+               VkCmdProcessCommandsInfoNVX
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
+             =
+             #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
+        type FieldIsArray "sequencesIndexOffset"
+               VkCmdProcessCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
+
+instance Show VkCmdProcessCommandsInfoNVX where
+        showsPrec d x
+          = showString "VkCmdProcessCommandsInfoNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectTable = " .
+                            showsPrec d (getField @"objectTable" x) .
+                              showString ", " .
+                                showString "indirectCommandsLayout = " .
+                                  showsPrec d (getField @"indirectCommandsLayout" x) .
+                                    showString ", " .
+                                      showString "indirectCommandsTokenCount = " .
+                                        showsPrec d (getField @"indirectCommandsTokenCount" x) .
+                                          showString ", " .
+                                            showString "pIndirectCommandsTokens = " .
+                                              showsPrec d (getField @"pIndirectCommandsTokens" x) .
+                                                showString ", " .
+                                                  showString "maxSequencesCount = " .
+                                                    showsPrec d (getField @"maxSequencesCount" x) .
+                                                      showString ", " .
+                                                        showString "targetCommandBuffer = " .
+                                                          showsPrec d
+                                                            (getField @"targetCommandBuffer" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "sequencesCountBuffer = " .
+                                                                showsPrec d
+                                                                  (getField @"sequencesCountBuffer"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "sequencesCountOffset = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"sequencesCountOffset"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "sequencesIndexBuffer = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"sequencesIndexBuffer"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "sequencesIndexOffset = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"sequencesIndexOffset"
+                                                                                       x)
+                                                                                    . showChar '}'
+
+-- | > typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkObjectTableNVX                                         objectTable;
+--   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
+--   >     uint32_t                                                 maxSequencesCount;
+--   > } VkCmdReserveSpaceForCommandsInfoNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCmdReserveSpaceForCommandsInfoNVX VkCmdReserveSpaceForCommandsInfoNVX registry at www.khronos.org>
+data VkCmdReserveSpaceForCommandsInfoNVX = VkCmdReserveSpaceForCommandsInfoNVX## Addr##
+                                                                                ByteArray##
+
+instance Eq VkCmdReserveSpaceForCommandsInfoNVX where
+        (VkCmdReserveSpaceForCommandsInfoNVX## a _) ==
+          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCmdReserveSpaceForCommandsInfoNVX where
+        (VkCmdReserveSpaceForCommandsInfoNVX## a _) `compare`
+          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCmdReserveSpaceForCommandsInfoNVX where
+        sizeOf ~_ = #{size VkCmdReserveSpaceForCommandsInfoNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkCmdReserveSpaceForCommandsInfoNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        unsafeAddr (VkCmdReserveSpaceForCommandsInfoNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCmdReserveSpaceForCommandsInfoNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCmdReserveSpaceForCommandsInfoNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCmdReserveSpaceForCommandsInfoNVX where
+        type StructFields VkCmdReserveSpaceForCommandsInfoNVX =
+             '["sType", "pNext", "objectTable", "indirectCommandsLayout", -- ' closing tick for hsc2hs
+               "maxSequencesCount"]
+        type CUnionType VkCmdReserveSpaceForCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCmdReserveSpaceForCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCmdReserveSpaceForCommandsInfoNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
+        type FieldType "sType" VkCmdReserveSpaceForCommandsInfoNVX =
+             VkStructureType
+        type FieldOptional "sType" VkCmdReserveSpaceForCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCmdReserveSpaceForCommandsInfoNVX =
+             #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
+        type FieldIsArray "sType" VkCmdReserveSpaceForCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
+        type FieldType "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
+             Ptr Void
+        type FieldOptional "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
+             #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
+        type FieldIsArray "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX where
+        type FieldType "objectTable" VkCmdReserveSpaceForCommandsInfoNVX =
+             VkObjectTableNVX
+        type FieldOptional "objectTable"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
+             =
+             #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
+        type FieldIsArray "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
+
+instance {-# OVERLAPPING #-}
+         HasField "indirectCommandsLayout"
+           VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        type FieldType "indirectCommandsLayout"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = VkIndirectCommandsLayoutNVX
+        type FieldOptional "indirectCommandsLayout"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "indirectCommandsLayout"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             =
+             #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
+        type FieldIsArray "indirectCommandsLayout"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "indirectCommandsLayout"
+           VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "indirectCommandsLayout"
+           VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSequencesCount" VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        type FieldType "maxSequencesCount"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = Word32
+        type FieldOptional "maxSequencesCount"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSequencesCount"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             =
+             #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
+        type FieldIsArray "maxSequencesCount"
+               VkCmdReserveSpaceForCommandsInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSequencesCount"
+           VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSequencesCount"
+           VkCmdReserveSpaceForCommandsInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
+
+instance Show VkCmdReserveSpaceForCommandsInfoNVX where
+        showsPrec d x
+          = showString "VkCmdReserveSpaceForCommandsInfoNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectTable = " .
+                            showsPrec d (getField @"objectTable" x) .
+                              showString ", " .
+                                showString "indirectCommandsLayout = " .
+                                  showsPrec d (getField @"indirectCommandsLayout" x) .
+                                    showString ", " .
+                                      showString "maxSequencesCount = " .
+                                        showsPrec d (getField @"maxSequencesCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Command.hsc
@@ -0,0 +1,1057 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Command
+       (VkCommandBufferAllocateInfo(..), VkCommandBufferBeginInfo(..),
+        VkCommandBufferInheritanceInfo(..), VkCommandPoolCreateInfo(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import           Graphics.Vulkan.Types.Enum.Command       (VkCommandBufferLevel, VkCommandBufferUsageFlags,
+                                                           VkCommandPoolCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Query         (VkQueryControlFlags, VkQueryPipelineStatisticFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkCommandPool,
+                                                           VkFramebuffer,
+                                                           VkRenderPass)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkCommandBufferAllocateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkCommandPool          commandPool;
+--   >     VkCommandBufferLevel   level;
+--   >     uint32_t               commandBufferCount;
+--   > } VkCommandBufferAllocateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferAllocateInfo VkCommandBufferAllocateInfo registry at www.khronos.org>
+data VkCommandBufferAllocateInfo = VkCommandBufferAllocateInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkCommandBufferAllocateInfo where
+        (VkCommandBufferAllocateInfo## a _) ==
+          x@(VkCommandBufferAllocateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCommandBufferAllocateInfo where
+        (VkCommandBufferAllocateInfo## a _) `compare`
+          x@(VkCommandBufferAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCommandBufferAllocateInfo where
+        sizeOf ~_ = #{size VkCommandBufferAllocateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkCommandBufferAllocateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCommandBufferAllocateInfo where
+        unsafeAddr (VkCommandBufferAllocateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCommandBufferAllocateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCommandBufferAllocateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCommandBufferAllocateInfo where
+        type StructFields VkCommandBufferAllocateInfo =
+             '["sType", "pNext", "commandPool", "level", "commandBufferCount"] -- ' closing tick for hsc2hs
+        type CUnionType VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCommandBufferAllocateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCommandBufferAllocateInfo where
+        type FieldType "sType" VkCommandBufferAllocateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCommandBufferAllocateInfo =
+             #{offset VkCommandBufferAllocateInfo, sType}
+        type FieldIsArray "sType" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCommandBufferAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCommandBufferAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCommandBufferAllocateInfo where
+        type FieldType "pNext" VkCommandBufferAllocateInfo = Ptr Void
+        type FieldOptional "pNext" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCommandBufferAllocateInfo =
+             #{offset VkCommandBufferAllocateInfo, pNext}
+        type FieldIsArray "pNext" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCommandBufferAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCommandBufferAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "commandPool" VkCommandBufferAllocateInfo where
+        type FieldType "commandPool" VkCommandBufferAllocateInfo =
+             VkCommandPool
+        type FieldOptional "commandPool" VkCommandBufferAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "commandPool" VkCommandBufferAllocateInfo =
+             #{offset VkCommandBufferAllocateInfo, commandPool}
+        type FieldIsArray "commandPool" VkCommandBufferAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferAllocateInfo, commandPool}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "commandPool" VkCommandBufferAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, commandPool})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferAllocateInfo, commandPool}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "commandPool" VkCommandBufferAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, commandPool}
+
+instance {-# OVERLAPPING #-}
+         HasField "level" VkCommandBufferAllocateInfo where
+        type FieldType "level" VkCommandBufferAllocateInfo =
+             VkCommandBufferLevel
+        type FieldOptional "level" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "level" VkCommandBufferAllocateInfo =
+             #{offset VkCommandBufferAllocateInfo, level}
+        type FieldIsArray "level" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferAllocateInfo, level}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "level" VkCommandBufferAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, level})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferAllocateInfo, level}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "level" VkCommandBufferAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, level}
+
+instance {-# OVERLAPPING #-}
+         HasField "commandBufferCount" VkCommandBufferAllocateInfo where
+        type FieldType "commandBufferCount" VkCommandBufferAllocateInfo =
+             Word32
+        type FieldOptional "commandBufferCount" VkCommandBufferAllocateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "commandBufferCount" VkCommandBufferAllocateInfo =
+             #{offset VkCommandBufferAllocateInfo, commandBufferCount}
+        type FieldIsArray "commandBufferCount" VkCommandBufferAllocateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferAllocateInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "commandBufferCount" VkCommandBufferAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, commandBufferCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferAllocateInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "commandBufferCount" VkCommandBufferAllocateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, commandBufferCount}
+
+instance Show VkCommandBufferAllocateInfo where
+        showsPrec d x
+          = showString "VkCommandBufferAllocateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "commandPool = " .
+                            showsPrec d (getField @"commandPool" x) .
+                              showString ", " .
+                                showString "level = " .
+                                  showsPrec d (getField @"level" x) .
+                                    showString ", " .
+                                      showString "commandBufferCount = " .
+                                        showsPrec d (getField @"commandBufferCount" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkCommandBufferBeginInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkCommandBufferUsageFlags  flags;
+--   >     const VkCommandBufferInheritanceInfo*       pInheritanceInfo;
+--   > } VkCommandBufferBeginInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferBeginInfo VkCommandBufferBeginInfo registry at www.khronos.org>
+data VkCommandBufferBeginInfo = VkCommandBufferBeginInfo## Addr##
+                                                          ByteArray##
+
+instance Eq VkCommandBufferBeginInfo where
+        (VkCommandBufferBeginInfo## a _) ==
+          x@(VkCommandBufferBeginInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCommandBufferBeginInfo where
+        (VkCommandBufferBeginInfo## a _) `compare`
+          x@(VkCommandBufferBeginInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCommandBufferBeginInfo where
+        sizeOf ~_ = #{size VkCommandBufferBeginInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkCommandBufferBeginInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCommandBufferBeginInfo where
+        unsafeAddr (VkCommandBufferBeginInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCommandBufferBeginInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCommandBufferBeginInfo## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCommandBufferBeginInfo where
+        type StructFields VkCommandBufferBeginInfo =
+             '["sType", "pNext", "flags", "pInheritanceInfo"] -- ' closing tick for hsc2hs
+        type CUnionType VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCommandBufferBeginInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCommandBufferBeginInfo where
+        type FieldType "sType" VkCommandBufferBeginInfo = VkStructureType
+        type FieldOptional "sType" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCommandBufferBeginInfo =
+             #{offset VkCommandBufferBeginInfo, sType}
+        type FieldIsArray "sType" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCommandBufferBeginInfo where
+        type FieldType "pNext" VkCommandBufferBeginInfo = Ptr Void
+        type FieldOptional "pNext" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCommandBufferBeginInfo =
+             #{offset VkCommandBufferBeginInfo, pNext}
+        type FieldIsArray "pNext" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkCommandBufferBeginInfo where
+        type FieldType "flags" VkCommandBufferBeginInfo =
+             VkCommandBufferUsageFlags
+        type FieldOptional "flags" VkCommandBufferBeginInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkCommandBufferBeginInfo =
+             #{offset VkCommandBufferBeginInfo, flags}
+        type FieldIsArray "flags" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandBufferBeginInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferBeginInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferBeginInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pInheritanceInfo" VkCommandBufferBeginInfo where
+        type FieldType "pInheritanceInfo" VkCommandBufferBeginInfo =
+             Ptr VkCommandBufferInheritanceInfo
+        type FieldOptional "pInheritanceInfo" VkCommandBufferBeginInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pInheritanceInfo" VkCommandBufferBeginInfo =
+             #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
+        type FieldIsArray "pInheritanceInfo" VkCommandBufferBeginInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pInheritanceInfo" VkCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, pInheritanceInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pInheritanceInfo" VkCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
+
+instance Show VkCommandBufferBeginInfo where
+        showsPrec d x
+          = showString "VkCommandBufferBeginInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pInheritanceInfo = " .
+                                  showsPrec d (getField @"pInheritanceInfo" x) . showChar '}'
+
+-- | > typedef struct VkCommandBufferInheritanceInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkRenderPass    renderPass;
+--   >     uint32_t               subpass;
+--   >     VkFramebuffer   framebuffer;
+--   >     VkBool32               occlusionQueryEnable;
+--   >     VkQueryControlFlags    queryFlags;
+--   >     VkQueryPipelineStatisticFlags pipelineStatistics;
+--   > } VkCommandBufferInheritanceInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandBufferInheritanceInfo VkCommandBufferInheritanceInfo registry at www.khronos.org>
+data VkCommandBufferInheritanceInfo = VkCommandBufferInheritanceInfo## Addr##
+                                                                      ByteArray##
+
+instance Eq VkCommandBufferInheritanceInfo where
+        (VkCommandBufferInheritanceInfo## a _) ==
+          x@(VkCommandBufferInheritanceInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCommandBufferInheritanceInfo where
+        (VkCommandBufferInheritanceInfo## a _) `compare`
+          x@(VkCommandBufferInheritanceInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCommandBufferInheritanceInfo where
+        sizeOf ~_ = #{size VkCommandBufferInheritanceInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkCommandBufferInheritanceInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCommandBufferInheritanceInfo where
+        unsafeAddr (VkCommandBufferInheritanceInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCommandBufferInheritanceInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCommandBufferInheritanceInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCommandBufferInheritanceInfo where
+        type StructFields VkCommandBufferInheritanceInfo =
+             '["sType", "pNext", "renderPass", "subpass", "framebuffer", -- ' closing tick for hsc2hs
+               "occlusionQueryEnable", "queryFlags", "pipelineStatistics"]
+        type CUnionType VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCommandBufferInheritanceInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCommandBufferInheritanceInfo where
+        type FieldType "sType" VkCommandBufferInheritanceInfo =
+             VkStructureType
+        type FieldOptional "sType" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, sType}
+        type FieldIsArray "sType" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCommandBufferInheritanceInfo where
+        type FieldType "pNext" VkCommandBufferInheritanceInfo = Ptr Void
+        type FieldOptional "pNext" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, pNext}
+        type FieldIsArray "pNext" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "renderPass" VkCommandBufferInheritanceInfo where
+        type FieldType "renderPass" VkCommandBufferInheritanceInfo =
+             VkRenderPass
+        type FieldOptional "renderPass" VkCommandBufferInheritanceInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "renderPass" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, renderPass}
+        type FieldIsArray "renderPass" VkCommandBufferInheritanceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "renderPass" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, renderPass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "renderPass" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         HasField "subpass" VkCommandBufferInheritanceInfo where
+        type FieldType "subpass" VkCommandBufferInheritanceInfo = Word32
+        type FieldOptional "subpass" VkCommandBufferInheritanceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subpass" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, subpass}
+        type FieldIsArray "subpass" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpass" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, subpass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpass" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebuffer" VkCommandBufferInheritanceInfo where
+        type FieldType "framebuffer" VkCommandBufferInheritanceInfo =
+             VkFramebuffer
+        type FieldOptional "framebuffer" VkCommandBufferInheritanceInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebuffer" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, framebuffer}
+        type FieldIsArray "framebuffer" VkCommandBufferInheritanceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebuffer" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, framebuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebuffer" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
+         where
+        type FieldType "occlusionQueryEnable"
+               VkCommandBufferInheritanceInfo
+             = VkBool32
+        type FieldOptional "occlusionQueryEnable"
+               VkCommandBufferInheritanceInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "occlusionQueryEnable"
+               VkCommandBufferInheritanceInfo
+             =
+             #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
+        type FieldIsArray "occlusionQueryEnable"
+               VkCommandBufferInheritanceInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "queryFlags" VkCommandBufferInheritanceInfo where
+        type FieldType "queryFlags" VkCommandBufferInheritanceInfo =
+             VkQueryControlFlags
+        type FieldOptional "queryFlags" VkCommandBufferInheritanceInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "queryFlags" VkCommandBufferInheritanceInfo =
+             #{offset VkCommandBufferInheritanceInfo, queryFlags}
+        type FieldIsArray "queryFlags" VkCommandBufferInheritanceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, queryFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queryFlags" VkCommandBufferInheritanceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, queryFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, queryFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queryFlags" VkCommandBufferInheritanceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, queryFlags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineStatistics" VkCommandBufferInheritanceInfo where
+        type FieldType "pipelineStatistics" VkCommandBufferInheritanceInfo
+             = VkQueryPipelineStatisticFlags
+        type FieldOptional "pipelineStatistics"
+               VkCommandBufferInheritanceInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineStatistics"
+               VkCommandBufferInheritanceInfo
+             =
+             #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
+        type FieldIsArray "pipelineStatistics"
+               VkCommandBufferInheritanceInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineStatistics" VkCommandBufferInheritanceInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, pipelineStatistics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineStatistics" VkCommandBufferInheritanceInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
+
+instance Show VkCommandBufferInheritanceInfo where
+        showsPrec d x
+          = showString "VkCommandBufferInheritanceInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "renderPass = " .
+                            showsPrec d (getField @"renderPass" x) .
+                              showString ", " .
+                                showString "subpass = " .
+                                  showsPrec d (getField @"subpass" x) .
+                                    showString ", " .
+                                      showString "framebuffer = " .
+                                        showsPrec d (getField @"framebuffer" x) .
+                                          showString ", " .
+                                            showString "occlusionQueryEnable = " .
+                                              showsPrec d (getField @"occlusionQueryEnable" x) .
+                                                showString ", " .
+                                                  showString "queryFlags = " .
+                                                    showsPrec d (getField @"queryFlags" x) .
+                                                      showString ", " .
+                                                        showString "pipelineStatistics = " .
+                                                          showsPrec d
+                                                            (getField @"pipelineStatistics" x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkCommandPoolCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkCommandPoolCreateFlags   flags;
+--   >     uint32_t               queueFamilyIndex;
+--   > } VkCommandPoolCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCommandPoolCreateInfo VkCommandPoolCreateInfo registry at www.khronos.org>
+data VkCommandPoolCreateInfo = VkCommandPoolCreateInfo## Addr##
+                                                        ByteArray##
+
+instance Eq VkCommandPoolCreateInfo where
+        (VkCommandPoolCreateInfo## a _) == x@(VkCommandPoolCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCommandPoolCreateInfo where
+        (VkCommandPoolCreateInfo## a _) `compare`
+          x@(VkCommandPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCommandPoolCreateInfo where
+        sizeOf ~_ = #{size VkCommandPoolCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkCommandPoolCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCommandPoolCreateInfo where
+        unsafeAddr (VkCommandPoolCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCommandPoolCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCommandPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCommandPoolCreateInfo where
+        type StructFields VkCommandPoolCreateInfo =
+             '["sType", "pNext", "flags", "queueFamilyIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCommandPoolCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkCommandPoolCreateInfo where
+        type FieldType "sType" VkCommandPoolCreateInfo = VkStructureType
+        type FieldOptional "sType" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCommandPoolCreateInfo =
+             #{offset VkCommandPoolCreateInfo, sType}
+        type FieldIsArray "sType" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCommandPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCommandPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkCommandPoolCreateInfo where
+        type FieldType "pNext" VkCommandPoolCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCommandPoolCreateInfo =
+             #{offset VkCommandPoolCreateInfo, pNext}
+        type FieldIsArray "pNext" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCommandPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCommandPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkCommandPoolCreateInfo where
+        type FieldType "flags" VkCommandPoolCreateInfo =
+             VkCommandPoolCreateFlags
+        type FieldOptional "flags" VkCommandPoolCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkCommandPoolCreateInfo =
+             #{offset VkCommandPoolCreateInfo, flags}
+        type FieldIsArray "flags" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCommandPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkCommandPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkCommandPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndex" VkCommandPoolCreateInfo where
+        type FieldType "queueFamilyIndex" VkCommandPoolCreateInfo = Word32
+        type FieldOptional "queueFamilyIndex" VkCommandPoolCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndex" VkCommandPoolCreateInfo =
+             #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
+        type FieldIsArray "queueFamilyIndex" VkCommandPoolCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndex" VkCommandPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, queueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndex" VkCommandPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
+
+instance Show VkCommandPoolCreateInfo where
+        showsPrec d x
+          = showString "VkCommandPoolCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "queueFamilyIndex = " .
+                                  showsPrec d (getField @"queueFamilyIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ComponentMapping.hsc
@@ -0,0 +1,207 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.ComponentMapping
+       (VkComponentMapping(..)) where
+import           Foreign.Storable                            (Storable (..))
+import           GHC.Base                                    (Addr##, ByteArray##,
+                                                              byteArrayContents##,
+                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.ComponentSwizzle (VkComponentSwizzle)
+import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkComponentMapping {
+--   >     VkComponentSwizzle r;
+--   >     VkComponentSwizzle g;
+--   >     VkComponentSwizzle b;
+--   >     VkComponentSwizzle a;
+--   > } VkComponentMapping;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComponentMapping VkComponentMapping registry at www.khronos.org>
+data VkComponentMapping = VkComponentMapping## Addr## ByteArray##
+
+instance Eq VkComponentMapping where
+        (VkComponentMapping## a _) == x@(VkComponentMapping## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkComponentMapping where
+        (VkComponentMapping## a _) `compare` x@(VkComponentMapping## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkComponentMapping where
+        sizeOf ~_ = #{size VkComponentMapping}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkComponentMapping}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkComponentMapping where
+        unsafeAddr (VkComponentMapping## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkComponentMapping## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkComponentMapping## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkComponentMapping where
+        type StructFields VkComponentMapping = '["r", "g", "b", "a"] -- ' closing tick for hsc2hs
+        type CUnionType VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkComponentMapping = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "r" VkComponentMapping where
+        type FieldType "r" VkComponentMapping = VkComponentSwizzle
+        type FieldOptional "r" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "r" VkComponentMapping =
+             #{offset VkComponentMapping, r}
+        type FieldIsArray "r" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkComponentMapping, r}
+
+instance {-# OVERLAPPING #-} CanReadField "r" VkComponentMapping
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, r})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComponentMapping, r}
+
+instance {-# OVERLAPPING #-} CanWriteField "r" VkComponentMapping
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComponentMapping, r}
+
+instance {-# OVERLAPPING #-} HasField "g" VkComponentMapping where
+        type FieldType "g" VkComponentMapping = VkComponentSwizzle
+        type FieldOptional "g" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "g" VkComponentMapping =
+             #{offset VkComponentMapping, g}
+        type FieldIsArray "g" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkComponentMapping, g}
+
+instance {-# OVERLAPPING #-} CanReadField "g" VkComponentMapping
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, g})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComponentMapping, g}
+
+instance {-# OVERLAPPING #-} CanWriteField "g" VkComponentMapping
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComponentMapping, g}
+
+instance {-# OVERLAPPING #-} HasField "b" VkComponentMapping where
+        type FieldType "b" VkComponentMapping = VkComponentSwizzle
+        type FieldOptional "b" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "b" VkComponentMapping =
+             #{offset VkComponentMapping, b}
+        type FieldIsArray "b" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkComponentMapping, b}
+
+instance {-# OVERLAPPING #-} CanReadField "b" VkComponentMapping
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, b})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComponentMapping, b}
+
+instance {-# OVERLAPPING #-} CanWriteField "b" VkComponentMapping
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComponentMapping, b}
+
+instance {-# OVERLAPPING #-} HasField "a" VkComponentMapping where
+        type FieldType "a" VkComponentMapping = VkComponentSwizzle
+        type FieldOptional "a" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "a" VkComponentMapping =
+             #{offset VkComponentMapping, a}
+        type FieldIsArray "a" VkComponentMapping = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkComponentMapping, a}
+
+instance {-# OVERLAPPING #-} CanReadField "a" VkComponentMapping
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, a})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComponentMapping, a}
+
+instance {-# OVERLAPPING #-} CanWriteField "a" VkComponentMapping
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComponentMapping, a}
+
+instance Show VkComponentMapping where
+        showsPrec d x
+          = showString "VkComponentMapping {" .
+              showString "r = " .
+                showsPrec d (getField @"r" x) .
+                  showString ", " .
+                    showString "g = " .
+                      showsPrec d (getField @"g" x) .
+                        showString ", " .
+                          showString "b = " .
+                            showsPrec d (getField @"b" x) .
+                              showString ", " .
+                                showString "a = " . showsPrec d (getField @"a" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ComputePipelineCreateInfo.hsc
@@ -0,0 +1,346 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
+       (VkComputePipelineCreateInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkPipeline,
+                                                           VkPipelineLayout)
+import           Graphics.Vulkan.Types.Struct.Pipeline    (VkPipelineShaderStageCreateInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkComputePipelineCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineCreateFlags  flags;
+--   >     VkPipelineShaderStageCreateInfo stage;
+--   >     VkPipelineLayout       layout;
+--   >     VkPipeline      basePipelineHandle;
+--   >     int32_t                basePipelineIndex;
+--   > } VkComputePipelineCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkComputePipelineCreateInfo VkComputePipelineCreateInfo registry at www.khronos.org>
+data VkComputePipelineCreateInfo = VkComputePipelineCreateInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkComputePipelineCreateInfo where
+        (VkComputePipelineCreateInfo## a _) ==
+          x@(VkComputePipelineCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkComputePipelineCreateInfo where
+        (VkComputePipelineCreateInfo## a _) `compare`
+          x@(VkComputePipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkComputePipelineCreateInfo where
+        sizeOf ~_ = #{size VkComputePipelineCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkComputePipelineCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkComputePipelineCreateInfo where
+        unsafeAddr (VkComputePipelineCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkComputePipelineCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkComputePipelineCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkComputePipelineCreateInfo where
+        type StructFields VkComputePipelineCreateInfo =
+             '["sType", "pNext", "flags", "stage", "layout", -- ' closing tick for hsc2hs
+               "basePipelineHandle", "basePipelineIndex"]
+        type CUnionType VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkComputePipelineCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkComputePipelineCreateInfo where
+        type FieldType "sType" VkComputePipelineCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, sType}
+        type FieldIsArray "sType" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkComputePipelineCreateInfo where
+        type FieldType "pNext" VkComputePipelineCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, pNext}
+        type FieldIsArray "pNext" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkComputePipelineCreateInfo where
+        type FieldType "flags" VkComputePipelineCreateInfo =
+             VkPipelineCreateFlags
+        type FieldOptional "flags" VkComputePipelineCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, flags}
+        type FieldIsArray "flags" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "stage" VkComputePipelineCreateInfo where
+        type FieldType "stage" VkComputePipelineCreateInfo =
+             VkPipelineShaderStageCreateInfo
+        type FieldOptional "stage" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stage" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, stage}
+        type FieldIsArray "stage" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stage" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, stage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stage" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         HasField "layout" VkComputePipelineCreateInfo where
+        type FieldType "layout" VkComputePipelineCreateInfo =
+             VkPipelineLayout
+        type FieldOptional "layout" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layout" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, layout}
+        type FieldIsArray "layout" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layout" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, layout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layout" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         HasField "basePipelineHandle" VkComputePipelineCreateInfo where
+        type FieldType "basePipelineHandle" VkComputePipelineCreateInfo =
+             VkPipeline
+        type FieldOptional "basePipelineHandle" VkComputePipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "basePipelineHandle" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, basePipelineHandle}
+        type FieldIsArray "basePipelineHandle" VkComputePipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "basePipelineHandle" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, basePipelineHandle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "basePipelineHandle" VkComputePipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         HasField "basePipelineIndex" VkComputePipelineCreateInfo where
+        type FieldType "basePipelineIndex" VkComputePipelineCreateInfo =
+             Int32
+        type FieldOptional "basePipelineIndex" VkComputePipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "basePipelineIndex" VkComputePipelineCreateInfo =
+             #{offset VkComputePipelineCreateInfo, basePipelineIndex}
+        type FieldIsArray "basePipelineIndex" VkComputePipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkComputePipelineCreateInfo, basePipelineIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "basePipelineIndex" VkComputePipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, basePipelineIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkComputePipelineCreateInfo, basePipelineIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "basePipelineIndex" VkComputePipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkComputePipelineCreateInfo, basePipelineIndex}
+
+instance Show VkComputePipelineCreateInfo where
+        showsPrec d x
+          = showString "VkComputePipelineCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "stage = " .
+                                  showsPrec d (getField @"stage" x) .
+                                    showString ", " .
+                                      showString "layout = " .
+                                        showsPrec d (getField @"layout" x) .
+                                          showString ", " .
+                                            showString "basePipelineHandle = " .
+                                              showsPrec d (getField @"basePipelineHandle" x) .
+                                                showString ", " .
+                                                  showString "basePipelineIndex = " .
+                                                    showsPrec d (getField @"basePipelineIndex" x) .
+                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/CopyDescriptorSet.hsc
@@ -0,0 +1,397 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.CopyDescriptorSet
+       (VkCopyDescriptorSet(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkDescriptorSet)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkCopyDescriptorSet {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDescriptorSet        srcSet;
+--   >     uint32_t               srcBinding;
+--   >     uint32_t               srcArrayElement;
+--   >     VkDescriptorSet        dstSet;
+--   >     uint32_t               dstBinding;
+--   >     uint32_t               dstArrayElement;
+--   >     uint32_t               descriptorCount;
+--   > } VkCopyDescriptorSet;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkCopyDescriptorSet VkCopyDescriptorSet registry at www.khronos.org>
+data VkCopyDescriptorSet = VkCopyDescriptorSet## Addr## ByteArray##
+
+instance Eq VkCopyDescriptorSet where
+        (VkCopyDescriptorSet## a _) == x@(VkCopyDescriptorSet## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkCopyDescriptorSet where
+        (VkCopyDescriptorSet## a _) `compare` x@(VkCopyDescriptorSet## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkCopyDescriptorSet where
+        sizeOf ~_ = #{size VkCopyDescriptorSet}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkCopyDescriptorSet}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkCopyDescriptorSet where
+        unsafeAddr (VkCopyDescriptorSet## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkCopyDescriptorSet## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkCopyDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkCopyDescriptorSet where
+        type StructFields VkCopyDescriptorSet =
+             '["sType", "pNext", "srcSet", "srcBinding", "srcArrayElement", -- ' closing tick for hsc2hs
+               "dstSet", "dstBinding", "dstArrayElement", "descriptorCount"]
+        type CUnionType VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkCopyDescriptorSet = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkCopyDescriptorSet
+         where
+        type FieldType "sType" VkCopyDescriptorSet = VkStructureType
+        type FieldOptional "sType" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, sType}
+        type FieldIsArray "sType" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkCopyDescriptorSet
+         where
+        type FieldType "pNext" VkCopyDescriptorSet = Ptr Void
+        type FieldOptional "pNext" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, pNext}
+        type FieldIsArray "pNext" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-} HasField "srcSet" VkCopyDescriptorSet
+         where
+        type FieldType "srcSet" VkCopyDescriptorSet = VkDescriptorSet
+        type FieldOptional "srcSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcSet" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, srcSet}
+        type FieldIsArray "srcSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, srcSet}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcSet" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcSet})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, srcSet}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcSet" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, srcSet}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcBinding" VkCopyDescriptorSet where
+        type FieldType "srcBinding" VkCopyDescriptorSet = Word32
+        type FieldOptional "srcBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcBinding" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, srcBinding}
+        type FieldIsArray "srcBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, srcBinding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcBinding" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcBinding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, srcBinding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcBinding" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, srcBinding}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcArrayElement" VkCopyDescriptorSet where
+        type FieldType "srcArrayElement" VkCopyDescriptorSet = Word32
+        type FieldOptional "srcArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcArrayElement" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, srcArrayElement}
+        type FieldIsArray "srcArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCopyDescriptorSet, srcArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcArrayElement" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcArrayElement})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, srcArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcArrayElement" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, srcArrayElement}
+
+instance {-# OVERLAPPING #-} HasField "dstSet" VkCopyDescriptorSet
+         where
+        type FieldType "dstSet" VkCopyDescriptorSet = VkDescriptorSet
+        type FieldOptional "dstSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSet" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, dstSet}
+        type FieldIsArray "dstSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSet" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstSet})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSet" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstBinding" VkCopyDescriptorSet where
+        type FieldType "dstBinding" VkCopyDescriptorSet = Word32
+        type FieldOptional "dstBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstBinding" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, dstBinding}
+        type FieldIsArray "dstBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkCopyDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstBinding" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstBinding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstBinding" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstArrayElement" VkCopyDescriptorSet where
+        type FieldType "dstArrayElement" VkCopyDescriptorSet = Word32
+        type FieldOptional "dstArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstArrayElement" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, dstArrayElement}
+        type FieldIsArray "dstArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCopyDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstArrayElement" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstArrayElement})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstArrayElement" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorCount" VkCopyDescriptorSet where
+        type FieldType "descriptorCount" VkCopyDescriptorSet = Word32
+        type FieldOptional "descriptorCount" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorCount" VkCopyDescriptorSet =
+             #{offset VkCopyDescriptorSet, descriptorCount}
+        type FieldIsArray "descriptorCount" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkCopyDescriptorSet, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorCount" VkCopyDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, descriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkCopyDescriptorSet, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorCount" VkCopyDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkCopyDescriptorSet, descriptorCount}
+
+instance Show VkCopyDescriptorSet where
+        showsPrec d x
+          = showString "VkCopyDescriptorSet {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcSet = " .
+                            showsPrec d (getField @"srcSet" x) .
+                              showString ", " .
+                                showString "srcBinding = " .
+                                  showsPrec d (getField @"srcBinding" x) .
+                                    showString ", " .
+                                      showString "srcArrayElement = " .
+                                        showsPrec d (getField @"srcArrayElement" x) .
+                                          showString ", " .
+                                            showString "dstSet = " .
+                                              showsPrec d (getField @"dstSet" x) .
+                                                showString ", " .
+                                                  showString "dstBinding = " .
+                                                    showsPrec d (getField @"dstBinding" x) .
+                                                      showString ", " .
+                                                        showString "dstArrayElement = " .
+                                                          showsPrec d
+                                                            (getField @"dstArrayElement" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "descriptorCount = " .
+                                                                showsPrec d
+                                                                  (getField @"descriptorCount" x)
+                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Debug.hsc
@@ -0,0 +1,1435 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Debug
+       (VkDebugMarkerMarkerInfoEXT(..),
+        VkDebugMarkerObjectNameInfoEXT(..),
+        VkDebugMarkerObjectTagInfoEXT(..),
+        VkDebugReportCallbackCreateInfoEXT(..),
+        VkDebugUtilsObjectTagInfoEXT(..))
+       where
+import           Foreign.Storable                                (Storable (..))
+import           GHC.Base                                        (Addr##,
+                                                                  ByteArray##,
+                                                                  Proxy##,
+                                                                  byteArrayContents##,
+                                                                  plusAddr##,
+                                                                  proxy##)
+import           GHC.TypeLits                                    (KnownNat,
+                                                                  natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Debug                (VkDebugReportFlagsEXT,
+                                                                  VkDebugReportObjectTypeEXT)
+import           Graphics.Vulkan.Types.Enum.Object               (VkObjectType)
+import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import           Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugReportCallbackEXT)
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDebugMarkerMarkerInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     const char* pMarkerName;
+--   >     float            color[4];
+--   > } VkDebugMarkerMarkerInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerMarkerInfoEXT VkDebugMarkerMarkerInfoEXT registry at www.khronos.org>
+data VkDebugMarkerMarkerInfoEXT = VkDebugMarkerMarkerInfoEXT## Addr##
+                                                              ByteArray##
+
+instance Eq VkDebugMarkerMarkerInfoEXT where
+        (VkDebugMarkerMarkerInfoEXT## a _) ==
+          x@(VkDebugMarkerMarkerInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugMarkerMarkerInfoEXT where
+        (VkDebugMarkerMarkerInfoEXT## a _) `compare`
+          x@(VkDebugMarkerMarkerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugMarkerMarkerInfoEXT where
+        sizeOf ~_ = #{size VkDebugMarkerMarkerInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDebugMarkerMarkerInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugMarkerMarkerInfoEXT where
+        unsafeAddr (VkDebugMarkerMarkerInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugMarkerMarkerInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugMarkerMarkerInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugMarkerMarkerInfoEXT where
+        type StructFields VkDebugMarkerMarkerInfoEXT =
+             '["sType", "pNext", "pMarkerName", "color"] -- ' closing tick for hsc2hs
+        type CUnionType VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugMarkerMarkerInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugMarkerMarkerInfoEXT where
+        type FieldType "sType" VkDebugMarkerMarkerInfoEXT = VkStructureType
+        type FieldOptional "sType" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugMarkerMarkerInfoEXT =
+             #{offset VkDebugMarkerMarkerInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerMarkerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugMarkerMarkerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugMarkerMarkerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugMarkerMarkerInfoEXT where
+        type FieldType "pNext" VkDebugMarkerMarkerInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugMarkerMarkerInfoEXT =
+             #{offset VkDebugMarkerMarkerInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerMarkerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugMarkerMarkerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugMarkerMarkerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
+        type FieldType "pMarkerName" VkDebugMarkerMarkerInfoEXT = CString
+        type FieldOptional "pMarkerName" VkDebugMarkerMarkerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pMarkerName" VkDebugMarkerMarkerInfoEXT =
+             #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
+        type FieldIsArray "pMarkerName" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
+
+instance {-# OVERLAPPING #-}
+         HasField "color" VkDebugMarkerMarkerInfoEXT where
+        type FieldType "color" VkDebugMarkerMarkerInfoEXT =
+             #{type float}
+        type FieldOptional "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "color" VkDebugMarkerMarkerInfoEXT =
+             #{offset VkDebugMarkerMarkerInfoEXT, color}
+        type FieldIsArray "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerMarkerInfoEXT, color}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
+         CanReadFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}
+        type FieldArrayLength "color" VkDebugMarkerMarkerInfoEXT = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkDebugMarkerMarkerInfoEXT, color} +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkDebugMarkerMarkerInfoEXT, color} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
+         CanWriteFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkDebugMarkerMarkerInfoEXT, color} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkDebugMarkerMarkerInfoEXT where
+        showsPrec d x
+          = showString "VkDebugMarkerMarkerInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pMarkerName = " .
+                            showsPrec d (getField @"pMarkerName" x) .
+                              showString ", " .
+                                (showString "color = [" .
+                                   showsPrec d
+                                     (let s = sizeOf
+                                                (undefined ::
+                                                   FieldType "color" VkDebugMarkerMarkerInfoEXT)
+                                          o = fieldOffset @"color" @VkDebugMarkerMarkerInfoEXT
+                                          f i
+                                            = peekByteOff (unsafePtr x) i ::
+                                                IO (FieldType "color" VkDebugMarkerMarkerInfoEXT)
+                                        in
+                                        unsafeDupablePerformIO . mapM f $
+                                          map (\ i -> o + i * s) [0 .. 4 - 1])
+                                     . showChar ']')
+                                  . showChar '}'
+
+-- | > typedef struct VkDebugMarkerObjectNameInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDebugReportObjectTypeEXT       objectType;
+--   >     uint64_t                         object;
+--   >     const char* pObjectName;
+--   > } VkDebugMarkerObjectNameInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectNameInfoEXT VkDebugMarkerObjectNameInfoEXT registry at www.khronos.org>
+data VkDebugMarkerObjectNameInfoEXT = VkDebugMarkerObjectNameInfoEXT## Addr##
+                                                                      ByteArray##
+
+instance Eq VkDebugMarkerObjectNameInfoEXT where
+        (VkDebugMarkerObjectNameInfoEXT## a _) ==
+          x@(VkDebugMarkerObjectNameInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugMarkerObjectNameInfoEXT where
+        (VkDebugMarkerObjectNameInfoEXT## a _) `compare`
+          x@(VkDebugMarkerObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugMarkerObjectNameInfoEXT where
+        sizeOf ~_ = #{size VkDebugMarkerObjectNameInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugMarkerObjectNameInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugMarkerObjectNameInfoEXT where
+        unsafeAddr (VkDebugMarkerObjectNameInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugMarkerObjectNameInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugMarkerObjectNameInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugMarkerObjectNameInfoEXT where
+        type StructFields VkDebugMarkerObjectNameInfoEXT =
+             '["sType", "pNext", "objectType", "object", "pObjectName"] -- ' closing tick for hsc2hs
+        type CUnionType VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugMarkerObjectNameInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugMarkerObjectNameInfoEXT where
+        type FieldType "sType" VkDebugMarkerObjectNameInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugMarkerObjectNameInfoEXT =
+             #{offset VkDebugMarkerObjectNameInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugMarkerObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugMarkerObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugMarkerObjectNameInfoEXT where
+        type FieldType "pNext" VkDebugMarkerObjectNameInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugMarkerObjectNameInfoEXT =
+             #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugMarkerObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugMarkerObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectType" VkDebugMarkerObjectNameInfoEXT where
+        type FieldType "objectType" VkDebugMarkerObjectNameInfoEXT =
+             VkDebugReportObjectTypeEXT
+        type FieldOptional "objectType" VkDebugMarkerObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectType" VkDebugMarkerObjectNameInfoEXT =
+             #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
+        type FieldIsArray "objectType" VkDebugMarkerObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectType" VkDebugMarkerObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, objectType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectType" VkDebugMarkerObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         HasField "object" VkDebugMarkerObjectNameInfoEXT where
+        type FieldType "object" VkDebugMarkerObjectNameInfoEXT = Word64
+        type FieldOptional "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "object" VkDebugMarkerObjectNameInfoEXT =
+             #{offset VkDebugMarkerObjectNameInfoEXT, object}
+        type FieldIsArray "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectNameInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "object" VkDebugMarkerObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, object})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "object" VkDebugMarkerObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
+        type FieldType "pObjectName" VkDebugMarkerObjectNameInfoEXT =
+             CString
+        type FieldOptional "pObjectName" VkDebugMarkerObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pObjectName" VkDebugMarkerObjectNameInfoEXT =
+             #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
+        type FieldIsArray "pObjectName" VkDebugMarkerObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
+
+instance Show VkDebugMarkerObjectNameInfoEXT where
+        showsPrec d x
+          = showString "VkDebugMarkerObjectNameInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectType = " .
+                            showsPrec d (getField @"objectType" x) .
+                              showString ", " .
+                                showString "object = " .
+                                  showsPrec d (getField @"object" x) .
+                                    showString ", " .
+                                      showString "pObjectName = " .
+                                        showsPrec d (getField @"pObjectName" x) . showChar '}'
+
+-- | > typedef struct VkDebugMarkerObjectTagInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDebugReportObjectTypeEXT       objectType;
+--   >     uint64_t                         object;
+--   >     uint64_t                         tagName;
+--   >     size_t                           tagSize;
+--   >     const void*        pTag;
+--   > } VkDebugMarkerObjectTagInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugMarkerObjectTagInfoEXT VkDebugMarkerObjectTagInfoEXT registry at www.khronos.org>
+data VkDebugMarkerObjectTagInfoEXT = VkDebugMarkerObjectTagInfoEXT## Addr##
+                                                                    ByteArray##
+
+instance Eq VkDebugMarkerObjectTagInfoEXT where
+        (VkDebugMarkerObjectTagInfoEXT## a _) ==
+          x@(VkDebugMarkerObjectTagInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugMarkerObjectTagInfoEXT where
+        (VkDebugMarkerObjectTagInfoEXT## a _) `compare`
+          x@(VkDebugMarkerObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugMarkerObjectTagInfoEXT where
+        sizeOf ~_ = #{size VkDebugMarkerObjectTagInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugMarkerObjectTagInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugMarkerObjectTagInfoEXT where
+        unsafeAddr (VkDebugMarkerObjectTagInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugMarkerObjectTagInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugMarkerObjectTagInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugMarkerObjectTagInfoEXT where
+        type StructFields VkDebugMarkerObjectTagInfoEXT =
+             '["sType", "pNext", "objectType", "object", "tagName", "tagSize", -- ' closing tick for hsc2hs
+               "pTag"]
+        type CUnionType VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugMarkerObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "sType" VkDebugMarkerObjectTagInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "pNext" VkDebugMarkerObjectTagInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectType" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "objectType" VkDebugMarkerObjectTagInfoEXT =
+             VkDebugReportObjectTypeEXT
+        type FieldOptional "objectType" VkDebugMarkerObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectType" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
+        type FieldIsArray "objectType" VkDebugMarkerObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectType" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, objectType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectType" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         HasField "object" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "object" VkDebugMarkerObjectTagInfoEXT = Word64
+        type FieldOptional "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "object" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, object}
+        type FieldIsArray "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "object" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, object})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "object" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, object}
+
+instance {-# OVERLAPPING #-}
+         HasField "tagName" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "tagName" VkDebugMarkerObjectTagInfoEXT = Word64
+        type FieldOptional "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tagName" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
+        type FieldIsArray "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tagName" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, tagName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tagName" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         HasField "tagSize" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "tagSize" VkDebugMarkerObjectTagInfoEXT = CSize
+        type FieldOptional "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tagSize" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
+        type FieldIsArray "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tagSize" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, tagSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tagSize" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTag" VkDebugMarkerObjectTagInfoEXT where
+        type FieldType "pTag" VkDebugMarkerObjectTagInfoEXT = Ptr Void
+        type FieldOptional "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pTag" VkDebugMarkerObjectTagInfoEXT =
+             #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
+        type FieldIsArray "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTag" VkDebugMarkerObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, pTag})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTag" VkDebugMarkerObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
+
+instance Show VkDebugMarkerObjectTagInfoEXT where
+        showsPrec d x
+          = showString "VkDebugMarkerObjectTagInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectType = " .
+                            showsPrec d (getField @"objectType" x) .
+                              showString ", " .
+                                showString "object = " .
+                                  showsPrec d (getField @"object" x) .
+                                    showString ", " .
+                                      showString "tagName = " .
+                                        showsPrec d (getField @"tagName" x) .
+                                          showString ", " .
+                                            showString "tagSize = " .
+                                              showsPrec d (getField @"tagSize" x) .
+                                                showString ", " .
+                                                  showString "pTag = " .
+                                                    showsPrec d (getField @"pTag" x) . showChar '}'
+
+-- | > typedef struct VkDebugReportCallbackCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDebugReportFlagsEXT            flags;
+--   >     PFN_vkDebugReportCallbackEXT     pfnCallback;
+--   >     void*            pUserData;
+--   > } VkDebugReportCallbackCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugReportCallbackCreateInfoEXT VkDebugReportCallbackCreateInfoEXT registry at www.khronos.org>
+data VkDebugReportCallbackCreateInfoEXT = VkDebugReportCallbackCreateInfoEXT## Addr##
+                                                                              ByteArray##
+
+instance Eq VkDebugReportCallbackCreateInfoEXT where
+        (VkDebugReportCallbackCreateInfoEXT## a _) ==
+          x@(VkDebugReportCallbackCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugReportCallbackCreateInfoEXT where
+        (VkDebugReportCallbackCreateInfoEXT## a _) `compare`
+          x@(VkDebugReportCallbackCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugReportCallbackCreateInfoEXT where
+        sizeOf ~_ = #{size VkDebugReportCallbackCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugReportCallbackCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugReportCallbackCreateInfoEXT where
+        unsafeAddr (VkDebugReportCallbackCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugReportCallbackCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugReportCallbackCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugReportCallbackCreateInfoEXT where
+        type StructFields VkDebugReportCallbackCreateInfoEXT =
+             '["sType", "pNext", "flags", "pfnCallback", "pUserData"] -- ' closing tick for hsc2hs
+        type CUnionType VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugReportCallbackCreateInfoEXT =
+             '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugReportCallbackCreateInfoEXT where
+        type FieldType "sType" VkDebugReportCallbackCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugReportCallbackCreateInfoEXT =
+             #{offset VkDebugReportCallbackCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugReportCallbackCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugReportCallbackCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugReportCallbackCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugReportCallbackCreateInfoEXT where
+        type FieldType "pNext" VkDebugReportCallbackCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugReportCallbackCreateInfoEXT =
+             #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugReportCallbackCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugReportCallbackCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDebugReportCallbackCreateInfoEXT where
+        type FieldType "flags" VkDebugReportCallbackCreateInfoEXT =
+             VkDebugReportFlagsEXT
+        type FieldOptional "flags" VkDebugReportCallbackCreateInfoEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDebugReportCallbackCreateInfoEXT =
+             #{offset VkDebugReportCallbackCreateInfoEXT, flags}
+        type FieldIsArray "flags" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugReportCallbackCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDebugReportCallbackCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDebugReportCallbackCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
+        type FieldType "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
+             PFN_vkDebugReportCallbackEXT
+        type FieldOptional "pfnCallback" VkDebugReportCallbackCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
+             #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
+        type FieldIsArray "pfnCallback" VkDebugReportCallbackCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnCallback" VkDebugReportCallbackCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
+
+instance {-# OVERLAPPING #-}
+         HasField "pUserData" VkDebugReportCallbackCreateInfoEXT where
+        type FieldType "pUserData" VkDebugReportCallbackCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pUserData" VkDebugReportCallbackCreateInfoEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pUserData" VkDebugReportCallbackCreateInfoEXT =
+             #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
+        type FieldIsArray "pUserData" VkDebugReportCallbackCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pUserData" VkDebugReportCallbackCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pUserData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pUserData" VkDebugReportCallbackCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
+
+instance Show VkDebugReportCallbackCreateInfoEXT where
+        showsPrec d x
+          = showString "VkDebugReportCallbackCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pfnCallback = " .
+                                  showsPrec d (getField @"pfnCallback" x) .
+                                    showString ", " .
+                                      showString "pUserData = " .
+                                        showsPrec d (getField @"pUserData" x) . showChar '}'
+
+-- | > typedef struct VkDebugUtilsObjectTagInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                            pNext;
+--   >     VkObjectType                           objectType;
+--   >     uint64_t                               objectHandle;
+--   >     uint64_t                               tagName;
+--   >     size_t                                 tagSize;
+--   >     const void*              pTag;
+--   > } VkDebugUtilsObjectTagInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsObjectTagInfoEXT VkDebugUtilsObjectTagInfoEXT registry at www.khronos.org>
+data VkDebugUtilsObjectTagInfoEXT = VkDebugUtilsObjectTagInfoEXT## Addr##
+                                                                  ByteArray##
+
+instance Eq VkDebugUtilsObjectTagInfoEXT where
+        (VkDebugUtilsObjectTagInfoEXT## a _) ==
+          x@(VkDebugUtilsObjectTagInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugUtilsObjectTagInfoEXT where
+        (VkDebugUtilsObjectTagInfoEXT## a _) `compare`
+          x@(VkDebugUtilsObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugUtilsObjectTagInfoEXT where
+        sizeOf ~_ = #{size VkDebugUtilsObjectTagInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugUtilsObjectTagInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugUtilsObjectTagInfoEXT where
+        unsafeAddr (VkDebugUtilsObjectTagInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugUtilsObjectTagInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugUtilsObjectTagInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugUtilsObjectTagInfoEXT where
+        type StructFields VkDebugUtilsObjectTagInfoEXT =
+             '["sType", "pNext", "objectType", "objectHandle", "tagName", -- ' closing tick for hsc2hs
+               "tagSize", "pTag"]
+        type CUnionType VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugUtilsObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "sType" VkDebugUtilsObjectTagInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "pNext" VkDebugUtilsObjectTagInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectType" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "objectType" VkDebugUtilsObjectTagInfoEXT =
+             VkObjectType
+        type FieldOptional "objectType" VkDebugUtilsObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectType" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
+        type FieldIsArray "objectType" VkDebugUtilsObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectType" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, objectType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectType" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "objectHandle" VkDebugUtilsObjectTagInfoEXT = Word64
+        type FieldOptional "objectHandle" VkDebugUtilsObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectHandle" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
+        type FieldIsArray "objectHandle" VkDebugUtilsObjectTagInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         HasField "tagName" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "tagName" VkDebugUtilsObjectTagInfoEXT = Word64
+        type FieldOptional "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tagName" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
+        type FieldIsArray "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tagName" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, tagName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tagName" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
+
+instance {-# OVERLAPPING #-}
+         HasField "tagSize" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "tagSize" VkDebugUtilsObjectTagInfoEXT = CSize
+        type FieldOptional "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tagSize" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
+        type FieldIsArray "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tagSize" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, tagSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tagSize" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTag" VkDebugUtilsObjectTagInfoEXT where
+        type FieldType "pTag" VkDebugUtilsObjectTagInfoEXT = Ptr Void
+        type FieldOptional "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pTag" VkDebugUtilsObjectTagInfoEXT =
+             #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
+        type FieldIsArray "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTag" VkDebugUtilsObjectTagInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, pTag})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTag" VkDebugUtilsObjectTagInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
+
+instance Show VkDebugUtilsObjectTagInfoEXT where
+        showsPrec d x
+          = showString "VkDebugUtilsObjectTagInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectType = " .
+                            showsPrec d (getField @"objectType" x) .
+                              showString ", " .
+                                showString "objectHandle = " .
+                                  showsPrec d (getField @"objectHandle" x) .
+                                    showString ", " .
+                                      showString "tagName = " .
+                                        showsPrec d (getField @"tagName" x) .
+                                          showString ", " .
+                                            showString "tagSize = " .
+                                              showsPrec d (getField @"tagSize" x) .
+                                                showString ", " .
+                                                  showString "pTag = " .
+                                                    showsPrec d (getField @"pTag" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsLabelEXT.hsc
@@ -0,0 +1,275 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
+       (VkDebugUtilsLabelEXT(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           Proxy##,
+                                                           byteArrayContents##,
+                                                           plusAddr##, proxy##)
+import           GHC.TypeLits                             (KnownNat, natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDebugUtilsLabelEXT {
+--   >     VkStructureType sType;
+--   >     const void*                            pNext;
+--   >     const char*      pLabelName;
+--   >     float                  color[4];
+--   > } VkDebugUtilsLabelEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsLabelEXT VkDebugUtilsLabelEXT registry at www.khronos.org>
+data VkDebugUtilsLabelEXT = VkDebugUtilsLabelEXT## Addr## ByteArray##
+
+instance Eq VkDebugUtilsLabelEXT where
+        (VkDebugUtilsLabelEXT## a _) == x@(VkDebugUtilsLabelEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugUtilsLabelEXT where
+        (VkDebugUtilsLabelEXT## a _) `compare` x@(VkDebugUtilsLabelEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugUtilsLabelEXT where
+        sizeOf ~_ = #{size VkDebugUtilsLabelEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDebugUtilsLabelEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugUtilsLabelEXT where
+        unsafeAddr (VkDebugUtilsLabelEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugUtilsLabelEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugUtilsLabelEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugUtilsLabelEXT where
+        type StructFields VkDebugUtilsLabelEXT =
+             '["sType", "pNext", "pLabelName", "color"] -- ' closing tick for hsc2hs
+        type CUnionType VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugUtilsLabelEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDebugUtilsLabelEXT
+         where
+        type FieldType "sType" VkDebugUtilsLabelEXT = VkStructureType
+        type FieldOptional "sType" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugUtilsLabelEXT =
+             #{offset VkDebugUtilsLabelEXT, sType}
+        type FieldIsArray "sType" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDebugUtilsLabelEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugUtilsLabelEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsLabelEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugUtilsLabelEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDebugUtilsLabelEXT
+         where
+        type FieldType "pNext" VkDebugUtilsLabelEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugUtilsLabelEXT =
+             #{offset VkDebugUtilsLabelEXT, pNext}
+        type FieldIsArray "pNext" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDebugUtilsLabelEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugUtilsLabelEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsLabelEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugUtilsLabelEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pLabelName" VkDebugUtilsLabelEXT where
+        type FieldType "pLabelName" VkDebugUtilsLabelEXT = CString
+        type FieldOptional "pLabelName" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pLabelName" VkDebugUtilsLabelEXT =
+             #{offset VkDebugUtilsLabelEXT, pLabelName}
+        type FieldIsArray "pLabelName" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsLabelEXT, pLabelName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pLabelName" VkDebugUtilsLabelEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, pLabelName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsLabelEXT, pLabelName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pLabelName" VkDebugUtilsLabelEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, pLabelName}
+
+instance {-# OVERLAPPING #-} HasField "color" VkDebugUtilsLabelEXT
+         where
+        type FieldType "color" VkDebugUtilsLabelEXT =
+             #{type float}
+        type FieldOptional "color" VkDebugUtilsLabelEXT = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "color" VkDebugUtilsLabelEXT =
+             #{offset VkDebugUtilsLabelEXT, color}
+        type FieldIsArray "color" VkDebugUtilsLabelEXT = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDebugUtilsLabelEXT, color}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>
+         CanReadFieldArray "color" idx VkDebugUtilsLabelEXT
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 0 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 1 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 2 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "color" 3 VkDebugUtilsLabelEXT #-}
+        type FieldArrayLength "color" VkDebugUtilsLabelEXT = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkDebugUtilsLabelEXT, color} +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkDebugUtilsLabelEXT, color} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>
+         CanWriteFieldArray "color" idx VkDebugUtilsLabelEXT
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 0 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 1 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 2 VkDebugUtilsLabelEXT #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "color" 3 VkDebugUtilsLabelEXT #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkDebugUtilsLabelEXT, color} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkDebugUtilsLabelEXT where
+        showsPrec d x
+          = showString "VkDebugUtilsLabelEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pLabelName = " .
+                            showsPrec d (getField @"pLabelName" x) .
+                              showString ", " .
+                                (showString "color = [" .
+                                   showsPrec d
+                                     (let s = sizeOf
+                                                (undefined ::
+                                                   FieldType "color" VkDebugUtilsLabelEXT)
+                                          o = fieldOffset @"color" @VkDebugUtilsLabelEXT
+                                          f i
+                                            = peekByteOff (unsafePtr x) i ::
+                                                IO (FieldType "color" VkDebugUtilsLabelEXT)
+                                        in
+                                        unsafeDupablePerformIO . mapM f $
+                                          map (\ i -> o + i * s) [0 .. 4 - 1])
+                                     . showChar ']')
+                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCallbackDataEXT.hsc
@@ -0,0 +1,625 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
+       (VkDebugUtilsMessengerCallbackDataEXT(..)) where
+import           Foreign.Storable                                         (Storable (..))
+import           GHC.Base                                                 (Addr##,
+                                                                           ByteArray##,
+                                                                           byteArrayContents##,
+                                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks                           (VkDebugUtilsMessengerCallbackDataFlagsEXT)
+import           Graphics.Vulkan.Types.Enum.StructureType                 (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT          (VkDebugUtilsLabelEXT)
+import           Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT (VkDebugUtilsObjectNameInfoEXT)
+import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDebugUtilsMessengerCallbackDataEXT {
+--   >     VkStructureType sType;
+--   >     const void*                                                        pNext;
+--   >     VkDebugUtilsMessengerCallbackDataFlagsEXT                          flags;
+--   >     const char*                                  pMessageIdName;
+--   >     int32_t                                                            messageIdNumber;
+--   >     const char*                                                  pMessage;
+--   >     uint32_t                                                           queueLabelCount;
+--   >     VkDebugUtilsLabelEXT*  pQueueLabels;
+--   >     uint32_t                                                           cmdBufLabelCount;
+--   >     VkDebugUtilsLabelEXT* pCmdBufLabels;
+--   >     uint32_t                                                                           objectCount;
+--   >     VkDebugUtilsObjectNameInfoEXT*             pObjects;
+--   > } VkDebugUtilsMessengerCallbackDataEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsMessengerCallbackDataEXT VkDebugUtilsMessengerCallbackDataEXT registry at www.khronos.org>
+data VkDebugUtilsMessengerCallbackDataEXT = VkDebugUtilsMessengerCallbackDataEXT## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkDebugUtilsMessengerCallbackDataEXT where
+        (VkDebugUtilsMessengerCallbackDataEXT## a _) ==
+          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugUtilsMessengerCallbackDataEXT where
+        (VkDebugUtilsMessengerCallbackDataEXT## a _) `compare`
+          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugUtilsMessengerCallbackDataEXT where
+        sizeOf ~_
+          = #{size VkDebugUtilsMessengerCallbackDataEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugUtilsMessengerCallbackDataEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugUtilsMessengerCallbackDataEXT
+         where
+        unsafeAddr (VkDebugUtilsMessengerCallbackDataEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugUtilsMessengerCallbackDataEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugUtilsMessengerCallbackDataEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugUtilsMessengerCallbackDataEXT where
+        type StructFields VkDebugUtilsMessengerCallbackDataEXT =
+             '["sType", "pNext", "flags", "pMessageIdName", "messageIdNumber", -- ' closing tick for hsc2hs
+               "pMessage", "queueLabelCount", "pQueueLabels", "cmdBufLabelCount",
+               "pCmdBufLabels", "objectCount", "pObjects"]
+        type CUnionType VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugUtilsMessengerCallbackDataEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "sType" VkDebugUtilsMessengerCallbackDataEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugUtilsMessengerCallbackDataEXT =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
+        type FieldIsArray "sType" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "pNext" VkDebugUtilsMessengerCallbackDataEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkDebugUtilsMessengerCallbackDataEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugUtilsMessengerCallbackDataEXT =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
+        type FieldIsArray "pNext" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "flags" VkDebugUtilsMessengerCallbackDataEXT =
+             VkDebugUtilsMessengerCallbackDataFlagsEXT
+        type FieldOptional "flags" VkDebugUtilsMessengerCallbackDataEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDebugUtilsMessengerCallbackDataEXT =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
+        type FieldIsArray "flags" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        type FieldType "pMessageIdName"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = CString
+        type FieldOptional "pMessageIdName"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pMessageIdName"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
+        type FieldIsArray "pMessageIdName"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
+
+instance {-# OVERLAPPING #-}
+         HasField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        type FieldType "messageIdNumber"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = Int32
+        type FieldOptional "messageIdNumber"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "messageIdNumber"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
+        type FieldIsArray "messageIdNumber"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "messageIdNumber"
+           VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
+
+instance {-# OVERLAPPING #-}
+         HasField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
+             CString
+        type FieldOptional "pMessage" VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
+        type FieldIsArray "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        type FieldType "queueLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = Word32
+        type FieldOptional "queueLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "queueLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
+        type FieldIsArray "queueLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueLabelCount"
+           VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
+             = Ptr VkDebugUtilsLabelEXT
+        type FieldOptional "pQueueLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pQueueLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
+        type FieldIsArray "pQueueLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
+
+instance {-# OVERLAPPING #-}
+         HasField "cmdBufLabelCount" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        type FieldType "cmdBufLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = Word32
+        type FieldOptional "cmdBufLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "cmdBufLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
+        type FieldIsArray "cmdBufLabelCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "cmdBufLabelCount"
+           VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "cmdBufLabelCount"
+           VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
+             = Ptr VkDebugUtilsLabelEXT
+        type FieldOptional "pCmdBufLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pCmdBufLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
+        type FieldIsArray "pCmdBufLabels"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectCount" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "objectCount" VkDebugUtilsMessengerCallbackDataEXT =
+             Word32
+        type FieldOptional "objectCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectCount" VkDebugUtilsMessengerCallbackDataEXT
+             =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
+        type FieldIsArray "objectCount"
+               VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
+        type FieldType "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
+             Ptr VkDebugUtilsObjectNameInfoEXT
+        type FieldOptional "pObjects" VkDebugUtilsMessengerCallbackDataEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
+             #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
+        type FieldIsArray "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
+
+instance Show VkDebugUtilsMessengerCallbackDataEXT where
+        showsPrec d x
+          = showString "VkDebugUtilsMessengerCallbackDataEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pMessageIdName = " .
+                                  showsPrec d (getField @"pMessageIdName" x) .
+                                    showString ", " .
+                                      showString "messageIdNumber = " .
+                                        showsPrec d (getField @"messageIdNumber" x) .
+                                          showString ", " .
+                                            showString "pMessage = " .
+                                              showsPrec d (getField @"pMessage" x) .
+                                                showString ", " .
+                                                  showString "queueLabelCount = " .
+                                                    showsPrec d (getField @"queueLabelCount" x) .
+                                                      showString ", " .
+                                                        showString "pQueueLabels = " .
+                                                          showsPrec d (getField @"pQueueLabels" x) .
+                                                            showString ", " .
+                                                              showString "cmdBufLabelCount = " .
+                                                                showsPrec d
+                                                                  (getField @"cmdBufLabelCount" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "pCmdBufLabels = " .
+                                                                      showsPrec d
+                                                                        (getField @"pCmdBufLabels"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "objectCount = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"objectCount"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "pObjects = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"pObjects"
+                                                                                       x)
+                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsMessengerCreateInfoEXT.hsc
@@ -0,0 +1,374 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
+       (VkDebugUtilsMessengerCreateInfoEXT(..)) where
+import           Foreign.Storable                                (Storable (..))
+import           GHC.Base                                        (Addr##,
+                                                                  ByteArray##,
+                                                                  byteArrayContents##,
+                                                                  plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks                  (VkDebugUtilsMessengerCreateFlagsEXT)
+import           Graphics.Vulkan.Types.Enum.Debug                (VkDebugUtilsMessageSeverityFlagsEXT,
+                                                                  VkDebugUtilsMessageTypeFlagsEXT)
+import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import           Graphics.Vulkan.Types.Funcpointers              (PFN_vkDebugUtilsMessengerCallbackEXT)
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDebugUtilsMessengerCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                                          pNext;
+--   >     VkDebugUtilsMessengerCreateFlagsEXT  flags;
+--   >     VkDebugUtilsMessageSeverityFlagsEXT                  messageSeverity;
+--   >     VkDebugUtilsMessageTypeFlagsEXT                      messageType;
+--   >     PFN_vkDebugUtilsMessengerCallbackEXT                 pfnUserCallback;
+--   >     void*                                pUserData;
+--   > } VkDebugUtilsMessengerCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsMessengerCreateInfoEXT VkDebugUtilsMessengerCreateInfoEXT registry at www.khronos.org>
+data VkDebugUtilsMessengerCreateInfoEXT = VkDebugUtilsMessengerCreateInfoEXT## Addr##
+                                                                              ByteArray##
+
+instance Eq VkDebugUtilsMessengerCreateInfoEXT where
+        (VkDebugUtilsMessengerCreateInfoEXT## a _) ==
+          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugUtilsMessengerCreateInfoEXT where
+        (VkDebugUtilsMessengerCreateInfoEXT## a _) `compare`
+          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugUtilsMessengerCreateInfoEXT where
+        sizeOf ~_ = #{size VkDebugUtilsMessengerCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugUtilsMessengerCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugUtilsMessengerCreateInfoEXT where
+        unsafeAddr (VkDebugUtilsMessengerCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugUtilsMessengerCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugUtilsMessengerCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugUtilsMessengerCreateInfoEXT where
+        type StructFields VkDebugUtilsMessengerCreateInfoEXT =
+             '["sType", "pNext", "flags", "messageSeverity", "messageType", -- ' closing tick for hsc2hs
+               "pfnUserCallback", "pUserData"]
+        type CUnionType VkDebugUtilsMessengerCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugUtilsMessengerCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugUtilsMessengerCreateInfoEXT =
+             '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "sType" VkDebugUtilsMessengerCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugUtilsMessengerCreateInfoEXT =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "pNext" VkDebugUtilsMessengerCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugUtilsMessengerCreateInfoEXT =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "flags" VkDebugUtilsMessengerCreateInfoEXT =
+             VkDebugUtilsMessengerCreateFlagsEXT
+        type FieldOptional "flags" VkDebugUtilsMessengerCreateInfoEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDebugUtilsMessengerCreateInfoEXT =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
+        type FieldIsArray "flags" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
+             = VkDebugUtilsMessageSeverityFlagsEXT
+        type FieldOptional "messageSeverity"
+               VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "messageSeverity"
+               VkDebugUtilsMessengerCreateInfoEXT
+             =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
+        type FieldIsArray "messageSeverity"
+               VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
+
+instance {-# OVERLAPPING #-}
+         HasField "messageType" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "messageType" VkDebugUtilsMessengerCreateInfoEXT =
+             VkDebugUtilsMessageTypeFlagsEXT
+        type FieldOptional "messageType" VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "messageType" VkDebugUtilsMessengerCreateInfoEXT =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
+        type FieldIsArray "messageType" VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "messageType" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "messageType" VkDebugUtilsMessengerCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
+             = PFN_vkDebugUtilsMessengerCallbackEXT
+        type FieldOptional "pfnUserCallback"
+               VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pfnUserCallback"
+               VkDebugUtilsMessengerCreateInfoEXT
+             =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
+        type FieldIsArray "pfnUserCallback"
+               VkDebugUtilsMessengerCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
+
+instance {-# OVERLAPPING #-}
+         HasField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
+        type FieldType "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
+             #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
+        type FieldIsArray "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
+
+instance Show VkDebugUtilsMessengerCreateInfoEXT where
+        showsPrec d x
+          = showString "VkDebugUtilsMessengerCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "messageSeverity = " .
+                                  showsPrec d (getField @"messageSeverity" x) .
+                                    showString ", " .
+                                      showString "messageType = " .
+                                        showsPrec d (getField @"messageType" x) .
+                                          showString ", " .
+                                            showString "pfnUserCallback = " .
+                                              showsPrec d (getField @"pfnUserCallback" x) .
+                                                showString ", " .
+                                                  showString "pUserData = " .
+                                                    showsPrec d (getField @"pUserData" x) .
+                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DebugUtilsObjectNameInfoEXT.hsc
@@ -0,0 +1,269 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
+       (VkDebugUtilsObjectNameInfoEXT(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Object        (VkObjectType)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDebugUtilsObjectNameInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                                            pNext;
+--   >     VkObjectType                                           objectType;
+--   >     uint64_t                                               objectHandle;
+--   >     const char*      pObjectName;
+--   > } VkDebugUtilsObjectNameInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDebugUtilsObjectNameInfoEXT VkDebugUtilsObjectNameInfoEXT registry at www.khronos.org>
+data VkDebugUtilsObjectNameInfoEXT = VkDebugUtilsObjectNameInfoEXT## Addr##
+                                                                    ByteArray##
+
+instance Eq VkDebugUtilsObjectNameInfoEXT where
+        (VkDebugUtilsObjectNameInfoEXT## a _) ==
+          x@(VkDebugUtilsObjectNameInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDebugUtilsObjectNameInfoEXT where
+        (VkDebugUtilsObjectNameInfoEXT## a _) `compare`
+          x@(VkDebugUtilsObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDebugUtilsObjectNameInfoEXT where
+        sizeOf ~_ = #{size VkDebugUtilsObjectNameInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDebugUtilsObjectNameInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDebugUtilsObjectNameInfoEXT where
+        unsafeAddr (VkDebugUtilsObjectNameInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDebugUtilsObjectNameInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDebugUtilsObjectNameInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDebugUtilsObjectNameInfoEXT where
+        type StructFields VkDebugUtilsObjectNameInfoEXT =
+             '["sType", "pNext", "objectType", "objectHandle", "pObjectName"] -- ' closing tick for hsc2hs
+        type CUnionType VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDebugUtilsObjectNameInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDebugUtilsObjectNameInfoEXT where
+        type FieldType "sType" VkDebugUtilsObjectNameInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDebugUtilsObjectNameInfoEXT =
+             #{offset VkDebugUtilsObjectNameInfoEXT, sType}
+        type FieldIsArray "sType" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDebugUtilsObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDebugUtilsObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDebugUtilsObjectNameInfoEXT where
+        type FieldType "pNext" VkDebugUtilsObjectNameInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDebugUtilsObjectNameInfoEXT =
+             #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDebugUtilsObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDebugUtilsObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectType" VkDebugUtilsObjectNameInfoEXT where
+        type FieldType "objectType" VkDebugUtilsObjectNameInfoEXT =
+             VkObjectType
+        type FieldOptional "objectType" VkDebugUtilsObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectType" VkDebugUtilsObjectNameInfoEXT =
+             #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
+        type FieldIsArray "objectType" VkDebugUtilsObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectType" VkDebugUtilsObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, objectType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectType" VkDebugUtilsObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
+        type FieldType "objectHandle" VkDebugUtilsObjectNameInfoEXT =
+             Word64
+        type FieldOptional "objectHandle" VkDebugUtilsObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectHandle" VkDebugUtilsObjectNameInfoEXT =
+             #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
+        type FieldIsArray "objectHandle" VkDebugUtilsObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
+        type FieldType "pObjectName" VkDebugUtilsObjectNameInfoEXT =
+             CString
+        type FieldOptional "pObjectName" VkDebugUtilsObjectNameInfoEXT =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pObjectName" VkDebugUtilsObjectNameInfoEXT =
+             #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
+        type FieldIsArray "pObjectName" VkDebugUtilsObjectNameInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
+
+instance Show VkDebugUtilsObjectNameInfoEXT where
+        showsPrec d x
+          = showString "VkDebugUtilsObjectNameInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectType = " .
+                            showsPrec d (getField @"objectType" x) .
+                              showString ", " .
+                                showString "objectHandle = " .
+                                  showsPrec d (getField @"objectHandle" x) .
+                                    showString ", " .
+                                      showString "pObjectName = " .
+                                        showsPrec d (getField @"pObjectName" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DedicatedAllocation.hsc
@@ -0,0 +1,650 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DedicatedAllocation
+       (VkDedicatedAllocationBufferCreateInfoNV(..),
+        VkDedicatedAllocationImageCreateInfoNV(..),
+        VkDedicatedAllocationMemoryAllocateInfoNV(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer, VkImage)
+import           Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDedicatedAllocationBufferCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBool32                         dedicatedAllocation;
+--   > } VkDedicatedAllocationBufferCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationBufferCreateInfoNV VkDedicatedAllocationBufferCreateInfoNV registry at www.khronos.org>
+data VkDedicatedAllocationBufferCreateInfoNV = VkDedicatedAllocationBufferCreateInfoNV## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkDedicatedAllocationBufferCreateInfoNV where
+        (VkDedicatedAllocationBufferCreateInfoNV## a _) ==
+          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDedicatedAllocationBufferCreateInfoNV where
+        (VkDedicatedAllocationBufferCreateInfoNV## a _) `compare`
+          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDedicatedAllocationBufferCreateInfoNV where
+        sizeOf ~_
+          = #{size VkDedicatedAllocationBufferCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDedicatedAllocationBufferCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDedicatedAllocationBufferCreateInfoNV
+         where
+        unsafeAddr (VkDedicatedAllocationBufferCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDedicatedAllocationBufferCreateInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDedicatedAllocationBufferCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDedicatedAllocationBufferCreateInfoNV
+         where
+        type StructFields VkDedicatedAllocationBufferCreateInfoNV =
+             '["sType", "pNext", "dedicatedAllocation"] -- ' closing tick for hsc2hs
+        type CUnionType VkDedicatedAllocationBufferCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDedicatedAllocationBufferCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDedicatedAllocationBufferCreateInfoNV =
+             '[VkBufferCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDedicatedAllocationBufferCreateInfoNV where
+        type FieldType "sType" VkDedicatedAllocationBufferCreateInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkDedicatedAllocationBufferCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDedicatedAllocationBufferCreateInfoNV =
+             #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
+        type FieldIsArray "sType" VkDedicatedAllocationBufferCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDedicatedAllocationBufferCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDedicatedAllocationBufferCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
+        type FieldType "pNext" VkDedicatedAllocationBufferCreateInfoNV =
+             Ptr Void
+        type FieldOptional "pNext" VkDedicatedAllocationBufferCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDedicatedAllocationBufferCreateInfoNV =
+             #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
+        type FieldIsArray "pNext" VkDedicatedAllocationBufferCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "dedicatedAllocation"
+           VkDedicatedAllocationBufferCreateInfoNV
+         where
+        type FieldType "dedicatedAllocation"
+               VkDedicatedAllocationBufferCreateInfoNV
+             = VkBool32
+        type FieldOptional "dedicatedAllocation"
+               VkDedicatedAllocationBufferCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dedicatedAllocation"
+               VkDedicatedAllocationBufferCreateInfoNV
+             =
+             #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
+        type FieldIsArray "dedicatedAllocation"
+               VkDedicatedAllocationBufferCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dedicatedAllocation"
+           VkDedicatedAllocationBufferCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dedicatedAllocation"
+           VkDedicatedAllocationBufferCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
+
+instance Show VkDedicatedAllocationBufferCreateInfoNV where
+        showsPrec d x
+          = showString "VkDedicatedAllocationBufferCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "dedicatedAllocation = " .
+                            showsPrec d (getField @"dedicatedAllocation" x) . showChar '}'
+
+-- | > typedef struct VkDedicatedAllocationImageCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBool32                         dedicatedAllocation;
+--   > } VkDedicatedAllocationImageCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationImageCreateInfoNV VkDedicatedAllocationImageCreateInfoNV registry at www.khronos.org>
+data VkDedicatedAllocationImageCreateInfoNV = VkDedicatedAllocationImageCreateInfoNV## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkDedicatedAllocationImageCreateInfoNV where
+        (VkDedicatedAllocationImageCreateInfoNV## a _) ==
+          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDedicatedAllocationImageCreateInfoNV where
+        (VkDedicatedAllocationImageCreateInfoNV## a _) `compare`
+          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDedicatedAllocationImageCreateInfoNV where
+        sizeOf ~_
+          = #{size VkDedicatedAllocationImageCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDedicatedAllocationImageCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDedicatedAllocationImageCreateInfoNV
+         where
+        unsafeAddr (VkDedicatedAllocationImageCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDedicatedAllocationImageCreateInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDedicatedAllocationImageCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDedicatedAllocationImageCreateInfoNV where
+        type StructFields VkDedicatedAllocationImageCreateInfoNV =
+             '["sType", "pNext", "dedicatedAllocation"] -- ' closing tick for hsc2hs
+        type CUnionType VkDedicatedAllocationImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDedicatedAllocationImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDedicatedAllocationImageCreateInfoNV =
+             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDedicatedAllocationImageCreateInfoNV where
+        type FieldType "sType" VkDedicatedAllocationImageCreateInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkDedicatedAllocationImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDedicatedAllocationImageCreateInfoNV =
+             #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
+        type FieldIsArray "sType" VkDedicatedAllocationImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDedicatedAllocationImageCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDedicatedAllocationImageCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDedicatedAllocationImageCreateInfoNV where
+        type FieldType "pNext" VkDedicatedAllocationImageCreateInfoNV =
+             Ptr Void
+        type FieldOptional "pNext" VkDedicatedAllocationImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDedicatedAllocationImageCreateInfoNV =
+             #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
+        type FieldIsArray "pNext" VkDedicatedAllocationImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDedicatedAllocationImageCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDedicatedAllocationImageCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "dedicatedAllocation"
+           VkDedicatedAllocationImageCreateInfoNV
+         where
+        type FieldType "dedicatedAllocation"
+               VkDedicatedAllocationImageCreateInfoNV
+             = VkBool32
+        type FieldOptional "dedicatedAllocation"
+               VkDedicatedAllocationImageCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dedicatedAllocation"
+               VkDedicatedAllocationImageCreateInfoNV
+             =
+             #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
+        type FieldIsArray "dedicatedAllocation"
+               VkDedicatedAllocationImageCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dedicatedAllocation"
+           VkDedicatedAllocationImageCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dedicatedAllocation"
+           VkDedicatedAllocationImageCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
+
+instance Show VkDedicatedAllocationImageCreateInfoNV where
+        showsPrec d x
+          = showString "VkDedicatedAllocationImageCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "dedicatedAllocation = " .
+                            showsPrec d (getField @"dedicatedAllocation" x) . showChar '}'
+
+-- | > typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkImage          image;
+--   >     VkBuffer         buffer;
+--   > } VkDedicatedAllocationMemoryAllocateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDedicatedAllocationMemoryAllocateInfoNV VkDedicatedAllocationMemoryAllocateInfoNV registry at www.khronos.org>
+data VkDedicatedAllocationMemoryAllocateInfoNV = VkDedicatedAllocationMemoryAllocateInfoNV## Addr##
+                                                                                            ByteArray##
+
+instance Eq VkDedicatedAllocationMemoryAllocateInfoNV where
+        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) ==
+          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDedicatedAllocationMemoryAllocateInfoNV where
+        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) `compare`
+          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDedicatedAllocationMemoryAllocateInfoNV where
+        sizeOf ~_
+          = #{size VkDedicatedAllocationMemoryAllocateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDedicatedAllocationMemoryAllocateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        unsafeAddr (VkDedicatedAllocationMemoryAllocateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDedicatedAllocationMemoryAllocateInfoNV## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDedicatedAllocationMemoryAllocateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        type StructFields VkDedicatedAllocationMemoryAllocateInfoNV =
+             '["sType", "pNext", "image", "buffer"] -- ' closing tick for hsc2hs
+        type CUnionType VkDedicatedAllocationMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDedicatedAllocationMemoryAllocateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkDedicatedAllocationMemoryAllocateInfoNV =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDedicatedAllocationMemoryAllocateInfoNV where
+        type FieldType "sType" VkDedicatedAllocationMemoryAllocateInfoNV =
+             VkStructureType
+        type FieldOptional "sType"
+               VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDedicatedAllocationMemoryAllocateInfoNV
+             =
+             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
+        type FieldIsArray "sType" VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV where
+        type FieldType "pNext" VkDedicatedAllocationMemoryAllocateInfoNV =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
+             =
+             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
+        type FieldIsArray "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkDedicatedAllocationMemoryAllocateInfoNV where
+        type FieldType "image" VkDedicatedAllocationMemoryAllocateInfoNV =
+             VkImage
+        type FieldOptional "image"
+               VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkDedicatedAllocationMemoryAllocateInfoNV
+             =
+             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
+        type FieldIsArray "image" VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV where
+        type FieldType "buffer" VkDedicatedAllocationMemoryAllocateInfoNV =
+             VkBuffer
+        type FieldOptional "buffer"
+               VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
+             =
+             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
+        type FieldIsArray "buffer"
+               VkDedicatedAllocationMemoryAllocateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
+
+instance Show VkDedicatedAllocationMemoryAllocateInfoNV where
+        showsPrec d x
+          = showString "VkDedicatedAllocationMemoryAllocateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "image = " .
+                            showsPrec d (getField @"image" x) .
+                              showString ", " .
+                                showString "buffer = " .
+                                  showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Descriptor.hsc
@@ -0,0 +1,3306 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Descriptor
+       (VkDescriptorBufferInfo(..), VkDescriptorImageInfo(..),
+        VkDescriptorPoolCreateInfo(..), VkDescriptorPoolSize(..),
+        VkDescriptorSetAllocateInfo(..), VkDescriptorSetLayoutBinding(..),
+        VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(..),
+        VkDescriptorSetLayoutCreateInfo(..),
+        VkDescriptorSetLayoutSupport(..), VkDescriptorSetLayoutSupportKHR,
+        VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(..),
+        VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(..),
+        VkDescriptorUpdateTemplateCreateInfo(..),
+        VkDescriptorUpdateTemplateCreateInfoKHR,
+        VkDescriptorUpdateTemplateEntry(..),
+        VkDescriptorUpdateTemplateEntryKHR)
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32,
+                                                           VkDeviceSize)
+import           Graphics.Vulkan.Types.Bitmasks           (VkDescriptorUpdateTemplateCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorBindingFlagsEXT,
+                                                           VkDescriptorPoolCreateFlags,
+                                                           VkDescriptorSetLayoutCreateFlags,
+                                                           VkDescriptorType,
+                                                           VkDescriptorUpdateTemplateType)
+import           Graphics.Vulkan.Types.Enum.Image         (VkImageLayout)
+import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineBindPoint)
+import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer,
+                                                           VkDescriptorPool,
+                                                           VkDescriptorSetLayout,
+                                                           VkImageView,
+                                                           VkPipelineLayout,
+                                                           VkSampler)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDescriptorBufferInfo {
+--   >     VkBuffer               buffer;
+--   >     VkDeviceSize           offset;
+--   >     VkDeviceSize           range;
+--   > } VkDescriptorBufferInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorBufferInfo VkDescriptorBufferInfo registry at www.khronos.org>
+data VkDescriptorBufferInfo = VkDescriptorBufferInfo## Addr##
+                                                      ByteArray##
+
+instance Eq VkDescriptorBufferInfo where
+        (VkDescriptorBufferInfo## a _) == x@(VkDescriptorBufferInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorBufferInfo where
+        (VkDescriptorBufferInfo## a _) `compare`
+          x@(VkDescriptorBufferInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorBufferInfo where
+        sizeOf ~_ = #{size VkDescriptorBufferInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDescriptorBufferInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorBufferInfo where
+        unsafeAddr (VkDescriptorBufferInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorBufferInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorBufferInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorBufferInfo where
+        type StructFields VkDescriptorBufferInfo =
+             '["buffer", "offset", "range"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorBufferInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkDescriptorBufferInfo where
+        type FieldType "buffer" VkDescriptorBufferInfo = VkBuffer
+        type FieldOptional "buffer" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkDescriptorBufferInfo =
+             #{offset VkDescriptorBufferInfo, buffer}
+        type FieldIsArray "buffer" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDescriptorBufferInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkDescriptorBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorBufferInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkDescriptorBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorBufferInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkDescriptorBufferInfo where
+        type FieldType "offset" VkDescriptorBufferInfo = VkDeviceSize
+        type FieldOptional "offset" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkDescriptorBufferInfo =
+             #{offset VkDescriptorBufferInfo, offset}
+        type FieldIsArray "offset" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDescriptorBufferInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkDescriptorBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorBufferInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkDescriptorBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorBufferInfo, offset}
+
+instance {-# OVERLAPPING #-}
+         HasField "range" VkDescriptorBufferInfo where
+        type FieldType "range" VkDescriptorBufferInfo = VkDeviceSize
+        type FieldOptional "range" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "range" VkDescriptorBufferInfo =
+             #{offset VkDescriptorBufferInfo, range}
+        type FieldIsArray "range" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDescriptorBufferInfo, range}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "range" VkDescriptorBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, range})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorBufferInfo, range}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "range" VkDescriptorBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorBufferInfo, range}
+
+instance Show VkDescriptorBufferInfo where
+        showsPrec d x
+          = showString "VkDescriptorBufferInfo {" .
+              showString "buffer = " .
+                showsPrec d (getField @"buffer" x) .
+                  showString ", " .
+                    showString "offset = " .
+                      showsPrec d (getField @"offset" x) .
+                        showString ", " .
+                          showString "range = " .
+                            showsPrec d (getField @"range" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorImageInfo {
+--   >     VkSampler       sampler;
+--   >     VkImageView     imageView;
+--   >     VkImageLayout   imageLayout;
+--   > } VkDescriptorImageInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorImageInfo VkDescriptorImageInfo registry at www.khronos.org>
+data VkDescriptorImageInfo = VkDescriptorImageInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkDescriptorImageInfo where
+        (VkDescriptorImageInfo## a _) == x@(VkDescriptorImageInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorImageInfo where
+        (VkDescriptorImageInfo## a _) `compare`
+          x@(VkDescriptorImageInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorImageInfo where
+        sizeOf ~_ = #{size VkDescriptorImageInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDescriptorImageInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorImageInfo where
+        unsafeAddr (VkDescriptorImageInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorImageInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorImageInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorImageInfo where
+        type StructFields VkDescriptorImageInfo =
+             '["sampler", "imageView", "imageLayout"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorImageInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sampler" VkDescriptorImageInfo where
+        type FieldType "sampler" VkDescriptorImageInfo = VkSampler
+        type FieldOptional "sampler" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampler" VkDescriptorImageInfo =
+             #{offset VkDescriptorImageInfo, sampler}
+        type FieldIsArray "sampler" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDescriptorImageInfo, sampler}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampler" VkDescriptorImageInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, sampler})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorImageInfo, sampler}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampler" VkDescriptorImageInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorImageInfo, sampler}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageView" VkDescriptorImageInfo where
+        type FieldType "imageView" VkDescriptorImageInfo = VkImageView
+        type FieldOptional "imageView" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageView" VkDescriptorImageInfo =
+             #{offset VkDescriptorImageInfo, imageView}
+        type FieldIsArray "imageView" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorImageInfo, imageView}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageView" VkDescriptorImageInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, imageView})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorImageInfo, imageView}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageView" VkDescriptorImageInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorImageInfo, imageView}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageLayout" VkDescriptorImageInfo where
+        type FieldType "imageLayout" VkDescriptorImageInfo = VkImageLayout
+        type FieldOptional "imageLayout" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageLayout" VkDescriptorImageInfo =
+             #{offset VkDescriptorImageInfo, imageLayout}
+        type FieldIsArray "imageLayout" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorImageInfo, imageLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageLayout" VkDescriptorImageInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, imageLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorImageInfo, imageLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageLayout" VkDescriptorImageInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorImageInfo, imageLayout}
+
+instance Show VkDescriptorImageInfo where
+        showsPrec d x
+          = showString "VkDescriptorImageInfo {" .
+              showString "sampler = " .
+                showsPrec d (getField @"sampler" x) .
+                  showString ", " .
+                    showString "imageView = " .
+                      showsPrec d (getField @"imageView" x) .
+                        showString ", " .
+                          showString "imageLayout = " .
+                            showsPrec d (getField @"imageLayout" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorPoolCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDescriptorPoolCreateFlags  flags;
+--   >     uint32_t               maxSets;
+--   >     uint32_t               poolSizeCount;
+--   >     const VkDescriptorPoolSize* pPoolSizes;
+--   > } VkDescriptorPoolCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorPoolCreateInfo VkDescriptorPoolCreateInfo registry at www.khronos.org>
+data VkDescriptorPoolCreateInfo = VkDescriptorPoolCreateInfo## Addr##
+                                                              ByteArray##
+
+instance Eq VkDescriptorPoolCreateInfo where
+        (VkDescriptorPoolCreateInfo## a _) ==
+          x@(VkDescriptorPoolCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorPoolCreateInfo where
+        (VkDescriptorPoolCreateInfo## a _) `compare`
+          x@(VkDescriptorPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorPoolCreateInfo where
+        sizeOf ~_ = #{size VkDescriptorPoolCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDescriptorPoolCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorPoolCreateInfo where
+        unsafeAddr (VkDescriptorPoolCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorPoolCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorPoolCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorPoolCreateInfo where
+        type StructFields VkDescriptorPoolCreateInfo =
+             '["sType", "pNext", "flags", "maxSets", "poolSizeCount", -- ' closing tick for hsc2hs
+               "pPoolSizes"]
+        type CUnionType VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorPoolCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorPoolCreateInfo where
+        type FieldType "sType" VkDescriptorPoolCreateInfo = VkStructureType
+        type FieldOptional "sType" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, sType}
+        type FieldIsArray "sType" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorPoolCreateInfo where
+        type FieldType "pNext" VkDescriptorPoolCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDescriptorPoolCreateInfo where
+        type FieldType "flags" VkDescriptorPoolCreateInfo =
+             VkDescriptorPoolCreateFlags
+        type FieldOptional "flags" VkDescriptorPoolCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, flags}
+        type FieldIsArray "flags" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSets" VkDescriptorPoolCreateInfo where
+        type FieldType "maxSets" VkDescriptorPoolCreateInfo = Word32
+        type FieldOptional "maxSets" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSets" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, maxSets}
+        type FieldIsArray "maxSets" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, maxSets}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSets" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, maxSets})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, maxSets}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSets" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, maxSets}
+
+instance {-# OVERLAPPING #-}
+         HasField "poolSizeCount" VkDescriptorPoolCreateInfo where
+        type FieldType "poolSizeCount" VkDescriptorPoolCreateInfo = Word32
+        type FieldOptional "poolSizeCount" VkDescriptorPoolCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "poolSizeCount" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
+        type FieldIsArray "poolSizeCount" VkDescriptorPoolCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "poolSizeCount" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, poolSizeCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "poolSizeCount" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pPoolSizes" VkDescriptorPoolCreateInfo where
+        type FieldType "pPoolSizes" VkDescriptorPoolCreateInfo =
+             Ptr VkDescriptorPoolSize
+        type FieldOptional "pPoolSizes" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pPoolSizes" VkDescriptorPoolCreateInfo =
+             #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
+        type FieldIsArray "pPoolSizes" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pPoolSizes" VkDescriptorPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, pPoolSizes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pPoolSizes" VkDescriptorPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
+
+instance Show VkDescriptorPoolCreateInfo where
+        showsPrec d x
+          = showString "VkDescriptorPoolCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "maxSets = " .
+                                  showsPrec d (getField @"maxSets" x) .
+                                    showString ", " .
+                                      showString "poolSizeCount = " .
+                                        showsPrec d (getField @"poolSizeCount" x) .
+                                          showString ", " .
+                                            showString "pPoolSizes = " .
+                                              showsPrec d (getField @"pPoolSizes" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorPoolSize {
+--   >     VkDescriptorType       type;
+--   >     uint32_t               descriptorCount;
+--   > } VkDescriptorPoolSize;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorPoolSize VkDescriptorPoolSize registry at www.khronos.org>
+data VkDescriptorPoolSize = VkDescriptorPoolSize## Addr## ByteArray##
+
+instance Eq VkDescriptorPoolSize where
+        (VkDescriptorPoolSize## a _) == x@(VkDescriptorPoolSize## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorPoolSize where
+        (VkDescriptorPoolSize## a _) `compare` x@(VkDescriptorPoolSize## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorPoolSize where
+        sizeOf ~_ = #{size VkDescriptorPoolSize}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDescriptorPoolSize}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorPoolSize where
+        unsafeAddr (VkDescriptorPoolSize## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorPoolSize## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorPoolSize## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorPoolSize where
+        type StructFields VkDescriptorPoolSize =
+             '["type", "descriptorCount"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorPoolSize = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "type" VkDescriptorPoolSize
+         where
+        type FieldType "type" VkDescriptorPoolSize = VkDescriptorType
+        type FieldOptional "type" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkDescriptorPoolSize =
+             #{offset VkDescriptorPoolSize, type}
+        type FieldIsArray "type" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDescriptorPoolSize, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkDescriptorPoolSize where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolSize, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolSize, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkDescriptorPoolSize where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolSize, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorCount" VkDescriptorPoolSize where
+        type FieldType "descriptorCount" VkDescriptorPoolSize = Word32
+        type FieldOptional "descriptorCount" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorCount" VkDescriptorPoolSize =
+             #{offset VkDescriptorPoolSize, descriptorCount}
+        type FieldIsArray "descriptorCount" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorPoolSize, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorCount" VkDescriptorPoolSize where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolSize, descriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorPoolSize, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorCount" VkDescriptorPoolSize where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorPoolSize, descriptorCount}
+
+instance Show VkDescriptorPoolSize where
+        showsPrec d x
+          = showString "VkDescriptorPoolSize {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "descriptorCount = " .
+                      showsPrec d (getField @"descriptorCount" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorSetAllocateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDescriptorPool       descriptorPool;
+--   >     uint32_t               descriptorSetCount;
+--   >     const VkDescriptorSetLayout* pSetLayouts;
+--   > } VkDescriptorSetAllocateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetAllocateInfo VkDescriptorSetAllocateInfo registry at www.khronos.org>
+data VkDescriptorSetAllocateInfo = VkDescriptorSetAllocateInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkDescriptorSetAllocateInfo where
+        (VkDescriptorSetAllocateInfo## a _) ==
+          x@(VkDescriptorSetAllocateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetAllocateInfo where
+        (VkDescriptorSetAllocateInfo## a _) `compare`
+          x@(VkDescriptorSetAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorSetAllocateInfo where
+        sizeOf ~_ = #{size VkDescriptorSetAllocateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDescriptorSetAllocateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorSetAllocateInfo where
+        unsafeAddr (VkDescriptorSetAllocateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorSetAllocateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetAllocateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorSetAllocateInfo where
+        type StructFields VkDescriptorSetAllocateInfo =
+             '["sType", "pNext", "descriptorPool", "descriptorSetCount", -- ' closing tick for hsc2hs
+               "pSetLayouts"]
+        type CUnionType VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorSetAllocateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorSetAllocateInfo where
+        type FieldType "sType" VkDescriptorSetAllocateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDescriptorSetAllocateInfo =
+             #{offset VkDescriptorSetAllocateInfo, sType}
+        type FieldIsArray "sType" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorSetAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDescriptorSetAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorSetAllocateInfo where
+        type FieldType "pNext" VkDescriptorSetAllocateInfo = Ptr Void
+        type FieldOptional "pNext" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDescriptorSetAllocateInfo =
+             #{offset VkDescriptorSetAllocateInfo, pNext}
+        type FieldIsArray "pNext" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorSetAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDescriptorSetAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorPool" VkDescriptorSetAllocateInfo where
+        type FieldType "descriptorPool" VkDescriptorSetAllocateInfo =
+             VkDescriptorPool
+        type FieldOptional "descriptorPool" VkDescriptorSetAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorPool" VkDescriptorSetAllocateInfo =
+             #{offset VkDescriptorSetAllocateInfo, descriptorPool}
+        type FieldIsArray "descriptorPool" VkDescriptorSetAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetAllocateInfo, descriptorPool}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorPool" VkDescriptorSetAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, descriptorPool})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorPool}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorPool" VkDescriptorSetAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorPool}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorSetCount" VkDescriptorSetAllocateInfo where
+        type FieldType "descriptorSetCount" VkDescriptorSetAllocateInfo =
+             Word32
+        type FieldOptional "descriptorSetCount" VkDescriptorSetAllocateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorSetCount" VkDescriptorSetAllocateInfo =
+             #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
+        type FieldIsArray "descriptorSetCount" VkDescriptorSetAllocateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorSetCount" VkDescriptorSetAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, descriptorSetCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorSetCount" VkDescriptorSetAllocateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSetLayouts" VkDescriptorSetAllocateInfo where
+        type FieldType "pSetLayouts" VkDescriptorSetAllocateInfo =
+             Ptr VkDescriptorSetLayout
+        type FieldOptional "pSetLayouts" VkDescriptorSetAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSetLayouts" VkDescriptorSetAllocateInfo =
+             #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
+        type FieldIsArray "pSetLayouts" VkDescriptorSetAllocateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSetLayouts" VkDescriptorSetAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, pSetLayouts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSetLayouts" VkDescriptorSetAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
+
+instance Show VkDescriptorSetAllocateInfo where
+        showsPrec d x
+          = showString "VkDescriptorSetAllocateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "descriptorPool = " .
+                            showsPrec d (getField @"descriptorPool" x) .
+                              showString ", " .
+                                showString "descriptorSetCount = " .
+                                  showsPrec d (getField @"descriptorSetCount" x) .
+                                    showString ", " .
+                                      showString "pSetLayouts = " .
+                                        showsPrec d (getField @"pSetLayouts" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorSetLayoutBinding {
+--   >     uint32_t               binding;
+--   >     VkDescriptorType       descriptorType;
+--   >     uint32_t descriptorCount;
+--   >     VkShaderStageFlags     stageFlags;
+--   >     const VkSampler*       pImmutableSamplers;
+--   > } VkDescriptorSetLayoutBinding;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutBinding VkDescriptorSetLayoutBinding registry at www.khronos.org>
+data VkDescriptorSetLayoutBinding = VkDescriptorSetLayoutBinding## Addr##
+                                                                  ByteArray##
+
+instance Eq VkDescriptorSetLayoutBinding where
+        (VkDescriptorSetLayoutBinding## a _) ==
+          x@(VkDescriptorSetLayoutBinding## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetLayoutBinding where
+        (VkDescriptorSetLayoutBinding## a _) `compare`
+          x@(VkDescriptorSetLayoutBinding## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorSetLayoutBinding where
+        sizeOf ~_ = #{size VkDescriptorSetLayoutBinding}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetLayoutBinding}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorSetLayoutBinding where
+        unsafeAddr (VkDescriptorSetLayoutBinding## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorSetLayoutBinding## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetLayoutBinding##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorSetLayoutBinding where
+        type StructFields VkDescriptorSetLayoutBinding =
+             '["binding", "descriptorType", "descriptorCount", "stageFlags", -- ' closing tick for hsc2hs
+               "pImmutableSamplers"]
+        type CUnionType VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorSetLayoutBinding = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "binding" VkDescriptorSetLayoutBinding where
+        type FieldType "binding" VkDescriptorSetLayoutBinding = Word32
+        type FieldOptional "binding" VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "binding" VkDescriptorSetLayoutBinding =
+             #{offset VkDescriptorSetLayoutBinding, binding}
+        type FieldIsArray "binding" VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBinding, binding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "binding" VkDescriptorSetLayoutBinding where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, binding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, binding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "binding" VkDescriptorSetLayoutBinding where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, binding}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorType" VkDescriptorSetLayoutBinding where
+        type FieldType "descriptorType" VkDescriptorSetLayoutBinding =
+             VkDescriptorType
+        type FieldOptional "descriptorType" VkDescriptorSetLayoutBinding =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorType" VkDescriptorSetLayoutBinding =
+             #{offset VkDescriptorSetLayoutBinding, descriptorType}
+        type FieldIsArray "descriptorType" VkDescriptorSetLayoutBinding =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBinding, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorType" VkDescriptorSetLayoutBinding where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, descriptorType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorType" VkDescriptorSetLayoutBinding where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorCount" VkDescriptorSetLayoutBinding where
+        type FieldType "descriptorCount" VkDescriptorSetLayoutBinding =
+             Word32
+        type FieldOptional "descriptorCount" VkDescriptorSetLayoutBinding =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorCount" VkDescriptorSetLayoutBinding =
+             #{offset VkDescriptorSetLayoutBinding, descriptorCount}
+        type FieldIsArray "descriptorCount" VkDescriptorSetLayoutBinding =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBinding, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorCount" VkDescriptorSetLayoutBinding where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, descriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorCount" VkDescriptorSetLayoutBinding where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "stageFlags" VkDescriptorSetLayoutBinding where
+        type FieldType "stageFlags" VkDescriptorSetLayoutBinding =
+             VkShaderStageFlags
+        type FieldOptional "stageFlags" VkDescriptorSetLayoutBinding =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stageFlags" VkDescriptorSetLayoutBinding =
+             #{offset VkDescriptorSetLayoutBinding, stageFlags}
+        type FieldIsArray "stageFlags" VkDescriptorSetLayoutBinding =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBinding, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stageFlags" VkDescriptorSetLayoutBinding where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, stageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stageFlags" VkDescriptorSetLayoutBinding where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pImmutableSamplers" VkDescriptorSetLayoutBinding where
+        type FieldType "pImmutableSamplers" VkDescriptorSetLayoutBinding =
+             Ptr VkSampler
+        type FieldOptional "pImmutableSamplers"
+               VkDescriptorSetLayoutBinding
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pImmutableSamplers" VkDescriptorSetLayoutBinding
+             =
+             #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
+        type FieldIsArray "pImmutableSamplers" VkDescriptorSetLayoutBinding
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pImmutableSamplers" VkDescriptorSetLayoutBinding
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pImmutableSamplers" VkDescriptorSetLayoutBinding
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
+
+instance Show VkDescriptorSetLayoutBinding where
+        showsPrec d x
+          = showString "VkDescriptorSetLayoutBinding {" .
+              showString "binding = " .
+                showsPrec d (getField @"binding" x) .
+                  showString ", " .
+                    showString "descriptorType = " .
+                      showsPrec d (getField @"descriptorType" x) .
+                        showString ", " .
+                          showString "descriptorCount = " .
+                            showsPrec d (getField @"descriptorCount" x) .
+                              showString ", " .
+                                showString "stageFlags = " .
+                                  showsPrec d (getField @"stageFlags" x) .
+                                    showString ", " .
+                                      showString "pImmutableSamplers = " .
+                                        showsPrec d (getField @"pImmutableSamplers" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     uint32_t               bindingCount;
+--   >     const VkDescriptorBindingFlagsEXT* pBindingFlags;
+--   > } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutBindingFlagsCreateInfoEXT VkDescriptorSetLayoutBindingFlagsCreateInfoEXT registry at www.khronos.org>
+data VkDescriptorSetLayoutBindingFlagsCreateInfoEXT = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## Addr##
+                                                                                                      ByteArray##
+
+instance Eq VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where
+        (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _) ==
+          x@(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where
+        (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _) `compare`
+          x@(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkDescriptorSetLayoutBindingFlagsCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetLayoutBindingFlagsCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        unsafeAddr (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkDescriptorSetLayoutBindingFlagsCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetLayoutBindingFlagsCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        type StructFields VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
+             '["sType", "pNext", "bindingCount", "pBindingFlags"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorSetLayoutBindingFlagsCreateInfoEXT =
+             '[VkDescriptorSetLayoutCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        type FieldType "sType"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             =
+             #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        type FieldType "pNext"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             =
+             #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindingCount"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        type FieldType "bindingCount"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = Word32
+        type FieldOptional "bindingCount"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "bindingCount"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             =
+             #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, bindingCount}
+        type FieldIsArray "bindingCount"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindingCount"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, bindingCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindingCount"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBindingFlags"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        type FieldType "pBindingFlags"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = Ptr VkDescriptorBindingFlagsEXT
+        type FieldOptional "pBindingFlags"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBindingFlags"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             =
+             #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pBindingFlags}
+        type FieldIsArray "pBindingFlags"
+               VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pBindingFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBindingFlags"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pBindingFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pBindingFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBindingFlags"
+           VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, pBindingFlags}
+
+instance Show VkDescriptorSetLayoutBindingFlagsCreateInfoEXT where
+        showsPrec d x
+          = showString "VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "bindingCount = " .
+                            showsPrec d (getField @"bindingCount" x) .
+                              showString ", " .
+                                showString "pBindingFlags = " .
+                                  showsPrec d (getField @"pBindingFlags" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorSetLayoutCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDescriptorSetLayoutCreateFlags    flags;
+--   >     uint32_t               bindingCount;
+--   >     const VkDescriptorSetLayoutBinding* pBindings;
+--   > } VkDescriptorSetLayoutCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutCreateInfo VkDescriptorSetLayoutCreateInfo registry at www.khronos.org>
+data VkDescriptorSetLayoutCreateInfo = VkDescriptorSetLayoutCreateInfo## Addr##
+                                                                        ByteArray##
+
+instance Eq VkDescriptorSetLayoutCreateInfo where
+        (VkDescriptorSetLayoutCreateInfo## a _) ==
+          x@(VkDescriptorSetLayoutCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetLayoutCreateInfo where
+        (VkDescriptorSetLayoutCreateInfo## a _) `compare`
+          x@(VkDescriptorSetLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorSetLayoutCreateInfo where
+        sizeOf ~_ = #{size VkDescriptorSetLayoutCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetLayoutCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorSetLayoutCreateInfo where
+        unsafeAddr (VkDescriptorSetLayoutCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorSetLayoutCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetLayoutCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorSetLayoutCreateInfo where
+        type StructFields VkDescriptorSetLayoutCreateInfo =
+             '["sType", "pNext", "flags", "bindingCount", "pBindings"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorSetLayoutCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorSetLayoutCreateInfo where
+        type FieldType "sType" VkDescriptorSetLayoutCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDescriptorSetLayoutCreateInfo =
+             #{offset VkDescriptorSetLayoutCreateInfo, sType}
+        type FieldIsArray "sType" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorSetLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDescriptorSetLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorSetLayoutCreateInfo where
+        type FieldType "pNext" VkDescriptorSetLayoutCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDescriptorSetLayoutCreateInfo =
+             #{offset VkDescriptorSetLayoutCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorSetLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDescriptorSetLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDescriptorSetLayoutCreateInfo where
+        type FieldType "flags" VkDescriptorSetLayoutCreateInfo =
+             VkDescriptorSetLayoutCreateFlags
+        type FieldOptional "flags" VkDescriptorSetLayoutCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDescriptorSetLayoutCreateInfo =
+             #{offset VkDescriptorSetLayoutCreateInfo, flags}
+        type FieldIsArray "flags" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDescriptorSetLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDescriptorSetLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindingCount" VkDescriptorSetLayoutCreateInfo where
+        type FieldType "bindingCount" VkDescriptorSetLayoutCreateInfo =
+             Word32
+        type FieldOptional "bindingCount" VkDescriptorSetLayoutCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "bindingCount" VkDescriptorSetLayoutCreateInfo =
+             #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
+        type FieldIsArray "bindingCount" VkDescriptorSetLayoutCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindingCount" VkDescriptorSetLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, bindingCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindingCount" VkDescriptorSetLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBindings" VkDescriptorSetLayoutCreateInfo where
+        type FieldType "pBindings" VkDescriptorSetLayoutCreateInfo =
+             Ptr VkDescriptorSetLayoutBinding
+        type FieldOptional "pBindings" VkDescriptorSetLayoutCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBindings" VkDescriptorSetLayoutCreateInfo =
+             #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
+        type FieldIsArray "pBindings" VkDescriptorSetLayoutCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBindings" VkDescriptorSetLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, pBindings})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBindings" VkDescriptorSetLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
+
+instance Show VkDescriptorSetLayoutCreateInfo where
+        showsPrec d x
+          = showString "VkDescriptorSetLayoutCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "bindingCount = " .
+                                  showsPrec d (getField @"bindingCount" x) .
+                                    showString ", " .
+                                      showString "pBindings = " .
+                                        showsPrec d (getField @"pBindings" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorSetLayoutSupport {
+--   >     VkStructureType sType;
+--   >     void*            pNext;
+--   >     VkBool32         supported;
+--   > } VkDescriptorSetLayoutSupport;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupport registry at www.khronos.org>
+data VkDescriptorSetLayoutSupport = VkDescriptorSetLayoutSupport## Addr##
+                                                                  ByteArray##
+
+instance Eq VkDescriptorSetLayoutSupport where
+        (VkDescriptorSetLayoutSupport## a _) ==
+          x@(VkDescriptorSetLayoutSupport## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetLayoutSupport where
+        (VkDescriptorSetLayoutSupport## a _) `compare`
+          x@(VkDescriptorSetLayoutSupport## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorSetLayoutSupport where
+        sizeOf ~_ = #{size VkDescriptorSetLayoutSupport}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetLayoutSupport}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorSetLayoutSupport where
+        unsafeAddr (VkDescriptorSetLayoutSupport## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorSetLayoutSupport## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetLayoutSupport##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorSetLayoutSupport where
+        type StructFields VkDescriptorSetLayoutSupport =
+             '["sType", "pNext", "supported"] -- ' closing tick for hsc2hs
+        type CUnionType VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorSetLayoutSupport = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorSetLayoutSupport = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorSetLayoutSupport where
+        type FieldType "sType" VkDescriptorSetLayoutSupport =
+             VkStructureType
+        type FieldOptional "sType" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDescriptorSetLayoutSupport =
+             #{offset VkDescriptorSetLayoutSupport, sType}
+        type FieldIsArray "sType" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutSupport, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorSetLayoutSupport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDescriptorSetLayoutSupport where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorSetLayoutSupport where
+        type FieldType "pNext" VkDescriptorSetLayoutSupport = Ptr Void
+        type FieldOptional "pNext" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDescriptorSetLayoutSupport =
+             #{offset VkDescriptorSetLayoutSupport, pNext}
+        type FieldIsArray "pNext" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutSupport, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorSetLayoutSupport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDescriptorSetLayoutSupport where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "supported" VkDescriptorSetLayoutSupport where
+        type FieldType "supported" VkDescriptorSetLayoutSupport = VkBool32
+        type FieldOptional "supported" VkDescriptorSetLayoutSupport =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "supported" VkDescriptorSetLayoutSupport =
+             #{offset VkDescriptorSetLayoutSupport, supported}
+        type FieldIsArray "supported" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetLayoutSupport, supported}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supported" VkDescriptorSetLayoutSupport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, supported})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, supported}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supported" VkDescriptorSetLayoutSupport where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, supported}
+
+instance Show VkDescriptorSetLayoutSupport where
+        showsPrec d x
+          = showString "VkDescriptorSetLayoutSupport {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "supported = " .
+                            showsPrec d (getField @"supported" x) . showChar '}'
+
+-- | Alias for `VkDescriptorSetLayoutSupport`
+type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport
+
+-- | > typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     uint32_t               descriptorSetCount;
+--   >     const uint32_t* pDescriptorCounts;
+--   > } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetVariableDescriptorCountAllocateInfoEXT VkDescriptorSetVariableDescriptorCountAllocateInfoEXT registry at www.khronos.org>
+data VkDescriptorSetVariableDescriptorCountAllocateInfoEXT = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## Addr##
+                                                                                                                    ByteArray##
+
+instance Eq VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _) ==
+          x@(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _)
+          `compare`
+          x@(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkDescriptorSetVariableDescriptorCountAllocateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetVariableDescriptorCountAllocateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        unsafeAddr
+          (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkDescriptorSetVariableDescriptorCountAllocateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetVariableDescriptorCountAllocateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        type StructFields
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = '["sType", "pNext", "descriptorSetCount", "pDescriptorCounts"] -- ' closing tick for hsc2hs
+        type CUnionType
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = '[VkDescriptorSetAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        type FieldType "sType"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        type FieldType "pNext"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorSetCount"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        type FieldType "descriptorSetCount"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = Word32
+        type FieldOptional "descriptorSetCount"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorSetCount"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, descriptorSetCount}
+        type FieldIsArray "descriptorSetCount"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorSetCount"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, descriptorSetCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorSetCount"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, descriptorSetCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDescriptorCounts"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        type FieldType "pDescriptorCounts"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = Ptr Word32
+        type FieldOptional "pDescriptorCounts"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDescriptorCounts"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pDescriptorCounts}
+        type FieldIsArray "pDescriptorCounts"
+               VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pDescriptorCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDescriptorCounts"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pDescriptorCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pDescriptorCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDescriptorCounts"
+           VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, pDescriptorCounts}
+
+instance Show VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
+         where
+        showsPrec d x
+          = showString
+              "VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "descriptorSetCount = " .
+                            showsPrec d (getField @"descriptorSetCount" x) .
+                              showString ", " .
+                                showString "pDescriptorCounts = " .
+                                  showsPrec d (getField @"pDescriptorCounts" x) . showChar '}'
+
+-- | > typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
+--   >     VkStructureType sType;
+--   >     void*            pNext;
+--   >     uint32_t         maxVariableDescriptorCount;
+--   > } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorSetVariableDescriptorCountLayoutSupportEXT VkDescriptorSetVariableDescriptorCountLayoutSupportEXT registry at www.khronos.org>
+data VkDescriptorSetVariableDescriptorCountLayoutSupportEXT = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## Addr##
+                                                                                                                      ByteArray##
+
+instance Eq VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _) ==
+          x@(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _)
+          `compare`
+          x@(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        sizeOf ~_
+          = #{size VkDescriptorSetVariableDescriptorCountLayoutSupportEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorSetVariableDescriptorCountLayoutSupportEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        unsafeAddr
+          (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkDescriptorSetVariableDescriptorCountLayoutSupportEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorSetVariableDescriptorCountLayoutSupportEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        type StructFields
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = '["sType", "pNext", "maxVariableDescriptorCount"] -- ' closing tick for hsc2hs
+        type CUnionType
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = '[VkDescriptorSetLayoutSupport] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        type FieldType "sType"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, sType}
+        type FieldIsArray "sType"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        type FieldType "pNext"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, pNext}
+        type FieldIsArray "pNext"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVariableDescriptorCount"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        type FieldType "maxVariableDescriptorCount"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = Word32
+        type FieldOptional "maxVariableDescriptorCount"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVariableDescriptorCount"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             =
+             #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, maxVariableDescriptorCount}
+        type FieldIsArray "maxVariableDescriptorCount"
+               VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, maxVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVariableDescriptorCount"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, maxVariableDescriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, maxVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVariableDescriptorCount"
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, maxVariableDescriptorCount}
+
+instance Show
+           VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
+         where
+        showsPrec d x
+          = showString
+              "VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxVariableDescriptorCount = " .
+                            showsPrec d (getField @"maxVariableDescriptorCount" x) .
+                              showChar '}'
+
+-- | > typedef struct VkDescriptorUpdateTemplateCreateInfo {
+--   >     VkStructureType sType;
+--   >     void*                                   pNext;
+--   >     VkDescriptorUpdateTemplateCreateFlags    flags;
+--   >     uint32_t                 descriptorUpdateEntryCount;
+--   >     const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
+--   >     VkDescriptorUpdateTemplateType templateType;
+--   >     VkDescriptorSetLayout descriptorSetLayout;
+--   >     VkPipelineBindPoint pipelineBindPoint;
+--   >     VkPipelineLayoutpipelineLayout;
+--   >     uint32_t set;
+--   > } VkDescriptorUpdateTemplateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfo registry at www.khronos.org>
+data VkDescriptorUpdateTemplateCreateInfo = VkDescriptorUpdateTemplateCreateInfo## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkDescriptorUpdateTemplateCreateInfo where
+        (VkDescriptorUpdateTemplateCreateInfo## a _) ==
+          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorUpdateTemplateCreateInfo where
+        (VkDescriptorUpdateTemplateCreateInfo## a _) `compare`
+          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorUpdateTemplateCreateInfo where
+        sizeOf ~_
+          = #{size VkDescriptorUpdateTemplateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorUpdateTemplateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorUpdateTemplateCreateInfo
+         where
+        unsafeAddr (VkDescriptorUpdateTemplateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorUpdateTemplateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorUpdateTemplateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorUpdateTemplateCreateInfo where
+        type StructFields VkDescriptorUpdateTemplateCreateInfo =
+             '["sType", "pNext", "flags", "descriptorUpdateEntryCount", -- ' closing tick for hsc2hs
+               "pDescriptorUpdateEntries", "templateType", "descriptorSetLayout",
+               "pipelineBindPoint", "pipelineLayout", "set"]
+        type CUnionType VkDescriptorUpdateTemplateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorUpdateTemplateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorUpdateTemplateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDescriptorUpdateTemplateCreateInfo where
+        type FieldType "sType" VkDescriptorUpdateTemplateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDescriptorUpdateTemplateCreateInfo =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
+        type FieldIsArray "sType" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDescriptorUpdateTemplateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDescriptorUpdateTemplateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDescriptorUpdateTemplateCreateInfo where
+        type FieldType "pNext" VkDescriptorUpdateTemplateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDescriptorUpdateTemplateCreateInfo =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDescriptorUpdateTemplateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDescriptorUpdateTemplateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDescriptorUpdateTemplateCreateInfo where
+        type FieldType "flags" VkDescriptorUpdateTemplateCreateInfo =
+             VkDescriptorUpdateTemplateCreateFlags
+        type FieldOptional "flags" VkDescriptorUpdateTemplateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDescriptorUpdateTemplateCreateInfo =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
+        type FieldIsArray "flags" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDescriptorUpdateTemplateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDescriptorUpdateTemplateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorUpdateEntryCount"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        type FieldType "descriptorUpdateEntryCount"
+               VkDescriptorUpdateTemplateCreateInfo
+             = Word32
+        type FieldOptional "descriptorUpdateEntryCount"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorUpdateEntryCount"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
+        type FieldIsArray "descriptorUpdateEntryCount"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorUpdateEntryCount"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorUpdateEntryCount"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDescriptorUpdateEntries"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        type FieldType "pDescriptorUpdateEntries"
+               VkDescriptorUpdateTemplateCreateInfo
+             = Ptr VkDescriptorUpdateTemplateEntry
+        type FieldOptional "pDescriptorUpdateEntries"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDescriptorUpdateEntries"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
+        type FieldIsArray "pDescriptorUpdateEntries"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDescriptorUpdateEntries"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDescriptorUpdateEntries"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
+
+instance {-# OVERLAPPING #-}
+         HasField "templateType" VkDescriptorUpdateTemplateCreateInfo where
+        type FieldType "templateType" VkDescriptorUpdateTemplateCreateInfo
+             = VkDescriptorUpdateTemplateType
+        type FieldOptional "templateType"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "templateType"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
+        type FieldIsArray "templateType"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "templateType" VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, templateType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "templateType" VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorSetLayout" VkDescriptorUpdateTemplateCreateInfo
+         where
+        type FieldType "descriptorSetLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = VkDescriptorSetLayout
+        type FieldOptional "descriptorSetLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorSetLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
+        type FieldIsArray "descriptorSetLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorSetLayout"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorSetLayout"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineBindPoint" VkDescriptorUpdateTemplateCreateInfo
+         where
+        type FieldType "pipelineBindPoint"
+               VkDescriptorUpdateTemplateCreateInfo
+             = VkPipelineBindPoint
+        type FieldOptional "pipelineBindPoint"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineBindPoint"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
+        type FieldIsArray "pipelineBindPoint"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineBindPoint"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineBindPoint"
+           VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
+         where
+        type FieldType "pipelineLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = VkPipelineLayout
+        type FieldOptional "pipelineLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
+        type FieldIsArray "pipelineLayout"
+               VkDescriptorUpdateTemplateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "set" VkDescriptorUpdateTemplateCreateInfo where
+        type FieldType "set" VkDescriptorUpdateTemplateCreateInfo = Word32
+        type FieldOptional "set" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "set" VkDescriptorUpdateTemplateCreateInfo =
+             #{offset VkDescriptorUpdateTemplateCreateInfo, set}
+        type FieldIsArray "set" VkDescriptorUpdateTemplateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateCreateInfo, set}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "set" VkDescriptorUpdateTemplateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, set})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, set}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "set" VkDescriptorUpdateTemplateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, set}
+
+instance Show VkDescriptorUpdateTemplateCreateInfo where
+        showsPrec d x
+          = showString "VkDescriptorUpdateTemplateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "descriptorUpdateEntryCount = " .
+                                  showsPrec d (getField @"descriptorUpdateEntryCount" x) .
+                                    showString ", " .
+                                      showString "pDescriptorUpdateEntries = " .
+                                        showsPrec d (getField @"pDescriptorUpdateEntries" x) .
+                                          showString ", " .
+                                            showString "templateType = " .
+                                              showsPrec d (getField @"templateType" x) .
+                                                showString ", " .
+                                                  showString "descriptorSetLayout = " .
+                                                    showsPrec d (getField @"descriptorSetLayout" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pipelineBindPoint = " .
+                                                          showsPrec d
+                                                            (getField @"pipelineBindPoint" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pipelineLayout = " .
+                                                                showsPrec d
+                                                                  (getField @"pipelineLayout" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "set = " .
+                                                                      showsPrec d
+                                                                        (getField @"set" x)
+                                                                        . showChar '}'
+
+-- | Alias for `VkDescriptorUpdateTemplateCreateInfo`
+type VkDescriptorUpdateTemplateCreateInfoKHR =
+     VkDescriptorUpdateTemplateCreateInfo
+
+-- | > typedef struct VkDescriptorUpdateTemplateEntry {
+--   >     uint32_t                         dstBinding;
+--   >     uint32_t                         dstArrayElement;
+--   >     uint32_t                         descriptorCount;
+--   >     VkDescriptorType                 descriptorType;
+--   >     size_t                           offset;
+--   >     size_t                           stride;
+--   > } VkDescriptorUpdateTemplateEntry;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntry registry at www.khronos.org>
+data VkDescriptorUpdateTemplateEntry = VkDescriptorUpdateTemplateEntry## Addr##
+                                                                        ByteArray##
+
+instance Eq VkDescriptorUpdateTemplateEntry where
+        (VkDescriptorUpdateTemplateEntry## a _) ==
+          x@(VkDescriptorUpdateTemplateEntry## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDescriptorUpdateTemplateEntry where
+        (VkDescriptorUpdateTemplateEntry## a _) `compare`
+          x@(VkDescriptorUpdateTemplateEntry## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDescriptorUpdateTemplateEntry where
+        sizeOf ~_ = #{size VkDescriptorUpdateTemplateEntry}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDescriptorUpdateTemplateEntry}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDescriptorUpdateTemplateEntry where
+        unsafeAddr (VkDescriptorUpdateTemplateEntry## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDescriptorUpdateTemplateEntry## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDescriptorUpdateTemplateEntry##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDescriptorUpdateTemplateEntry where
+        type StructFields VkDescriptorUpdateTemplateEntry =
+             '["dstBinding", "dstArrayElement", "descriptorCount", -- ' closing tick for hsc2hs
+               "descriptorType", "offset", "stride"]
+        type CUnionType VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDescriptorUpdateTemplateEntry = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "dstBinding" VkDescriptorUpdateTemplateEntry where
+        type FieldType "dstBinding" VkDescriptorUpdateTemplateEntry =
+             Word32
+        type FieldOptional "dstBinding" VkDescriptorUpdateTemplateEntry =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstBinding" VkDescriptorUpdateTemplateEntry =
+             #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
+        type FieldIsArray "dstBinding" VkDescriptorUpdateTemplateEntry =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstBinding" VkDescriptorUpdateTemplateEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, dstBinding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstBinding" VkDescriptorUpdateTemplateEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstArrayElement" VkDescriptorUpdateTemplateEntry where
+        type FieldType "dstArrayElement" VkDescriptorUpdateTemplateEntry =
+             Word32
+        type FieldOptional "dstArrayElement"
+               VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstArrayElement" VkDescriptorUpdateTemplateEntry
+             =
+             #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
+        type FieldIsArray "dstArrayElement" VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstArrayElement" VkDescriptorUpdateTemplateEntry
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstArrayElement" VkDescriptorUpdateTemplateEntry
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorCount" VkDescriptorUpdateTemplateEntry where
+        type FieldType "descriptorCount" VkDescriptorUpdateTemplateEntry =
+             Word32
+        type FieldOptional "descriptorCount"
+               VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorCount" VkDescriptorUpdateTemplateEntry
+             =
+             #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
+        type FieldIsArray "descriptorCount" VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorCount" VkDescriptorUpdateTemplateEntry
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, descriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorCount" VkDescriptorUpdateTemplateEntry
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorType" VkDescriptorUpdateTemplateEntry where
+        type FieldType "descriptorType" VkDescriptorUpdateTemplateEntry =
+             VkDescriptorType
+        type FieldOptional "descriptorType" VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorType" VkDescriptorUpdateTemplateEntry =
+             #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
+        type FieldIsArray "descriptorType" VkDescriptorUpdateTemplateEntry
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorType" VkDescriptorUpdateTemplateEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, descriptorType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorType" VkDescriptorUpdateTemplateEntry
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkDescriptorUpdateTemplateEntry where
+        type FieldType "offset" VkDescriptorUpdateTemplateEntry = CSize
+        type FieldOptional "offset" VkDescriptorUpdateTemplateEntry =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkDescriptorUpdateTemplateEntry =
+             #{offset VkDescriptorUpdateTemplateEntry, offset}
+        type FieldIsArray "offset" VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkDescriptorUpdateTemplateEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkDescriptorUpdateTemplateEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         HasField "stride" VkDescriptorUpdateTemplateEntry where
+        type FieldType "stride" VkDescriptorUpdateTemplateEntry = CSize
+        type FieldOptional "stride" VkDescriptorUpdateTemplateEntry =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stride" VkDescriptorUpdateTemplateEntry =
+             #{offset VkDescriptorUpdateTemplateEntry, stride}
+        type FieldIsArray "stride" VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDescriptorUpdateTemplateEntry, stride}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stride" VkDescriptorUpdateTemplateEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, stride})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, stride}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stride" VkDescriptorUpdateTemplateEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, stride}
+
+instance Show VkDescriptorUpdateTemplateEntry where
+        showsPrec d x
+          = showString "VkDescriptorUpdateTemplateEntry {" .
+              showString "dstBinding = " .
+                showsPrec d (getField @"dstBinding" x) .
+                  showString ", " .
+                    showString "dstArrayElement = " .
+                      showsPrec d (getField @"dstArrayElement" x) .
+                        showString ", " .
+                          showString "descriptorCount = " .
+                            showsPrec d (getField @"descriptorCount" x) .
+                              showString ", " .
+                                showString "descriptorType = " .
+                                  showsPrec d (getField @"descriptorType" x) .
+                                    showString ", " .
+                                      showString "offset = " .
+                                        showsPrec d (getField @"offset" x) .
+                                          showString ", " .
+                                            showString "stride = " .
+                                              showsPrec d (getField @"stride" x) . showChar '}'
+
+-- | Alias for `VkDescriptorUpdateTemplateEntry`
+type VkDescriptorUpdateTemplateEntryKHR =
+     VkDescriptorUpdateTemplateEntry
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Device.hsc
@@ -0,0 +1,3982 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Device
+       (VkDeviceCreateInfo(..), VkDeviceEventInfoEXT(..),
+        VkDeviceGeneratedCommandsFeaturesNVX(..),
+        VkDeviceGeneratedCommandsLimitsNVX(..),
+        VkDeviceGroupBindSparseInfo(..), VkDeviceGroupBindSparseInfoKHR,
+        VkDeviceGroupCommandBufferBeginInfo(..),
+        VkDeviceGroupCommandBufferBeginInfoKHR,
+        VkDeviceGroupDeviceCreateInfo(..),
+        VkDeviceGroupDeviceCreateInfoKHR,
+        VkDeviceGroupPresentCapabilitiesKHR(..),
+        VkDeviceGroupPresentInfoKHR(..),
+        VkDeviceGroupRenderPassBeginInfo(..),
+        VkDeviceGroupRenderPassBeginInfoKHR, VkDeviceGroupSubmitInfo(..),
+        VkDeviceGroupSubmitInfoKHR,
+        VkDeviceGroupSwapchainCreateInfoKHR(..),
+        VkDeviceQueueCreateInfo(..),
+        VkDeviceQueueGlobalPriorityCreateInfoEXT(..),
+        VkDeviceQueueInfo2(..))
+       where
+import           Foreign.Storable                                    (Storable (..))
+import           GHC.Base                                            (Addr##,
+                                                                      ByteArray##,
+                                                                      Proxy##,
+                                                                      byteArrayContents##,
+                                                                      plusAddr##,
+                                                                      proxy##)
+import           GHC.TypeLits                                        (KnownNat,
+                                                                      natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Constants                           (VK_MAX_DEVICE_GROUP_SIZE,
+                                                                      pattern VK_MAX_DEVICE_GROUP_SIZE)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes                     (VkBool32)
+import           Graphics.Vulkan.Types.Bitmasks                      (VkDeviceCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Device                   (VkDeviceEventTypeEXT,
+                                                                      VkDeviceGroupPresentModeFlagBitsKHR,
+                                                                      VkDeviceGroupPresentModeFlagsKHR,
+                                                                      VkDeviceQueueCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Queue                    (VkQueueGlobalPriorityEXT)
+import           Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice)
+import           Graphics.Vulkan.Types.Struct.Bind                   (VkBindSparseInfo)
+import           Graphics.Vulkan.Types.Struct.Command                (VkCommandBufferBeginInfo)
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
+import           Graphics.Vulkan.Types.Struct.Present                (VkPresentInfoKHR)
+import           Graphics.Vulkan.Types.Struct.Rect                   (VkRect2D)
+import           Graphics.Vulkan.Types.Struct.RenderPass             (VkRenderPassBeginInfo)
+import           Graphics.Vulkan.Types.Struct.SubmitInfo             (VkSubmitInfo)
+import           Graphics.Vulkan.Types.Struct.SwapchainC             (VkSwapchainCreateInfoKHR)
+import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDeviceCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*     pNext;
+--   >     VkDeviceCreateFlags    flags;
+--   >     uint32_t        queueCreateInfoCount;
+--   >     const VkDeviceQueueCreateInfo* pQueueCreateInfos;
+--   >     uint32_t               enabledLayerCount;
+--   >     const char* const*      ppEnabledLayerNames;
+--   >     uint32_t               enabledExtensionCount;
+--   >     const char* const*      ppEnabledExtensionNames;
+--   >     const VkPhysicalDeviceFeatures* pEnabledFeatures;
+--   > } VkDeviceCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceCreateInfo VkDeviceCreateInfo registry at www.khronos.org>
+data VkDeviceCreateInfo = VkDeviceCreateInfo## Addr## ByteArray##
+
+instance Eq VkDeviceCreateInfo where
+        (VkDeviceCreateInfo## a _) == x@(VkDeviceCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceCreateInfo where
+        (VkDeviceCreateInfo## a _) `compare` x@(VkDeviceCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceCreateInfo where
+        sizeOf ~_ = #{size VkDeviceCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceCreateInfo where
+        unsafeAddr (VkDeviceCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceCreateInfo where
+        type StructFields VkDeviceCreateInfo =
+             '["sType", "pNext", "flags", "queueCreateInfoCount", -- ' closing tick for hsc2hs
+               "pQueueCreateInfos", "enabledLayerCount", "ppEnabledLayerNames",
+               "enabledExtensionCount", "ppEnabledExtensionNames",
+               "pEnabledFeatures"]
+        type CUnionType VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDeviceCreateInfo
+         where
+        type FieldType "sType" VkDeviceCreateInfo = VkStructureType
+        type FieldOptional "sType" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, sType}
+        type FieldIsArray "sType" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceCreateInfo
+         where
+        type FieldType "pNext" VkDeviceCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkDeviceCreateInfo
+         where
+        type FieldType "flags" VkDeviceCreateInfo = VkDeviceCreateFlags
+        type FieldOptional "flags" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, flags}
+        type FieldIsArray "flags" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueCreateInfoCount" VkDeviceCreateInfo where
+        type FieldType "queueCreateInfoCount" VkDeviceCreateInfo = Word32
+        type FieldOptional "queueCreateInfoCount" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueCreateInfoCount" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, queueCreateInfoCount}
+        type FieldIsArray "queueCreateInfoCount" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, queueCreateInfoCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueCreateInfoCount" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, queueCreateInfoCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, queueCreateInfoCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueCreateInfoCount" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, queueCreateInfoCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueueCreateInfos" VkDeviceCreateInfo where
+        type FieldType "pQueueCreateInfos" VkDeviceCreateInfo =
+             Ptr VkDeviceQueueCreateInfo
+        type FieldOptional "pQueueCreateInfos" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pQueueCreateInfos" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, pQueueCreateInfos}
+        type FieldIsArray "pQueueCreateInfos" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, pQueueCreateInfos}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueueCreateInfos" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pQueueCreateInfos})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, pQueueCreateInfos}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueueCreateInfos" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, pQueueCreateInfos}
+
+instance {-# OVERLAPPING #-}
+         HasField "enabledLayerCount" VkDeviceCreateInfo where
+        type FieldType "enabledLayerCount" VkDeviceCreateInfo = Word32
+        type FieldOptional "enabledLayerCount" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "enabledLayerCount" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, enabledLayerCount}
+        type FieldIsArray "enabledLayerCount" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "enabledLayerCount" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, enabledLayerCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "enabledLayerCount" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "ppEnabledLayerNames" VkDeviceCreateInfo where
+        type FieldType "ppEnabledLayerNames" VkDeviceCreateInfo =
+             Ptr CString
+        type FieldOptional "ppEnabledLayerNames" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "ppEnabledLayerNames" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
+        type FieldIsArray "ppEnabledLayerNames" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ppEnabledLayerNames" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, ppEnabledLayerNames})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ppEnabledLayerNames" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         HasField "enabledExtensionCount" VkDeviceCreateInfo where
+        type FieldType "enabledExtensionCount" VkDeviceCreateInfo = Word32
+        type FieldOptional "enabledExtensionCount" VkDeviceCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "enabledExtensionCount" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, enabledExtensionCount}
+        type FieldIsArray "enabledExtensionCount" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "enabledExtensionCount" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, enabledExtensionCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "enabledExtensionCount" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "ppEnabledExtensionNames" VkDeviceCreateInfo where
+        type FieldType "ppEnabledExtensionNames" VkDeviceCreateInfo =
+             Ptr CString
+        type FieldOptional "ppEnabledExtensionNames" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "ppEnabledExtensionNames" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
+        type FieldIsArray "ppEnabledExtensionNames" VkDeviceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ppEnabledExtensionNames" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, ppEnabledExtensionNames})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ppEnabledExtensionNames" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
+
+instance {-# OVERLAPPING #-}
+         HasField "pEnabledFeatures" VkDeviceCreateInfo where
+        type FieldType "pEnabledFeatures" VkDeviceCreateInfo =
+             Ptr VkPhysicalDeviceFeatures
+        type FieldOptional "pEnabledFeatures" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pEnabledFeatures" VkDeviceCreateInfo =
+             #{offset VkDeviceCreateInfo, pEnabledFeatures}
+        type FieldIsArray "pEnabledFeatures" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceCreateInfo, pEnabledFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pEnabledFeatures" VkDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pEnabledFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceCreateInfo, pEnabledFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pEnabledFeatures" VkDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceCreateInfo, pEnabledFeatures}
+
+instance Show VkDeviceCreateInfo where
+        showsPrec d x
+          = showString "VkDeviceCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "queueCreateInfoCount = " .
+                                  showsPrec d (getField @"queueCreateInfoCount" x) .
+                                    showString ", " .
+                                      showString "pQueueCreateInfos = " .
+                                        showsPrec d (getField @"pQueueCreateInfos" x) .
+                                          showString ", " .
+                                            showString "enabledLayerCount = " .
+                                              showsPrec d (getField @"enabledLayerCount" x) .
+                                                showString ", " .
+                                                  showString "ppEnabledLayerNames = " .
+                                                    showsPrec d (getField @"ppEnabledLayerNames" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "enabledExtensionCount = " .
+                                                          showsPrec d
+                                                            (getField @"enabledExtensionCount" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "ppEnabledExtensionNames = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"ppEnabledExtensionNames"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "pEnabledFeatures = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"pEnabledFeatures"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | > typedef struct VkDeviceEventInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDeviceEventTypeEXT             deviceEvent;
+--   > } VkDeviceEventInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceEventInfoEXT VkDeviceEventInfoEXT registry at www.khronos.org>
+data VkDeviceEventInfoEXT = VkDeviceEventInfoEXT## Addr## ByteArray##
+
+instance Eq VkDeviceEventInfoEXT where
+        (VkDeviceEventInfoEXT## a _) == x@(VkDeviceEventInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceEventInfoEXT where
+        (VkDeviceEventInfoEXT## a _) `compare` x@(VkDeviceEventInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceEventInfoEXT where
+        sizeOf ~_ = #{size VkDeviceEventInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceEventInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceEventInfoEXT where
+        unsafeAddr (VkDeviceEventInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceEventInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceEventInfoEXT where
+        type StructFields VkDeviceEventInfoEXT =
+             '["sType", "pNext", "deviceEvent"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceEventInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDeviceEventInfoEXT
+         where
+        type FieldType "sType" VkDeviceEventInfoEXT = VkStructureType
+        type FieldOptional "sType" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceEventInfoEXT =
+             #{offset VkDeviceEventInfoEXT, sType}
+        type FieldIsArray "sType" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceEventInfoEXT
+         where
+        type FieldType "pNext" VkDeviceEventInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceEventInfoEXT =
+             #{offset VkDeviceEventInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceEvent" VkDeviceEventInfoEXT where
+        type FieldType "deviceEvent" VkDeviceEventInfoEXT =
+             VkDeviceEventTypeEXT
+        type FieldOptional "deviceEvent" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceEvent" VkDeviceEventInfoEXT =
+             #{offset VkDeviceEventInfoEXT, deviceEvent}
+        type FieldIsArray "deviceEvent" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceEventInfoEXT, deviceEvent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceEvent" VkDeviceEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, deviceEvent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceEventInfoEXT, deviceEvent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceEvent" VkDeviceEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceEventInfoEXT, deviceEvent}
+
+instance Show VkDeviceEventInfoEXT where
+        showsPrec d x
+          = showString "VkDeviceEventInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "deviceEvent = " .
+                            showsPrec d (getField @"deviceEvent" x) . showChar '}'
+
+-- | > typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBool32                         computeBindingPointSupport;
+--   > } VkDeviceGeneratedCommandsFeaturesNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGeneratedCommandsFeaturesNVX VkDeviceGeneratedCommandsFeaturesNVX registry at www.khronos.org>
+data VkDeviceGeneratedCommandsFeaturesNVX = VkDeviceGeneratedCommandsFeaturesNVX## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkDeviceGeneratedCommandsFeaturesNVX where
+        (VkDeviceGeneratedCommandsFeaturesNVX## a _) ==
+          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGeneratedCommandsFeaturesNVX where
+        (VkDeviceGeneratedCommandsFeaturesNVX## a _) `compare`
+          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGeneratedCommandsFeaturesNVX where
+        sizeOf ~_
+          = #{size VkDeviceGeneratedCommandsFeaturesNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGeneratedCommandsFeaturesNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGeneratedCommandsFeaturesNVX
+         where
+        unsafeAddr (VkDeviceGeneratedCommandsFeaturesNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGeneratedCommandsFeaturesNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGeneratedCommandsFeaturesNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGeneratedCommandsFeaturesNVX where
+        type StructFields VkDeviceGeneratedCommandsFeaturesNVX =
+             '["sType", "pNext", "computeBindingPointSupport"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGeneratedCommandsFeaturesNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGeneratedCommandsFeaturesNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGeneratedCommandsFeaturesNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
+        type FieldType "sType" VkDeviceGeneratedCommandsFeaturesNVX =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGeneratedCommandsFeaturesNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGeneratedCommandsFeaturesNVX =
+             #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
+        type FieldIsArray "sType" VkDeviceGeneratedCommandsFeaturesNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
+        type FieldType "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
+             #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
+        type FieldIsArray "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "computeBindingPointSupport"
+           VkDeviceGeneratedCommandsFeaturesNVX
+         where
+        type FieldType "computeBindingPointSupport"
+               VkDeviceGeneratedCommandsFeaturesNVX
+             = VkBool32
+        type FieldOptional "computeBindingPointSupport"
+               VkDeviceGeneratedCommandsFeaturesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "computeBindingPointSupport"
+               VkDeviceGeneratedCommandsFeaturesNVX
+             =
+             #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
+        type FieldIsArray "computeBindingPointSupport"
+               VkDeviceGeneratedCommandsFeaturesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "computeBindingPointSupport"
+           VkDeviceGeneratedCommandsFeaturesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "computeBindingPointSupport"
+           VkDeviceGeneratedCommandsFeaturesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
+
+instance Show VkDeviceGeneratedCommandsFeaturesNVX where
+        showsPrec d x
+          = showString "VkDeviceGeneratedCommandsFeaturesNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "computeBindingPointSupport = " .
+                            showsPrec d (getField @"computeBindingPointSupport" x) .
+                              showChar '}'
+
+-- | > typedef struct VkDeviceGeneratedCommandsLimitsNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         maxIndirectCommandsLayoutTokenCount;
+--   >     uint32_t                         maxObjectEntryCounts;
+--   >     uint32_t                         minSequenceCountBufferOffsetAlignment;
+--   >     uint32_t                         minSequenceIndexBufferOffsetAlignment;
+--   >     uint32_t                         minCommandsTokenBufferOffsetAlignment;
+--   > } VkDeviceGeneratedCommandsLimitsNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGeneratedCommandsLimitsNVX VkDeviceGeneratedCommandsLimitsNVX registry at www.khronos.org>
+data VkDeviceGeneratedCommandsLimitsNVX = VkDeviceGeneratedCommandsLimitsNVX## Addr##
+                                                                              ByteArray##
+
+instance Eq VkDeviceGeneratedCommandsLimitsNVX where
+        (VkDeviceGeneratedCommandsLimitsNVX## a _) ==
+          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGeneratedCommandsLimitsNVX where
+        (VkDeviceGeneratedCommandsLimitsNVX## a _) `compare`
+          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGeneratedCommandsLimitsNVX where
+        sizeOf ~_ = #{size VkDeviceGeneratedCommandsLimitsNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGeneratedCommandsLimitsNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGeneratedCommandsLimitsNVX where
+        unsafeAddr (VkDeviceGeneratedCommandsLimitsNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGeneratedCommandsLimitsNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGeneratedCommandsLimitsNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGeneratedCommandsLimitsNVX where
+        type StructFields VkDeviceGeneratedCommandsLimitsNVX =
+             '["sType", "pNext", "maxIndirectCommandsLayoutTokenCount", -- ' closing tick for hsc2hs
+               "maxObjectEntryCounts", "minSequenceCountBufferOffsetAlignment",
+               "minSequenceIndexBufferOffsetAlignment",
+               "minCommandsTokenBufferOffsetAlignment"]
+        type CUnionType VkDeviceGeneratedCommandsLimitsNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGeneratedCommandsLimitsNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGeneratedCommandsLimitsNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGeneratedCommandsLimitsNVX where
+        type FieldType "sType" VkDeviceGeneratedCommandsLimitsNVX =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGeneratedCommandsLimitsNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGeneratedCommandsLimitsNVX =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
+        type FieldIsArray "sType" VkDeviceGeneratedCommandsLimitsNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGeneratedCommandsLimitsNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGeneratedCommandsLimitsNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
+        type FieldType "pNext" VkDeviceGeneratedCommandsLimitsNVX =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceGeneratedCommandsLimitsNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGeneratedCommandsLimitsNVX =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
+        type FieldIsArray "pNext" VkDeviceGeneratedCommandsLimitsNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxIndirectCommandsLayoutTokenCount"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        type FieldType "maxIndirectCommandsLayoutTokenCount"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = Word32
+        type FieldOptional "maxIndirectCommandsLayoutTokenCount"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxIndirectCommandsLayoutTokenCount"
+               VkDeviceGeneratedCommandsLimitsNVX
+             =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
+        type FieldIsArray "maxIndirectCommandsLayoutTokenCount"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxIndirectCommandsLayoutTokenCount"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxIndirectCommandsLayoutTokenCount"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxObjectEntryCounts" VkDeviceGeneratedCommandsLimitsNVX
+         where
+        type FieldType "maxObjectEntryCounts"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = Word32
+        type FieldOptional "maxObjectEntryCounts"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxObjectEntryCounts"
+               VkDeviceGeneratedCommandsLimitsNVX
+             =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
+        type FieldIsArray "maxObjectEntryCounts"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxObjectEntryCounts"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxObjectEntryCounts"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSequenceCountBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        type FieldType "minSequenceCountBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = Word32
+        type FieldOptional "minSequenceCountBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSequenceCountBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
+        type FieldIsArray "minSequenceCountBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSequenceCountBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSequenceCountBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSequenceIndexBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        type FieldType "minSequenceIndexBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = Word32
+        type FieldOptional "minSequenceIndexBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSequenceIndexBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
+        type FieldIsArray "minSequenceIndexBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSequenceIndexBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSequenceIndexBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minCommandsTokenBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        type FieldType "minCommandsTokenBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = Word32
+        type FieldOptional "minCommandsTokenBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minCommandsTokenBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             =
+             #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
+        type FieldIsArray "minCommandsTokenBufferOffsetAlignment"
+               VkDeviceGeneratedCommandsLimitsNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minCommandsTokenBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minCommandsTokenBufferOffsetAlignment"
+           VkDeviceGeneratedCommandsLimitsNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
+
+instance Show VkDeviceGeneratedCommandsLimitsNVX where
+        showsPrec d x
+          = showString "VkDeviceGeneratedCommandsLimitsNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxIndirectCommandsLayoutTokenCount = " .
+                            showsPrec d (getField @"maxIndirectCommandsLayoutTokenCount" x) .
+                              showString ", " .
+                                showString "maxObjectEntryCounts = " .
+                                  showsPrec d (getField @"maxObjectEntryCounts" x) .
+                                    showString ", " .
+                                      showString "minSequenceCountBufferOffsetAlignment = " .
+                                        showsPrec d
+                                          (getField @"minSequenceCountBufferOffsetAlignment" x)
+                                          .
+                                          showString ", " .
+                                            showString "minSequenceIndexBufferOffsetAlignment = " .
+                                              showsPrec d
+                                                (getField @"minSequenceIndexBufferOffsetAlignment"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString
+                                                    "minCommandsTokenBufferOffsetAlignment = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"minCommandsTokenBufferOffsetAlignment"
+                                                         x)
+                                                      . showChar '}'
+
+-- | > typedef struct VkDeviceGroupBindSparseInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         resourceDeviceIndex;
+--   >     uint32_t                         memoryDeviceIndex;
+--   > } VkDeviceGroupBindSparseInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfo registry at www.khronos.org>
+data VkDeviceGroupBindSparseInfo = VkDeviceGroupBindSparseInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkDeviceGroupBindSparseInfo where
+        (VkDeviceGroupBindSparseInfo## a _) ==
+          x@(VkDeviceGroupBindSparseInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupBindSparseInfo where
+        (VkDeviceGroupBindSparseInfo## a _) `compare`
+          x@(VkDeviceGroupBindSparseInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupBindSparseInfo where
+        sizeOf ~_ = #{size VkDeviceGroupBindSparseInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceGroupBindSparseInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupBindSparseInfo where
+        unsafeAddr (VkDeviceGroupBindSparseInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupBindSparseInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupBindSparseInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupBindSparseInfo where
+        type StructFields VkDeviceGroupBindSparseInfo =
+             '["sType", "pNext", "resourceDeviceIndex", "memoryDeviceIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupBindSparseInfo =
+             '[VkBindSparseInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupBindSparseInfo where
+        type FieldType "sType" VkDeviceGroupBindSparseInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupBindSparseInfo =
+             #{offset VkDeviceGroupBindSparseInfo, sType}
+        type FieldIsArray "sType" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupBindSparseInfo where
+        type FieldType "pNext" VkDeviceGroupBindSparseInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupBindSparseInfo =
+             #{offset VkDeviceGroupBindSparseInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo where
+        type FieldType "resourceDeviceIndex" VkDeviceGroupBindSparseInfo =
+             Word32
+        type FieldOptional "resourceDeviceIndex"
+               VkDeviceGroupBindSparseInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
+             =
+             #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
+        type FieldIsArray "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
+        type FieldType "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
+             Word32
+        type FieldOptional "memoryDeviceIndex" VkDeviceGroupBindSparseInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
+             #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
+        type FieldIsArray "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
+
+instance Show VkDeviceGroupBindSparseInfo where
+        showsPrec d x
+          = showString "VkDeviceGroupBindSparseInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "resourceDeviceIndex = " .
+                            showsPrec d (getField @"resourceDeviceIndex" x) .
+                              showString ", " .
+                                showString "memoryDeviceIndex = " .
+                                  showsPrec d (getField @"memoryDeviceIndex" x) . showChar '}'
+
+-- | Alias for `VkDeviceGroupBindSparseInfo`
+type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo
+
+-- | > typedef struct VkDeviceGroupCommandBufferBeginInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         deviceMask;
+--   > } VkDeviceGroupCommandBufferBeginInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfo registry at www.khronos.org>
+data VkDeviceGroupCommandBufferBeginInfo = VkDeviceGroupCommandBufferBeginInfo## Addr##
+                                                                                ByteArray##
+
+instance Eq VkDeviceGroupCommandBufferBeginInfo where
+        (VkDeviceGroupCommandBufferBeginInfo## a _) ==
+          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupCommandBufferBeginInfo where
+        (VkDeviceGroupCommandBufferBeginInfo## a _) `compare`
+          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupCommandBufferBeginInfo where
+        sizeOf ~_ = #{size VkDeviceGroupCommandBufferBeginInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGroupCommandBufferBeginInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupCommandBufferBeginInfo
+         where
+        unsafeAddr (VkDeviceGroupCommandBufferBeginInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupCommandBufferBeginInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupCommandBufferBeginInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupCommandBufferBeginInfo where
+        type StructFields VkDeviceGroupCommandBufferBeginInfo =
+             '["sType", "pNext", "deviceMask"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupCommandBufferBeginInfo =
+             '[VkCommandBufferBeginInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupCommandBufferBeginInfo where
+        type FieldType "sType" VkDeviceGroupCommandBufferBeginInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupCommandBufferBeginInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupCommandBufferBeginInfo =
+             #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
+        type FieldIsArray "sType" VkDeviceGroupCommandBufferBeginInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupCommandBufferBeginInfo where
+        type FieldType "pNext" VkDeviceGroupCommandBufferBeginInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupCommandBufferBeginInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupCommandBufferBeginInfo =
+             #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupCommandBufferBeginInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupCommandBufferBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceMask" VkDeviceGroupCommandBufferBeginInfo where
+        type FieldType "deviceMask" VkDeviceGroupCommandBufferBeginInfo =
+             Word32
+        type FieldOptional "deviceMask" VkDeviceGroupCommandBufferBeginInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceMask" VkDeviceGroupCommandBufferBeginInfo =
+             #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
+        type FieldIsArray "deviceMask" VkDeviceGroupCommandBufferBeginInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceMask" VkDeviceGroupCommandBufferBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceMask" VkDeviceGroupCommandBufferBeginInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
+
+instance Show VkDeviceGroupCommandBufferBeginInfo where
+        showsPrec d x
+          = showString "VkDeviceGroupCommandBufferBeginInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "deviceMask = " .
+                            showsPrec d (getField @"deviceMask" x) . showChar '}'
+
+-- | Alias for `VkDeviceGroupCommandBufferBeginInfo`
+type VkDeviceGroupCommandBufferBeginInfoKHR =
+     VkDeviceGroupCommandBufferBeginInfo
+
+-- | > typedef struct VkDeviceGroupDeviceCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         physicalDeviceCount;
+--   >     const VkPhysicalDevice*  pPhysicalDevices;
+--   > } VkDeviceGroupDeviceCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfo registry at www.khronos.org>
+data VkDeviceGroupDeviceCreateInfo = VkDeviceGroupDeviceCreateInfo## Addr##
+                                                                    ByteArray##
+
+instance Eq VkDeviceGroupDeviceCreateInfo where
+        (VkDeviceGroupDeviceCreateInfo## a _) ==
+          x@(VkDeviceGroupDeviceCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupDeviceCreateInfo where
+        (VkDeviceGroupDeviceCreateInfo## a _) `compare`
+          x@(VkDeviceGroupDeviceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupDeviceCreateInfo where
+        sizeOf ~_ = #{size VkDeviceGroupDeviceCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGroupDeviceCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupDeviceCreateInfo where
+        unsafeAddr (VkDeviceGroupDeviceCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupDeviceCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupDeviceCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupDeviceCreateInfo where
+        type StructFields VkDeviceGroupDeviceCreateInfo =
+             '["sType", "pNext", "physicalDeviceCount", "pPhysicalDevices"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupDeviceCreateInfo =
+             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupDeviceCreateInfo where
+        type FieldType "sType" VkDeviceGroupDeviceCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupDeviceCreateInfo =
+             #{offset VkDeviceGroupDeviceCreateInfo, sType}
+        type FieldIsArray "sType" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupDeviceCreateInfo where
+        type FieldType "pNext" VkDeviceGroupDeviceCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupDeviceCreateInfo =
+             #{offset VkDeviceGroupDeviceCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupDeviceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo where
+        type FieldType "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
+             = Word32
+        type FieldOptional "physicalDeviceCount"
+               VkDeviceGroupDeviceCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDeviceCount"
+               VkDeviceGroupDeviceCreateInfo
+             =
+             #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
+        type FieldIsArray "physicalDeviceCount"
+               VkDeviceGroupDeviceCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo where
+        type FieldType "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo =
+             Ptr VkPhysicalDevice
+        type FieldOptional "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo =
+             #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
+        type FieldIsArray "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
+
+instance Show VkDeviceGroupDeviceCreateInfo where
+        showsPrec d x
+          = showString "VkDeviceGroupDeviceCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "physicalDeviceCount = " .
+                            showsPrec d (getField @"physicalDeviceCount" x) .
+                              showString ", " .
+                                showString "pPhysicalDevices = " .
+                                  showsPrec d (getField @"pPhysicalDevices" x) . showChar '}'
+
+-- | Alias for `VkDeviceGroupDeviceCreateInfo`
+type VkDeviceGroupDeviceCreateInfoKHR =
+     VkDeviceGroupDeviceCreateInfo
+
+-- | > typedef struct VkDeviceGroupPresentCapabilitiesKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         presentMask[VK_MAX_DEVICE_GROUP_SIZE];
+--   >     VkDeviceGroupPresentModeFlagsKHR modes;
+--   > } VkDeviceGroupPresentCapabilitiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupPresentCapabilitiesKHR VkDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
+data VkDeviceGroupPresentCapabilitiesKHR = VkDeviceGroupPresentCapabilitiesKHR## Addr##
+                                                                                ByteArray##
+
+instance Eq VkDeviceGroupPresentCapabilitiesKHR where
+        (VkDeviceGroupPresentCapabilitiesKHR## a _) ==
+          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupPresentCapabilitiesKHR where
+        (VkDeviceGroupPresentCapabilitiesKHR## a _) `compare`
+          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupPresentCapabilitiesKHR where
+        sizeOf ~_ = #{size VkDeviceGroupPresentCapabilitiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGroupPresentCapabilitiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupPresentCapabilitiesKHR
+         where
+        unsafeAddr (VkDeviceGroupPresentCapabilitiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupPresentCapabilitiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupPresentCapabilitiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupPresentCapabilitiesKHR where
+        type StructFields VkDeviceGroupPresentCapabilitiesKHR =
+             '["sType", "pNext", "presentMask", "modes"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupPresentCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupPresentCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupPresentCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupPresentCapabilitiesKHR where
+        type FieldType "sType" VkDeviceGroupPresentCapabilitiesKHR =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupPresentCapabilitiesKHR =
+             #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
+        type FieldIsArray "sType" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
+        type FieldType "pNext" VkDeviceGroupPresentCapabilitiesKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupPresentCapabilitiesKHR =
+             #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "presentMask" VkDeviceGroupPresentCapabilitiesKHR where
+        type FieldType "presentMask" VkDeviceGroupPresentCapabilitiesKHR =
+             Word32
+        type FieldOptional "presentMask"
+               VkDeviceGroupPresentCapabilitiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "presentMask" VkDeviceGroupPresentCapabilitiesKHR
+             =
+             #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
+        type FieldIsArray "presentMask" VkDeviceGroupPresentCapabilitiesKHR
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "presentMask" idx
+            VkDeviceGroupPresentCapabilitiesKHR) =>
+         CanReadFieldArray "presentMask" idx
+           VkDeviceGroupPresentCapabilitiesKHR
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "presentMask" 0
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "presentMask" 1
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "presentMask" 2
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "presentMask" 3
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+        type FieldArrayLength "presentMask"
+               VkDeviceGroupPresentCapabilitiesKHR
+             = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
+                      +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "presentMask" idx
+            VkDeviceGroupPresentCapabilitiesKHR) =>
+         CanWriteFieldArray "presentMask" idx
+           VkDeviceGroupPresentCapabilitiesKHR
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "presentMask" 0
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "presentMask" 1
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "presentMask" 2
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "presentMask" 3
+                         VkDeviceGroupPresentCapabilitiesKHR
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "modes" VkDeviceGroupPresentCapabilitiesKHR where
+        type FieldType "modes" VkDeviceGroupPresentCapabilitiesKHR =
+             VkDeviceGroupPresentModeFlagsKHR
+        type FieldOptional "modes" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "modes" VkDeviceGroupPresentCapabilitiesKHR =
+             #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
+        type FieldIsArray "modes" VkDeviceGroupPresentCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "modes" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, modes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "modes" VkDeviceGroupPresentCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
+
+instance Show VkDeviceGroupPresentCapabilitiesKHR where
+        showsPrec d x
+          = showString "VkDeviceGroupPresentCapabilitiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          (showString "presentMask = [" .
+                             showsPrec d
+                               (let s = sizeOf
+                                          (undefined ::
+                                             FieldType "presentMask"
+                                               VkDeviceGroupPresentCapabilitiesKHR)
+                                    o = fieldOffset @"presentMask"
+                                          @VkDeviceGroupPresentCapabilitiesKHR
+                                    f i
+                                      = peekByteOff (unsafePtr x) i ::
+                                          IO
+                                            (FieldType "presentMask"
+                                               VkDeviceGroupPresentCapabilitiesKHR)
+                                  in
+                                  unsafeDupablePerformIO . mapM f $
+                                    map (\ i -> o + i * s) [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
+                               . showChar ']')
+                            .
+                            showString ", " .
+                              showString "modes = " .
+                                showsPrec d (getField @"modes" x) . showChar '}'
+
+-- | > typedef struct VkDeviceGroupPresentInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         swapchainCount;
+--   >     const uint32_t* pDeviceMasks;
+--   >     VkDeviceGroupPresentModeFlagBitsKHR mode;
+--   > } VkDeviceGroupPresentInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupPresentInfoKHR VkDeviceGroupPresentInfoKHR registry at www.khronos.org>
+data VkDeviceGroupPresentInfoKHR = VkDeviceGroupPresentInfoKHR## Addr##
+                                                                ByteArray##
+
+instance Eq VkDeviceGroupPresentInfoKHR where
+        (VkDeviceGroupPresentInfoKHR## a _) ==
+          x@(VkDeviceGroupPresentInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupPresentInfoKHR where
+        (VkDeviceGroupPresentInfoKHR## a _) `compare`
+          x@(VkDeviceGroupPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupPresentInfoKHR where
+        sizeOf ~_ = #{size VkDeviceGroupPresentInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceGroupPresentInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupPresentInfoKHR where
+        unsafeAddr (VkDeviceGroupPresentInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupPresentInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupPresentInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupPresentInfoKHR where
+        type StructFields VkDeviceGroupPresentInfoKHR =
+             '["sType", "pNext", "swapchainCount", "pDeviceMasks", "mode"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupPresentInfoKHR =
+             '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupPresentInfoKHR where
+        type FieldType "sType" VkDeviceGroupPresentInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupPresentInfoKHR =
+             #{offset VkDeviceGroupPresentInfoKHR, sType}
+        type FieldIsArray "sType" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupPresentInfoKHR where
+        type FieldType "pNext" VkDeviceGroupPresentInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupPresentInfoKHR =
+             #{offset VkDeviceGroupPresentInfoKHR, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchainCount" VkDeviceGroupPresentInfoKHR where
+        type FieldType "swapchainCount" VkDeviceGroupPresentInfoKHR =
+             Word32
+        type FieldOptional "swapchainCount" VkDeviceGroupPresentInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "swapchainCount" VkDeviceGroupPresentInfoKHR =
+             #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
+        type FieldIsArray "swapchainCount" VkDeviceGroupPresentInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchainCount" VkDeviceGroupPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, swapchainCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchainCount" VkDeviceGroupPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
+        type FieldType "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
+             Ptr Word32
+        type FieldOptional "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
+             #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
+        type FieldIsArray "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         HasField "mode" VkDeviceGroupPresentInfoKHR where
+        type FieldType "mode" VkDeviceGroupPresentInfoKHR =
+             VkDeviceGroupPresentModeFlagBitsKHR
+        type FieldOptional "mode" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mode" VkDeviceGroupPresentInfoKHR =
+             #{offset VkDeviceGroupPresentInfoKHR, mode}
+        type FieldIsArray "mode" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupPresentInfoKHR, mode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mode" VkDeviceGroupPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, mode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, mode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mode" VkDeviceGroupPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, mode}
+
+instance Show VkDeviceGroupPresentInfoKHR where
+        showsPrec d x
+          = showString "VkDeviceGroupPresentInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchainCount = " .
+                            showsPrec d (getField @"swapchainCount" x) .
+                              showString ", " .
+                                showString "pDeviceMasks = " .
+                                  showsPrec d (getField @"pDeviceMasks" x) .
+                                    showString ", " .
+                                      showString "mode = " .
+                                        showsPrec d (getField @"mode" x) . showChar '}'
+
+-- | > typedef struct VkDeviceGroupRenderPassBeginInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         deviceMask;
+--   >     uint32_t         deviceRenderAreaCount;
+--   >     const VkRect2D*  pDeviceRenderAreas;
+--   > } VkDeviceGroupRenderPassBeginInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfo registry at www.khronos.org>
+data VkDeviceGroupRenderPassBeginInfo = VkDeviceGroupRenderPassBeginInfo## Addr##
+                                                                          ByteArray##
+
+instance Eq VkDeviceGroupRenderPassBeginInfo where
+        (VkDeviceGroupRenderPassBeginInfo## a _) ==
+          x@(VkDeviceGroupRenderPassBeginInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupRenderPassBeginInfo where
+        (VkDeviceGroupRenderPassBeginInfo## a _) `compare`
+          x@(VkDeviceGroupRenderPassBeginInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupRenderPassBeginInfo where
+        sizeOf ~_ = #{size VkDeviceGroupRenderPassBeginInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGroupRenderPassBeginInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupRenderPassBeginInfo where
+        unsafeAddr (VkDeviceGroupRenderPassBeginInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupRenderPassBeginInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupRenderPassBeginInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupRenderPassBeginInfo where
+        type StructFields VkDeviceGroupRenderPassBeginInfo =
+             '["sType", "pNext", "deviceMask", "deviceRenderAreaCount", -- ' closing tick for hsc2hs
+               "pDeviceRenderAreas"]
+        type CUnionType VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupRenderPassBeginInfo =
+             '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupRenderPassBeginInfo where
+        type FieldType "sType" VkDeviceGroupRenderPassBeginInfo =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupRenderPassBeginInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupRenderPassBeginInfo =
+             #{offset VkDeviceGroupRenderPassBeginInfo, sType}
+        type FieldIsArray "sType" VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupRenderPassBeginInfo where
+        type FieldType "pNext" VkDeviceGroupRenderPassBeginInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupRenderPassBeginInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupRenderPassBeginInfo =
+             #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
+        type FieldType "deviceMask" VkDeviceGroupRenderPassBeginInfo =
+             Word32
+        type FieldOptional "deviceMask" VkDeviceGroupRenderPassBeginInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceMask" VkDeviceGroupRenderPassBeginInfo =
+             #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
+        type FieldIsArray "deviceMask" VkDeviceGroupRenderPassBeginInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceRenderAreaCount" VkDeviceGroupRenderPassBeginInfo
+         where
+        type FieldType "deviceRenderAreaCount"
+               VkDeviceGroupRenderPassBeginInfo
+             = Word32
+        type FieldOptional "deviceRenderAreaCount"
+               VkDeviceGroupRenderPassBeginInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "deviceRenderAreaCount"
+               VkDeviceGroupRenderPassBeginInfo
+             =
+             #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
+        type FieldIsArray "deviceRenderAreaCount"
+               VkDeviceGroupRenderPassBeginInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceRenderAreaCount"
+           VkDeviceGroupRenderPassBeginInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceRenderAreaCount"
+           VkDeviceGroupRenderPassBeginInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
+         where
+        type FieldType "pDeviceRenderAreas"
+               VkDeviceGroupRenderPassBeginInfo
+             = Ptr VkRect2D
+        type FieldOptional "pDeviceRenderAreas"
+               VkDeviceGroupRenderPassBeginInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDeviceRenderAreas"
+               VkDeviceGroupRenderPassBeginInfo
+             =
+             #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
+        type FieldIsArray "pDeviceRenderAreas"
+               VkDeviceGroupRenderPassBeginInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
+
+instance Show VkDeviceGroupRenderPassBeginInfo where
+        showsPrec d x
+          = showString "VkDeviceGroupRenderPassBeginInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "deviceMask = " .
+                            showsPrec d (getField @"deviceMask" x) .
+                              showString ", " .
+                                showString "deviceRenderAreaCount = " .
+                                  showsPrec d (getField @"deviceRenderAreaCount" x) .
+                                    showString ", " .
+                                      showString "pDeviceRenderAreas = " .
+                                        showsPrec d (getField @"pDeviceRenderAreas" x) .
+                                          showChar '}'
+
+-- | Alias for `VkDeviceGroupRenderPassBeginInfo`
+type VkDeviceGroupRenderPassBeginInfoKHR =
+     VkDeviceGroupRenderPassBeginInfo
+
+-- | > typedef struct VkDeviceGroupSubmitInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         waitSemaphoreCount;
+--   >     const uint32_t*    pWaitSemaphoreDeviceIndices;
+--   >     uint32_t         commandBufferCount;
+--   >     const uint32_t*    pCommandBufferDeviceMasks;
+--   >     uint32_t         signalSemaphoreCount;
+--   >     const uint32_t*  pSignalSemaphoreDeviceIndices;
+--   > } VkDeviceGroupSubmitInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfo registry at www.khronos.org>
+data VkDeviceGroupSubmitInfo = VkDeviceGroupSubmitInfo## Addr##
+                                                        ByteArray##
+
+instance Eq VkDeviceGroupSubmitInfo where
+        (VkDeviceGroupSubmitInfo## a _) == x@(VkDeviceGroupSubmitInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupSubmitInfo where
+        (VkDeviceGroupSubmitInfo## a _) `compare`
+          x@(VkDeviceGroupSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupSubmitInfo where
+        sizeOf ~_ = #{size VkDeviceGroupSubmitInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceGroupSubmitInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupSubmitInfo where
+        unsafeAddr (VkDeviceGroupSubmitInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupSubmitInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupSubmitInfo where
+        type StructFields VkDeviceGroupSubmitInfo =
+             '["sType", "pNext", "waitSemaphoreCount", -- ' closing tick for hsc2hs
+               "pWaitSemaphoreDeviceIndices", "commandBufferCount",
+               "pCommandBufferDeviceMasks", "signalSemaphoreCount",
+               "pSignalSemaphoreDeviceIndices"]
+        type CUnionType VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupSubmitInfo = '[VkSubmitInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupSubmitInfo where
+        type FieldType "sType" VkDeviceGroupSubmitInfo = VkStructureType
+        type FieldOptional "sType" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupSubmitInfo =
+             #{offset VkDeviceGroupSubmitInfo, sType}
+        type FieldIsArray "sType" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceGroupSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupSubmitInfo where
+        type FieldType "pNext" VkDeviceGroupSubmitInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupSubmitInfo =
+             #{offset VkDeviceGroupSubmitInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceGroupSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
+        type FieldType "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
+             Word32
+        type FieldOptional "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
+             #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
+        type FieldIsArray "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
+         where
+        type FieldType "pWaitSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = Ptr Word32
+        type FieldOptional "pWaitSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             =
+             #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
+        type FieldIsArray "pWaitSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         HasField "commandBufferCount" VkDeviceGroupSubmitInfo where
+        type FieldType "commandBufferCount" VkDeviceGroupSubmitInfo =
+             Word32
+        type FieldOptional "commandBufferCount" VkDeviceGroupSubmitInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "commandBufferCount" VkDeviceGroupSubmitInfo =
+             #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
+        type FieldIsArray "commandBufferCount" VkDeviceGroupSubmitInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "commandBufferCount" VkDeviceGroupSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, commandBufferCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "commandBufferCount" VkDeviceGroupSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo where
+        type FieldType "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
+             = Ptr Word32
+        type FieldOptional "pCommandBufferDeviceMasks"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pCommandBufferDeviceMasks"
+               VkDeviceGroupSubmitInfo
+             =
+             #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
+        type FieldIsArray "pCommandBufferDeviceMasks"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
+
+instance {-# OVERLAPPING #-}
+         HasField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
+        type FieldType "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
+             Word32
+        type FieldOptional "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
+             #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
+        type FieldIsArray "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSignalSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
+         where
+        type FieldType "pSignalSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = Ptr Word32
+        type FieldOptional "pSignalSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSignalSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             =
+             #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
+        type FieldIsArray "pSignalSemaphoreDeviceIndices"
+               VkDeviceGroupSubmitInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSignalSemaphoreDeviceIndices"
+           VkDeviceGroupSubmitInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSignalSemaphoreDeviceIndices"
+           VkDeviceGroupSubmitInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
+
+instance Show VkDeviceGroupSubmitInfo where
+        showsPrec d x
+          = showString "VkDeviceGroupSubmitInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "waitSemaphoreCount = " .
+                            showsPrec d (getField @"waitSemaphoreCount" x) .
+                              showString ", " .
+                                showString "pWaitSemaphoreDeviceIndices = " .
+                                  showsPrec d (getField @"pWaitSemaphoreDeviceIndices" x) .
+                                    showString ", " .
+                                      showString "commandBufferCount = " .
+                                        showsPrec d (getField @"commandBufferCount" x) .
+                                          showString ", " .
+                                            showString "pCommandBufferDeviceMasks = " .
+                                              showsPrec d (getField @"pCommandBufferDeviceMasks" x)
+                                                .
+                                                showString ", " .
+                                                  showString "signalSemaphoreCount = " .
+                                                    showsPrec d (getField @"signalSemaphoreCount" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "pSignalSemaphoreDeviceIndices = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"pSignalSemaphoreDeviceIndices"
+                                                               x)
+                                                            . showChar '}'
+
+-- | Alias for `VkDeviceGroupSubmitInfo`
+type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo
+
+-- | > typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDeviceGroupPresentModeFlagsKHR                         modes;
+--   > } VkDeviceGroupSwapchainCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceGroupSwapchainCreateInfoKHR VkDeviceGroupSwapchainCreateInfoKHR registry at www.khronos.org>
+data VkDeviceGroupSwapchainCreateInfoKHR = VkDeviceGroupSwapchainCreateInfoKHR## Addr##
+                                                                                ByteArray##
+
+instance Eq VkDeviceGroupSwapchainCreateInfoKHR where
+        (VkDeviceGroupSwapchainCreateInfoKHR## a _) ==
+          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceGroupSwapchainCreateInfoKHR where
+        (VkDeviceGroupSwapchainCreateInfoKHR## a _) `compare`
+          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceGroupSwapchainCreateInfoKHR where
+        sizeOf ~_ = #{size VkDeviceGroupSwapchainCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceGroupSwapchainCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceGroupSwapchainCreateInfoKHR
+         where
+        unsafeAddr (VkDeviceGroupSwapchainCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceGroupSwapchainCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceGroupSwapchainCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceGroupSwapchainCreateInfoKHR where
+        type StructFields VkDeviceGroupSwapchainCreateInfoKHR =
+             '["sType", "pNext", "modes"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceGroupSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceGroupSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceGroupSwapchainCreateInfoKHR =
+             '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
+        type FieldType "sType" VkDeviceGroupSwapchainCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceGroupSwapchainCreateInfoKHR =
+             #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
+        type FieldType "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
+             #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
+        type FieldType "modes" VkDeviceGroupSwapchainCreateInfoKHR =
+             VkDeviceGroupPresentModeFlagsKHR
+        type FieldOptional "modes" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "modes" VkDeviceGroupSwapchainCreateInfoKHR =
+             #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
+        type FieldIsArray "modes" VkDeviceGroupSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
+
+instance Show VkDeviceGroupSwapchainCreateInfoKHR where
+        showsPrec d x
+          = showString "VkDeviceGroupSwapchainCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "modes = " .
+                            showsPrec d (getField @"modes" x) . showChar '}'
+
+-- | > typedef struct VkDeviceQueueCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*     pNext;
+--   >     VkDeviceQueueCreateFlags    flags;
+--   >     uint32_t        queueFamilyIndex;
+--   >     uint32_t        queueCount;
+--   >     const float*    pQueuePriorities;
+--   > } VkDeviceQueueCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueCreateInfo VkDeviceQueueCreateInfo registry at www.khronos.org>
+data VkDeviceQueueCreateInfo = VkDeviceQueueCreateInfo## Addr##
+                                                        ByteArray##
+
+instance Eq VkDeviceQueueCreateInfo where
+        (VkDeviceQueueCreateInfo## a _) == x@(VkDeviceQueueCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceQueueCreateInfo where
+        (VkDeviceQueueCreateInfo## a _) `compare`
+          x@(VkDeviceQueueCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceQueueCreateInfo where
+        sizeOf ~_ = #{size VkDeviceQueueCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceQueueCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceQueueCreateInfo where
+        unsafeAddr (VkDeviceQueueCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceQueueCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceQueueCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceQueueCreateInfo where
+        type StructFields VkDeviceQueueCreateInfo =
+             '["sType", "pNext", "flags", "queueFamilyIndex", "queueCount", -- ' closing tick for hsc2hs
+               "pQueuePriorities"]
+        type CUnionType VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceQueueCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceQueueCreateInfo where
+        type FieldType "sType" VkDeviceQueueCreateInfo = VkStructureType
+        type FieldOptional "sType" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, sType}
+        type FieldIsArray "sType" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceQueueCreateInfo where
+        type FieldType "pNext" VkDeviceQueueCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, pNext}
+        type FieldIsArray "pNext" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDeviceQueueCreateInfo where
+        type FieldType "flags" VkDeviceQueueCreateInfo =
+             VkDeviceQueueCreateFlags
+        type FieldOptional "flags" VkDeviceQueueCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, flags}
+        type FieldIsArray "flags" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndex" VkDeviceQueueCreateInfo where
+        type FieldType "queueFamilyIndex" VkDeviceQueueCreateInfo = Word32
+        type FieldOptional "queueFamilyIndex" VkDeviceQueueCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndex" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
+        type FieldIsArray "queueFamilyIndex" VkDeviceQueueCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndex" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, queueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndex" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueCount" VkDeviceQueueCreateInfo where
+        type FieldType "queueCount" VkDeviceQueueCreateInfo = Word32
+        type FieldOptional "queueCount" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueCount" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, queueCount}
+        type FieldIsArray "queueCount" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueCreateInfo, queueCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueCount" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, queueCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, queueCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueCount" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, queueCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueuePriorities" VkDeviceQueueCreateInfo where
+        type FieldType "pQueuePriorities" VkDeviceQueueCreateInfo =
+             Ptr #{type float}
+        type FieldOptional "pQueuePriorities" VkDeviceQueueCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pQueuePriorities" VkDeviceQueueCreateInfo =
+             #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
+        type FieldIsArray "pQueuePriorities" VkDeviceQueueCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueuePriorities" VkDeviceQueueCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, pQueuePriorities})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueuePriorities" VkDeviceQueueCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
+
+instance Show VkDeviceQueueCreateInfo where
+        showsPrec d x
+          = showString "VkDeviceQueueCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "queueFamilyIndex = " .
+                                  showsPrec d (getField @"queueFamilyIndex" x) .
+                                    showString ", " .
+                                      showString "queueCount = " .
+                                        showsPrec d (getField @"queueCount" x) .
+                                          showString ", " .
+                                            showString "pQueuePriorities = " .
+                                              showsPrec d (getField @"pQueuePriorities" x) .
+                                                showChar '}'
+
+-- | > typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                    pNext;
+--   >     VkQueueGlobalPriorityEXT       globalPriority;
+--   > } VkDeviceQueueGlobalPriorityCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueGlobalPriorityCreateInfoEXT VkDeviceQueueGlobalPriorityCreateInfoEXT registry at www.khronos.org>
+data VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoEXT## Addr##
+                                                                                          ByteArray##
+
+instance Eq VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) ==
+          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) `compare`
+          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        sizeOf ~_
+          = #{size VkDeviceQueueGlobalPriorityCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDeviceQueueGlobalPriorityCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        unsafeAddr (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceQueueGlobalPriorityCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceQueueGlobalPriorityCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        type StructFields VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             '["sType", "pNext", "globalPriority"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceQueueGlobalPriorityCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceQueueGlobalPriorityCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             '[VkDeviceQueueCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        type FieldType "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        type FieldType "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT =
+             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "globalPriority" VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        type FieldType "globalPriority"
+               VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = VkQueueGlobalPriorityEXT
+        type FieldOptional "globalPriority"
+               VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "globalPriority"
+               VkDeviceQueueGlobalPriorityCreateInfoEXT
+             =
+             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
+        type FieldIsArray "globalPriority"
+               VkDeviceQueueGlobalPriorityCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "globalPriority"
+           VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "globalPriority"
+           VkDeviceQueueGlobalPriorityCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
+
+instance Show VkDeviceQueueGlobalPriorityCreateInfoEXT where
+        showsPrec d x
+          = showString "VkDeviceQueueGlobalPriorityCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "globalPriority = " .
+                            showsPrec d (getField @"globalPriority" x) . showChar '}'
+
+-- | > typedef struct VkDeviceQueueInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                         pNext;
+--   >     VkDeviceQueueCreateFlags            flags;
+--   >     uint32_t                            queueFamilyIndex;
+--   >     uint32_t                            queueIndex;
+--   > } VkDeviceQueueInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDeviceQueueInfo2 VkDeviceQueueInfo2 registry at www.khronos.org>
+data VkDeviceQueueInfo2 = VkDeviceQueueInfo2## Addr## ByteArray##
+
+instance Eq VkDeviceQueueInfo2 where
+        (VkDeviceQueueInfo2## a _) == x@(VkDeviceQueueInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDeviceQueueInfo2 where
+        (VkDeviceQueueInfo2## a _) `compare` x@(VkDeviceQueueInfo2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDeviceQueueInfo2 where
+        sizeOf ~_ = #{size VkDeviceQueueInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDeviceQueueInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDeviceQueueInfo2 where
+        unsafeAddr (VkDeviceQueueInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDeviceQueueInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDeviceQueueInfo2## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDeviceQueueInfo2 where
+        type StructFields VkDeviceQueueInfo2 =
+             '["sType", "pNext", "flags", "queueFamilyIndex", "queueIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDeviceQueueInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDeviceQueueInfo2
+         where
+        type FieldType "sType" VkDeviceQueueInfo2 = VkStructureType
+        type FieldOptional "sType" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDeviceQueueInfo2 =
+             #{offset VkDeviceQueueInfo2, sType}
+        type FieldIsArray "sType" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDeviceQueueInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDeviceQueueInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueInfo2, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceQueueInfo2
+         where
+        type FieldType "pNext" VkDeviceQueueInfo2 = Ptr Void
+        type FieldOptional "pNext" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDeviceQueueInfo2 =
+             #{offset VkDeviceQueueInfo2, pNext}
+        type FieldIsArray "pNext" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDeviceQueueInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDeviceQueueInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueInfo2, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkDeviceQueueInfo2
+         where
+        type FieldType "flags" VkDeviceQueueInfo2 =
+             VkDeviceQueueCreateFlags
+        type FieldOptional "flags" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDeviceQueueInfo2 =
+             #{offset VkDeviceQueueInfo2, flags}
+        type FieldIsArray "flags" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDeviceQueueInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDeviceQueueInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndex" VkDeviceQueueInfo2 where
+        type FieldType "queueFamilyIndex" VkDeviceQueueInfo2 = Word32
+        type FieldOptional "queueFamilyIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndex" VkDeviceQueueInfo2 =
+             #{offset VkDeviceQueueInfo2, queueFamilyIndex}
+        type FieldIsArray "queueFamilyIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDeviceQueueInfo2, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndex" VkDeviceQueueInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, queueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueInfo2, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndex" VkDeviceQueueInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueInfo2, queueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueIndex" VkDeviceQueueInfo2 where
+        type FieldType "queueIndex" VkDeviceQueueInfo2 = Word32
+        type FieldOptional "queueIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueIndex" VkDeviceQueueInfo2 =
+             #{offset VkDeviceQueueInfo2, queueIndex}
+        type FieldIsArray "queueIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDeviceQueueInfo2, queueIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueIndex" VkDeviceQueueInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, queueIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDeviceQueueInfo2, queueIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueIndex" VkDeviceQueueInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDeviceQueueInfo2, queueIndex}
+
+instance Show VkDeviceQueueInfo2 where
+        showsPrec d x
+          = showString "VkDeviceQueueInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "queueFamilyIndex = " .
+                                  showsPrec d (getField @"queueFamilyIndex" x) .
+                                    showString ", " .
+                                      showString "queueIndex = " .
+                                        showsPrec d (getField @"queueIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DispatchIndirectCommand.hsc
@@ -0,0 +1,177 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
+       (VkDispatchIndirectCommand(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDispatchIndirectCommand {
+--   >     uint32_t               x;
+--   >     uint32_t               y;
+--   >     uint32_t               z;
+--   > } VkDispatchIndirectCommand;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDispatchIndirectCommand VkDispatchIndirectCommand registry at www.khronos.org>
+data VkDispatchIndirectCommand = VkDispatchIndirectCommand## Addr##
+                                                            ByteArray##
+
+instance Eq VkDispatchIndirectCommand where
+        (VkDispatchIndirectCommand## a _) ==
+          x@(VkDispatchIndirectCommand## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDispatchIndirectCommand where
+        (VkDispatchIndirectCommand## a _) `compare`
+          x@(VkDispatchIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDispatchIndirectCommand where
+        sizeOf ~_ = #{size VkDispatchIndirectCommand}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDispatchIndirectCommand}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDispatchIndirectCommand where
+        unsafeAddr (VkDispatchIndirectCommand## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDispatchIndirectCommand## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDispatchIndirectCommand## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDispatchIndirectCommand where
+        type StructFields VkDispatchIndirectCommand = '["x", "y", "z"] -- ' closing tick for hsc2hs
+        type CUnionType VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDispatchIndirectCommand = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkDispatchIndirectCommand
+         where
+        type FieldType "x" VkDispatchIndirectCommand = Word32
+        type FieldOptional "x" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkDispatchIndirectCommand =
+             #{offset VkDispatchIndirectCommand, x}
+        type FieldIsArray "x" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDispatchIndirectCommand, x}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "x" VkDispatchIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, x})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDispatchIndirectCommand, x}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "x" VkDispatchIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDispatchIndirectCommand, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkDispatchIndirectCommand
+         where
+        type FieldType "y" VkDispatchIndirectCommand = Word32
+        type FieldOptional "y" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkDispatchIndirectCommand =
+             #{offset VkDispatchIndirectCommand, y}
+        type FieldIsArray "y" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDispatchIndirectCommand, y}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "y" VkDispatchIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, y})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDispatchIndirectCommand, y}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "y" VkDispatchIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDispatchIndirectCommand, y}
+
+instance {-# OVERLAPPING #-} HasField "z" VkDispatchIndirectCommand
+         where
+        type FieldType "z" VkDispatchIndirectCommand = Word32
+        type FieldOptional "z" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "z" VkDispatchIndirectCommand =
+             #{offset VkDispatchIndirectCommand, z}
+        type FieldIsArray "z" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDispatchIndirectCommand, z}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "z" VkDispatchIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, z})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDispatchIndirectCommand, z}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "z" VkDispatchIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDispatchIndirectCommand, z}
+
+instance Show VkDispatchIndirectCommand where
+        showsPrec d x
+          = showString "VkDispatchIndirectCommand {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " .
+                      showsPrec d (getField @"y" x) .
+                        showString ", " .
+                          showString "z = " . showsPrec d (getField @"z" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Display.hsc
@@ -0,0 +1,2388 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Display
+       (VkDisplayEventInfoEXT(..), VkDisplayModeCreateInfoKHR(..),
+        VkDisplayModeParametersKHR(..), VkDisplayModePropertiesKHR(..),
+        VkDisplayPlaneCapabilitiesKHR(..), VkDisplayPlanePropertiesKHR(..),
+        VkDisplayPowerInfoEXT(..), VkDisplayPresentInfoKHR(..),
+        VkDisplayPropertiesKHR(..), VkDisplaySurfaceCreateInfoKHR(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import           Graphics.Vulkan.Types.Bitmasks           (VkDisplayModeCreateFlagsKHR,
+                                                           VkDisplaySurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.Display       (VkDisplayEventTypeEXT,
+                                                           VkDisplayPlaneAlphaFlagBitsKHR,
+                                                           VkDisplayPlaneAlphaFlagsKHR,
+                                                           VkDisplayPowerStateEXT)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.Surface       (VkSurfaceTransformFlagBitsKHR,
+                                                           VkSurfaceTransformFlagsKHR)
+import           Graphics.Vulkan.Types.Handles            (VkDisplayKHR,
+                                                           VkDisplayModeKHR)
+import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
+import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset2D)
+import           Graphics.Vulkan.Types.Struct.Present     (VkPresentInfoKHR)
+import           Graphics.Vulkan.Types.Struct.Rect        (VkRect2D)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDisplayEventInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDisplayEventTypeEXT            displayEvent;
+--   > } VkDisplayEventInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayEventInfoEXT VkDisplayEventInfoEXT registry at www.khronos.org>
+data VkDisplayEventInfoEXT = VkDisplayEventInfoEXT## Addr##
+                                                    ByteArray##
+
+instance Eq VkDisplayEventInfoEXT where
+        (VkDisplayEventInfoEXT## a _) == x@(VkDisplayEventInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayEventInfoEXT where
+        (VkDisplayEventInfoEXT## a _) `compare`
+          x@(VkDisplayEventInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayEventInfoEXT where
+        sizeOf ~_ = #{size VkDisplayEventInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayEventInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayEventInfoEXT where
+        unsafeAddr (VkDisplayEventInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayEventInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayEventInfoEXT where
+        type StructFields VkDisplayEventInfoEXT =
+             '["sType", "pNext", "displayEvent"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayEventInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDisplayEventInfoEXT
+         where
+        type FieldType "sType" VkDisplayEventInfoEXT = VkStructureType
+        type FieldOptional "sType" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDisplayEventInfoEXT =
+             #{offset VkDisplayEventInfoEXT, sType}
+        type FieldIsArray "sType" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDisplayEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDisplayEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayEventInfoEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDisplayEventInfoEXT
+         where
+        type FieldType "pNext" VkDisplayEventInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDisplayEventInfoEXT =
+             #{offset VkDisplayEventInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDisplayEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDisplayEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayEventInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayEvent" VkDisplayEventInfoEXT where
+        type FieldType "displayEvent" VkDisplayEventInfoEXT =
+             VkDisplayEventTypeEXT
+        type FieldOptional "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayEvent" VkDisplayEventInfoEXT =
+             #{offset VkDisplayEventInfoEXT, displayEvent}
+        type FieldIsArray "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayEventInfoEXT, displayEvent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayEvent" VkDisplayEventInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, displayEvent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayEventInfoEXT, displayEvent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayEvent" VkDisplayEventInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayEventInfoEXT, displayEvent}
+
+instance Show VkDisplayEventInfoEXT where
+        showsPrec d x
+          = showString "VkDisplayEventInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "displayEvent = " .
+                            showsPrec d (getField @"displayEvent" x) . showChar '}'
+
+-- | > typedef struct VkDisplayModeCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDisplayModeCreateFlagsKHR      flags;
+--   >     VkDisplayModeParametersKHR       parameters;
+--   > } VkDisplayModeCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeCreateInfoKHR VkDisplayModeCreateInfoKHR registry at www.khronos.org>
+data VkDisplayModeCreateInfoKHR = VkDisplayModeCreateInfoKHR## Addr##
+                                                              ByteArray##
+
+instance Eq VkDisplayModeCreateInfoKHR where
+        (VkDisplayModeCreateInfoKHR## a _) ==
+          x@(VkDisplayModeCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayModeCreateInfoKHR where
+        (VkDisplayModeCreateInfoKHR## a _) `compare`
+          x@(VkDisplayModeCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayModeCreateInfoKHR where
+        sizeOf ~_ = #{size VkDisplayModeCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayModeCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayModeCreateInfoKHR where
+        unsafeAddr (VkDisplayModeCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayModeCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayModeCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayModeCreateInfoKHR where
+        type StructFields VkDisplayModeCreateInfoKHR =
+             '["sType", "pNext", "flags", "parameters"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayModeCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDisplayModeCreateInfoKHR where
+        type FieldType "sType" VkDisplayModeCreateInfoKHR = VkStructureType
+        type FieldOptional "sType" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDisplayModeCreateInfoKHR =
+             #{offset VkDisplayModeCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDisplayModeCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDisplayModeCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDisplayModeCreateInfoKHR where
+        type FieldType "pNext" VkDisplayModeCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDisplayModeCreateInfoKHR =
+             #{offset VkDisplayModeCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDisplayModeCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDisplayModeCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDisplayModeCreateInfoKHR where
+        type FieldType "flags" VkDisplayModeCreateInfoKHR =
+             VkDisplayModeCreateFlagsKHR
+        type FieldOptional "flags" VkDisplayModeCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDisplayModeCreateInfoKHR =
+             #{offset VkDisplayModeCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDisplayModeCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDisplayModeCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "parameters" VkDisplayModeCreateInfoKHR where
+        type FieldType "parameters" VkDisplayModeCreateInfoKHR =
+             VkDisplayModeParametersKHR
+        type FieldOptional "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "parameters" VkDisplayModeCreateInfoKHR =
+             #{offset VkDisplayModeCreateInfoKHR, parameters}
+        type FieldIsArray "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeCreateInfoKHR, parameters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "parameters" VkDisplayModeCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, parameters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, parameters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "parameters" VkDisplayModeCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, parameters}
+
+instance Show VkDisplayModeCreateInfoKHR where
+        showsPrec d x
+          = showString "VkDisplayModeCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "parameters = " .
+                                  showsPrec d (getField @"parameters" x) . showChar '}'
+
+-- | > typedef struct VkDisplayModeParametersKHR {
+--   >     VkExtent2D                       visibleRegion;
+--   >     uint32_t                         refreshRate;
+--   > } VkDisplayModeParametersKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModeParametersKHR VkDisplayModeParametersKHR registry at www.khronos.org>
+data VkDisplayModeParametersKHR = VkDisplayModeParametersKHR## Addr##
+                                                              ByteArray##
+
+instance Eq VkDisplayModeParametersKHR where
+        (VkDisplayModeParametersKHR## a _) ==
+          x@(VkDisplayModeParametersKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayModeParametersKHR where
+        (VkDisplayModeParametersKHR## a _) `compare`
+          x@(VkDisplayModeParametersKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayModeParametersKHR where
+        sizeOf ~_ = #{size VkDisplayModeParametersKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayModeParametersKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayModeParametersKHR where
+        unsafeAddr (VkDisplayModeParametersKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayModeParametersKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayModeParametersKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayModeParametersKHR where
+        type StructFields VkDisplayModeParametersKHR =
+             '["visibleRegion", "refreshRate"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayModeParametersKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "visibleRegion" VkDisplayModeParametersKHR where
+        type FieldType "visibleRegion" VkDisplayModeParametersKHR =
+             VkExtent2D
+        type FieldOptional "visibleRegion" VkDisplayModeParametersKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "visibleRegion" VkDisplayModeParametersKHR =
+             #{offset VkDisplayModeParametersKHR, visibleRegion}
+        type FieldIsArray "visibleRegion" VkDisplayModeParametersKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeParametersKHR, visibleRegion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "visibleRegion" VkDisplayModeParametersKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeParametersKHR, visibleRegion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeParametersKHR, visibleRegion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "visibleRegion" VkDisplayModeParametersKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeParametersKHR, visibleRegion}
+
+instance {-# OVERLAPPING #-}
+         HasField "refreshRate" VkDisplayModeParametersKHR where
+        type FieldType "refreshRate" VkDisplayModeParametersKHR = Word32
+        type FieldOptional "refreshRate" VkDisplayModeParametersKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "refreshRate" VkDisplayModeParametersKHR =
+             #{offset VkDisplayModeParametersKHR, refreshRate}
+        type FieldIsArray "refreshRate" VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModeParametersKHR, refreshRate}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "refreshRate" VkDisplayModeParametersKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModeParametersKHR, refreshRate})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModeParametersKHR, refreshRate}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "refreshRate" VkDisplayModeParametersKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModeParametersKHR, refreshRate}
+
+instance Show VkDisplayModeParametersKHR where
+        showsPrec d x
+          = showString "VkDisplayModeParametersKHR {" .
+              showString "visibleRegion = " .
+                showsPrec d (getField @"visibleRegion" x) .
+                  showString ", " .
+                    showString "refreshRate = " .
+                      showsPrec d (getField @"refreshRate" x) . showChar '}'
+
+-- | > typedef struct VkDisplayModePropertiesKHR {
+--   >     VkDisplayModeKHR                 displayMode;
+--   >     VkDisplayModeParametersKHR       parameters;
+--   > } VkDisplayModePropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayModePropertiesKHR VkDisplayModePropertiesKHR registry at www.khronos.org>
+data VkDisplayModePropertiesKHR = VkDisplayModePropertiesKHR## Addr##
+                                                              ByteArray##
+
+instance Eq VkDisplayModePropertiesKHR where
+        (VkDisplayModePropertiesKHR## a _) ==
+          x@(VkDisplayModePropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayModePropertiesKHR where
+        (VkDisplayModePropertiesKHR## a _) `compare`
+          x@(VkDisplayModePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayModePropertiesKHR where
+        sizeOf ~_ = #{size VkDisplayModePropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayModePropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayModePropertiesKHR where
+        unsafeAddr (VkDisplayModePropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayModePropertiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayModePropertiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayModePropertiesKHR where
+        type StructFields VkDisplayModePropertiesKHR =
+             '["displayMode", "parameters"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayModePropertiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayModePropertiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "displayMode" VkDisplayModePropertiesKHR where
+        type FieldType "displayMode" VkDisplayModePropertiesKHR =
+             VkDisplayModeKHR
+        type FieldOptional "displayMode" VkDisplayModePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayMode" VkDisplayModePropertiesKHR =
+             #{offset VkDisplayModePropertiesKHR, displayMode}
+        type FieldIsArray "displayMode" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModePropertiesKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayMode" VkDisplayModePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModePropertiesKHR, displayMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModePropertiesKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayMode" VkDisplayModePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModePropertiesKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "parameters" VkDisplayModePropertiesKHR where
+        type FieldType "parameters" VkDisplayModePropertiesKHR =
+             VkDisplayModeParametersKHR
+        type FieldOptional "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "parameters" VkDisplayModePropertiesKHR =
+             #{offset VkDisplayModePropertiesKHR, parameters}
+        type FieldIsArray "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayModePropertiesKHR, parameters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "parameters" VkDisplayModePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayModePropertiesKHR, parameters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayModePropertiesKHR, parameters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "parameters" VkDisplayModePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayModePropertiesKHR, parameters}
+
+instance Show VkDisplayModePropertiesKHR where
+        showsPrec d x
+          = showString "VkDisplayModePropertiesKHR {" .
+              showString "displayMode = " .
+                showsPrec d (getField @"displayMode" x) .
+                  showString ", " .
+                    showString "parameters = " .
+                      showsPrec d (getField @"parameters" x) . showChar '}'
+
+-- | > typedef struct VkDisplayPlaneCapabilitiesKHR {
+--   >     VkDisplayPlaneAlphaFlagsKHR      supportedAlpha;
+--   >     VkOffset2D                       minSrcPosition;
+--   >     VkOffset2D                       maxSrcPosition;
+--   >     VkExtent2D                       minSrcExtent;
+--   >     VkExtent2D                       maxSrcExtent;
+--   >     VkOffset2D                       minDstPosition;
+--   >     VkOffset2D                       maxDstPosition;
+--   >     VkExtent2D                       minDstExtent;
+--   >     VkExtent2D                       maxDstExtent;
+--   > } VkDisplayPlaneCapabilitiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlaneCapabilitiesKHR VkDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
+data VkDisplayPlaneCapabilitiesKHR = VkDisplayPlaneCapabilitiesKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkDisplayPlaneCapabilitiesKHR where
+        (VkDisplayPlaneCapabilitiesKHR## a _) ==
+          x@(VkDisplayPlaneCapabilitiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayPlaneCapabilitiesKHR where
+        (VkDisplayPlaneCapabilitiesKHR## a _) `compare`
+          x@(VkDisplayPlaneCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayPlaneCapabilitiesKHR where
+        sizeOf ~_ = #{size VkDisplayPlaneCapabilitiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDisplayPlaneCapabilitiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayPlaneCapabilitiesKHR where
+        unsafeAddr (VkDisplayPlaneCapabilitiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayPlaneCapabilitiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayPlaneCapabilitiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayPlaneCapabilitiesKHR where
+        type StructFields VkDisplayPlaneCapabilitiesKHR =
+             '["supportedAlpha", "minSrcPosition", "maxSrcPosition", -- ' closing tick for hsc2hs
+               "minSrcExtent", "maxSrcExtent", "minDstPosition", "maxDstPosition",
+               "minDstExtent", "maxDstExtent"]
+        type CUnionType VkDisplayPlaneCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayPlaneCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayPlaneCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
+             VkDisplayPlaneAlphaFlagsKHR
+        type FieldOptional "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
+        type FieldIsArray "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             VkOffset2D
+        type FieldOptional "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
+        type FieldIsArray "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             VkOffset2D
+        type FieldOptional "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
+        type FieldIsArray "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
+        type FieldIsArray "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
+        type FieldIsArray "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             VkOffset2D
+        type FieldOptional "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
+        type FieldIsArray "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             VkOffset2D
+        type FieldOptional "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
+        type FieldIsArray "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
+
+instance {-# OVERLAPPING #-}
+         HasField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
+        type FieldIsArray "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        type FieldType "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
+        type FieldIsArray "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
+
+instance Show VkDisplayPlaneCapabilitiesKHR where
+        showsPrec d x
+          = showString "VkDisplayPlaneCapabilitiesKHR {" .
+              showString "supportedAlpha = " .
+                showsPrec d (getField @"supportedAlpha" x) .
+                  showString ", " .
+                    showString "minSrcPosition = " .
+                      showsPrec d (getField @"minSrcPosition" x) .
+                        showString ", " .
+                          showString "maxSrcPosition = " .
+                            showsPrec d (getField @"maxSrcPosition" x) .
+                              showString ", " .
+                                showString "minSrcExtent = " .
+                                  showsPrec d (getField @"minSrcExtent" x) .
+                                    showString ", " .
+                                      showString "maxSrcExtent = " .
+                                        showsPrec d (getField @"maxSrcExtent" x) .
+                                          showString ", " .
+                                            showString "minDstPosition = " .
+                                              showsPrec d (getField @"minDstPosition" x) .
+                                                showString ", " .
+                                                  showString "maxDstPosition = " .
+                                                    showsPrec d (getField @"maxDstPosition" x) .
+                                                      showString ", " .
+                                                        showString "minDstExtent = " .
+                                                          showsPrec d (getField @"minDstExtent" x) .
+                                                            showString ", " .
+                                                              showString "maxDstExtent = " .
+                                                                showsPrec d
+                                                                  (getField @"maxDstExtent" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkDisplayPlanePropertiesKHR {
+--   >     VkDisplayKHR                     currentDisplay;
+--   >     uint32_t                         currentStackIndex;
+--   > } VkDisplayPlanePropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPlanePropertiesKHR VkDisplayPlanePropertiesKHR registry at www.khronos.org>
+data VkDisplayPlanePropertiesKHR = VkDisplayPlanePropertiesKHR## Addr##
+                                                                ByteArray##
+
+instance Eq VkDisplayPlanePropertiesKHR where
+        (VkDisplayPlanePropertiesKHR## a _) ==
+          x@(VkDisplayPlanePropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayPlanePropertiesKHR where
+        (VkDisplayPlanePropertiesKHR## a _) `compare`
+          x@(VkDisplayPlanePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayPlanePropertiesKHR where
+        sizeOf ~_ = #{size VkDisplayPlanePropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayPlanePropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayPlanePropertiesKHR where
+        unsafeAddr (VkDisplayPlanePropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayPlanePropertiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayPlanePropertiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayPlanePropertiesKHR where
+        type StructFields VkDisplayPlanePropertiesKHR =
+             '["currentDisplay", "currentStackIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayPlanePropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayPlanePropertiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayPlanePropertiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "currentDisplay" VkDisplayPlanePropertiesKHR where
+        type FieldType "currentDisplay" VkDisplayPlanePropertiesKHR =
+             VkDisplayKHR
+        type FieldOptional "currentDisplay" VkDisplayPlanePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentDisplay" VkDisplayPlanePropertiesKHR =
+             #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
+        type FieldIsArray "currentDisplay" VkDisplayPlanePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentDisplay" VkDisplayPlanePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlanePropertiesKHR, currentDisplay})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentDisplay" VkDisplayPlanePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
+
+instance {-# OVERLAPPING #-}
+         HasField "currentStackIndex" VkDisplayPlanePropertiesKHR where
+        type FieldType "currentStackIndex" VkDisplayPlanePropertiesKHR =
+             Word32
+        type FieldOptional "currentStackIndex" VkDisplayPlanePropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentStackIndex" VkDisplayPlanePropertiesKHR =
+             #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
+        type FieldIsArray "currentStackIndex" VkDisplayPlanePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentStackIndex" VkDisplayPlanePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPlanePropertiesKHR, currentStackIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentStackIndex" VkDisplayPlanePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
+
+instance Show VkDisplayPlanePropertiesKHR where
+        showsPrec d x
+          = showString "VkDisplayPlanePropertiesKHR {" .
+              showString "currentDisplay = " .
+                showsPrec d (getField @"currentDisplay" x) .
+                  showString ", " .
+                    showString "currentStackIndex = " .
+                      showsPrec d (getField @"currentStackIndex" x) . showChar '}'
+
+-- | > typedef struct VkDisplayPowerInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDisplayPowerStateEXT           powerState;
+--   > } VkDisplayPowerInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPowerInfoEXT VkDisplayPowerInfoEXT registry at www.khronos.org>
+data VkDisplayPowerInfoEXT = VkDisplayPowerInfoEXT## Addr##
+                                                    ByteArray##
+
+instance Eq VkDisplayPowerInfoEXT where
+        (VkDisplayPowerInfoEXT## a _) == x@(VkDisplayPowerInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayPowerInfoEXT where
+        (VkDisplayPowerInfoEXT## a _) `compare`
+          x@(VkDisplayPowerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayPowerInfoEXT where
+        sizeOf ~_ = #{size VkDisplayPowerInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayPowerInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayPowerInfoEXT where
+        unsafeAddr (VkDisplayPowerInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayPowerInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayPowerInfoEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayPowerInfoEXT where
+        type StructFields VkDisplayPowerInfoEXT =
+             '["sType", "pNext", "powerState"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayPowerInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkDisplayPowerInfoEXT
+         where
+        type FieldType "sType" VkDisplayPowerInfoEXT = VkStructureType
+        type FieldOptional "sType" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDisplayPowerInfoEXT =
+             #{offset VkDisplayPowerInfoEXT, sType}
+        type FieldIsArray "sType" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayPowerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDisplayPowerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPowerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDisplayPowerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkDisplayPowerInfoEXT
+         where
+        type FieldType "pNext" VkDisplayPowerInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDisplayPowerInfoEXT =
+             #{offset VkDisplayPowerInfoEXT, pNext}
+        type FieldIsArray "pNext" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayPowerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDisplayPowerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPowerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDisplayPowerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "powerState" VkDisplayPowerInfoEXT where
+        type FieldType "powerState" VkDisplayPowerInfoEXT =
+             VkDisplayPowerStateEXT
+        type FieldOptional "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "powerState" VkDisplayPowerInfoEXT =
+             #{offset VkDisplayPowerInfoEXT, powerState}
+        type FieldIsArray "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPowerInfoEXT, powerState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "powerState" VkDisplayPowerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, powerState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPowerInfoEXT, powerState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "powerState" VkDisplayPowerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, powerState}
+
+instance Show VkDisplayPowerInfoEXT where
+        showsPrec d x
+          = showString "VkDisplayPowerInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "powerState = " .
+                            showsPrec d (getField @"powerState" x) . showChar '}'
+
+-- | > typedef struct VkDisplayPresentInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkRect2D                         srcRect;
+--   >     VkRect2D                         dstRect;
+--   >     VkBool32                         persistent;
+--   > } VkDisplayPresentInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPresentInfoKHR VkDisplayPresentInfoKHR registry at www.khronos.org>
+data VkDisplayPresentInfoKHR = VkDisplayPresentInfoKHR## Addr##
+                                                        ByteArray##
+
+instance Eq VkDisplayPresentInfoKHR where
+        (VkDisplayPresentInfoKHR## a _) == x@(VkDisplayPresentInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayPresentInfoKHR where
+        (VkDisplayPresentInfoKHR## a _) `compare`
+          x@(VkDisplayPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayPresentInfoKHR where
+        sizeOf ~_ = #{size VkDisplayPresentInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayPresentInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayPresentInfoKHR where
+        unsafeAddr (VkDisplayPresentInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayPresentInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayPresentInfoKHR where
+        type StructFields VkDisplayPresentInfoKHR =
+             '["sType", "pNext", "srcRect", "dstRect", "persistent"] -- ' closing tick for hsc2hs
+        type CUnionType VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayPresentInfoKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDisplayPresentInfoKHR where
+        type FieldType "sType" VkDisplayPresentInfoKHR = VkStructureType
+        type FieldOptional "sType" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDisplayPresentInfoKHR =
+             #{offset VkDisplayPresentInfoKHR, sType}
+        type FieldIsArray "sType" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDisplayPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDisplayPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDisplayPresentInfoKHR where
+        type FieldType "pNext" VkDisplayPresentInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDisplayPresentInfoKHR =
+             #{offset VkDisplayPresentInfoKHR, pNext}
+        type FieldIsArray "pNext" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDisplayPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDisplayPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcRect" VkDisplayPresentInfoKHR where
+        type FieldType "srcRect" VkDisplayPresentInfoKHR = VkRect2D
+        type FieldOptional "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcRect" VkDisplayPresentInfoKHR =
+             #{offset VkDisplayPresentInfoKHR, srcRect}
+        type FieldIsArray "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPresentInfoKHR, srcRect}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcRect" VkDisplayPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, srcRect})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPresentInfoKHR, srcRect}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcRect" VkDisplayPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, srcRect}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstRect" VkDisplayPresentInfoKHR where
+        type FieldType "dstRect" VkDisplayPresentInfoKHR = VkRect2D
+        type FieldOptional "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstRect" VkDisplayPresentInfoKHR =
+             #{offset VkDisplayPresentInfoKHR, dstRect}
+        type FieldIsArray "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPresentInfoKHR, dstRect}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstRect" VkDisplayPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, dstRect})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPresentInfoKHR, dstRect}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstRect" VkDisplayPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, dstRect}
+
+instance {-# OVERLAPPING #-}
+         HasField "persistent" VkDisplayPresentInfoKHR where
+        type FieldType "persistent" VkDisplayPresentInfoKHR = VkBool32
+        type FieldOptional "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "persistent" VkDisplayPresentInfoKHR =
+             #{offset VkDisplayPresentInfoKHR, persistent}
+        type FieldIsArray "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPresentInfoKHR, persistent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "persistent" VkDisplayPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, persistent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPresentInfoKHR, persistent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "persistent" VkDisplayPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, persistent}
+
+instance Show VkDisplayPresentInfoKHR where
+        showsPrec d x
+          = showString "VkDisplayPresentInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcRect = " .
+                            showsPrec d (getField @"srcRect" x) .
+                              showString ", " .
+                                showString "dstRect = " .
+                                  showsPrec d (getField @"dstRect" x) .
+                                    showString ", " .
+                                      showString "persistent = " .
+                                        showsPrec d (getField @"persistent" x) . showChar '}'
+
+-- | > typedef struct VkDisplayPropertiesKHR {
+--   >     VkDisplayKHR                     display;
+--   >     const char*                      displayName;
+--   >     VkExtent2D                       physicalDimensions;
+--   >     VkExtent2D                       physicalResolution;
+--   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
+--   >     VkBool32                         planeReorderPossible;
+--   >     VkBool32                         persistentContent;
+--   > } VkDisplayPropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplayPropertiesKHR VkDisplayPropertiesKHR registry at www.khronos.org>
+data VkDisplayPropertiesKHR = VkDisplayPropertiesKHR## Addr##
+                                                      ByteArray##
+
+instance Eq VkDisplayPropertiesKHR where
+        (VkDisplayPropertiesKHR## a _) == x@(VkDisplayPropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplayPropertiesKHR where
+        (VkDisplayPropertiesKHR## a _) `compare`
+          x@(VkDisplayPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplayPropertiesKHR where
+        sizeOf ~_ = #{size VkDisplayPropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDisplayPropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplayPropertiesKHR where
+        unsafeAddr (VkDisplayPropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplayPropertiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplayPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplayPropertiesKHR where
+        type StructFields VkDisplayPropertiesKHR =
+             '["display", "displayName", "physicalDimensions", -- ' closing tick for hsc2hs
+               "physicalResolution", "supportedTransforms",
+               "planeReorderPossible", "persistentContent"]
+        type CUnionType VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplayPropertiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkDisplayPropertiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "display" VkDisplayPropertiesKHR where
+        type FieldType "display" VkDisplayPropertiesKHR = VkDisplayKHR
+        type FieldOptional "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "display" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, display}
+        type FieldIsArray "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkDisplayPropertiesKHR, display}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "display" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, display})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, display}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "display" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, display}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayName" VkDisplayPropertiesKHR where
+        type FieldType "displayName" VkDisplayPropertiesKHR = CString
+        type FieldOptional "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayName" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, displayName}
+        type FieldIsArray "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, displayName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayName" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, displayName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, displayName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayName" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, displayName}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDimensions" VkDisplayPropertiesKHR where
+        type FieldType "physicalDimensions" VkDisplayPropertiesKHR =
+             VkExtent2D
+        type FieldOptional "physicalDimensions" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDimensions" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, physicalDimensions}
+        type FieldIsArray "physicalDimensions" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, physicalDimensions}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "physicalDimensions" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, physicalDimensions})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, physicalDimensions}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "physicalDimensions" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, physicalDimensions}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalResolution" VkDisplayPropertiesKHR where
+        type FieldType "physicalResolution" VkDisplayPropertiesKHR =
+             VkExtent2D
+        type FieldOptional "physicalResolution" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalResolution" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, physicalResolution}
+        type FieldIsArray "physicalResolution" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, physicalResolution}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "physicalResolution" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, physicalResolution})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, physicalResolution}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "physicalResolution" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, physicalResolution}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedTransforms" VkDisplayPropertiesKHR where
+        type FieldType "supportedTransforms" VkDisplayPropertiesKHR =
+             VkSurfaceTransformFlagsKHR
+        type FieldOptional "supportedTransforms" VkDisplayPropertiesKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedTransforms" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, supportedTransforms}
+        type FieldIsArray "supportedTransforms" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedTransforms" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, supportedTransforms})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedTransforms" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         HasField "planeReorderPossible" VkDisplayPropertiesKHR where
+        type FieldType "planeReorderPossible" VkDisplayPropertiesKHR =
+             VkBool32
+        type FieldOptional "planeReorderPossible" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "planeReorderPossible" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, planeReorderPossible}
+        type FieldIsArray "planeReorderPossible" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, planeReorderPossible}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "planeReorderPossible" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, planeReorderPossible})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, planeReorderPossible}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "planeReorderPossible" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, planeReorderPossible}
+
+instance {-# OVERLAPPING #-}
+         HasField "persistentContent" VkDisplayPropertiesKHR where
+        type FieldType "persistentContent" VkDisplayPropertiesKHR =
+             VkBool32
+        type FieldOptional "persistentContent" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "persistentContent" VkDisplayPropertiesKHR =
+             #{offset VkDisplayPropertiesKHR, persistentContent}
+        type FieldIsArray "persistentContent" VkDisplayPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplayPropertiesKHR, persistentContent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "persistentContent" VkDisplayPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, persistentContent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplayPropertiesKHR, persistentContent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "persistentContent" VkDisplayPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplayPropertiesKHR, persistentContent}
+
+instance Show VkDisplayPropertiesKHR where
+        showsPrec d x
+          = showString "VkDisplayPropertiesKHR {" .
+              showString "display = " .
+                showsPrec d (getField @"display" x) .
+                  showString ", " .
+                    showString "displayName = " .
+                      showsPrec d (getField @"displayName" x) .
+                        showString ", " .
+                          showString "physicalDimensions = " .
+                            showsPrec d (getField @"physicalDimensions" x) .
+                              showString ", " .
+                                showString "physicalResolution = " .
+                                  showsPrec d (getField @"physicalResolution" x) .
+                                    showString ", " .
+                                      showString "supportedTransforms = " .
+                                        showsPrec d (getField @"supportedTransforms" x) .
+                                          showString ", " .
+                                            showString "planeReorderPossible = " .
+                                              showsPrec d (getField @"planeReorderPossible" x) .
+                                                showString ", " .
+                                                  showString "persistentContent = " .
+                                                    showsPrec d (getField @"persistentContent" x) .
+                                                      showChar '}'
+
+-- | > typedef struct VkDisplaySurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDisplaySurfaceCreateFlagsKHR   flags;
+--   >     VkDisplayModeKHR                 displayMode;
+--   >     uint32_t                         planeIndex;
+--   >     uint32_t                         planeStackIndex;
+--   >     VkSurfaceTransformFlagBitsKHR    transform;
+--   >     float                            globalAlpha;
+--   >     VkDisplayPlaneAlphaFlagBitsKHR   alphaMode;
+--   >     VkExtent2D                       imageExtent;
+--   > } VkDisplaySurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDisplaySurfaceCreateInfoKHR VkDisplaySurfaceCreateInfoKHR registry at www.khronos.org>
+data VkDisplaySurfaceCreateInfoKHR = VkDisplaySurfaceCreateInfoKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkDisplaySurfaceCreateInfoKHR where
+        (VkDisplaySurfaceCreateInfoKHR## a _) ==
+          x@(VkDisplaySurfaceCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDisplaySurfaceCreateInfoKHR where
+        (VkDisplaySurfaceCreateInfoKHR## a _) `compare`
+          x@(VkDisplaySurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDisplaySurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkDisplaySurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDisplaySurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDisplaySurfaceCreateInfoKHR where
+        unsafeAddr (VkDisplaySurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDisplaySurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDisplaySurfaceCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDisplaySurfaceCreateInfoKHR where
+        type StructFields VkDisplaySurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "displayMode", "planeIndex", -- ' closing tick for hsc2hs
+               "planeStackIndex", "transform", "globalAlpha", "alphaMode",
+               "imageExtent"]
+        type CUnionType VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDisplaySurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "sType" VkDisplaySurfaceCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "pNext" VkDisplaySurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "flags" VkDisplaySurfaceCreateInfoKHR =
+             VkDisplaySurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkDisplaySurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayMode" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "displayMode" VkDisplaySurfaceCreateInfoKHR =
+             VkDisplayModeKHR
+        type FieldOptional "displayMode" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayMode" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
+        type FieldIsArray "displayMode" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayMode" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, displayMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayMode" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "planeIndex" VkDisplaySurfaceCreateInfoKHR = Word32
+        type FieldOptional "planeIndex" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "planeIndex" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
+        type FieldIsArray "planeIndex" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
+             Word32
+        type FieldOptional "planeStackIndex" VkDisplaySurfaceCreateInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
+        type FieldIsArray "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "transform" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "transform" VkDisplaySurfaceCreateInfoKHR =
+             VkSurfaceTransformFlagBitsKHR
+        type FieldOptional "transform" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "transform" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, transform}
+        type FieldIsArray "transform" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, transform}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "transform" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, transform})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, transform}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "transform" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, transform}
+
+instance {-# OVERLAPPING #-}
+         HasField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
+             #{type float}
+        type FieldOptional "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
+        type FieldIsArray "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
+
+instance {-# OVERLAPPING #-}
+         HasField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "alphaMode" VkDisplaySurfaceCreateInfoKHR =
+             VkDisplayPlaneAlphaFlagBitsKHR
+        type FieldOptional "alphaMode" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "alphaMode" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
+        type FieldIsArray "alphaMode" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
+        type FieldType "imageExtent" VkDisplaySurfaceCreateInfoKHR =
+             VkExtent2D
+        type FieldOptional "imageExtent" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageExtent" VkDisplaySurfaceCreateInfoKHR =
+             #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
+        type FieldIsArray "imageExtent" VkDisplaySurfaceCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
+
+instance Show VkDisplaySurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkDisplaySurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "displayMode = " .
+                                  showsPrec d (getField @"displayMode" x) .
+                                    showString ", " .
+                                      showString "planeIndex = " .
+                                        showsPrec d (getField @"planeIndex" x) .
+                                          showString ", " .
+                                            showString "planeStackIndex = " .
+                                              showsPrec d (getField @"planeStackIndex" x) .
+                                                showString ", " .
+                                                  showString "transform = " .
+                                                    showsPrec d (getField @"transform" x) .
+                                                      showString ", " .
+                                                        showString "globalAlpha = " .
+                                                          showsPrec d (getField @"globalAlpha" x) .
+                                                            showString ", " .
+                                                              showString "alphaMode = " .
+                                                                showsPrec d
+                                                                  (getField @"alphaMode" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "imageExtent = " .
+                                                                      showsPrec d
+                                                                        (getField @"imageExtent" x)
+                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc b/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/DrawInd.hsc
@@ -0,0 +1,469 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.DrawInd
+       (VkDrawIndexedIndirectCommand(..), VkDrawIndirectCommand(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkDrawIndexedIndirectCommand {
+--   >     uint32_t               indexCount;
+--   >     uint32_t               instanceCount;
+--   >     uint32_t               firstIndex;
+--   >     int32_t                vertexOffset;
+--   >     uint32_t               firstInstance;
+--   > } VkDrawIndexedIndirectCommand;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndexedIndirectCommand VkDrawIndexedIndirectCommand registry at www.khronos.org>
+data VkDrawIndexedIndirectCommand = VkDrawIndexedIndirectCommand## Addr##
+                                                                  ByteArray##
+
+instance Eq VkDrawIndexedIndirectCommand where
+        (VkDrawIndexedIndirectCommand## a _) ==
+          x@(VkDrawIndexedIndirectCommand## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDrawIndexedIndirectCommand where
+        (VkDrawIndexedIndirectCommand## a _) `compare`
+          x@(VkDrawIndexedIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDrawIndexedIndirectCommand where
+        sizeOf ~_ = #{size VkDrawIndexedIndirectCommand}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkDrawIndexedIndirectCommand}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDrawIndexedIndirectCommand where
+        unsafeAddr (VkDrawIndexedIndirectCommand## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDrawIndexedIndirectCommand## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDrawIndexedIndirectCommand##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDrawIndexedIndirectCommand where
+        type StructFields VkDrawIndexedIndirectCommand =
+             '["indexCount", "instanceCount", "firstIndex", "vertexOffset", -- ' closing tick for hsc2hs
+               "firstInstance"]
+        type CUnionType VkDrawIndexedIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDrawIndexedIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDrawIndexedIndirectCommand = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "indexCount" VkDrawIndexedIndirectCommand where
+        type FieldType "indexCount" VkDrawIndexedIndirectCommand = Word32
+        type FieldOptional "indexCount" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "indexCount" VkDrawIndexedIndirectCommand =
+             #{offset VkDrawIndexedIndirectCommand, indexCount}
+        type FieldIsArray "indexCount" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndexedIndirectCommand, indexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "indexCount" VkDrawIndexedIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, indexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, indexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "indexCount" VkDrawIndexedIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, indexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "instanceCount" VkDrawIndexedIndirectCommand where
+        type FieldType "instanceCount" VkDrawIndexedIndirectCommand =
+             Word32
+        type FieldOptional "instanceCount" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "instanceCount" VkDrawIndexedIndirectCommand =
+             #{offset VkDrawIndexedIndirectCommand, instanceCount}
+        type FieldIsArray "instanceCount" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndexedIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "instanceCount" VkDrawIndexedIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, instanceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "instanceCount" VkDrawIndexedIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "firstIndex" VkDrawIndexedIndirectCommand where
+        type FieldType "firstIndex" VkDrawIndexedIndirectCommand = Word32
+        type FieldOptional "firstIndex" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "firstIndex" VkDrawIndexedIndirectCommand =
+             #{offset VkDrawIndexedIndirectCommand, firstIndex}
+        type FieldIsArray "firstIndex" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndexedIndirectCommand, firstIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "firstIndex" VkDrawIndexedIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, firstIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, firstIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "firstIndex" VkDrawIndexedIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, firstIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexOffset" VkDrawIndexedIndirectCommand where
+        type FieldType "vertexOffset" VkDrawIndexedIndirectCommand = Int32
+        type FieldOptional "vertexOffset" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "vertexOffset" VkDrawIndexedIndirectCommand =
+             #{offset VkDrawIndexedIndirectCommand, vertexOffset}
+        type FieldIsArray "vertexOffset" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndexedIndirectCommand, vertexOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexOffset" VkDrawIndexedIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, vertexOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, vertexOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexOffset" VkDrawIndexedIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, vertexOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "firstInstance" VkDrawIndexedIndirectCommand where
+        type FieldType "firstInstance" VkDrawIndexedIndirectCommand =
+             Word32
+        type FieldOptional "firstInstance" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "firstInstance" VkDrawIndexedIndirectCommand =
+             #{offset VkDrawIndexedIndirectCommand, firstInstance}
+        type FieldIsArray "firstInstance" VkDrawIndexedIndirectCommand =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndexedIndirectCommand, firstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "firstInstance" VkDrawIndexedIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, firstInstance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, firstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "firstInstance" VkDrawIndexedIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, firstInstance}
+
+instance Show VkDrawIndexedIndirectCommand where
+        showsPrec d x
+          = showString "VkDrawIndexedIndirectCommand {" .
+              showString "indexCount = " .
+                showsPrec d (getField @"indexCount" x) .
+                  showString ", " .
+                    showString "instanceCount = " .
+                      showsPrec d (getField @"instanceCount" x) .
+                        showString ", " .
+                          showString "firstIndex = " .
+                            showsPrec d (getField @"firstIndex" x) .
+                              showString ", " .
+                                showString "vertexOffset = " .
+                                  showsPrec d (getField @"vertexOffset" x) .
+                                    showString ", " .
+                                      showString "firstInstance = " .
+                                        showsPrec d (getField @"firstInstance" x) . showChar '}'
+
+-- | > typedef struct VkDrawIndirectCommand {
+--   >     uint32_t               vertexCount;
+--   >     uint32_t               instanceCount;
+--   >     uint32_t               firstVertex;
+--   >     uint32_t               firstInstance;
+--   > } VkDrawIndirectCommand;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkDrawIndirectCommand VkDrawIndirectCommand registry at www.khronos.org>
+data VkDrawIndirectCommand = VkDrawIndirectCommand## Addr##
+                                                    ByteArray##
+
+instance Eq VkDrawIndirectCommand where
+        (VkDrawIndirectCommand## a _) == x@(VkDrawIndirectCommand## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkDrawIndirectCommand where
+        (VkDrawIndirectCommand## a _) `compare`
+          x@(VkDrawIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkDrawIndirectCommand where
+        sizeOf ~_ = #{size VkDrawIndirectCommand}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkDrawIndirectCommand}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkDrawIndirectCommand where
+        unsafeAddr (VkDrawIndirectCommand## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkDrawIndirectCommand## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkDrawIndirectCommand## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkDrawIndirectCommand where
+        type StructFields VkDrawIndirectCommand =
+             '["vertexCount", "instanceCount", "firstVertex", "firstInstance"] -- ' closing tick for hsc2hs
+        type CUnionType VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkDrawIndirectCommand = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexCount" VkDrawIndirectCommand where
+        type FieldType "vertexCount" VkDrawIndirectCommand = Word32
+        type FieldOptional "vertexCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vertexCount" VkDrawIndirectCommand =
+             #{offset VkDrawIndirectCommand, vertexCount}
+        type FieldIsArray "vertexCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndirectCommand, vertexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexCount" VkDrawIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, vertexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndirectCommand, vertexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexCount" VkDrawIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndirectCommand, vertexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "instanceCount" VkDrawIndirectCommand where
+        type FieldType "instanceCount" VkDrawIndirectCommand = Word32
+        type FieldOptional "instanceCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "instanceCount" VkDrawIndirectCommand =
+             #{offset VkDrawIndirectCommand, instanceCount}
+        type FieldIsArray "instanceCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "instanceCount" VkDrawIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, instanceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "instanceCount" VkDrawIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndirectCommand, instanceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "firstVertex" VkDrawIndirectCommand where
+        type FieldType "firstVertex" VkDrawIndirectCommand = Word32
+        type FieldOptional "firstVertex" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "firstVertex" VkDrawIndirectCommand =
+             #{offset VkDrawIndirectCommand, firstVertex}
+        type FieldIsArray "firstVertex" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndirectCommand, firstVertex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "firstVertex" VkDrawIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, firstVertex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndirectCommand, firstVertex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "firstVertex" VkDrawIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndirectCommand, firstVertex}
+
+instance {-# OVERLAPPING #-}
+         HasField "firstInstance" VkDrawIndirectCommand where
+        type FieldType "firstInstance" VkDrawIndirectCommand = Word32
+        type FieldOptional "firstInstance" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "firstInstance" VkDrawIndirectCommand =
+             #{offset VkDrawIndirectCommand, firstInstance}
+        type FieldIsArray "firstInstance" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkDrawIndirectCommand, firstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "firstInstance" VkDrawIndirectCommand where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, firstInstance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkDrawIndirectCommand, firstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "firstInstance" VkDrawIndirectCommand where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkDrawIndirectCommand, firstInstance}
+
+instance Show VkDrawIndirectCommand where
+        showsPrec d x
+          = showString "VkDrawIndirectCommand {" .
+              showString "vertexCount = " .
+                showsPrec d (getField @"vertexCount" x) .
+                  showString ", " .
+                    showString "instanceCount = " .
+                      showsPrec d (getField @"instanceCount" x) .
+                        showString ", " .
+                          showString "firstVertex = " .
+                            showsPrec d (getField @"firstVertex" x) .
+                              showString ", " .
+                                showString "firstInstance = " .
+                                  showsPrec d (getField @"firstInstance" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/EventCreateInfo.hsc
@@ -0,0 +1,178 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.EventCreateInfo
+       (VkEventCreateInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkEventCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkEventCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkEventCreateFlags     flags;
+--   > } VkEventCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkEventCreateInfo VkEventCreateInfo registry at www.khronos.org>
+data VkEventCreateInfo = VkEventCreateInfo## Addr## ByteArray##
+
+instance Eq VkEventCreateInfo where
+        (VkEventCreateInfo## a _) == x@(VkEventCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkEventCreateInfo where
+        (VkEventCreateInfo## a _) `compare` x@(VkEventCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkEventCreateInfo where
+        sizeOf ~_ = #{size VkEventCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkEventCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkEventCreateInfo where
+        unsafeAddr (VkEventCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkEventCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkEventCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkEventCreateInfo where
+        type StructFields VkEventCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkEventCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkEventCreateInfo
+         where
+        type FieldType "sType" VkEventCreateInfo = VkStructureType
+        type FieldOptional "sType" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkEventCreateInfo =
+             #{offset VkEventCreateInfo, sType}
+        type FieldIsArray "sType" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkEventCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkEventCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkEventCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkEventCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkEventCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkEventCreateInfo
+         where
+        type FieldType "pNext" VkEventCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkEventCreateInfo =
+             #{offset VkEventCreateInfo, pNext}
+        type FieldIsArray "pNext" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkEventCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkEventCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkEventCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkEventCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkEventCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkEventCreateInfo
+         where
+        type FieldType "flags" VkEventCreateInfo = VkEventCreateFlags
+        type FieldOptional "flags" VkEventCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkEventCreateInfo =
+             #{offset VkEventCreateInfo, flags}
+        type FieldIsArray "flags" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkEventCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} CanReadField "flags" VkEventCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkEventCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkEventCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkEventCreateInfo, flags}
+
+instance Show VkEventCreateInfo where
+        showsPrec d x
+          = showString "VkEventCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Export.hsc
@@ -0,0 +1,712 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Export
+       (VkExportFenceCreateInfo(..), VkExportFenceCreateInfoKHR,
+        VkExportMemoryAllocateInfo(..), VkExportMemoryAllocateInfoKHR,
+        VkExportMemoryAllocateInfoNV(..), VkExportSemaphoreCreateInfo(..),
+        VkExportSemaphoreCreateInfoKHR)
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlags,
+                                                           VkExternalMemoryHandleTypeFlags,
+                                                           VkExternalMemoryHandleTypeFlagsNV,
+                                                           VkExternalSemaphoreHandleTypeFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Fence       (VkFenceCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Memory      (VkMemoryAllocateInfo)
+import           Graphics.Vulkan.Types.Struct.Semaphore   (VkSemaphoreCreateInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkExportFenceCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalFenceHandleTypeFlags handleTypes;
+--   > } VkExportFenceCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportFenceCreateInfo VkExportFenceCreateInfo registry at www.khronos.org>
+data VkExportFenceCreateInfo = VkExportFenceCreateInfo## Addr##
+                                                        ByteArray##
+
+instance Eq VkExportFenceCreateInfo where
+        (VkExportFenceCreateInfo## a _) == x@(VkExportFenceCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportFenceCreateInfo where
+        (VkExportFenceCreateInfo## a _) `compare`
+          x@(VkExportFenceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportFenceCreateInfo where
+        sizeOf ~_ = #{size VkExportFenceCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExportFenceCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportFenceCreateInfo where
+        unsafeAddr (VkExportFenceCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportFenceCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportFenceCreateInfo where
+        type StructFields VkExportFenceCreateInfo =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportFenceCreateInfo = '[VkFenceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportFenceCreateInfo where
+        type FieldType "sType" VkExportFenceCreateInfo = VkStructureType
+        type FieldOptional "sType" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportFenceCreateInfo =
+             #{offset VkExportFenceCreateInfo, sType}
+        type FieldIsArray "sType" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExportFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportFenceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportFenceCreateInfo where
+        type FieldType "pNext" VkExportFenceCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportFenceCreateInfo =
+             #{offset VkExportFenceCreateInfo, pNext}
+        type FieldIsArray "pNext" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExportFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportFenceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExportFenceCreateInfo where
+        type FieldType "handleTypes" VkExportFenceCreateInfo =
+             VkExternalFenceHandleTypeFlags
+        type FieldOptional "handleTypes" VkExportFenceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExportFenceCreateInfo =
+             #{offset VkExportFenceCreateInfo, handleTypes}
+        type FieldIsArray "handleTypes" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExportFenceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExportFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceCreateInfo, handleTypes}
+
+instance Show VkExportFenceCreateInfo where
+        showsPrec d x
+          = showString "VkExportFenceCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | Alias for `VkExportFenceCreateInfo`
+type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo
+
+-- | > typedef struct VkExportMemoryAllocateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlags handleTypes;
+--   > } VkExportMemoryAllocateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryAllocateInfo VkExportMemoryAllocateInfo registry at www.khronos.org>
+data VkExportMemoryAllocateInfo = VkExportMemoryAllocateInfo## Addr##
+                                                              ByteArray##
+
+instance Eq VkExportMemoryAllocateInfo where
+        (VkExportMemoryAllocateInfo## a _) ==
+          x@(VkExportMemoryAllocateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportMemoryAllocateInfo where
+        (VkExportMemoryAllocateInfo## a _) `compare`
+          x@(VkExportMemoryAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportMemoryAllocateInfo where
+        sizeOf ~_ = #{size VkExportMemoryAllocateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExportMemoryAllocateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportMemoryAllocateInfo where
+        unsafeAddr (VkExportMemoryAllocateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportMemoryAllocateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportMemoryAllocateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportMemoryAllocateInfo where
+        type StructFields VkExportMemoryAllocateInfo =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportMemoryAllocateInfo =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportMemoryAllocateInfo where
+        type FieldType "sType" VkExportMemoryAllocateInfo = VkStructureType
+        type FieldOptional "sType" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportMemoryAllocateInfo =
+             #{offset VkExportMemoryAllocateInfo, sType}
+        type FieldIsArray "sType" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportMemoryAllocateInfo where
+        type FieldType "pNext" VkExportMemoryAllocateInfo = Ptr Void
+        type FieldOptional "pNext" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportMemoryAllocateInfo =
+             #{offset VkExportMemoryAllocateInfo, pNext}
+        type FieldIsArray "pNext" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExportMemoryAllocateInfo where
+        type FieldType "handleTypes" VkExportMemoryAllocateInfo =
+             VkExternalMemoryHandleTypeFlags
+        type FieldOptional "handleTypes" VkExportMemoryAllocateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExportMemoryAllocateInfo =
+             #{offset VkExportMemoryAllocateInfo, handleTypes}
+        type FieldIsArray "handleTypes" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExportMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExportMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, handleTypes}
+
+instance Show VkExportMemoryAllocateInfo where
+        showsPrec d x
+          = showString "VkExportMemoryAllocateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | Alias for `VkExportMemoryAllocateInfo`
+type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo
+
+-- | > typedef struct VkExportMemoryAllocateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagsNV handleTypes;
+--   > } VkExportMemoryAllocateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryAllocateInfoNV VkExportMemoryAllocateInfoNV registry at www.khronos.org>
+data VkExportMemoryAllocateInfoNV = VkExportMemoryAllocateInfoNV## Addr##
+                                                                  ByteArray##
+
+instance Eq VkExportMemoryAllocateInfoNV where
+        (VkExportMemoryAllocateInfoNV## a _) ==
+          x@(VkExportMemoryAllocateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportMemoryAllocateInfoNV where
+        (VkExportMemoryAllocateInfoNV## a _) `compare`
+          x@(VkExportMemoryAllocateInfoNV## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportMemoryAllocateInfoNV where
+        sizeOf ~_ = #{size VkExportMemoryAllocateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExportMemoryAllocateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportMemoryAllocateInfoNV where
+        unsafeAddr (VkExportMemoryAllocateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportMemoryAllocateInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportMemoryAllocateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportMemoryAllocateInfoNV where
+        type StructFields VkExportMemoryAllocateInfoNV =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportMemoryAllocateInfoNV =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportMemoryAllocateInfoNV where
+        type FieldType "sType" VkExportMemoryAllocateInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportMemoryAllocateInfoNV =
+             #{offset VkExportMemoryAllocateInfoNV, sType}
+        type FieldIsArray "sType" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportMemoryAllocateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportMemoryAllocateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportMemoryAllocateInfoNV where
+        type FieldType "pNext" VkExportMemoryAllocateInfoNV = Ptr Void
+        type FieldOptional "pNext" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportMemoryAllocateInfoNV =
+             #{offset VkExportMemoryAllocateInfoNV, pNext}
+        type FieldIsArray "pNext" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportMemoryAllocateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportMemoryAllocateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExportMemoryAllocateInfoNV where
+        type FieldType "handleTypes" VkExportMemoryAllocateInfoNV =
+             VkExternalMemoryHandleTypeFlagsNV
+        type FieldOptional "handleTypes" VkExportMemoryAllocateInfoNV =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExportMemoryAllocateInfoNV =
+             #{offset VkExportMemoryAllocateInfoNV, handleTypes}
+        type FieldIsArray "handleTypes" VkExportMemoryAllocateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryAllocateInfoNV, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExportMemoryAllocateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExportMemoryAllocateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, handleTypes}
+
+instance Show VkExportMemoryAllocateInfoNV where
+        showsPrec d x
+          = showString "VkExportMemoryAllocateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | > typedef struct VkExportSemaphoreCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalSemaphoreHandleTypeFlags handleTypes;
+--   > } VkExportSemaphoreCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfo registry at www.khronos.org>
+data VkExportSemaphoreCreateInfo = VkExportSemaphoreCreateInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkExportSemaphoreCreateInfo where
+        (VkExportSemaphoreCreateInfo## a _) ==
+          x@(VkExportSemaphoreCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportSemaphoreCreateInfo where
+        (VkExportSemaphoreCreateInfo## a _) `compare`
+          x@(VkExportSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportSemaphoreCreateInfo where
+        sizeOf ~_ = #{size VkExportSemaphoreCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExportSemaphoreCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportSemaphoreCreateInfo where
+        unsafeAddr (VkExportSemaphoreCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportSemaphoreCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportSemaphoreCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportSemaphoreCreateInfo where
+        type StructFields VkExportSemaphoreCreateInfo =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportSemaphoreCreateInfo =
+             '[VkSemaphoreCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportSemaphoreCreateInfo where
+        type FieldType "sType" VkExportSemaphoreCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportSemaphoreCreateInfo =
+             #{offset VkExportSemaphoreCreateInfo, sType}
+        type FieldIsArray "sType" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportSemaphoreCreateInfo where
+        type FieldType "pNext" VkExportSemaphoreCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportSemaphoreCreateInfo =
+             #{offset VkExportSemaphoreCreateInfo, pNext}
+        type FieldIsArray "pNext" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExportSemaphoreCreateInfo where
+        type FieldType "handleTypes" VkExportSemaphoreCreateInfo =
+             VkExternalSemaphoreHandleTypeFlags
+        type FieldOptional "handleTypes" VkExportSemaphoreCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExportSemaphoreCreateInfo =
+             #{offset VkExportSemaphoreCreateInfo, handleTypes}
+        type FieldIsArray "handleTypes" VkExportSemaphoreCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExportSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExportSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, handleTypes}
+
+instance Show VkExportSemaphoreCreateInfo where
+        showsPrec d x
+          = showString "VkExportSemaphoreCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | Alias for `VkExportSemaphoreCreateInfo`
+type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ExtensionProperties.hsc
@@ -0,0 +1,207 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.ExtensionProperties
+       (VkExtensionProperties(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##, Proxy##,
+                                                   byteArrayContents##,
+                                                   plusAddr##, proxy##)
+import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Constants        (VK_MAX_EXTENSION_NAME_SIZE, pattern VK_MAX_EXTENSION_NAME_SIZE)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkExtensionProperties {
+--   >     char            extensionName[VK_MAX_EXTENSION_NAME_SIZE];
+--   >     uint32_t        specVersion;
+--   > } VkExtensionProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtensionProperties VkExtensionProperties registry at www.khronos.org>
+data VkExtensionProperties = VkExtensionProperties## Addr##
+                                                    ByteArray##
+
+instance Eq VkExtensionProperties where
+        (VkExtensionProperties## a _) == x@(VkExtensionProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExtensionProperties where
+        (VkExtensionProperties## a _) `compare`
+          x@(VkExtensionProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExtensionProperties where
+        sizeOf ~_ = #{size VkExtensionProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExtensionProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExtensionProperties where
+        unsafeAddr (VkExtensionProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExtensionProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExtensionProperties## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExtensionProperties where
+        type StructFields VkExtensionProperties =
+             '["extensionName", "specVersion"] -- ' closing tick for hsc2hs
+        type CUnionType VkExtensionProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExtensionProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExtensionProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "extensionName" VkExtensionProperties where
+        type FieldType "extensionName" VkExtensionProperties = CChar
+        type FieldOptional "extensionName" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extensionName" VkExtensionProperties =
+             #{offset VkExtensionProperties, extensionName}
+        type FieldIsArray "extensionName" VkExtensionProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExtensionProperties, extensionName}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "extensionName" idx VkExtensionProperties) =>
+         CanReadFieldArray "extensionName" idx VkExtensionProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "extensionName" 0 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "extensionName" 1 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "extensionName" 2 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "extensionName" 3 VkExtensionProperties #-}
+        type FieldArrayLength "extensionName" VkExtensionProperties =
+             VK_MAX_EXTENSION_NAME_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkExtensionProperties, extensionName} +
+                      sizeOf (undefined :: CChar) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkExtensionProperties, extensionName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "extensionName" idx VkExtensionProperties) =>
+         CanWriteFieldArray "extensionName" idx VkExtensionProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "extensionName" 0 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "extensionName" 1 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "extensionName" 2 VkExtensionProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "extensionName" 3 VkExtensionProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkExtensionProperties, extensionName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "specVersion" VkExtensionProperties where
+        type FieldType "specVersion" VkExtensionProperties = Word32
+        type FieldOptional "specVersion" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "specVersion" VkExtensionProperties =
+             #{offset VkExtensionProperties, specVersion}
+        type FieldIsArray "specVersion" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExtensionProperties, specVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "specVersion" VkExtensionProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtensionProperties, specVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExtensionProperties, specVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "specVersion" VkExtensionProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtensionProperties, specVersion}
+
+instance Show VkExtensionProperties where
+        showsPrec d x
+          = showString "VkExtensionProperties {" .
+              (showString "extensionName = [" .
+                 showsPrec d
+                   (let s = sizeOf
+                              (undefined :: FieldType "extensionName" VkExtensionProperties)
+                        o = fieldOffset @"extensionName" @VkExtensionProperties
+                        f i
+                          = peekByteOff (unsafePtr x) i ::
+                              IO (FieldType "extensionName" VkExtensionProperties)
+                      in
+                      unsafeDupablePerformIO . mapM f $
+                        map (\ i -> o + i * s) [0 .. VK_MAX_EXTENSION_NAME_SIZE - 1])
+                   . showChar ']')
+                .
+                showString ", " .
+                  showString "specVersion = " .
+                    showsPrec d (getField @"specVersion" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Extent.hsc
@@ -0,0 +1,283 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Extent
+       (VkExtent2D(..), VkExtent3D(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkExtent2D {
+--   >     uint32_t        width;
+--   >     uint32_t        height;
+--   > } VkExtent2D;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtent2D VkExtent2D registry at www.khronos.org>
+data VkExtent2D = VkExtent2D## Addr## ByteArray##
+
+instance Eq VkExtent2D where
+        (VkExtent2D## a _) == x@(VkExtent2D## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExtent2D where
+        (VkExtent2D## a _) `compare` x@(VkExtent2D## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExtent2D where
+        sizeOf ~_ = #{size VkExtent2D}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExtent2D}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExtent2D where
+        unsafeAddr (VkExtent2D## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExtent2D## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExtent2D## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExtent2D where
+        type StructFields VkExtent2D = '["width", "height"] -- ' closing tick for hsc2hs
+        type CUnionType VkExtent2D = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExtent2D = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExtent2D = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "width" VkExtent2D where
+        type FieldType "width" VkExtent2D = Word32
+        type FieldOptional "width" VkExtent2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "width" VkExtent2D =
+             #{offset VkExtent2D, width}
+        type FieldIsArray "width" VkExtent2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExtent2D, width}
+
+instance {-# OVERLAPPING #-} CanReadField "width" VkExtent2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtent2D, width})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkExtent2D, width}
+
+instance {-# OVERLAPPING #-} CanWriteField "width" VkExtent2D where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtent2D, width}
+
+instance {-# OVERLAPPING #-} HasField "height" VkExtent2D where
+        type FieldType "height" VkExtent2D = Word32
+        type FieldOptional "height" VkExtent2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "height" VkExtent2D =
+             #{offset VkExtent2D, height}
+        type FieldIsArray "height" VkExtent2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExtent2D, height}
+
+instance {-# OVERLAPPING #-} CanReadField "height" VkExtent2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtent2D, height})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExtent2D, height}
+
+instance {-# OVERLAPPING #-} CanWriteField "height" VkExtent2D
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtent2D, height}
+
+instance Show VkExtent2D where
+        showsPrec d x
+          = showString "VkExtent2D {" .
+              showString "width = " .
+                showsPrec d (getField @"width" x) .
+                  showString ", " .
+                    showString "height = " .
+                      showsPrec d (getField @"height" x) . showChar '}'
+
+-- | > typedef struct VkExtent3D {
+--   >     uint32_t        width;
+--   >     uint32_t        height;
+--   >     uint32_t        depth;
+--   > } VkExtent3D;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExtent3D VkExtent3D registry at www.khronos.org>
+data VkExtent3D = VkExtent3D## Addr## ByteArray##
+
+instance Eq VkExtent3D where
+        (VkExtent3D## a _) == x@(VkExtent3D## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExtent3D where
+        (VkExtent3D## a _) `compare` x@(VkExtent3D## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExtent3D where
+        sizeOf ~_ = #{size VkExtent3D}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExtent3D}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExtent3D where
+        unsafeAddr (VkExtent3D## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExtent3D## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExtent3D## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExtent3D where
+        type StructFields VkExtent3D = '["width", "height", "depth"] -- ' closing tick for hsc2hs
+        type CUnionType VkExtent3D = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExtent3D = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExtent3D = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "width" VkExtent3D where
+        type FieldType "width" VkExtent3D = Word32
+        type FieldOptional "width" VkExtent3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "width" VkExtent3D =
+             #{offset VkExtent3D, width}
+        type FieldIsArray "width" VkExtent3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExtent3D, width}
+
+instance {-# OVERLAPPING #-} CanReadField "width" VkExtent3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtent3D, width})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkExtent3D, width}
+
+instance {-# OVERLAPPING #-} CanWriteField "width" VkExtent3D where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtent3D, width}
+
+instance {-# OVERLAPPING #-} HasField "height" VkExtent3D where
+        type FieldType "height" VkExtent3D = Word32
+        type FieldOptional "height" VkExtent3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "height" VkExtent3D =
+             #{offset VkExtent3D, height}
+        type FieldIsArray "height" VkExtent3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExtent3D, height}
+
+instance {-# OVERLAPPING #-} CanReadField "height" VkExtent3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtent3D, height})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExtent3D, height}
+
+instance {-# OVERLAPPING #-} CanWriteField "height" VkExtent3D
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtent3D, height}
+
+instance {-# OVERLAPPING #-} HasField "depth" VkExtent3D where
+        type FieldType "depth" VkExtent3D = Word32
+        type FieldOptional "depth" VkExtent3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depth" VkExtent3D =
+             #{offset VkExtent3D, depth}
+        type FieldIsArray "depth" VkExtent3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExtent3D, depth}
+
+instance {-# OVERLAPPING #-} CanReadField "depth" VkExtent3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExtent3D, depth})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkExtent3D, depth}
+
+instance {-# OVERLAPPING #-} CanWriteField "depth" VkExtent3D where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExtent3D, depth}
+
+instance Show VkExtent3D where
+        showsPrec d x
+          = showString "VkExtent3D {" .
+              showString "width = " .
+                showsPrec d (getField @"width" x) .
+                  showString ", " .
+                    showString "height = " .
+                      showsPrec d (getField @"height" x) .
+                        showString ", " .
+                          showString "depth = " .
+                            showsPrec d (getField @"depth" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/External.hsc b/src-gen/Graphics/Vulkan/Types/Struct/External.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/External.hsc
@@ -0,0 +1,1951 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.External
+       (VkExternalBufferProperties(..), VkExternalBufferPropertiesKHR,
+        VkExternalFenceProperties(..), VkExternalFencePropertiesKHR,
+        VkExternalImageFormatProperties(..),
+        VkExternalImageFormatPropertiesKHR,
+        VkExternalImageFormatPropertiesNV(..),
+        VkExternalMemoryBufferCreateInfo(..),
+        VkExternalMemoryBufferCreateInfoKHR,
+        VkExternalMemoryImageCreateInfo(..),
+        VkExternalMemoryImageCreateInfoKHR,
+        VkExternalMemoryImageCreateInfoNV(..),
+        VkExternalMemoryProperties(..), VkExternalMemoryPropertiesKHR,
+        VkExternalSemaphoreProperties(..),
+        VkExternalSemaphorePropertiesKHR)
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceFeatureFlags,
+                                                           VkExternalFenceHandleTypeFlags,
+                                                           VkExternalMemoryFeatureFlags,
+                                                           VkExternalMemoryFeatureFlagsNV,
+                                                           VkExternalMemoryHandleTypeFlags,
+                                                           VkExternalMemoryHandleTypeFlagsNV,
+                                                           VkExternalSemaphoreFeatureFlags,
+                                                           VkExternalSemaphoreHandleTypeFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Buffer      (VkBufferCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Image       (VkImageCreateInfo, VkImageFormatProperties,
+                                                           VkImageFormatProperties2)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkExternalBufferProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkExternalMemoryProperties    externalMemoryProperties;
+--   > } VkExternalBufferProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalBufferProperties VkExternalBufferProperties registry at www.khronos.org>
+data VkExternalBufferProperties = VkExternalBufferProperties## Addr##
+                                                              ByteArray##
+
+instance Eq VkExternalBufferProperties where
+        (VkExternalBufferProperties## a _) ==
+          x@(VkExternalBufferProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalBufferProperties where
+        (VkExternalBufferProperties## a _) `compare`
+          x@(VkExternalBufferProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalBufferProperties where
+        sizeOf ~_ = #{size VkExternalBufferProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExternalBufferProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalBufferProperties where
+        unsafeAddr (VkExternalBufferProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalBufferProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalBufferProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalBufferProperties where
+        type StructFields VkExternalBufferProperties =
+             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalBufferProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalBufferProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalBufferProperties where
+        type FieldType "sType" VkExternalBufferProperties = VkStructureType
+        type FieldOptional "sType" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalBufferProperties =
+             #{offset VkExternalBufferProperties, sType}
+        type FieldIsArray "sType" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalBufferProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalBufferProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalBufferProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalBufferProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalBufferProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalBufferProperties where
+        type FieldType "pNext" VkExternalBufferProperties = Ptr Void
+        type FieldOptional "pNext" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalBufferProperties =
+             #{offset VkExternalBufferProperties, pNext}
+        type FieldIsArray "pNext" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalBufferProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalBufferProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalBufferProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalBufferProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalBufferProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalMemoryProperties" VkExternalBufferProperties
+         where
+        type FieldType "externalMemoryProperties"
+               VkExternalBufferProperties
+             = VkExternalMemoryProperties
+        type FieldOptional "externalMemoryProperties"
+               VkExternalBufferProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "externalMemoryProperties"
+               VkExternalBufferProperties
+             =
+             #{offset VkExternalBufferProperties, externalMemoryProperties}
+        type FieldIsArray "externalMemoryProperties"
+               VkExternalBufferProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalBufferProperties, externalMemoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalMemoryProperties" VkExternalBufferProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, externalMemoryProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalBufferProperties, externalMemoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalMemoryProperties" VkExternalBufferProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalBufferProperties, externalMemoryProperties}
+
+instance Show VkExternalBufferProperties where
+        showsPrec d x
+          = showString "VkExternalBufferProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "externalMemoryProperties = " .
+                            showsPrec d (getField @"externalMemoryProperties" x) . showChar '}'
+
+-- | Alias for `VkExternalBufferProperties`
+type VkExternalBufferPropertiesKHR = VkExternalBufferProperties
+
+-- | > typedef struct VkExternalFenceProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
+--   >     VkExternalFenceHandleTypeFlags compatibleHandleTypes;
+--   >     VkExternalFenceFeatureFlags externalFenceFeatures;
+--   > } VkExternalFenceProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalFenceProperties VkExternalFenceProperties registry at www.khronos.org>
+data VkExternalFenceProperties = VkExternalFenceProperties## Addr##
+                                                            ByteArray##
+
+instance Eq VkExternalFenceProperties where
+        (VkExternalFenceProperties## a _) ==
+          x@(VkExternalFenceProperties## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalFenceProperties where
+        (VkExternalFenceProperties## a _) `compare`
+          x@(VkExternalFenceProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalFenceProperties where
+        sizeOf ~_ = #{size VkExternalFenceProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExternalFenceProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalFenceProperties where
+        unsafeAddr (VkExternalFenceProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalFenceProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalFenceProperties## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalFenceProperties where
+        type StructFields VkExternalFenceProperties =
+             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
+               "compatibleHandleTypes", "externalFenceFeatures"]
+        type CUnionType VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalFenceProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalFenceProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalFenceProperties where
+        type FieldType "sType" VkExternalFenceProperties = VkStructureType
+        type FieldOptional "sType" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalFenceProperties =
+             #{offset VkExternalFenceProperties, sType}
+        type FieldIsArray "sType" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFenceProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalFenceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFenceProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalFenceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFenceProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalFenceProperties where
+        type FieldType "pNext" VkExternalFenceProperties = Ptr Void
+        type FieldOptional "pNext" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalFenceProperties =
+             #{offset VkExternalFenceProperties, pNext}
+        type FieldIsArray "pNext" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFenceProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalFenceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFenceProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalFenceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFenceProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "exportFromImportedHandleTypes" VkExternalFenceProperties
+         where
+        type FieldType "exportFromImportedHandleTypes"
+               VkExternalFenceProperties
+             = VkExternalFenceHandleTypeFlags
+        type FieldOptional "exportFromImportedHandleTypes"
+               VkExternalFenceProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "exportFromImportedHandleTypes"
+               VkExternalFenceProperties
+             =
+             #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
+        type FieldIsArray "exportFromImportedHandleTypes"
+               VkExternalFenceProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "exportFromImportedHandleTypes"
+           VkExternalFenceProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, exportFromImportedHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "exportFromImportedHandleTypes"
+           VkExternalFenceProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "compatibleHandleTypes" VkExternalFenceProperties where
+        type FieldType "compatibleHandleTypes" VkExternalFenceProperties =
+             VkExternalFenceHandleTypeFlags
+        type FieldOptional "compatibleHandleTypes"
+               VkExternalFenceProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compatibleHandleTypes" VkExternalFenceProperties
+             =
+             #{offset VkExternalFenceProperties, compatibleHandleTypes}
+        type FieldIsArray "compatibleHandleTypes" VkExternalFenceProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFenceProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compatibleHandleTypes" VkExternalFenceProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, compatibleHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFenceProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compatibleHandleTypes" VkExternalFenceProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFenceProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalFenceFeatures" VkExternalFenceProperties where
+        type FieldType "externalFenceFeatures" VkExternalFenceProperties =
+             VkExternalFenceFeatureFlags
+        type FieldOptional "externalFenceFeatures"
+               VkExternalFenceProperties
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "externalFenceFeatures" VkExternalFenceProperties
+             =
+             #{offset VkExternalFenceProperties, externalFenceFeatures}
+        type FieldIsArray "externalFenceFeatures" VkExternalFenceProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFenceProperties, externalFenceFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalFenceFeatures" VkExternalFenceProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, externalFenceFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFenceProperties, externalFenceFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalFenceFeatures" VkExternalFenceProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFenceProperties, externalFenceFeatures}
+
+instance Show VkExternalFenceProperties where
+        showsPrec d x
+          = showString "VkExternalFenceProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "exportFromImportedHandleTypes = " .
+                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
+                              showString ", " .
+                                showString "compatibleHandleTypes = " .
+                                  showsPrec d (getField @"compatibleHandleTypes" x) .
+                                    showString ", " .
+                                      showString "externalFenceFeatures = " .
+                                        showsPrec d (getField @"externalFenceFeatures" x) .
+                                          showChar '}'
+
+-- | Alias for `VkExternalFenceProperties`
+type VkExternalFencePropertiesKHR = VkExternalFenceProperties
+
+-- | > typedef struct VkExternalImageFormatProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkExternalMemoryProperties externalMemoryProperties;
+--   > } VkExternalImageFormatProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalImageFormatProperties VkExternalImageFormatProperties registry at www.khronos.org>
+data VkExternalImageFormatProperties = VkExternalImageFormatProperties## Addr##
+                                                                        ByteArray##
+
+instance Eq VkExternalImageFormatProperties where
+        (VkExternalImageFormatProperties## a _) ==
+          x@(VkExternalImageFormatProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalImageFormatProperties where
+        (VkExternalImageFormatProperties## a _) `compare`
+          x@(VkExternalImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalImageFormatProperties where
+        sizeOf ~_ = #{size VkExternalImageFormatProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalImageFormatProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalImageFormatProperties where
+        unsafeAddr (VkExternalImageFormatProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalImageFormatProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalImageFormatProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalImageFormatProperties where
+        type StructFields VkExternalImageFormatProperties =
+             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalImageFormatProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalImageFormatProperties =
+             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalImageFormatProperties where
+        type FieldType "sType" VkExternalImageFormatProperties =
+             VkStructureType
+        type FieldOptional "sType" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalImageFormatProperties =
+             #{offset VkExternalImageFormatProperties, sType}
+        type FieldIsArray "sType" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalImageFormatProperties where
+        type FieldType "pNext" VkExternalImageFormatProperties = Ptr Void
+        type FieldOptional "pNext" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalImageFormatProperties =
+             #{offset VkExternalImageFormatProperties, pNext}
+        type FieldIsArray "pNext" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalMemoryProperties" VkExternalImageFormatProperties
+         where
+        type FieldType "externalMemoryProperties"
+               VkExternalImageFormatProperties
+             = VkExternalMemoryProperties
+        type FieldOptional "externalMemoryProperties"
+               VkExternalImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "externalMemoryProperties"
+               VkExternalImageFormatProperties
+             =
+             #{offset VkExternalImageFormatProperties, externalMemoryProperties}
+        type FieldIsArray "externalMemoryProperties"
+               VkExternalImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatProperties, externalMemoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalMemoryProperties"
+           VkExternalImageFormatProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, externalMemoryProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatProperties, externalMemoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalMemoryProperties"
+           VkExternalImageFormatProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatProperties, externalMemoryProperties}
+
+instance Show VkExternalImageFormatProperties where
+        showsPrec d x
+          = showString "VkExternalImageFormatProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "externalMemoryProperties = " .
+                            showsPrec d (getField @"externalMemoryProperties" x) . showChar '}'
+
+-- | Alias for `VkExternalImageFormatProperties`
+type VkExternalImageFormatPropertiesKHR =
+     VkExternalImageFormatProperties
+
+-- | > typedef struct VkExternalImageFormatPropertiesNV {
+--   >     VkImageFormatProperties          imageFormatProperties;
+--   >     VkExternalMemoryFeatureFlagsNV   externalMemoryFeatures;
+--   >     VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
+--   >     VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
+--   > } VkExternalImageFormatPropertiesNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalImageFormatPropertiesNV VkExternalImageFormatPropertiesNV registry at www.khronos.org>
+data VkExternalImageFormatPropertiesNV = VkExternalImageFormatPropertiesNV## Addr##
+                                                                            ByteArray##
+
+instance Eq VkExternalImageFormatPropertiesNV where
+        (VkExternalImageFormatPropertiesNV## a _) ==
+          x@(VkExternalImageFormatPropertiesNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalImageFormatPropertiesNV where
+        (VkExternalImageFormatPropertiesNV## a _) `compare`
+          x@(VkExternalImageFormatPropertiesNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalImageFormatPropertiesNV where
+        sizeOf ~_ = #{size VkExternalImageFormatPropertiesNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalImageFormatPropertiesNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalImageFormatPropertiesNV where
+        unsafeAddr (VkExternalImageFormatPropertiesNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalImageFormatPropertiesNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalImageFormatPropertiesNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalImageFormatPropertiesNV where
+        type StructFields VkExternalImageFormatPropertiesNV =
+             '["imageFormatProperties", "externalMemoryFeatures", -- ' closing tick for hsc2hs
+               "exportFromImportedHandleTypes", "compatibleHandleTypes"]
+        type CUnionType VkExternalImageFormatPropertiesNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalImageFormatPropertiesNV = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalImageFormatPropertiesNV = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "imageFormatProperties" VkExternalImageFormatPropertiesNV
+         where
+        type FieldType "imageFormatProperties"
+               VkExternalImageFormatPropertiesNV
+             = VkImageFormatProperties
+        type FieldOptional "imageFormatProperties"
+               VkExternalImageFormatPropertiesNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageFormatProperties"
+               VkExternalImageFormatPropertiesNV
+             =
+             #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
+        type FieldIsArray "imageFormatProperties"
+               VkExternalImageFormatPropertiesNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageFormatProperties"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageFormatProperties"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
+         where
+        type FieldType "externalMemoryFeatures"
+               VkExternalImageFormatPropertiesNV
+             = VkExternalMemoryFeatureFlagsNV
+        type FieldOptional "externalMemoryFeatures"
+               VkExternalImageFormatPropertiesNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "externalMemoryFeatures"
+               VkExternalImageFormatPropertiesNV
+             =
+             #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
+        type FieldIsArray "externalMemoryFeatures"
+               VkExternalImageFormatPropertiesNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalMemoryFeatures"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalMemoryFeatures"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         HasField "exportFromImportedHandleTypes"
+           VkExternalImageFormatPropertiesNV
+         where
+        type FieldType "exportFromImportedHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = VkExternalMemoryHandleTypeFlagsNV
+        type FieldOptional "exportFromImportedHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "exportFromImportedHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             =
+             #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
+        type FieldIsArray "exportFromImportedHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "exportFromImportedHandleTypes"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "exportFromImportedHandleTypes"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
+         where
+        type FieldType "compatibleHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = VkExternalMemoryHandleTypeFlagsNV
+        type FieldOptional "compatibleHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "compatibleHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             =
+             #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
+        type FieldIsArray "compatibleHandleTypes"
+               VkExternalImageFormatPropertiesNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compatibleHandleTypes"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compatibleHandleTypes"
+           VkExternalImageFormatPropertiesNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
+
+instance Show VkExternalImageFormatPropertiesNV where
+        showsPrec d x
+          = showString "VkExternalImageFormatPropertiesNV {" .
+              showString "imageFormatProperties = " .
+                showsPrec d (getField @"imageFormatProperties" x) .
+                  showString ", " .
+                    showString "externalMemoryFeatures = " .
+                      showsPrec d (getField @"externalMemoryFeatures" x) .
+                        showString ", " .
+                          showString "exportFromImportedHandleTypes = " .
+                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
+                              showString ", " .
+                                showString "compatibleHandleTypes = " .
+                                  showsPrec d (getField @"compatibleHandleTypes" x) . showChar '}'
+
+-- | > typedef struct VkExternalMemoryBufferCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlags handleTypes;
+--   > } VkExternalMemoryBufferCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfo registry at www.khronos.org>
+data VkExternalMemoryBufferCreateInfo = VkExternalMemoryBufferCreateInfo## Addr##
+                                                                          ByteArray##
+
+instance Eq VkExternalMemoryBufferCreateInfo where
+        (VkExternalMemoryBufferCreateInfo## a _) ==
+          x@(VkExternalMemoryBufferCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalMemoryBufferCreateInfo where
+        (VkExternalMemoryBufferCreateInfo## a _) `compare`
+          x@(VkExternalMemoryBufferCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalMemoryBufferCreateInfo where
+        sizeOf ~_ = #{size VkExternalMemoryBufferCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalMemoryBufferCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalMemoryBufferCreateInfo where
+        unsafeAddr (VkExternalMemoryBufferCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalMemoryBufferCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalMemoryBufferCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalMemoryBufferCreateInfo where
+        type StructFields VkExternalMemoryBufferCreateInfo =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExternalMemoryBufferCreateInfo =
+             '[VkBufferCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalMemoryBufferCreateInfo where
+        type FieldType "sType" VkExternalMemoryBufferCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkExternalMemoryBufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalMemoryBufferCreateInfo =
+             #{offset VkExternalMemoryBufferCreateInfo, sType}
+        type FieldIsArray "sType" VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalMemoryBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalMemoryBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalMemoryBufferCreateInfo where
+        type FieldType "pNext" VkExternalMemoryBufferCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkExternalMemoryBufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalMemoryBufferCreateInfo =
+             #{offset VkExternalMemoryBufferCreateInfo, pNext}
+        type FieldIsArray "pNext" VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalMemoryBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalMemoryBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExternalMemoryBufferCreateInfo where
+        type FieldType "handleTypes" VkExternalMemoryBufferCreateInfo =
+             VkExternalMemoryHandleTypeFlags
+        type FieldOptional "handleTypes" VkExternalMemoryBufferCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExternalMemoryBufferCreateInfo =
+             #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
+        type FieldIsArray "handleTypes" VkExternalMemoryBufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExternalMemoryBufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExternalMemoryBufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
+
+instance Show VkExternalMemoryBufferCreateInfo where
+        showsPrec d x
+          = showString "VkExternalMemoryBufferCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | Alias for `VkExternalMemoryBufferCreateInfo`
+type VkExternalMemoryBufferCreateInfoKHR =
+     VkExternalMemoryBufferCreateInfo
+
+-- | > typedef struct VkExternalMemoryImageCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlags handleTypes;
+--   > } VkExternalMemoryImageCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfo registry at www.khronos.org>
+data VkExternalMemoryImageCreateInfo = VkExternalMemoryImageCreateInfo## Addr##
+                                                                        ByteArray##
+
+instance Eq VkExternalMemoryImageCreateInfo where
+        (VkExternalMemoryImageCreateInfo## a _) ==
+          x@(VkExternalMemoryImageCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalMemoryImageCreateInfo where
+        (VkExternalMemoryImageCreateInfo## a _) `compare`
+          x@(VkExternalMemoryImageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalMemoryImageCreateInfo where
+        sizeOf ~_ = #{size VkExternalMemoryImageCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalMemoryImageCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalMemoryImageCreateInfo where
+        unsafeAddr (VkExternalMemoryImageCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalMemoryImageCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalMemoryImageCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalMemoryImageCreateInfo where
+        type StructFields VkExternalMemoryImageCreateInfo =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExternalMemoryImageCreateInfo =
+             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalMemoryImageCreateInfo where
+        type FieldType "sType" VkExternalMemoryImageCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalMemoryImageCreateInfo =
+             #{offset VkExternalMemoryImageCreateInfo, sType}
+        type FieldIsArray "sType" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalMemoryImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalMemoryImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalMemoryImageCreateInfo where
+        type FieldType "pNext" VkExternalMemoryImageCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalMemoryImageCreateInfo =
+             #{offset VkExternalMemoryImageCreateInfo, pNext}
+        type FieldIsArray "pNext" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalMemoryImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalMemoryImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExternalMemoryImageCreateInfo where
+        type FieldType "handleTypes" VkExternalMemoryImageCreateInfo =
+             VkExternalMemoryHandleTypeFlags
+        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfo =
+             #{offset VkExternalMemoryImageCreateInfo, handleTypes}
+        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExternalMemoryImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, handleTypes}
+
+instance Show VkExternalMemoryImageCreateInfo where
+        showsPrec d x
+          = showString "VkExternalMemoryImageCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | Alias for `VkExternalMemoryImageCreateInfo`
+type VkExternalMemoryImageCreateInfoKHR =
+     VkExternalMemoryImageCreateInfo
+
+-- | > typedef struct VkExternalMemoryImageCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagsNV handleTypes;
+--   > } VkExternalMemoryImageCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryImageCreateInfoNV VkExternalMemoryImageCreateInfoNV registry at www.khronos.org>
+data VkExternalMemoryImageCreateInfoNV = VkExternalMemoryImageCreateInfoNV## Addr##
+                                                                            ByteArray##
+
+instance Eq VkExternalMemoryImageCreateInfoNV where
+        (VkExternalMemoryImageCreateInfoNV## a _) ==
+          x@(VkExternalMemoryImageCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalMemoryImageCreateInfoNV where
+        (VkExternalMemoryImageCreateInfoNV## a _) `compare`
+          x@(VkExternalMemoryImageCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalMemoryImageCreateInfoNV where
+        sizeOf ~_ = #{size VkExternalMemoryImageCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalMemoryImageCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalMemoryImageCreateInfoNV where
+        unsafeAddr (VkExternalMemoryImageCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalMemoryImageCreateInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalMemoryImageCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalMemoryImageCreateInfoNV where
+        type StructFields VkExternalMemoryImageCreateInfoNV =
+             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExternalMemoryImageCreateInfoNV =
+             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalMemoryImageCreateInfoNV where
+        type FieldType "sType" VkExternalMemoryImageCreateInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkExternalMemoryImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalMemoryImageCreateInfoNV =
+             #{offset VkExternalMemoryImageCreateInfoNV, sType}
+        type FieldIsArray "sType" VkExternalMemoryImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalMemoryImageCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalMemoryImageCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalMemoryImageCreateInfoNV where
+        type FieldType "pNext" VkExternalMemoryImageCreateInfoNV = Ptr Void
+        type FieldOptional "pNext" VkExternalMemoryImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalMemoryImageCreateInfoNV =
+             #{offset VkExternalMemoryImageCreateInfoNV, pNext}
+        type FieldIsArray "pNext" VkExternalMemoryImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalMemoryImageCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalMemoryImageCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleTypes" VkExternalMemoryImageCreateInfoNV where
+        type FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV =
+             VkExternalMemoryHandleTypeFlagsNV
+        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfoNV =
+             #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
+        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleTypes" VkExternalMemoryImageCreateInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, handleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
+
+instance Show VkExternalMemoryImageCreateInfoNV where
+        showsPrec d x
+          = showString "VkExternalMemoryImageCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleTypes = " .
+                            showsPrec d (getField @"handleTypes" x) . showChar '}'
+
+-- | > typedef struct VkExternalMemoryProperties {
+--   >     VkExternalMemoryFeatureFlags  externalMemoryFeatures;
+--   >     VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
+--   >     VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
+--   > } VkExternalMemoryProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalMemoryProperties VkExternalMemoryProperties registry at www.khronos.org>
+data VkExternalMemoryProperties = VkExternalMemoryProperties## Addr##
+                                                              ByteArray##
+
+instance Eq VkExternalMemoryProperties where
+        (VkExternalMemoryProperties## a _) ==
+          x@(VkExternalMemoryProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalMemoryProperties where
+        (VkExternalMemoryProperties## a _) `compare`
+          x@(VkExternalMemoryProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalMemoryProperties where
+        sizeOf ~_ = #{size VkExternalMemoryProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExternalMemoryProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalMemoryProperties where
+        unsafeAddr (VkExternalMemoryProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalMemoryProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalMemoryProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalMemoryProperties where
+        type StructFields VkExternalMemoryProperties =
+             '["externalMemoryFeatures", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
+               "compatibleHandleTypes"]
+        type CUnionType VkExternalMemoryProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalMemoryProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalMemoryProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "externalMemoryFeatures" VkExternalMemoryProperties where
+        type FieldType "externalMemoryFeatures" VkExternalMemoryProperties
+             = VkExternalMemoryFeatureFlags
+        type FieldOptional "externalMemoryFeatures"
+               VkExternalMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "externalMemoryFeatures"
+               VkExternalMemoryProperties
+             =
+             #{offset VkExternalMemoryProperties, externalMemoryFeatures}
+        type FieldIsArray "externalMemoryFeatures"
+               VkExternalMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryProperties, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalMemoryFeatures" VkExternalMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, externalMemoryFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryProperties, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalMemoryFeatures" VkExternalMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryProperties, externalMemoryFeatures}
+
+instance {-# OVERLAPPING #-}
+         HasField "exportFromImportedHandleTypes" VkExternalMemoryProperties
+         where
+        type FieldType "exportFromImportedHandleTypes"
+               VkExternalMemoryProperties
+             = VkExternalMemoryHandleTypeFlags
+        type FieldOptional "exportFromImportedHandleTypes"
+               VkExternalMemoryProperties
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "exportFromImportedHandleTypes"
+               VkExternalMemoryProperties
+             =
+             #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
+        type FieldIsArray "exportFromImportedHandleTypes"
+               VkExternalMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "exportFromImportedHandleTypes"
+           VkExternalMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "exportFromImportedHandleTypes"
+           VkExternalMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "compatibleHandleTypes" VkExternalMemoryProperties where
+        type FieldType "compatibleHandleTypes" VkExternalMemoryProperties =
+             VkExternalMemoryHandleTypeFlags
+        type FieldOptional "compatibleHandleTypes"
+               VkExternalMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compatibleHandleTypes" VkExternalMemoryProperties
+             =
+             #{offset VkExternalMemoryProperties, compatibleHandleTypes}
+        type FieldIsArray "compatibleHandleTypes"
+               VkExternalMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalMemoryProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compatibleHandleTypes" VkExternalMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, compatibleHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalMemoryProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compatibleHandleTypes" VkExternalMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalMemoryProperties, compatibleHandleTypes}
+
+instance Show VkExternalMemoryProperties where
+        showsPrec d x
+          = showString "VkExternalMemoryProperties {" .
+              showString "externalMemoryFeatures = " .
+                showsPrec d (getField @"externalMemoryFeatures" x) .
+                  showString ", " .
+                    showString "exportFromImportedHandleTypes = " .
+                      showsPrec d (getField @"exportFromImportedHandleTypes" x) .
+                        showString ", " .
+                          showString "compatibleHandleTypes = " .
+                            showsPrec d (getField @"compatibleHandleTypes" x) . showChar '}'
+
+-- | Alias for `VkExternalMemoryProperties`
+type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties
+
+-- | > typedef struct VkExternalSemaphoreProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
+--   >     VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
+--   >     VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
+--   > } VkExternalSemaphoreProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalSemaphoreProperties VkExternalSemaphoreProperties registry at www.khronos.org>
+data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties## Addr##
+                                                                    ByteArray##
+
+instance Eq VkExternalSemaphoreProperties where
+        (VkExternalSemaphoreProperties## a _) ==
+          x@(VkExternalSemaphoreProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalSemaphoreProperties where
+        (VkExternalSemaphoreProperties## a _) `compare`
+          x@(VkExternalSemaphoreProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalSemaphoreProperties where
+        sizeOf ~_ = #{size VkExternalSemaphoreProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExternalSemaphoreProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalSemaphoreProperties where
+        unsafeAddr (VkExternalSemaphoreProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalSemaphoreProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalSemaphoreProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalSemaphoreProperties where
+        type StructFields VkExternalSemaphoreProperties =
+             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
+               "compatibleHandleTypes", "externalSemaphoreFeatures"]
+        type CUnionType VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalSemaphoreProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkExternalSemaphoreProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalSemaphoreProperties where
+        type FieldType "sType" VkExternalSemaphoreProperties =
+             VkStructureType
+        type FieldOptional "sType" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalSemaphoreProperties =
+             #{offset VkExternalSemaphoreProperties, sType}
+        type FieldIsArray "sType" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalSemaphoreProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalSemaphoreProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalSemaphoreProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalSemaphoreProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalSemaphoreProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalSemaphoreProperties where
+        type FieldType "pNext" VkExternalSemaphoreProperties = Ptr Void
+        type FieldOptional "pNext" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalSemaphoreProperties =
+             #{offset VkExternalSemaphoreProperties, pNext}
+        type FieldIsArray "pNext" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalSemaphoreProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalSemaphoreProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalSemaphoreProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalSemaphoreProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalSemaphoreProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "exportFromImportedHandleTypes"
+           VkExternalSemaphoreProperties
+         where
+        type FieldType "exportFromImportedHandleTypes"
+               VkExternalSemaphoreProperties
+             = VkExternalSemaphoreHandleTypeFlags
+        type FieldOptional "exportFromImportedHandleTypes"
+               VkExternalSemaphoreProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "exportFromImportedHandleTypes"
+               VkExternalSemaphoreProperties
+             =
+             #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
+        type FieldIsArray "exportFromImportedHandleTypes"
+               VkExternalSemaphoreProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "exportFromImportedHandleTypes"
+           VkExternalSemaphoreProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "exportFromImportedHandleTypes"
+           VkExternalSemaphoreProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "compatibleHandleTypes" VkExternalSemaphoreProperties
+         where
+        type FieldType "compatibleHandleTypes"
+               VkExternalSemaphoreProperties
+             = VkExternalSemaphoreHandleTypeFlags
+        type FieldOptional "compatibleHandleTypes"
+               VkExternalSemaphoreProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compatibleHandleTypes"
+               VkExternalSemaphoreProperties
+             =
+             #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
+        type FieldIsArray "compatibleHandleTypes"
+               VkExternalSemaphoreProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compatibleHandleTypes" VkExternalSemaphoreProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, compatibleHandleTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compatibleHandleTypes" VkExternalSemaphoreProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalSemaphoreFeatures" VkExternalSemaphoreProperties
+         where
+        type FieldType "externalSemaphoreFeatures"
+               VkExternalSemaphoreProperties
+             = VkExternalSemaphoreFeatureFlags
+        type FieldOptional "externalSemaphoreFeatures"
+               VkExternalSemaphoreProperties
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "externalSemaphoreFeatures"
+               VkExternalSemaphoreProperties
+             =
+             #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
+        type FieldIsArray "externalSemaphoreFeatures"
+               VkExternalSemaphoreProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalSemaphoreFeatures"
+           VkExternalSemaphoreProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalSemaphoreFeatures"
+           VkExternalSemaphoreProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
+
+instance Show VkExternalSemaphoreProperties where
+        showsPrec d x
+          = showString "VkExternalSemaphoreProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "exportFromImportedHandleTypes = " .
+                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
+                              showString ", " .
+                                showString "compatibleHandleTypes = " .
+                                  showsPrec d (getField @"compatibleHandleTypes" x) .
+                                    showString ", " .
+                                      showString "externalSemaphoreFeatures = " .
+                                        showsPrec d (getField @"externalSemaphoreFeatures" x) .
+                                          showChar '}'
+
+-- | Alias for `VkExternalSemaphoreProperties`
+type VkExternalSemaphorePropertiesKHR =
+     VkExternalSemaphoreProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Fence.hsc
@@ -0,0 +1,375 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Fence
+       (VkFenceCreateInfo(..), VkFenceGetFdInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.External      (VkExternalFenceHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Fence         (VkFenceCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkFence)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkFenceCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkFenceCreateFlags     flags;
+--   > } VkFenceCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceCreateInfo VkFenceCreateInfo registry at www.khronos.org>
+data VkFenceCreateInfo = VkFenceCreateInfo## Addr## ByteArray##
+
+instance Eq VkFenceCreateInfo where
+        (VkFenceCreateInfo## a _) == x@(VkFenceCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFenceCreateInfo where
+        (VkFenceCreateInfo## a _) `compare` x@(VkFenceCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFenceCreateInfo where
+        sizeOf ~_ = #{size VkFenceCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkFenceCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFenceCreateInfo where
+        unsafeAddr (VkFenceCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFenceCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFenceCreateInfo where
+        type StructFields VkFenceCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkFenceCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkFenceCreateInfo
+         where
+        type FieldType "sType" VkFenceCreateInfo = VkStructureType
+        type FieldOptional "sType" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkFenceCreateInfo =
+             #{offset VkFenceCreateInfo, sType}
+        type FieldIsArray "sType" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkFenceCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkFenceCreateInfo
+         where
+        type FieldType "pNext" VkFenceCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkFenceCreateInfo =
+             #{offset VkFenceCreateInfo, pNext}
+        type FieldIsArray "pNext" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkFenceCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkFenceCreateInfo
+         where
+        type FieldType "flags" VkFenceCreateInfo = VkFenceCreateFlags
+        type FieldOptional "flags" VkFenceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkFenceCreateInfo =
+             #{offset VkFenceCreateInfo, flags}
+        type FieldIsArray "flags" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} CanReadField "flags" VkFenceCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkFenceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceCreateInfo, flags}
+
+instance Show VkFenceCreateInfo where
+        showsPrec d x
+          = showString "VkFenceCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkFenceGetFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                            pNext;
+--   >     VkFence                                fence;
+--   >     VkExternalFenceHandleTypeFlagBits   handleType;
+--   > } VkFenceGetFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceGetFdInfoKHR VkFenceGetFdInfoKHR registry at www.khronos.org>
+data VkFenceGetFdInfoKHR = VkFenceGetFdInfoKHR## Addr## ByteArray##
+
+instance Eq VkFenceGetFdInfoKHR where
+        (VkFenceGetFdInfoKHR## a _) == x@(VkFenceGetFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFenceGetFdInfoKHR where
+        (VkFenceGetFdInfoKHR## a _) `compare` x@(VkFenceGetFdInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFenceGetFdInfoKHR where
+        sizeOf ~_ = #{size VkFenceGetFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkFenceGetFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFenceGetFdInfoKHR where
+        unsafeAddr (VkFenceGetFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFenceGetFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFenceGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFenceGetFdInfoKHR where
+        type StructFields VkFenceGetFdInfoKHR =
+             '["sType", "pNext", "fence", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkFenceGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkFenceGetFdInfoKHR
+         where
+        type FieldType "sType" VkFenceGetFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkFenceGetFdInfoKHR =
+             #{offset VkFenceGetFdInfoKHR, sType}
+        type FieldIsArray "sType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkFenceGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkFenceGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkFenceGetFdInfoKHR
+         where
+        type FieldType "pNext" VkFenceGetFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkFenceGetFdInfoKHR =
+             #{offset VkFenceGetFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkFenceGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkFenceGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-} HasField "fence" VkFenceGetFdInfoKHR
+         where
+        type FieldType "fence" VkFenceGetFdInfoKHR = VkFence
+        type FieldOptional "fence" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fence" VkFenceGetFdInfoKHR =
+             #{offset VkFenceGetFdInfoKHR, fence}
+        type FieldIsArray "fence" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceGetFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fence" VkFenceGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, fence})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fence" VkFenceGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkFenceGetFdInfoKHR where
+        type FieldType "handleType" VkFenceGetFdInfoKHR =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkFenceGetFdInfoKHR =
+             #{offset VkFenceGetFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFenceGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkFenceGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkFenceGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, handleType}
+
+instance Show VkFenceGetFdInfoKHR where
+        showsPrec d x
+          = showString "VkFenceGetFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "fence = " .
+                            showsPrec d (getField @"fence" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/FormatProperties.hsc
@@ -0,0 +1,356 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.FormatProperties
+       (VkFormatProperties(..), VkFormatProperties2(..),
+        VkFormatProperties2KHR)
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Format        (VkFormatFeatureFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkFormatProperties {
+--   >     VkFormatFeatureFlags   linearTilingFeatures;
+--   >     VkFormatFeatureFlags   optimalTilingFeatures;
+--   >     VkFormatFeatureFlags   bufferFeatures;
+--   > } VkFormatProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties VkFormatProperties registry at www.khronos.org>
+data VkFormatProperties = VkFormatProperties## Addr## ByteArray##
+
+instance Eq VkFormatProperties where
+        (VkFormatProperties## a _) == x@(VkFormatProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFormatProperties where
+        (VkFormatProperties## a _) `compare` x@(VkFormatProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFormatProperties where
+        sizeOf ~_ = #{size VkFormatProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkFormatProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFormatProperties where
+        unsafeAddr (VkFormatProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFormatProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFormatProperties## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFormatProperties where
+        type StructFields VkFormatProperties =
+             '["linearTilingFeatures", "optimalTilingFeatures", -- ' closing tick for hsc2hs
+               "bufferFeatures"]
+        type CUnionType VkFormatProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFormatProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkFormatProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "linearTilingFeatures" VkFormatProperties where
+        type FieldType "linearTilingFeatures" VkFormatProperties =
+             VkFormatFeatureFlags
+        type FieldOptional "linearTilingFeatures" VkFormatProperties =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "linearTilingFeatures" VkFormatProperties =
+             #{offset VkFormatProperties, linearTilingFeatures}
+        type FieldIsArray "linearTilingFeatures" VkFormatProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFormatProperties, linearTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "linearTilingFeatures" VkFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, linearTilingFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties, linearTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "linearTilingFeatures" VkFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties, linearTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         HasField "optimalTilingFeatures" VkFormatProperties where
+        type FieldType "optimalTilingFeatures" VkFormatProperties =
+             VkFormatFeatureFlags
+        type FieldOptional "optimalTilingFeatures" VkFormatProperties =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "optimalTilingFeatures" VkFormatProperties =
+             #{offset VkFormatProperties, optimalTilingFeatures}
+        type FieldIsArray "optimalTilingFeatures" VkFormatProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFormatProperties, optimalTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "optimalTilingFeatures" VkFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, optimalTilingFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties, optimalTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "optimalTilingFeatures" VkFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties, optimalTilingFeatures}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferFeatures" VkFormatProperties where
+        type FieldType "bufferFeatures" VkFormatProperties =
+             VkFormatFeatureFlags
+        type FieldOptional "bufferFeatures" VkFormatProperties = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "bufferFeatures" VkFormatProperties =
+             #{offset VkFormatProperties, bufferFeatures}
+        type FieldIsArray "bufferFeatures" VkFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFormatProperties, bufferFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferFeatures" VkFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, bufferFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties, bufferFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferFeatures" VkFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties, bufferFeatures}
+
+instance Show VkFormatProperties where
+        showsPrec d x
+          = showString "VkFormatProperties {" .
+              showString "linearTilingFeatures = " .
+                showsPrec d (getField @"linearTilingFeatures" x) .
+                  showString ", " .
+                    showString "optimalTilingFeatures = " .
+                      showsPrec d (getField @"optimalTilingFeatures" x) .
+                        showString ", " .
+                          showString "bufferFeatures = " .
+                            showsPrec d (getField @"bufferFeatures" x) . showChar '}'
+
+-- | > typedef struct VkFormatProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkFormatProperties               formatProperties;
+--   > } VkFormatProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFormatProperties2 VkFormatProperties2 registry at www.khronos.org>
+data VkFormatProperties2 = VkFormatProperties2## Addr## ByteArray##
+
+instance Eq VkFormatProperties2 where
+        (VkFormatProperties2## a _) == x@(VkFormatProperties2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFormatProperties2 where
+        (VkFormatProperties2## a _) `compare` x@(VkFormatProperties2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFormatProperties2 where
+        sizeOf ~_ = #{size VkFormatProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkFormatProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFormatProperties2 where
+        unsafeAddr (VkFormatProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFormatProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFormatProperties2## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFormatProperties2 where
+        type StructFields VkFormatProperties2 =
+             '["sType", "pNext", "formatProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFormatProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkFormatProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkFormatProperties2
+         where
+        type FieldType "sType" VkFormatProperties2 = VkStructureType
+        type FieldOptional "sType" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkFormatProperties2 =
+             #{offset VkFormatProperties2, sType}
+        type FieldIsArray "sType" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkFormatProperties2
+         where
+        type FieldType "pNext" VkFormatProperties2 = Ptr Void
+        type FieldOptional "pNext" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkFormatProperties2 =
+             #{offset VkFormatProperties2, pNext}
+        type FieldIsArray "pNext" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "formatProperties" VkFormatProperties2 where
+        type FieldType "formatProperties" VkFormatProperties2 =
+             VkFormatProperties
+        type FieldOptional "formatProperties" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "formatProperties" VkFormatProperties2 =
+             #{offset VkFormatProperties2, formatProperties}
+        type FieldIsArray "formatProperties" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFormatProperties2, formatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "formatProperties" VkFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, formatProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFormatProperties2, formatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "formatProperties" VkFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFormatProperties2, formatProperties}
+
+instance Show VkFormatProperties2 where
+        showsPrec d x
+          = showString "VkFormatProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "formatProperties = " .
+                            showsPrec d (getField @"formatProperties" x) . showChar '}'
+
+-- | Alias for `VkFormatProperties2`
+type VkFormatProperties2KHR = VkFormatProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/FramebufferCreateInfo.hsc
@@ -0,0 +1,401 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
+       (VkFramebufferCreateInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkFramebufferCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkImageView,
+                                                           VkRenderPass)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkFramebufferCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkFramebufferCreateFlags    flags;
+--   >     VkRenderPass           renderPass;
+--   >     uint32_t               attachmentCount;
+--   >     const VkImageView*     pAttachments;
+--   >     uint32_t               width;
+--   >     uint32_t               height;
+--   >     uint32_t               layers;
+--   > } VkFramebufferCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFramebufferCreateInfo VkFramebufferCreateInfo registry at www.khronos.org>
+data VkFramebufferCreateInfo = VkFramebufferCreateInfo## Addr##
+                                                        ByteArray##
+
+instance Eq VkFramebufferCreateInfo where
+        (VkFramebufferCreateInfo## a _) == x@(VkFramebufferCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFramebufferCreateInfo where
+        (VkFramebufferCreateInfo## a _) `compare`
+          x@(VkFramebufferCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFramebufferCreateInfo where
+        sizeOf ~_ = #{size VkFramebufferCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkFramebufferCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFramebufferCreateInfo where
+        unsafeAddr (VkFramebufferCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFramebufferCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFramebufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFramebufferCreateInfo where
+        type StructFields VkFramebufferCreateInfo =
+             '["sType", "pNext", "flags", "renderPass", "attachmentCount", -- ' closing tick for hsc2hs
+               "pAttachments", "width", "height", "layers"]
+        type CUnionType VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkFramebufferCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkFramebufferCreateInfo where
+        type FieldType "sType" VkFramebufferCreateInfo = VkStructureType
+        type FieldOptional "sType" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, sType}
+        type FieldIsArray "sType" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkFramebufferCreateInfo where
+        type FieldType "pNext" VkFramebufferCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, pNext}
+        type FieldIsArray "pNext" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkFramebufferCreateInfo where
+        type FieldType "flags" VkFramebufferCreateInfo =
+             VkFramebufferCreateFlags
+        type FieldOptional "flags" VkFramebufferCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, flags}
+        type FieldIsArray "flags" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "renderPass" VkFramebufferCreateInfo where
+        type FieldType "renderPass" VkFramebufferCreateInfo = VkRenderPass
+        type FieldOptional "renderPass" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "renderPass" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, renderPass}
+        type FieldIsArray "renderPass" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFramebufferCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "renderPass" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, renderPass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "renderPass" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         HasField "attachmentCount" VkFramebufferCreateInfo where
+        type FieldType "attachmentCount" VkFramebufferCreateInfo = Word32
+        type FieldOptional "attachmentCount" VkFramebufferCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "attachmentCount" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, attachmentCount}
+        type FieldIsArray "attachmentCount" VkFramebufferCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFramebufferCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachmentCount" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, attachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachmentCount" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttachments" VkFramebufferCreateInfo where
+        type FieldType "pAttachments" VkFramebufferCreateInfo =
+             Ptr VkImageView
+        type FieldOptional "pAttachments" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAttachments" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, pAttachments}
+        type FieldIsArray "pAttachments" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFramebufferCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttachments" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, pAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttachments" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "width" VkFramebufferCreateInfo where
+        type FieldType "width" VkFramebufferCreateInfo = Word32
+        type FieldOptional "width" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "width" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, width}
+        type FieldIsArray "width" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, width}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "width" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, width})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, width}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "width" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, width}
+
+instance {-# OVERLAPPING #-}
+         HasField "height" VkFramebufferCreateInfo where
+        type FieldType "height" VkFramebufferCreateInfo = Word32
+        type FieldOptional "height" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "height" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, height}
+        type FieldIsArray "height" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, height}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "height" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, height})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, height}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "height" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, height}
+
+instance {-# OVERLAPPING #-}
+         HasField "layers" VkFramebufferCreateInfo where
+        type FieldType "layers" VkFramebufferCreateInfo = Word32
+        type FieldOptional "layers" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layers" VkFramebufferCreateInfo =
+             #{offset VkFramebufferCreateInfo, layers}
+        type FieldIsArray "layers" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkFramebufferCreateInfo, layers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layers" VkFramebufferCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, layers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFramebufferCreateInfo, layers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layers" VkFramebufferCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFramebufferCreateInfo, layers}
+
+instance Show VkFramebufferCreateInfo where
+        showsPrec d x
+          = showString "VkFramebufferCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "renderPass = " .
+                                  showsPrec d (getField @"renderPass" x) .
+                                    showString ", " .
+                                      showString "attachmentCount = " .
+                                        showsPrec d (getField @"attachmentCount" x) .
+                                          showString ", " .
+                                            showString "pAttachments = " .
+                                              showsPrec d (getField @"pAttachments" x) .
+                                                showString ", " .
+                                                  showString "width = " .
+                                                    showsPrec d (getField @"width" x) .
+                                                      showString ", " .
+                                                        showString "height = " .
+                                                          showsPrec d (getField @"height" x) .
+                                                            showString ", " .
+                                                              showString "layers = " .
+                                                                showsPrec d (getField @"layers" x) .
+                                                                  showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/HdrMetadataEXT.hsc
@@ -0,0 +1,447 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.HdrMetadataEXT
+       (VkHdrMetadataEXT(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.XYColorEXT  (VkXYColorEXT)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkHdrMetadataEXT {
+--   >     VkStructureType sType;
+--   >     const void*    pNext;
+--   >     VkXYColorEXT   displayPrimaryRed;
+--   >     VkXYColorEXT   displayPrimaryGreen;
+--   >     VkXYColorEXT   displayPrimaryBlue;
+--   >     VkXYColorEXT   whitePoint;
+--   >     float          maxLuminance;
+--   >     float          minLuminance;
+--   >     float          maxContentLightLevel;
+--   >     float          maxFrameAverageLightLevel;
+--   > } VkHdrMetadataEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkHdrMetadataEXT VkHdrMetadataEXT registry at www.khronos.org>
+data VkHdrMetadataEXT = VkHdrMetadataEXT## Addr## ByteArray##
+
+instance Eq VkHdrMetadataEXT where
+        (VkHdrMetadataEXT## a _) == x@(VkHdrMetadataEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkHdrMetadataEXT where
+        (VkHdrMetadataEXT## a _) `compare` x@(VkHdrMetadataEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkHdrMetadataEXT where
+        sizeOf ~_ = #{size VkHdrMetadataEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkHdrMetadataEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkHdrMetadataEXT where
+        unsafeAddr (VkHdrMetadataEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkHdrMetadataEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkHdrMetadataEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkHdrMetadataEXT where
+        type StructFields VkHdrMetadataEXT =
+             '["sType", "pNext", "displayPrimaryRed", "displayPrimaryGreen", -- ' closing tick for hsc2hs
+               "displayPrimaryBlue", "whitePoint", "maxLuminance", "minLuminance",
+               "maxContentLightLevel", "maxFrameAverageLightLevel"]
+        type CUnionType VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkHdrMetadataEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkHdrMetadataEXT
+         where
+        type FieldType "sType" VkHdrMetadataEXT = VkStructureType
+        type FieldOptional "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, sType}
+        type FieldIsArray "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkHdrMetadataEXT, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkHdrMetadataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, sType}
+
+instance {-# OVERLAPPING #-} CanWriteField "sType" VkHdrMetadataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkHdrMetadataEXT
+         where
+        type FieldType "pNext" VkHdrMetadataEXT = Ptr Void
+        type FieldOptional "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, pNext}
+        type FieldIsArray "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkHdrMetadataEXT, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkHdrMetadataEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, pNext}
+
+instance {-# OVERLAPPING #-} CanWriteField "pNext" VkHdrMetadataEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayPrimaryRed" VkHdrMetadataEXT where
+        type FieldType "displayPrimaryRed" VkHdrMetadataEXT = VkXYColorEXT
+        type FieldOptional "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayPrimaryRed" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, displayPrimaryRed}
+        type FieldIsArray "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkHdrMetadataEXT, displayPrimaryRed}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayPrimaryRed" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryRed})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryRed}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayPrimaryRed" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryRed}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayPrimaryGreen" VkHdrMetadataEXT where
+        type FieldType "displayPrimaryGreen" VkHdrMetadataEXT =
+             VkXYColorEXT
+        type FieldOptional "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayPrimaryGreen" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, displayPrimaryGreen}
+        type FieldIsArray "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkHdrMetadataEXT, displayPrimaryGreen}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayPrimaryGreen" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryGreen})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryGreen}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayPrimaryGreen" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryGreen}
+
+instance {-# OVERLAPPING #-}
+         HasField "displayPrimaryBlue" VkHdrMetadataEXT where
+        type FieldType "displayPrimaryBlue" VkHdrMetadataEXT = VkXYColorEXT
+        type FieldOptional "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "displayPrimaryBlue" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, displayPrimaryBlue}
+        type FieldIsArray "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkHdrMetadataEXT, displayPrimaryBlue}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "displayPrimaryBlue" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryBlue})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryBlue}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "displayPrimaryBlue" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryBlue}
+
+instance {-# OVERLAPPING #-} HasField "whitePoint" VkHdrMetadataEXT
+         where
+        type FieldType "whitePoint" VkHdrMetadataEXT = VkXYColorEXT
+        type FieldOptional "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "whitePoint" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, whitePoint}
+        type FieldIsArray "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkHdrMetadataEXT, whitePoint}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "whitePoint" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, whitePoint})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, whitePoint}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "whitePoint" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, whitePoint}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxLuminance" VkHdrMetadataEXT where
+        type FieldType "maxLuminance" VkHdrMetadataEXT =
+             #{type float}
+        type FieldOptional "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxLuminance" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, maxLuminance}
+        type FieldIsArray "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkHdrMetadataEXT, maxLuminance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxLuminance" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxLuminance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, maxLuminance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxLuminance" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, maxLuminance}
+
+instance {-# OVERLAPPING #-}
+         HasField "minLuminance" VkHdrMetadataEXT where
+        type FieldType "minLuminance" VkHdrMetadataEXT =
+             #{type float}
+        type FieldOptional "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minLuminance" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, minLuminance}
+        type FieldIsArray "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkHdrMetadataEXT, minLuminance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minLuminance" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, minLuminance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, minLuminance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minLuminance" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, minLuminance}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxContentLightLevel" VkHdrMetadataEXT where
+        type FieldType "maxContentLightLevel" VkHdrMetadataEXT =
+             #{type float}
+        type FieldOptional "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxContentLightLevel" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, maxContentLightLevel}
+        type FieldIsArray "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkHdrMetadataEXT, maxContentLightLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxContentLightLevel" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxContentLightLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, maxContentLightLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxContentLightLevel" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, maxContentLightLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
+        type FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT =
+             #{type float}
+        type FieldOptional "maxFrameAverageLightLevel" VkHdrMetadataEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFrameAverageLightLevel" VkHdrMetadataEXT =
+             #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
+        type FieldIsArray "maxFrameAverageLightLevel" VkHdrMetadataEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
+
+instance Show VkHdrMetadataEXT where
+        showsPrec d x
+          = showString "VkHdrMetadataEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "displayPrimaryRed = " .
+                            showsPrec d (getField @"displayPrimaryRed" x) .
+                              showString ", " .
+                                showString "displayPrimaryGreen = " .
+                                  showsPrec d (getField @"displayPrimaryGreen" x) .
+                                    showString ", " .
+                                      showString "displayPrimaryBlue = " .
+                                        showsPrec d (getField @"displayPrimaryBlue" x) .
+                                          showString ", " .
+                                            showString "whitePoint = " .
+                                              showsPrec d (getField @"whitePoint" x) .
+                                                showString ", " .
+                                                  showString "maxLuminance = " .
+                                                    showsPrec d (getField @"maxLuminance" x) .
+                                                      showString ", " .
+                                                        showString "minLuminance = " .
+                                                          showsPrec d (getField @"minLuminance" x) .
+                                                            showString ", " .
+                                                              showString "maxContentLightLevel = " .
+                                                                showsPrec d
+                                                                  (getField @"maxContentLightLevel"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "maxFrameAverageLightLevel = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"maxFrameAverageLightLevel"
+                                                                           x)
+                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Image.hsc
@@ -0,0 +1,4292 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Image
+       (VkImageBlit(..), VkImageCopy(..), VkImageCreateInfo(..),
+        VkImageFormatListCreateInfoKHR(..), VkImageFormatProperties(..),
+        VkImageFormatProperties2(..), VkImageFormatProperties2KHR,
+        VkImageMemoryBarrier(..), VkImageMemoryRequirementsInfo2(..),
+        VkImageMemoryRequirementsInfo2KHR,
+        VkImagePlaneMemoryRequirementsInfo(..),
+        VkImagePlaneMemoryRequirementsInfoKHR, VkImageResolve(..),
+        VkImageSparseMemoryRequirementsInfo2(..),
+        VkImageSparseMemoryRequirementsInfo2KHR, VkImageSubresource(..),
+        VkImageSubresourceLayers(..), VkImageSubresourceRange(..),
+        VkImageSwapchainCreateInfoKHR(..), VkImageViewCreateInfo(..),
+        VkImageViewUsageCreateInfo(..), VkImageViewUsageCreateInfoKHR)
+       where
+import           Foreign.Storable                              (Storable (..))
+import           GHC.Base                                      (Addr##,
+                                                                ByteArray##,
+                                                                Proxy##,
+                                                                byteArrayContents##,
+                                                                plusAddr##,
+                                                                proxy##)
+import           GHC.TypeLits                                  (KnownNat,
+                                                                natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import           Graphics.Vulkan.Types.Bitmasks                (VkImageViewCreateFlags)
+import           Graphics.Vulkan.Types.Enum.AccessFlags        (VkAccessFlags)
+import           Graphics.Vulkan.Types.Enum.Format             (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Image              (VkImageAspectFlagBits,
+                                                                VkImageAspectFlags,
+                                                                VkImageCreateFlags,
+                                                                VkImageLayout,
+                                                                VkImageTiling,
+                                                                VkImageType,
+                                                                VkImageUsageFlags,
+                                                                VkImageViewType)
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags   (VkSampleCountFlagBits,
+                                                                VkSampleCountFlags)
+import           Graphics.Vulkan.Types.Enum.SharingMode        (VkSharingMode)
+import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                 (VkImage,
+                                                                VkSwapchainKHR)
+import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import           Graphics.Vulkan.Types.Struct.Extent           (VkExtent3D)
+import           Graphics.Vulkan.Types.Struct.Offset           (VkOffset3D)
+import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+
+-- | > typedef struct VkImageBlit {
+--   >     VkImageSubresourceLayers srcSubresource;
+--   >     VkOffset3D             srcOffsets[2];
+--   >     VkImageSubresourceLayers dstSubresource;
+--   >     VkOffset3D             dstOffsets[2];
+--   > } VkImageBlit;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageBlit VkImageBlit registry at www.khronos.org>
+data VkImageBlit = VkImageBlit## Addr## ByteArray##
+
+instance Eq VkImageBlit where
+        (VkImageBlit## a _) == x@(VkImageBlit## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageBlit where
+        (VkImageBlit## a _) `compare` x@(VkImageBlit## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageBlit where
+        sizeOf ~_ = #{size VkImageBlit}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageBlit}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageBlit where
+        unsafeAddr (VkImageBlit## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageBlit## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageBlit## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageBlit where
+        type StructFields VkImageBlit =
+             '["srcSubresource", "srcOffsets", "dstSubresource", "dstOffsets"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageBlit = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageBlit
+         where
+        type FieldType "srcSubresource" VkImageBlit =
+             VkImageSubresourceLayers
+        type FieldOptional "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcSubresource" VkImageBlit =
+             #{offset VkImageBlit, srcSubresource}
+        type FieldIsArray "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageBlit, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcSubresource" VkImageBlit where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageBlit, srcSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageBlit, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcSubresource" VkImageBlit where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageBlit, srcSubresource}
+
+instance {-# OVERLAPPING #-} HasField "srcOffsets" VkImageBlit
+         where
+        type FieldType "srcOffsets" VkImageBlit = VkOffset3D
+        type FieldOptional "srcOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcOffsets" VkImageBlit =
+             #{offset VkImageBlit, srcOffsets}
+        type FieldIsArray "srcOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageBlit, srcOffsets}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
+         CanReadFieldArray "srcOffsets" idx VkImageBlit
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "srcOffsets" 0 VkImageBlit #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "srcOffsets" 1 VkImageBlit #-}
+        type FieldArrayLength "srcOffsets" VkImageBlit = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkImageBlit, srcOffsets} +
+                      sizeOf (undefined :: VkOffset3D) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkImageBlit, srcOffsets} +
+                 sizeOf (undefined :: VkOffset3D) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
+         CanWriteFieldArray "srcOffsets" idx VkImageBlit
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "srcOffsets" 0 VkImageBlit #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "srcOffsets" 1 VkImageBlit #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkImageBlit, srcOffsets} +
+                 sizeOf (undefined :: VkOffset3D) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageBlit
+         where
+        type FieldType "dstSubresource" VkImageBlit =
+             VkImageSubresourceLayers
+        type FieldOptional "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSubresource" VkImageBlit =
+             #{offset VkImageBlit, dstSubresource}
+        type FieldIsArray "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageBlit, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSubresource" VkImageBlit where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageBlit, dstSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageBlit, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSubresource" VkImageBlit where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageBlit, dstSubresource}
+
+instance {-# OVERLAPPING #-} HasField "dstOffsets" VkImageBlit
+         where
+        type FieldType "dstOffsets" VkImageBlit = VkOffset3D
+        type FieldOptional "dstOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstOffsets" VkImageBlit =
+             #{offset VkImageBlit, dstOffsets}
+        type FieldIsArray "dstOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageBlit, dstOffsets}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
+         CanReadFieldArray "dstOffsets" idx VkImageBlit
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "dstOffsets" 0 VkImageBlit #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "dstOffsets" 1 VkImageBlit #-}
+        type FieldArrayLength "dstOffsets" VkImageBlit = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkImageBlit, dstOffsets} +
+                      sizeOf (undefined :: VkOffset3D) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkImageBlit, dstOffsets} +
+                 sizeOf (undefined :: VkOffset3D) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
+         CanWriteFieldArray "dstOffsets" idx VkImageBlit
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "dstOffsets" 0 VkImageBlit #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "dstOffsets" 1 VkImageBlit #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkImageBlit, dstOffsets} +
+                 sizeOf (undefined :: VkOffset3D) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkImageBlit where
+        showsPrec d x
+          = showString "VkImageBlit {" .
+              showString "srcSubresource = " .
+                showsPrec d (getField @"srcSubresource" x) .
+                  showString ", " .
+                    (showString "srcOffsets = [" .
+                       showsPrec d
+                         (let s = sizeOf (undefined :: FieldType "srcOffsets" VkImageBlit)
+                              o = fieldOffset @"srcOffsets" @VkImageBlit
+                              f i
+                                = peekByteOff (unsafePtr x) i ::
+                                    IO (FieldType "srcOffsets" VkImageBlit)
+                            in
+                            unsafeDupablePerformIO . mapM f $
+                              map (\ i -> o + i * s) [0 .. 2 - 1])
+                         . showChar ']')
+                      .
+                      showString ", " .
+                        showString "dstSubresource = " .
+                          showsPrec d (getField @"dstSubresource" x) .
+                            showString ", " .
+                              (showString "dstOffsets = [" .
+                                 showsPrec d
+                                   (let s = sizeOf (undefined :: FieldType "dstOffsets" VkImageBlit)
+                                        o = fieldOffset @"dstOffsets" @VkImageBlit
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO (FieldType "dstOffsets" VkImageBlit)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. 2 - 1])
+                                   . showChar ']')
+                                . showChar '}'
+
+-- | > typedef struct VkImageCopy {
+--   >     VkImageSubresourceLayers srcSubresource;
+--   >     VkOffset3D             srcOffset;
+--   >     VkImageSubresourceLayers dstSubresource;
+--   >     VkOffset3D             dstOffset;
+--   >     VkExtent3D             extent;
+--   > } VkImageCopy;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCopy VkImageCopy registry at www.khronos.org>
+data VkImageCopy = VkImageCopy## Addr## ByteArray##
+
+instance Eq VkImageCopy where
+        (VkImageCopy## a _) == x@(VkImageCopy## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageCopy where
+        (VkImageCopy## a _) `compare` x@(VkImageCopy## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageCopy where
+        sizeOf ~_ = #{size VkImageCopy}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageCopy}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageCopy where
+        unsafeAddr (VkImageCopy## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageCopy## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageCopy## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageCopy where
+        type StructFields VkImageCopy =
+             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
+               "extent"]
+        type CUnionType VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageCopy = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageCopy
+         where
+        type FieldType "srcSubresource" VkImageCopy =
+             VkImageSubresourceLayers
+        type FieldOptional "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcSubresource" VkImageCopy =
+             #{offset VkImageCopy, srcSubresource}
+        type FieldIsArray "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCopy, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcSubresource" VkImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCopy, srcSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCopy, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcSubresource" VkImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCopy, srcSubresource}
+
+instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageCopy where
+        type FieldType "srcOffset" VkImageCopy = VkOffset3D
+        type FieldOptional "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcOffset" VkImageCopy =
+             #{offset VkImageCopy, srcOffset}
+        type FieldIsArray "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} CanReadField "srcOffset" VkImageCopy
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCopy, srcOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkImageCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCopy, srcOffset}
+
+instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageCopy
+         where
+        type FieldType "dstSubresource" VkImageCopy =
+             VkImageSubresourceLayers
+        type FieldOptional "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSubresource" VkImageCopy =
+             #{offset VkImageCopy, dstSubresource}
+        type FieldIsArray "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCopy, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSubresource" VkImageCopy where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCopy, dstSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCopy, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSubresource" VkImageCopy where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCopy, dstSubresource}
+
+instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageCopy where
+        type FieldType "dstOffset" VkImageCopy = VkOffset3D
+        type FieldOptional "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstOffset" VkImageCopy =
+             #{offset VkImageCopy, dstOffset}
+        type FieldIsArray "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkImageCopy
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCopy, dstOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkImageCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCopy, dstOffset}
+
+instance {-# OVERLAPPING #-} HasField "extent" VkImageCopy where
+        type FieldType "extent" VkImageCopy = VkExtent3D
+        type FieldOptional "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkImageCopy =
+             #{offset VkImageCopy, extent}
+        type FieldIsArray "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCopy, extent}
+
+instance {-# OVERLAPPING #-} CanReadField "extent" VkImageCopy
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCopy, extent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCopy, extent}
+
+instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageCopy
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCopy, extent}
+
+instance Show VkImageCopy where
+        showsPrec d x
+          = showString "VkImageCopy {" .
+              showString "srcSubresource = " .
+                showsPrec d (getField @"srcSubresource" x) .
+                  showString ", " .
+                    showString "srcOffset = " .
+                      showsPrec d (getField @"srcOffset" x) .
+                        showString ", " .
+                          showString "dstSubresource = " .
+                            showsPrec d (getField @"dstSubresource" x) .
+                              showString ", " .
+                                showString "dstOffset = " .
+                                  showsPrec d (getField @"dstOffset" x) .
+                                    showString ", " .
+                                      showString "extent = " .
+                                        showsPrec d (getField @"extent" x) . showChar '}'
+
+-- | > typedef struct VkImageCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkImageCreateFlags     flags;
+--   >     VkImageType            imageType;
+--   >     VkFormat               format;
+--   >     VkExtent3D             extent;
+--   >     uint32_t               mipLevels;
+--   >     uint32_t               arrayLayers;
+--   >     VkSampleCountFlagBits  samples;
+--   >     VkImageTiling          tiling;
+--   >     VkImageUsageFlags      usage;
+--   >     VkSharingMode          sharingMode;
+--   >     uint32_t               queueFamilyIndexCount;
+--   >     const uint32_t*        pQueueFamilyIndices;
+--   >     VkImageLayout          initialLayout;
+--   > } VkImageCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageCreateInfo VkImageCreateInfo registry at www.khronos.org>
+data VkImageCreateInfo = VkImageCreateInfo## Addr## ByteArray##
+
+instance Eq VkImageCreateInfo where
+        (VkImageCreateInfo## a _) == x@(VkImageCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageCreateInfo where
+        (VkImageCreateInfo## a _) `compare` x@(VkImageCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageCreateInfo where
+        sizeOf ~_ = #{size VkImageCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageCreateInfo where
+        unsafeAddr (VkImageCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageCreateInfo where
+        type StructFields VkImageCreateInfo =
+             '["sType", "pNext", "flags", "imageType", "format", "extent", -- ' closing tick for hsc2hs
+               "mipLevels", "arrayLayers", "samples", "tiling", "usage",
+               "sharingMode", "queueFamilyIndexCount", "pQueueFamilyIndices",
+               "initialLayout"]
+        type CUnionType VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkImageCreateInfo
+         where
+        type FieldType "sType" VkImageCreateInfo = VkStructureType
+        type FieldOptional "sType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, sType}
+        type FieldIsArray "sType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkImageCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkImageCreateInfo
+         where
+        type FieldType "pNext" VkImageCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, pNext}
+        type FieldIsArray "pNext" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkImageCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkImageCreateInfo
+         where
+        type FieldType "flags" VkImageCreateInfo = VkImageCreateFlags
+        type FieldOptional "flags" VkImageCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, flags}
+        type FieldIsArray "flags" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} CanReadField "flags" VkImageCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} HasField "imageType" VkImageCreateInfo
+         where
+        type FieldType "imageType" VkImageCreateInfo = VkImageType
+        type FieldOptional "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageType" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, imageType}
+        type FieldIsArray "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, imageType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageType" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, imageType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, imageType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageType" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, imageType}
+
+instance {-# OVERLAPPING #-} HasField "format" VkImageCreateInfo
+         where
+        type FieldType "format" VkImageCreateInfo = VkFormat
+        type FieldOptional "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, format}
+        type FieldIsArray "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, format}
+
+instance {-# OVERLAPPING #-} HasField "extent" VkImageCreateInfo
+         where
+        type FieldType "extent" VkImageCreateInfo = VkExtent3D
+        type FieldOptional "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, extent}
+        type FieldIsArray "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, extent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "extent" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, extent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, extent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "extent" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, extent}
+
+instance {-# OVERLAPPING #-} HasField "mipLevels" VkImageCreateInfo
+         where
+        type FieldType "mipLevels" VkImageCreateInfo = Word32
+        type FieldOptional "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipLevels" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, mipLevels}
+        type FieldIsArray "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, mipLevels}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipLevels" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, mipLevels})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, mipLevels}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipLevels" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, mipLevels}
+
+instance {-# OVERLAPPING #-}
+         HasField "arrayLayers" VkImageCreateInfo where
+        type FieldType "arrayLayers" VkImageCreateInfo = Word32
+        type FieldOptional "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "arrayLayers" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, arrayLayers}
+        type FieldIsArray "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, arrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "arrayLayers" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, arrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, arrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "arrayLayers" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, arrayLayers}
+
+instance {-# OVERLAPPING #-} HasField "samples" VkImageCreateInfo
+         where
+        type FieldType "samples" VkImageCreateInfo = VkSampleCountFlagBits
+        type FieldOptional "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samples" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, samples}
+        type FieldIsArray "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samples" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samples" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, samples}
+
+instance {-# OVERLAPPING #-} HasField "tiling" VkImageCreateInfo
+         where
+        type FieldType "tiling" VkImageCreateInfo = VkImageTiling
+        type FieldOptional "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tiling" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, tiling}
+        type FieldIsArray "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tiling" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, tiling})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tiling" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, tiling}
+
+instance {-# OVERLAPPING #-} HasField "usage" VkImageCreateInfo
+         where
+        type FieldType "usage" VkImageCreateInfo = VkImageUsageFlags
+        type FieldOptional "usage" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, usage}
+        type FieldIsArray "usage" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, usage}
+
+instance {-# OVERLAPPING #-} CanReadField "usage" VkImageCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "sharingMode" VkImageCreateInfo where
+        type FieldType "sharingMode" VkImageCreateInfo = VkSharingMode
+        type FieldOptional "sharingMode" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sharingMode" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, sharingMode}
+        type FieldIsArray "sharingMode" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sharingMode" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, sharingMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sharingMode" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, sharingMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndexCount" VkImageCreateInfo where
+        type FieldType "queueFamilyIndexCount" VkImageCreateInfo = Word32
+        type FieldOptional "queueFamilyIndexCount" VkImageCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndexCount" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, queueFamilyIndexCount}
+        type FieldIsArray "queueFamilyIndexCount" VkImageCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndexCount" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, queueFamilyIndexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndexCount" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueueFamilyIndices" VkImageCreateInfo where
+        type FieldType "pQueueFamilyIndices" VkImageCreateInfo = Ptr Word32
+        type FieldOptional "pQueueFamilyIndices" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pQueueFamilyIndices" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, pQueueFamilyIndices}
+        type FieldIsArray "pQueueFamilyIndices" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageCreateInfo, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueueFamilyIndices" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, pQueueFamilyIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueueFamilyIndices" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         HasField "initialLayout" VkImageCreateInfo where
+        type FieldType "initialLayout" VkImageCreateInfo = VkImageLayout
+        type FieldOptional "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "initialLayout" VkImageCreateInfo =
+             #{offset VkImageCreateInfo, initialLayout}
+        type FieldIsArray "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageCreateInfo, initialLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "initialLayout" VkImageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, initialLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageCreateInfo, initialLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "initialLayout" VkImageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageCreateInfo, initialLayout}
+
+instance Show VkImageCreateInfo where
+        showsPrec d x
+          = showString "VkImageCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "imageType = " .
+                                  showsPrec d (getField @"imageType" x) .
+                                    showString ", " .
+                                      showString "format = " .
+                                        showsPrec d (getField @"format" x) .
+                                          showString ", " .
+                                            showString "extent = " .
+                                              showsPrec d (getField @"extent" x) .
+                                                showString ", " .
+                                                  showString "mipLevels = " .
+                                                    showsPrec d (getField @"mipLevels" x) .
+                                                      showString ", " .
+                                                        showString "arrayLayers = " .
+                                                          showsPrec d (getField @"arrayLayers" x) .
+                                                            showString ", " .
+                                                              showString "samples = " .
+                                                                showsPrec d (getField @"samples" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "tiling = " .
+                                                                      showsPrec d
+                                                                        (getField @"tiling" x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString "usage = " .
+                                                                            showsPrec d
+                                                                              (getField @"usage" x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "sharingMode = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"sharingMode"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "queueFamilyIndexCount = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"queueFamilyIndexCount"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "pQueueFamilyIndices = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"pQueueFamilyIndices"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "initialLayout = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"initialLayout"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showChar
+                                                                                                        '}'
+
+-- | > typedef struct VkImageFormatListCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     uint32_t               viewFormatCount;
+--   >     const VkFormat*      pViewFormats;
+--   > } VkImageFormatListCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatListCreateInfoKHR VkImageFormatListCreateInfoKHR registry at www.khronos.org>
+data VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfoKHR## Addr##
+                                                                      ByteArray##
+
+instance Eq VkImageFormatListCreateInfoKHR where
+        (VkImageFormatListCreateInfoKHR## a _) ==
+          x@(VkImageFormatListCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageFormatListCreateInfoKHR where
+        (VkImageFormatListCreateInfoKHR## a _) `compare`
+          x@(VkImageFormatListCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageFormatListCreateInfoKHR where
+        sizeOf ~_ = #{size VkImageFormatListCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImageFormatListCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageFormatListCreateInfoKHR where
+        unsafeAddr (VkImageFormatListCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageFormatListCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageFormatListCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageFormatListCreateInfoKHR where
+        type StructFields VkImageFormatListCreateInfoKHR =
+             '["sType", "pNext", "viewFormatCount", "pViewFormats"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageFormatListCreateInfoKHR =
+             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageFormatListCreateInfoKHR where
+        type FieldType "sType" VkImageFormatListCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageFormatListCreateInfoKHR =
+             #{offset VkImageFormatListCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatListCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageFormatListCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageFormatListCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageFormatListCreateInfoKHR where
+        type FieldType "pNext" VkImageFormatListCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageFormatListCreateInfoKHR =
+             #{offset VkImageFormatListCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatListCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageFormatListCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageFormatListCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewFormatCount" VkImageFormatListCreateInfoKHR where
+        type FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR =
+             Word32
+        type FieldOptional "viewFormatCount" VkImageFormatListCreateInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "viewFormatCount" VkImageFormatListCreateInfoKHR =
+             #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
+        type FieldIsArray "viewFormatCount" VkImageFormatListCreateInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewFormatCount" VkImageFormatListCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, viewFormatCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewFormatCount" VkImageFormatListCreateInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewFormats" VkImageFormatListCreateInfoKHR where
+        type FieldType "pViewFormats" VkImageFormatListCreateInfoKHR =
+             Ptr VkFormat
+        type FieldOptional "pViewFormats" VkImageFormatListCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pViewFormats" VkImageFormatListCreateInfoKHR =
+             #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
+        type FieldIsArray "pViewFormats" VkImageFormatListCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewFormats" VkImageFormatListCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, pViewFormats})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewFormats" VkImageFormatListCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
+
+instance Show VkImageFormatListCreateInfoKHR where
+        showsPrec d x
+          = showString "VkImageFormatListCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "viewFormatCount = " .
+                            showsPrec d (getField @"viewFormatCount" x) .
+                              showString ", " .
+                                showString "pViewFormats = " .
+                                  showsPrec d (getField @"pViewFormats" x) . showChar '}'
+
+-- | > typedef struct VkImageFormatProperties {
+--   >     VkExtent3D             maxExtent;
+--   >     uint32_t               maxMipLevels;
+--   >     uint32_t               maxArrayLayers;
+--   >     VkSampleCountFlags     sampleCounts;
+--   >     VkDeviceSize           maxResourceSize;
+--   > } VkImageFormatProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatProperties VkImageFormatProperties registry at www.khronos.org>
+data VkImageFormatProperties = VkImageFormatProperties## Addr##
+                                                        ByteArray##
+
+instance Eq VkImageFormatProperties where
+        (VkImageFormatProperties## a _) == x@(VkImageFormatProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageFormatProperties where
+        (VkImageFormatProperties## a _) `compare`
+          x@(VkImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageFormatProperties where
+        sizeOf ~_ = #{size VkImageFormatProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageFormatProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageFormatProperties where
+        unsafeAddr (VkImageFormatProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageFormatProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageFormatProperties## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageFormatProperties where
+        type StructFields VkImageFormatProperties =
+             '["maxExtent", "maxMipLevels", "maxArrayLayers", "sampleCounts", -- ' closing tick for hsc2hs
+               "maxResourceSize"]
+        type CUnionType VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkImageFormatProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "maxExtent" VkImageFormatProperties where
+        type FieldType "maxExtent" VkImageFormatProperties = VkExtent3D
+        type FieldOptional "maxExtent" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxExtent" VkImageFormatProperties =
+             #{offset VkImageFormatProperties, maxExtent}
+        type FieldIsArray "maxExtent" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties, maxExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxExtent" VkImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties, maxExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxExtent" VkImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties, maxExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMipLevels" VkImageFormatProperties where
+        type FieldType "maxMipLevels" VkImageFormatProperties = Word32
+        type FieldOptional "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMipLevels" VkImageFormatProperties =
+             #{offset VkImageFormatProperties, maxMipLevels}
+        type FieldIsArray "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties, maxMipLevels}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMipLevels" VkImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxMipLevels})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties, maxMipLevels}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMipLevels" VkImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties, maxMipLevels}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxArrayLayers" VkImageFormatProperties where
+        type FieldType "maxArrayLayers" VkImageFormatProperties = Word32
+        type FieldOptional "maxArrayLayers" VkImageFormatProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxArrayLayers" VkImageFormatProperties =
+             #{offset VkImageFormatProperties, maxArrayLayers}
+        type FieldIsArray "maxArrayLayers" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties, maxArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxArrayLayers" VkImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties, maxArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxArrayLayers" VkImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties, maxArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleCounts" VkImageFormatProperties where
+        type FieldType "sampleCounts" VkImageFormatProperties =
+             VkSampleCountFlags
+        type FieldOptional "sampleCounts" VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampleCounts" VkImageFormatProperties =
+             #{offset VkImageFormatProperties, sampleCounts}
+        type FieldIsArray "sampleCounts" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties, sampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleCounts" VkImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, sampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties, sampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleCounts" VkImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties, sampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxResourceSize" VkImageFormatProperties where
+        type FieldType "maxResourceSize" VkImageFormatProperties =
+             VkDeviceSize
+        type FieldOptional "maxResourceSize" VkImageFormatProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxResourceSize" VkImageFormatProperties =
+             #{offset VkImageFormatProperties, maxResourceSize}
+        type FieldIsArray "maxResourceSize" VkImageFormatProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties, maxResourceSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxResourceSize" VkImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxResourceSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties, maxResourceSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxResourceSize" VkImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties, maxResourceSize}
+
+instance Show VkImageFormatProperties where
+        showsPrec d x
+          = showString "VkImageFormatProperties {" .
+              showString "maxExtent = " .
+                showsPrec d (getField @"maxExtent" x) .
+                  showString ", " .
+                    showString "maxMipLevels = " .
+                      showsPrec d (getField @"maxMipLevels" x) .
+                        showString ", " .
+                          showString "maxArrayLayers = " .
+                            showsPrec d (getField @"maxArrayLayers" x) .
+                              showString ", " .
+                                showString "sampleCounts = " .
+                                  showsPrec d (getField @"sampleCounts" x) .
+                                    showString ", " .
+                                      showString "maxResourceSize = " .
+                                        showsPrec d (getField @"maxResourceSize" x) . showChar '}'
+
+-- | > typedef struct VkImageFormatProperties2 {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     VkImageFormatProperties          imageFormatProperties;
+--   > } VkImageFormatProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageFormatProperties2 VkImageFormatProperties2 registry at www.khronos.org>
+data VkImageFormatProperties2 = VkImageFormatProperties2## Addr##
+                                                          ByteArray##
+
+instance Eq VkImageFormatProperties2 where
+        (VkImageFormatProperties2## a _) ==
+          x@(VkImageFormatProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageFormatProperties2 where
+        (VkImageFormatProperties2## a _) `compare`
+          x@(VkImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageFormatProperties2 where
+        sizeOf ~_ = #{size VkImageFormatProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageFormatProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageFormatProperties2 where
+        unsafeAddr (VkImageFormatProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageFormatProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageFormatProperties2## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageFormatProperties2 where
+        type StructFields VkImageFormatProperties2 =
+             '["sType", "pNext", "imageFormatProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageFormatProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkImageFormatProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageFormatProperties2 where
+        type FieldType "sType" VkImageFormatProperties2 = VkStructureType
+        type FieldOptional "sType" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageFormatProperties2 =
+             #{offset VkImageFormatProperties2, sType}
+        type FieldIsArray "sType" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageFormatProperties2 where
+        type FieldType "pNext" VkImageFormatProperties2 = Ptr Void
+        type FieldOptional "pNext" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageFormatProperties2 =
+             #{offset VkImageFormatProperties2, pNext}
+        type FieldIsArray "pNext" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageFormatProperties" VkImageFormatProperties2 where
+        type FieldType "imageFormatProperties" VkImageFormatProperties2 =
+             VkImageFormatProperties
+        type FieldOptional "imageFormatProperties" VkImageFormatProperties2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageFormatProperties" VkImageFormatProperties2 =
+             #{offset VkImageFormatProperties2, imageFormatProperties}
+        type FieldIsArray "imageFormatProperties" VkImageFormatProperties2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageFormatProperties2, imageFormatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageFormatProperties" VkImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, imageFormatProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageFormatProperties2, imageFormatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageFormatProperties" VkImageFormatProperties2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageFormatProperties2, imageFormatProperties}
+
+instance Show VkImageFormatProperties2 where
+        showsPrec d x
+          = showString "VkImageFormatProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "imageFormatProperties = " .
+                            showsPrec d (getField @"imageFormatProperties" x) . showChar '}'
+
+-- | Alias for `VkImageFormatProperties2`
+type VkImageFormatProperties2KHR = VkImageFormatProperties2
+
+-- | > typedef struct VkImageMemoryBarrier {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkAccessFlags          srcAccessMask;
+--   >     VkAccessFlags          dstAccessMask;
+--   >     VkImageLayout          oldLayout;
+--   >     VkImageLayout          newLayout;
+--   >     uint32_t               srcQueueFamilyIndex;
+--   >     uint32_t               dstQueueFamilyIndex;
+--   >     VkImage                image;
+--   >     VkImageSubresourceRange subresourceRange;
+--   > } VkImageMemoryBarrier;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageMemoryBarrier VkImageMemoryBarrier registry at www.khronos.org>
+data VkImageMemoryBarrier = VkImageMemoryBarrier## Addr## ByteArray##
+
+instance Eq VkImageMemoryBarrier where
+        (VkImageMemoryBarrier## a _) == x@(VkImageMemoryBarrier## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageMemoryBarrier where
+        (VkImageMemoryBarrier## a _) `compare` x@(VkImageMemoryBarrier## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageMemoryBarrier where
+        sizeOf ~_ = #{size VkImageMemoryBarrier}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageMemoryBarrier}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageMemoryBarrier where
+        unsafeAddr (VkImageMemoryBarrier## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageMemoryBarrier## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageMemoryBarrier where
+        type StructFields VkImageMemoryBarrier =
+             '["sType", "pNext", "srcAccessMask", "dstAccessMask", "oldLayout", -- ' closing tick for hsc2hs
+               "newLayout", "srcQueueFamilyIndex", "dstQueueFamilyIndex", "image",
+               "subresourceRange"]
+        type CUnionType VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageMemoryBarrier = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkImageMemoryBarrier
+         where
+        type FieldType "sType" VkImageMemoryBarrier = VkStructureType
+        type FieldOptional "sType" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, sType}
+        type FieldIsArray "sType" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkImageMemoryBarrier
+         where
+        type FieldType "pNext" VkImageMemoryBarrier = Ptr Void
+        type FieldOptional "pNext" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, pNext}
+        type FieldIsArray "pNext" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcAccessMask" VkImageMemoryBarrier where
+        type FieldType "srcAccessMask" VkImageMemoryBarrier = VkAccessFlags
+        type FieldOptional "srcAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "srcAccessMask" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, srcAccessMask}
+        type FieldIsArray "srcAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcAccessMask" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, srcAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcAccessMask" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstAccessMask" VkImageMemoryBarrier where
+        type FieldType "dstAccessMask" VkImageMemoryBarrier = VkAccessFlags
+        type FieldOptional "dstAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dstAccessMask" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, dstAccessMask}
+        type FieldIsArray "dstAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstAccessMask" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, dstAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstAccessMask" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "oldLayout" VkImageMemoryBarrier where
+        type FieldType "oldLayout" VkImageMemoryBarrier = VkImageLayout
+        type FieldOptional "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "oldLayout" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, oldLayout}
+        type FieldIsArray "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageMemoryBarrier, oldLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "oldLayout" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, oldLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, oldLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "oldLayout" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, oldLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "newLayout" VkImageMemoryBarrier where
+        type FieldType "newLayout" VkImageMemoryBarrier = VkImageLayout
+        type FieldOptional "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "newLayout" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, newLayout}
+        type FieldIsArray "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageMemoryBarrier, newLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "newLayout" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, newLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, newLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "newLayout" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, newLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcQueueFamilyIndex" VkImageMemoryBarrier where
+        type FieldType "srcQueueFamilyIndex" VkImageMemoryBarrier = Word32
+        type FieldOptional "srcQueueFamilyIndex" VkImageMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcQueueFamilyIndex" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
+        type FieldIsArray "srcQueueFamilyIndex" VkImageMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcQueueFamilyIndex" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, srcQueueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcQueueFamilyIndex" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstQueueFamilyIndex" VkImageMemoryBarrier where
+        type FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier = Word32
+        type FieldOptional "dstQueueFamilyIndex" VkImageMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstQueueFamilyIndex" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
+        type FieldIsArray "dstQueueFamilyIndex" VkImageMemoryBarrier =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstQueueFamilyIndex" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, dstQueueFamilyIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstQueueFamilyIndex" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
+
+instance {-# OVERLAPPING #-} HasField "image" VkImageMemoryBarrier
+         where
+        type FieldType "image" VkImageMemoryBarrier = VkImage
+        type FieldOptional "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, image}
+        type FieldIsArray "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageMemoryBarrier, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "subresourceRange" VkImageMemoryBarrier where
+        type FieldType "subresourceRange" VkImageMemoryBarrier =
+             VkImageSubresourceRange
+        type FieldOptional "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subresourceRange" VkImageMemoryBarrier =
+             #{offset VkImageMemoryBarrier, subresourceRange}
+        type FieldIsArray "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryBarrier, subresourceRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subresourceRange" VkImageMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, subresourceRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryBarrier, subresourceRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subresourceRange" VkImageMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryBarrier, subresourceRange}
+
+instance Show VkImageMemoryBarrier where
+        showsPrec d x
+          = showString "VkImageMemoryBarrier {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcAccessMask = " .
+                            showsPrec d (getField @"srcAccessMask" x) .
+                              showString ", " .
+                                showString "dstAccessMask = " .
+                                  showsPrec d (getField @"dstAccessMask" x) .
+                                    showString ", " .
+                                      showString "oldLayout = " .
+                                        showsPrec d (getField @"oldLayout" x) .
+                                          showString ", " .
+                                            showString "newLayout = " .
+                                              showsPrec d (getField @"newLayout" x) .
+                                                showString ", " .
+                                                  showString "srcQueueFamilyIndex = " .
+                                                    showsPrec d (getField @"srcQueueFamilyIndex" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "dstQueueFamilyIndex = " .
+                                                          showsPrec d
+                                                            (getField @"dstQueueFamilyIndex" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "image = " .
+                                                                showsPrec d (getField @"image" x) .
+                                                                  showString ", " .
+                                                                    showString "subresourceRange = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"subresourceRange"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | > typedef struct VkImageMemoryRequirementsInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                                                          pNext;
+--   >     VkImage                                                              image;
+--   > } VkImageMemoryRequirementsInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2 registry at www.khronos.org>
+data VkImageMemoryRequirementsInfo2 = VkImageMemoryRequirementsInfo2## Addr##
+                                                                      ByteArray##
+
+instance Eq VkImageMemoryRequirementsInfo2 where
+        (VkImageMemoryRequirementsInfo2## a _) ==
+          x@(VkImageMemoryRequirementsInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageMemoryRequirementsInfo2 where
+        (VkImageMemoryRequirementsInfo2## a _) `compare`
+          x@(VkImageMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageMemoryRequirementsInfo2 where
+        sizeOf ~_ = #{size VkImageMemoryRequirementsInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImageMemoryRequirementsInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageMemoryRequirementsInfo2 where
+        unsafeAddr (VkImageMemoryRequirementsInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageMemoryRequirementsInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageMemoryRequirementsInfo2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageMemoryRequirementsInfo2 where
+        type StructFields VkImageMemoryRequirementsInfo2 =
+             '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageMemoryRequirementsInfo2 where
+        type FieldType "sType" VkImageMemoryRequirementsInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageMemoryRequirementsInfo2 =
+             #{offset VkImageMemoryRequirementsInfo2, sType}
+        type FieldIsArray "sType" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageMemoryRequirementsInfo2 where
+        type FieldType "pNext" VkImageMemoryRequirementsInfo2 = Ptr Void
+        type FieldOptional "pNext" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageMemoryRequirementsInfo2 =
+             #{offset VkImageMemoryRequirementsInfo2, pNext}
+        type FieldIsArray "pNext" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkImageMemoryRequirementsInfo2 where
+        type FieldType "image" VkImageMemoryRequirementsInfo2 = VkImage
+        type FieldOptional "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkImageMemoryRequirementsInfo2 =
+             #{offset VkImageMemoryRequirementsInfo2, image}
+        type FieldIsArray "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageMemoryRequirementsInfo2, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkImageMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkImageMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, image}
+
+instance Show VkImageMemoryRequirementsInfo2 where
+        showsPrec d x
+          = showString "VkImageMemoryRequirementsInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "image = " .
+                            showsPrec d (getField @"image" x) . showChar '}'
+
+-- | Alias for `VkImageMemoryRequirementsInfo2`
+type VkImageMemoryRequirementsInfo2KHR =
+     VkImageMemoryRequirementsInfo2
+
+-- | > typedef struct VkImagePlaneMemoryRequirementsInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkImageAspectFlagBits            planeAspect;
+--   > } VkImagePlaneMemoryRequirementsInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfo registry at www.khronos.org>
+data VkImagePlaneMemoryRequirementsInfo = VkImagePlaneMemoryRequirementsInfo## Addr##
+                                                                              ByteArray##
+
+instance Eq VkImagePlaneMemoryRequirementsInfo where
+        (VkImagePlaneMemoryRequirementsInfo## a _) ==
+          x@(VkImagePlaneMemoryRequirementsInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImagePlaneMemoryRequirementsInfo where
+        (VkImagePlaneMemoryRequirementsInfo## a _) `compare`
+          x@(VkImagePlaneMemoryRequirementsInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImagePlaneMemoryRequirementsInfo where
+        sizeOf ~_ = #{size VkImagePlaneMemoryRequirementsInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImagePlaneMemoryRequirementsInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImagePlaneMemoryRequirementsInfo where
+        unsafeAddr (VkImagePlaneMemoryRequirementsInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImagePlaneMemoryRequirementsInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImagePlaneMemoryRequirementsInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImagePlaneMemoryRequirementsInfo where
+        type StructFields VkImagePlaneMemoryRequirementsInfo =
+             '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
+        type CUnionType VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImagePlaneMemoryRequirementsInfo =
+             '[VkImageMemoryRequirementsInfo2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImagePlaneMemoryRequirementsInfo where
+        type FieldType "sType" VkImagePlaneMemoryRequirementsInfo =
+             VkStructureType
+        type FieldOptional "sType" VkImagePlaneMemoryRequirementsInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImagePlaneMemoryRequirementsInfo =
+             #{offset VkImagePlaneMemoryRequirementsInfo, sType}
+        type FieldIsArray "sType" VkImagePlaneMemoryRequirementsInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImagePlaneMemoryRequirementsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImagePlaneMemoryRequirementsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImagePlaneMemoryRequirementsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImagePlaneMemoryRequirementsInfo where
+        type FieldType "pNext" VkImagePlaneMemoryRequirementsInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkImagePlaneMemoryRequirementsInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImagePlaneMemoryRequirementsInfo =
+             #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
+        type FieldIsArray "pNext" VkImagePlaneMemoryRequirementsInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImagePlaneMemoryRequirementsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImagePlaneMemoryRequirementsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "planeAspect" VkImagePlaneMemoryRequirementsInfo where
+        type FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo =
+             VkImageAspectFlagBits
+        type FieldOptional "planeAspect" VkImagePlaneMemoryRequirementsInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "planeAspect" VkImagePlaneMemoryRequirementsInfo =
+             #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
+        type FieldIsArray "planeAspect" VkImagePlaneMemoryRequirementsInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "planeAspect" VkImagePlaneMemoryRequirementsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "planeAspect" VkImagePlaneMemoryRequirementsInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
+
+instance Show VkImagePlaneMemoryRequirementsInfo where
+        showsPrec d x
+          = showString "VkImagePlaneMemoryRequirementsInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "planeAspect = " .
+                            showsPrec d (getField @"planeAspect" x) . showChar '}'
+
+-- | Alias for `VkImagePlaneMemoryRequirementsInfo`
+type VkImagePlaneMemoryRequirementsInfoKHR =
+     VkImagePlaneMemoryRequirementsInfo
+
+-- | > typedef struct VkImageResolve {
+--   >     VkImageSubresourceLayers srcSubresource;
+--   >     VkOffset3D             srcOffset;
+--   >     VkImageSubresourceLayers dstSubresource;
+--   >     VkOffset3D             dstOffset;
+--   >     VkExtent3D             extent;
+--   > } VkImageResolve;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageResolve VkImageResolve registry at www.khronos.org>
+data VkImageResolve = VkImageResolve## Addr## ByteArray##
+
+instance Eq VkImageResolve where
+        (VkImageResolve## a _) == x@(VkImageResolve## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageResolve where
+        (VkImageResolve## a _) `compare` x@(VkImageResolve## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageResolve where
+        sizeOf ~_ = #{size VkImageResolve}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageResolve}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageResolve where
+        unsafeAddr (VkImageResolve## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageResolve## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageResolve## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageResolve where
+        type StructFields VkImageResolve =
+             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
+               "extent"]
+        type CUnionType VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageResolve = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "srcSubresource" VkImageResolve where
+        type FieldType "srcSubresource" VkImageResolve =
+             VkImageSubresourceLayers
+        type FieldOptional "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcSubresource" VkImageResolve =
+             #{offset VkImageResolve, srcSubresource}
+        type FieldIsArray "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageResolve, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcSubresource" VkImageResolve where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageResolve, srcSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageResolve, srcSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcSubresource" VkImageResolve where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageResolve, srcSubresource}
+
+instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageResolve
+         where
+        type FieldType "srcOffset" VkImageResolve = VkOffset3D
+        type FieldOptional "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcOffset" VkImageResolve =
+             #{offset VkImageResolve, srcOffset}
+        type FieldIsArray "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageResolve, srcOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcOffset" VkImageResolve where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageResolve, srcOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageResolve, srcOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcOffset" VkImageResolve where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageResolve, srcOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstSubresource" VkImageResolve where
+        type FieldType "dstSubresource" VkImageResolve =
+             VkImageSubresourceLayers
+        type FieldOptional "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSubresource" VkImageResolve =
+             #{offset VkImageResolve, dstSubresource}
+        type FieldIsArray "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageResolve, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSubresource" VkImageResolve where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageResolve, dstSubresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageResolve, dstSubresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSubresource" VkImageResolve where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageResolve, dstSubresource}
+
+instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageResolve
+         where
+        type FieldType "dstOffset" VkImageResolve = VkOffset3D
+        type FieldOptional "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstOffset" VkImageResolve =
+             #{offset VkImageResolve, dstOffset}
+        type FieldIsArray "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageResolve, dstOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstOffset" VkImageResolve where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageResolve, dstOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageResolve, dstOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstOffset" VkImageResolve where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageResolve, dstOffset}
+
+instance {-# OVERLAPPING #-} HasField "extent" VkImageResolve where
+        type FieldType "extent" VkImageResolve = VkExtent3D
+        type FieldOptional "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkImageResolve =
+             #{offset VkImageResolve, extent}
+        type FieldIsArray "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageResolve, extent}
+
+instance {-# OVERLAPPING #-} CanReadField "extent" VkImageResolve
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageResolve, extent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageResolve, extent}
+
+instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageResolve
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageResolve, extent}
+
+instance Show VkImageResolve where
+        showsPrec d x
+          = showString "VkImageResolve {" .
+              showString "srcSubresource = " .
+                showsPrec d (getField @"srcSubresource" x) .
+                  showString ", " .
+                    showString "srcOffset = " .
+                      showsPrec d (getField @"srcOffset" x) .
+                        showString ", " .
+                          showString "dstSubresource = " .
+                            showsPrec d (getField @"dstSubresource" x) .
+                              showString ", " .
+                                showString "dstOffset = " .
+                                  showsPrec d (getField @"dstOffset" x) .
+                                    showString ", " .
+                                      showString "extent = " .
+                                        showsPrec d (getField @"extent" x) . showChar '}'
+
+-- | > typedef struct VkImageSparseMemoryRequirementsInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                                                          pNext;
+--   >     VkImage                                                              image;
+--   > } VkImageSparseMemoryRequirementsInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2 registry at www.khronos.org>
+data VkImageSparseMemoryRequirementsInfo2 = VkImageSparseMemoryRequirementsInfo2## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkImageSparseMemoryRequirementsInfo2 where
+        (VkImageSparseMemoryRequirementsInfo2## a _) ==
+          x@(VkImageSparseMemoryRequirementsInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageSparseMemoryRequirementsInfo2 where
+        (VkImageSparseMemoryRequirementsInfo2## a _) `compare`
+          x@(VkImageSparseMemoryRequirementsInfo2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageSparseMemoryRequirementsInfo2 where
+        sizeOf ~_
+          = #{size VkImageSparseMemoryRequirementsInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImageSparseMemoryRequirementsInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageSparseMemoryRequirementsInfo2
+         where
+        unsafeAddr (VkImageSparseMemoryRequirementsInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageSparseMemoryRequirementsInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageSparseMemoryRequirementsInfo2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageSparseMemoryRequirementsInfo2 where
+        type StructFields VkImageSparseMemoryRequirementsInfo2 =
+             '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageSparseMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageSparseMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageSparseMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageSparseMemoryRequirementsInfo2 where
+        type FieldType "sType" VkImageSparseMemoryRequirementsInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageSparseMemoryRequirementsInfo2 =
+             #{offset VkImageSparseMemoryRequirementsInfo2, sType}
+        type FieldIsArray "sType" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSparseMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageSparseMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageSparseMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageSparseMemoryRequirementsInfo2 where
+        type FieldType "pNext" VkImageSparseMemoryRequirementsInfo2 =
+             Ptr Void
+        type FieldOptional "pNext" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageSparseMemoryRequirementsInfo2 =
+             #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
+        type FieldIsArray "pNext" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageSparseMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageSparseMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkImageSparseMemoryRequirementsInfo2 where
+        type FieldType "image" VkImageSparseMemoryRequirementsInfo2 =
+             VkImage
+        type FieldOptional "image" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkImageSparseMemoryRequirementsInfo2 =
+             #{offset VkImageSparseMemoryRequirementsInfo2, image}
+        type FieldIsArray "image" VkImageSparseMemoryRequirementsInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSparseMemoryRequirementsInfo2, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkImageSparseMemoryRequirementsInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkImageSparseMemoryRequirementsInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, image}
+
+instance Show VkImageSparseMemoryRequirementsInfo2 where
+        showsPrec d x
+          = showString "VkImageSparseMemoryRequirementsInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "image = " .
+                            showsPrec d (getField @"image" x) . showChar '}'
+
+-- | Alias for `VkImageSparseMemoryRequirementsInfo2`
+type VkImageSparseMemoryRequirementsInfo2KHR =
+     VkImageSparseMemoryRequirementsInfo2
+
+-- | > typedef struct VkImageSubresource {
+--   >     VkImageAspectFlags     aspectMask;
+--   >     uint32_t               mipLevel;
+--   >     uint32_t               arrayLayer;
+--   > } VkImageSubresource;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresource VkImageSubresource registry at www.khronos.org>
+data VkImageSubresource = VkImageSubresource## Addr## ByteArray##
+
+instance Eq VkImageSubresource where
+        (VkImageSubresource## a _) == x@(VkImageSubresource## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageSubresource where
+        (VkImageSubresource## a _) `compare` x@(VkImageSubresource## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageSubresource where
+        sizeOf ~_ = #{size VkImageSubresource}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageSubresource}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageSubresource where
+        unsafeAddr (VkImageSubresource## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageSubresource## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageSubresource## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageSubresource where
+        type StructFields VkImageSubresource =
+             '["aspectMask", "mipLevel", "arrayLayer"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageSubresource = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageSubresource = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageSubresource = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkImageSubresource where
+        type FieldType "aspectMask" VkImageSubresource = VkImageAspectFlags
+        type FieldOptional "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkImageSubresource =
+             #{offset VkImageSubresource, aspectMask}
+        type FieldIsArray "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageSubresource, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkImageSubresource where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresource, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkImageSubresource where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresource, aspectMask}
+
+instance {-# OVERLAPPING #-} HasField "mipLevel" VkImageSubresource
+         where
+        type FieldType "mipLevel" VkImageSubresource = Word32
+        type FieldOptional "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipLevel" VkImageSubresource =
+             #{offset VkImageSubresource, mipLevel}
+        type FieldIsArray "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageSubresource, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipLevel" VkImageSubresource where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, mipLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresource, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipLevel" VkImageSubresource where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresource, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "arrayLayer" VkImageSubresource where
+        type FieldType "arrayLayer" VkImageSubresource = Word32
+        type FieldOptional "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "arrayLayer" VkImageSubresource =
+             #{offset VkImageSubresource, arrayLayer}
+        type FieldIsArray "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageSubresource, arrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "arrayLayer" VkImageSubresource where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, arrayLayer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresource, arrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "arrayLayer" VkImageSubresource where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresource, arrayLayer}
+
+instance Show VkImageSubresource where
+        showsPrec d x
+          = showString "VkImageSubresource {" .
+              showString "aspectMask = " .
+                showsPrec d (getField @"aspectMask" x) .
+                  showString ", " .
+                    showString "mipLevel = " .
+                      showsPrec d (getField @"mipLevel" x) .
+                        showString ", " .
+                          showString "arrayLayer = " .
+                            showsPrec d (getField @"arrayLayer" x) . showChar '}'
+
+-- | > typedef struct VkImageSubresourceLayers {
+--   >     VkImageAspectFlags     aspectMask;
+--   >     uint32_t               mipLevel;
+--   >     uint32_t               baseArrayLayer;
+--   >     uint32_t               layerCount;
+--   > } VkImageSubresourceLayers;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceLayers VkImageSubresourceLayers registry at www.khronos.org>
+data VkImageSubresourceLayers = VkImageSubresourceLayers## Addr##
+                                                          ByteArray##
+
+instance Eq VkImageSubresourceLayers where
+        (VkImageSubresourceLayers## a _) ==
+          x@(VkImageSubresourceLayers## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageSubresourceLayers where
+        (VkImageSubresourceLayers## a _) `compare`
+          x@(VkImageSubresourceLayers## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageSubresourceLayers where
+        sizeOf ~_ = #{size VkImageSubresourceLayers}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageSubresourceLayers}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageSubresourceLayers where
+        unsafeAddr (VkImageSubresourceLayers## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageSubresourceLayers## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageSubresourceLayers## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageSubresourceLayers where
+        type StructFields VkImageSubresourceLayers =
+             '["aspectMask", "mipLevel", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageSubresourceLayers = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkImageSubresourceLayers where
+        type FieldType "aspectMask" VkImageSubresourceLayers =
+             VkImageAspectFlags
+        type FieldOptional "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkImageSubresourceLayers =
+             #{offset VkImageSubresourceLayers, aspectMask}
+        type FieldIsArray "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceLayers, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkImageSubresourceLayers where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceLayers, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkImageSubresourceLayers where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceLayers, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "mipLevel" VkImageSubresourceLayers where
+        type FieldType "mipLevel" VkImageSubresourceLayers = Word32
+        type FieldOptional "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipLevel" VkImageSubresourceLayers =
+             #{offset VkImageSubresourceLayers, mipLevel}
+        type FieldIsArray "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceLayers, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipLevel" VkImageSubresourceLayers where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, mipLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceLayers, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipLevel" VkImageSubresourceLayers where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceLayers, mipLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "baseArrayLayer" VkImageSubresourceLayers where
+        type FieldType "baseArrayLayer" VkImageSubresourceLayers = Word32
+        type FieldOptional "baseArrayLayer" VkImageSubresourceLayers =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "baseArrayLayer" VkImageSubresourceLayers =
+             #{offset VkImageSubresourceLayers, baseArrayLayer}
+        type FieldIsArray "baseArrayLayer" VkImageSubresourceLayers =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceLayers, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "baseArrayLayer" VkImageSubresourceLayers where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, baseArrayLayer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceLayers, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "baseArrayLayer" VkImageSubresourceLayers where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceLayers, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         HasField "layerCount" VkImageSubresourceLayers where
+        type FieldType "layerCount" VkImageSubresourceLayers = Word32
+        type FieldOptional "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layerCount" VkImageSubresourceLayers =
+             #{offset VkImageSubresourceLayers, layerCount}
+        type FieldIsArray "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceLayers, layerCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layerCount" VkImageSubresourceLayers where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, layerCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceLayers, layerCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layerCount" VkImageSubresourceLayers where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceLayers, layerCount}
+
+instance Show VkImageSubresourceLayers where
+        showsPrec d x
+          = showString "VkImageSubresourceLayers {" .
+              showString "aspectMask = " .
+                showsPrec d (getField @"aspectMask" x) .
+                  showString ", " .
+                    showString "mipLevel = " .
+                      showsPrec d (getField @"mipLevel" x) .
+                        showString ", " .
+                          showString "baseArrayLayer = " .
+                            showsPrec d (getField @"baseArrayLayer" x) .
+                              showString ", " .
+                                showString "layerCount = " .
+                                  showsPrec d (getField @"layerCount" x) . showChar '}'
+
+-- | > typedef struct VkImageSubresourceRange {
+--   >     VkImageAspectFlags     aspectMask;
+--   >     uint32_t               baseMipLevel;
+--   >     uint32_t               levelCount;
+--   >     uint32_t               baseArrayLayer;
+--   >     uint32_t               layerCount;
+--   > } VkImageSubresourceRange;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSubresourceRange VkImageSubresourceRange registry at www.khronos.org>
+data VkImageSubresourceRange = VkImageSubresourceRange## Addr##
+                                                        ByteArray##
+
+instance Eq VkImageSubresourceRange where
+        (VkImageSubresourceRange## a _) == x@(VkImageSubresourceRange## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageSubresourceRange where
+        (VkImageSubresourceRange## a _) `compare`
+          x@(VkImageSubresourceRange## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageSubresourceRange where
+        sizeOf ~_ = #{size VkImageSubresourceRange}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageSubresourceRange}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageSubresourceRange where
+        unsafeAddr (VkImageSubresourceRange## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageSubresourceRange## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageSubresourceRange## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageSubresourceRange where
+        type StructFields VkImageSubresourceRange =
+             '["aspectMask", "baseMipLevel", "levelCount", "baseArrayLayer", -- ' closing tick for hsc2hs
+               "layerCount"]
+        type CUnionType VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageSubresourceRange = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkImageSubresourceRange where
+        type FieldType "aspectMask" VkImageSubresourceRange =
+             VkImageAspectFlags
+        type FieldOptional "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkImageSubresourceRange =
+             #{offset VkImageSubresourceRange, aspectMask}
+        type FieldIsArray "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceRange, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkImageSubresourceRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceRange, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkImageSubresourceRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceRange, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "baseMipLevel" VkImageSubresourceRange where
+        type FieldType "baseMipLevel" VkImageSubresourceRange = Word32
+        type FieldOptional "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "baseMipLevel" VkImageSubresourceRange =
+             #{offset VkImageSubresourceRange, baseMipLevel}
+        type FieldIsArray "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceRange, baseMipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "baseMipLevel" VkImageSubresourceRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, baseMipLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceRange, baseMipLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "baseMipLevel" VkImageSubresourceRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceRange, baseMipLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "levelCount" VkImageSubresourceRange where
+        type FieldType "levelCount" VkImageSubresourceRange = Word32
+        type FieldOptional "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "levelCount" VkImageSubresourceRange =
+             #{offset VkImageSubresourceRange, levelCount}
+        type FieldIsArray "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceRange, levelCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "levelCount" VkImageSubresourceRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, levelCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceRange, levelCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "levelCount" VkImageSubresourceRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceRange, levelCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "baseArrayLayer" VkImageSubresourceRange where
+        type FieldType "baseArrayLayer" VkImageSubresourceRange = Word32
+        type FieldOptional "baseArrayLayer" VkImageSubresourceRange =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "baseArrayLayer" VkImageSubresourceRange =
+             #{offset VkImageSubresourceRange, baseArrayLayer}
+        type FieldIsArray "baseArrayLayer" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceRange, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "baseArrayLayer" VkImageSubresourceRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, baseArrayLayer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceRange, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "baseArrayLayer" VkImageSubresourceRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceRange, baseArrayLayer}
+
+instance {-# OVERLAPPING #-}
+         HasField "layerCount" VkImageSubresourceRange where
+        type FieldType "layerCount" VkImageSubresourceRange = Word32
+        type FieldOptional "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layerCount" VkImageSubresourceRange =
+             #{offset VkImageSubresourceRange, layerCount}
+        type FieldIsArray "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSubresourceRange, layerCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layerCount" VkImageSubresourceRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, layerCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSubresourceRange, layerCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layerCount" VkImageSubresourceRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSubresourceRange, layerCount}
+
+instance Show VkImageSubresourceRange where
+        showsPrec d x
+          = showString "VkImageSubresourceRange {" .
+              showString "aspectMask = " .
+                showsPrec d (getField @"aspectMask" x) .
+                  showString ", " .
+                    showString "baseMipLevel = " .
+                      showsPrec d (getField @"baseMipLevel" x) .
+                        showString ", " .
+                          showString "levelCount = " .
+                            showsPrec d (getField @"levelCount" x) .
+                              showString ", " .
+                                showString "baseArrayLayer = " .
+                                  showsPrec d (getField @"baseArrayLayer" x) .
+                                    showString ", " .
+                                      showString "layerCount = " .
+                                        showsPrec d (getField @"layerCount" x) . showChar '}'
+
+-- | > typedef struct VkImageSwapchainCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSwapchainKHR   swapchain;
+--   > } VkImageSwapchainCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageSwapchainCreateInfoKHR VkImageSwapchainCreateInfoKHR registry at www.khronos.org>
+data VkImageSwapchainCreateInfoKHR = VkImageSwapchainCreateInfoKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkImageSwapchainCreateInfoKHR where
+        (VkImageSwapchainCreateInfoKHR## a _) ==
+          x@(VkImageSwapchainCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageSwapchainCreateInfoKHR where
+        (VkImageSwapchainCreateInfoKHR## a _) `compare`
+          x@(VkImageSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageSwapchainCreateInfoKHR where
+        sizeOf ~_ = #{size VkImageSwapchainCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImageSwapchainCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageSwapchainCreateInfoKHR where
+        unsafeAddr (VkImageSwapchainCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageSwapchainCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageSwapchainCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageSwapchainCreateInfoKHR where
+        type StructFields VkImageSwapchainCreateInfoKHR =
+             '["sType", "pNext", "swapchain"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageSwapchainCreateInfoKHR =
+             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageSwapchainCreateInfoKHR where
+        type FieldType "sType" VkImageSwapchainCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageSwapchainCreateInfoKHR =
+             #{offset VkImageSwapchainCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageSwapchainCreateInfoKHR where
+        type FieldType "pNext" VkImageSwapchainCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageSwapchainCreateInfoKHR =
+             #{offset VkImageSwapchainCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchain" VkImageSwapchainCreateInfoKHR where
+        type FieldType "swapchain" VkImageSwapchainCreateInfoKHR =
+             VkSwapchainKHR
+        type FieldOptional "swapchain" VkImageSwapchainCreateInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "swapchain" VkImageSwapchainCreateInfoKHR =
+             #{offset VkImageSwapchainCreateInfoKHR, swapchain}
+        type FieldIsArray "swapchain" VkImageSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageSwapchainCreateInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchain" VkImageSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, swapchain})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, swapchain}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchain" VkImageSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, swapchain}
+
+instance Show VkImageSwapchainCreateInfoKHR where
+        showsPrec d x
+          = showString "VkImageSwapchainCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchain = " .
+                            showsPrec d (getField @"swapchain" x) . showChar '}'
+
+-- | > typedef struct VkImageViewCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkImageViewCreateFlags flags;
+--   >     VkImage                image;
+--   >     VkImageViewType        viewType;
+--   >     VkFormat               format;
+--   >     VkComponentMapping     components;
+--   >     VkImageSubresourceRange subresourceRange;
+--   > } VkImageViewCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewCreateInfo VkImageViewCreateInfo registry at www.khronos.org>
+data VkImageViewCreateInfo = VkImageViewCreateInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkImageViewCreateInfo where
+        (VkImageViewCreateInfo## a _) == x@(VkImageViewCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageViewCreateInfo where
+        (VkImageViewCreateInfo## a _) `compare`
+          x@(VkImageViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageViewCreateInfo where
+        sizeOf ~_ = #{size VkImageViewCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageViewCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageViewCreateInfo where
+        unsafeAddr (VkImageViewCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageViewCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageViewCreateInfo where
+        type StructFields VkImageViewCreateInfo =
+             '["sType", "pNext", "flags", "image", "viewType", "format", -- ' closing tick for hsc2hs
+               "components", "subresourceRange"]
+        type CUnionType VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageViewCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkImageViewCreateInfo
+         where
+        type FieldType "sType" VkImageViewCreateInfo = VkStructureType
+        type FieldOptional "sType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, sType}
+        type FieldIsArray "sType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkImageViewCreateInfo
+         where
+        type FieldType "pNext" VkImageViewCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, pNext}
+        type FieldIsArray "pNext" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkImageViewCreateInfo
+         where
+        type FieldType "flags" VkImageViewCreateInfo =
+             VkImageViewCreateFlags
+        type FieldOptional "flags" VkImageViewCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, flags}
+        type FieldIsArray "flags" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, flags}
+
+instance {-# OVERLAPPING #-} HasField "image" VkImageViewCreateInfo
+         where
+        type FieldType "image" VkImageViewCreateInfo = VkImage
+        type FieldOptional "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, image}
+        type FieldIsArray "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewType" VkImageViewCreateInfo where
+        type FieldType "viewType" VkImageViewCreateInfo = VkImageViewType
+        type FieldOptional "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewType" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, viewType}
+        type FieldIsArray "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, viewType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewType" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, viewType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, viewType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewType" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, viewType}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkImageViewCreateInfo where
+        type FieldType "format" VkImageViewCreateInfo = VkFormat
+        type FieldOptional "format" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, format}
+        type FieldIsArray "format" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImageViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "components" VkImageViewCreateInfo where
+        type FieldType "components" VkImageViewCreateInfo =
+             VkComponentMapping
+        type FieldOptional "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "components" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, components}
+        type FieldIsArray "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageViewCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "components" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, components})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "components" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         HasField "subresourceRange" VkImageViewCreateInfo where
+        type FieldType "subresourceRange" VkImageViewCreateInfo =
+             VkImageSubresourceRange
+        type FieldOptional "subresourceRange" VkImageViewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subresourceRange" VkImageViewCreateInfo =
+             #{offset VkImageViewCreateInfo, subresourceRange}
+        type FieldIsArray "subresourceRange" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageViewCreateInfo, subresourceRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subresourceRange" VkImageViewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, subresourceRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewCreateInfo, subresourceRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subresourceRange" VkImageViewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewCreateInfo, subresourceRange}
+
+instance Show VkImageViewCreateInfo where
+        showsPrec d x
+          = showString "VkImageViewCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "image = " .
+                                  showsPrec d (getField @"image" x) .
+                                    showString ", " .
+                                      showString "viewType = " .
+                                        showsPrec d (getField @"viewType" x) .
+                                          showString ", " .
+                                            showString "format = " .
+                                              showsPrec d (getField @"format" x) .
+                                                showString ", " .
+                                                  showString "components = " .
+                                                    showsPrec d (getField @"components" x) .
+                                                      showString ", " .
+                                                        showString "subresourceRange = " .
+                                                          showsPrec d
+                                                            (getField @"subresourceRange" x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkImageViewUsageCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkImageUsageFlags usage;
+--   > } VkImageViewUsageCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImageViewUsageCreateInfo VkImageViewUsageCreateInfo registry at www.khronos.org>
+data VkImageViewUsageCreateInfo = VkImageViewUsageCreateInfo## Addr##
+                                                              ByteArray##
+
+instance Eq VkImageViewUsageCreateInfo where
+        (VkImageViewUsageCreateInfo## a _) ==
+          x@(VkImageViewUsageCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImageViewUsageCreateInfo where
+        (VkImageViewUsageCreateInfo## a _) `compare`
+          x@(VkImageViewUsageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImageViewUsageCreateInfo where
+        sizeOf ~_ = #{size VkImageViewUsageCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImageViewUsageCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImageViewUsageCreateInfo where
+        unsafeAddr (VkImageViewUsageCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImageViewUsageCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImageViewUsageCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImageViewUsageCreateInfo where
+        type StructFields VkImageViewUsageCreateInfo =
+             '["sType", "pNext", "usage"] -- ' closing tick for hsc2hs
+        type CUnionType VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImageViewUsageCreateInfo =
+             '[VkImageViewCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImageViewUsageCreateInfo where
+        type FieldType "sType" VkImageViewUsageCreateInfo = VkStructureType
+        type FieldOptional "sType" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImageViewUsageCreateInfo =
+             #{offset VkImageViewUsageCreateInfo, sType}
+        type FieldIsArray "sType" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageViewUsageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImageViewUsageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewUsageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImageViewUsageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImageViewUsageCreateInfo where
+        type FieldType "pNext" VkImageViewUsageCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImageViewUsageCreateInfo =
+             #{offset VkImageViewUsageCreateInfo, pNext}
+        type FieldIsArray "pNext" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageViewUsageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImageViewUsageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewUsageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImageViewUsageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkImageViewUsageCreateInfo where
+        type FieldType "usage" VkImageViewUsageCreateInfo =
+             VkImageUsageFlags
+        type FieldOptional "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkImageViewUsageCreateInfo =
+             #{offset VkImageViewUsageCreateInfo, usage}
+        type FieldIsArray "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImageViewUsageCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkImageViewUsageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImageViewUsageCreateInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkImageViewUsageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, usage}
+
+instance Show VkImageViewUsageCreateInfo where
+        showsPrec d x
+          = showString "VkImageViewUsageCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "usage = " .
+                            showsPrec d (getField @"usage" x) . showChar '}'
+
+-- | Alias for `VkImageViewUsageCreateInfo`
+type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Import.hsc
@@ -0,0 +1,984 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Import
+       (VkImportFenceFdInfoKHR(..), VkImportMemoryFdInfoKHR(..),
+        VkImportMemoryHostPointerInfoEXT(..),
+        VkImportSemaphoreFdInfoKHR(..))
+       where
+import           Foreign.Storable                               (Storable (..))
+import           GHC.Base                                       (Addr##,
+                                                                 ByteArray##,
+                                                                 byteArrayContents##,
+                                                                 plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
+                                                                 VkExternalMemoryHandleTypeFlagBits,
+                                                                 VkExternalSemaphoreHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                  (VkFence,
+                                                                 VkSemaphore)
+import           Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
+import           System.IO.Unsafe                               (unsafeDupablePerformIO)
+
+-- | > typedef struct VkImportFenceFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                            pNext;
+--   >     VkFence              fence;
+--   >     VkFenceImportFlags  flags;
+--   >     VkExternalFenceHandleTypeFlagBits   handleType;
+--   >     int                                    fd;
+--   > } VkImportFenceFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportFenceFdInfoKHR VkImportFenceFdInfoKHR registry at www.khronos.org>
+data VkImportFenceFdInfoKHR = VkImportFenceFdInfoKHR## Addr##
+                                                      ByteArray##
+
+instance Eq VkImportFenceFdInfoKHR where
+        (VkImportFenceFdInfoKHR## a _) == x@(VkImportFenceFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportFenceFdInfoKHR where
+        (VkImportFenceFdInfoKHR## a _) `compare`
+          x@(VkImportFenceFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportFenceFdInfoKHR where
+        sizeOf ~_ = #{size VkImportFenceFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImportFenceFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportFenceFdInfoKHR where
+        unsafeAddr (VkImportFenceFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportFenceFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportFenceFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportFenceFdInfoKHR where
+        type StructFields VkImportFenceFdInfoKHR =
+             '["sType", "pNext", "fence", "flags", "handleType", "fd"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportFenceFdInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportFenceFdInfoKHR where
+        type FieldType "sType" VkImportFenceFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, sType}
+        type FieldIsArray "sType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportFenceFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportFenceFdInfoKHR where
+        type FieldType "pNext" VkImportFenceFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportFenceFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "fence" VkImportFenceFdInfoKHR where
+        type FieldType "fence" VkImportFenceFdInfoKHR = VkFence
+        type FieldOptional "fence" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fence" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, fence}
+        type FieldIsArray "fence" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportFenceFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fence" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, fence})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fence" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkImportFenceFdInfoKHR where
+        type FieldType "flags" VkImportFenceFdInfoKHR = VkFenceImportFlags
+        type FieldOptional "flags" VkImportFenceFdInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, flags}
+        type FieldIsArray "flags" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportFenceFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportFenceFdInfoKHR where
+        type FieldType "handleType" VkImportFenceFdInfoKHR =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-} HasField "fd" VkImportFenceFdInfoKHR
+         where
+        type FieldType "fd" VkImportFenceFdInfoKHR = CInt
+        type FieldOptional "fd" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fd" VkImportFenceFdInfoKHR =
+             #{offset VkImportFenceFdInfoKHR, fd}
+        type FieldIsArray "fd" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportFenceFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fd" VkImportFenceFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, fd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fd" VkImportFenceFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, fd}
+
+instance Show VkImportFenceFdInfoKHR where
+        showsPrec d x
+          = showString "VkImportFenceFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "fence = " .
+                            showsPrec d (getField @"fence" x) .
+                              showString ", " .
+                                showString "flags = " .
+                                  showsPrec d (getField @"flags" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) .
+                                          showString ", " .
+                                            showString "fd = " .
+                                              showsPrec d (getField @"fd" x) . showChar '}'
+
+-- | > typedef struct VkImportMemoryFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   >     int                              fd;
+--   > } VkImportMemoryFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryFdInfoKHR VkImportMemoryFdInfoKHR registry at www.khronos.org>
+data VkImportMemoryFdInfoKHR = VkImportMemoryFdInfoKHR## Addr##
+                                                        ByteArray##
+
+instance Eq VkImportMemoryFdInfoKHR where
+        (VkImportMemoryFdInfoKHR## a _) == x@(VkImportMemoryFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportMemoryFdInfoKHR where
+        (VkImportMemoryFdInfoKHR## a _) `compare`
+          x@(VkImportMemoryFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportMemoryFdInfoKHR where
+        sizeOf ~_ = #{size VkImportMemoryFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImportMemoryFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportMemoryFdInfoKHR where
+        unsafeAddr (VkImportMemoryFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportMemoryFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportMemoryFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportMemoryFdInfoKHR where
+        type StructFields VkImportMemoryFdInfoKHR =
+             '["sType", "pNext", "handleType", "fd"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportMemoryFdInfoKHR =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportMemoryFdInfoKHR where
+        type FieldType "sType" VkImportMemoryFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportMemoryFdInfoKHR =
+             #{offset VkImportMemoryFdInfoKHR, sType}
+        type FieldIsArray "sType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportMemoryFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportMemoryFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportMemoryFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportMemoryFdInfoKHR where
+        type FieldType "pNext" VkImportMemoryFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportMemoryFdInfoKHR =
+             #{offset VkImportMemoryFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportMemoryFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportMemoryFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportMemoryFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportMemoryFdInfoKHR where
+        type FieldType "handleType" VkImportMemoryFdInfoKHR =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportMemoryFdInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportMemoryFdInfoKHR =
+             #{offset VkImportMemoryFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportMemoryFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportMemoryFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-} HasField "fd" VkImportMemoryFdInfoKHR
+         where
+        type FieldType "fd" VkImportMemoryFdInfoKHR = CInt
+        type FieldOptional "fd" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fd" VkImportMemoryFdInfoKHR =
+             #{offset VkImportMemoryFdInfoKHR, fd}
+        type FieldIsArray "fd" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportMemoryFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fd" VkImportMemoryFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, fd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fd" VkImportMemoryFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, fd}
+
+instance Show VkImportMemoryFdInfoKHR where
+        showsPrec d x
+          = showString "VkImportMemoryFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) .
+                              showString ", " .
+                                showString "fd = " . showsPrec d (getField @"fd" x) . showChar '}'
+
+-- | > typedef struct VkImportMemoryHostPointerInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   >     void* pHostPointer;
+--   > } VkImportMemoryHostPointerInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryHostPointerInfoEXT VkImportMemoryHostPointerInfoEXT registry at www.khronos.org>
+data VkImportMemoryHostPointerInfoEXT = VkImportMemoryHostPointerInfoEXT## Addr##
+                                                                          ByteArray##
+
+instance Eq VkImportMemoryHostPointerInfoEXT where
+        (VkImportMemoryHostPointerInfoEXT## a _) ==
+          x@(VkImportMemoryHostPointerInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportMemoryHostPointerInfoEXT where
+        (VkImportMemoryHostPointerInfoEXT## a _) `compare`
+          x@(VkImportMemoryHostPointerInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportMemoryHostPointerInfoEXT where
+        sizeOf ~_ = #{size VkImportMemoryHostPointerInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportMemoryHostPointerInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportMemoryHostPointerInfoEXT where
+        unsafeAddr (VkImportMemoryHostPointerInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportMemoryHostPointerInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportMemoryHostPointerInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportMemoryHostPointerInfoEXT where
+        type StructFields VkImportMemoryHostPointerInfoEXT =
+             '["sType", "pNext", "handleType", "pHostPointer"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportMemoryHostPointerInfoEXT =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportMemoryHostPointerInfoEXT where
+        type FieldType "sType" VkImportMemoryHostPointerInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkImportMemoryHostPointerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportMemoryHostPointerInfoEXT =
+             #{offset VkImportMemoryHostPointerInfoEXT, sType}
+        type FieldIsArray "sType" VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryHostPointerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportMemoryHostPointerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportMemoryHostPointerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportMemoryHostPointerInfoEXT where
+        type FieldType "pNext" VkImportMemoryHostPointerInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkImportMemoryHostPointerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportMemoryHostPointerInfoEXT =
+             #{offset VkImportMemoryHostPointerInfoEXT, pNext}
+        type FieldIsArray "pNext" VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryHostPointerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportMemoryHostPointerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportMemoryHostPointerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportMemoryHostPointerInfoEXT where
+        type FieldType "handleType" VkImportMemoryHostPointerInfoEXT =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportMemoryHostPointerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportMemoryHostPointerInfoEXT =
+             #{offset VkImportMemoryHostPointerInfoEXT, handleType}
+        type FieldIsArray "handleType" VkImportMemoryHostPointerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryHostPointerInfoEXT, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportMemoryHostPointerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportMemoryHostPointerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
+        type FieldType "pHostPointer" VkImportMemoryHostPointerInfoEXT =
+             Ptr Void
+        type FieldOptional "pHostPointer" VkImportMemoryHostPointerInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pHostPointer" VkImportMemoryHostPointerInfoEXT =
+             #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
+        type FieldIsArray "pHostPointer" VkImportMemoryHostPointerInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
+
+instance Show VkImportMemoryHostPointerInfoEXT where
+        showsPrec d x
+          = showString "VkImportMemoryHostPointerInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) .
+                              showString ", " .
+                                showString "pHostPointer = " .
+                                  showsPrec d (getField @"pHostPointer" x) . showChar '}'
+
+-- | > typedef struct VkImportSemaphoreFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSemaphore    semaphore;
+--   >     VkSemaphoreImportFlags flags;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   >     int                              fd;
+--   > } VkImportSemaphoreFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportSemaphoreFdInfoKHR VkImportSemaphoreFdInfoKHR registry at www.khronos.org>
+data VkImportSemaphoreFdInfoKHR = VkImportSemaphoreFdInfoKHR## Addr##
+                                                              ByteArray##
+
+instance Eq VkImportSemaphoreFdInfoKHR where
+        (VkImportSemaphoreFdInfoKHR## a _) ==
+          x@(VkImportSemaphoreFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportSemaphoreFdInfoKHR where
+        (VkImportSemaphoreFdInfoKHR## a _) `compare`
+          x@(VkImportSemaphoreFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportSemaphoreFdInfoKHR where
+        sizeOf ~_ = #{size VkImportSemaphoreFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkImportSemaphoreFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportSemaphoreFdInfoKHR where
+        unsafeAddr (VkImportSemaphoreFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportSemaphoreFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportSemaphoreFdInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportSemaphoreFdInfoKHR where
+        type StructFields VkImportSemaphoreFdInfoKHR =
+             '["sType", "pNext", "semaphore", "flags", "handleType", "fd"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportSemaphoreFdInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportSemaphoreFdInfoKHR where
+        type FieldType "sType" VkImportSemaphoreFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, sType}
+        type FieldIsArray "sType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportSemaphoreFdInfoKHR where
+        type FieldType "pNext" VkImportSemaphoreFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "semaphore" VkImportSemaphoreFdInfoKHR where
+        type FieldType "semaphore" VkImportSemaphoreFdInfoKHR = VkSemaphore
+        type FieldOptional "semaphore" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "semaphore" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, semaphore}
+        type FieldIsArray "semaphore" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "semaphore" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, semaphore})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "semaphore" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkImportSemaphoreFdInfoKHR where
+        type FieldType "flags" VkImportSemaphoreFdInfoKHR =
+             VkSemaphoreImportFlags
+        type FieldOptional "flags" VkImportSemaphoreFdInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, flags}
+        type FieldIsArray "flags" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportSemaphoreFdInfoKHR where
+        type FieldType "handleType" VkImportSemaphoreFdInfoKHR =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "fd" VkImportSemaphoreFdInfoKHR where
+        type FieldType "fd" VkImportSemaphoreFdInfoKHR = CInt
+        type FieldOptional "fd" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fd" VkImportSemaphoreFdInfoKHR =
+             #{offset VkImportSemaphoreFdInfoKHR, fd}
+        type FieldIsArray "fd" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkImportSemaphoreFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fd" VkImportSemaphoreFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, fd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, fd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fd" VkImportSemaphoreFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, fd}
+
+instance Show VkImportSemaphoreFdInfoKHR where
+        showsPrec d x
+          = showString "VkImportSemaphoreFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "semaphore = " .
+                            showsPrec d (getField @"semaphore" x) .
+                              showString ", " .
+                                showString "flags = " .
+                                  showsPrec d (getField @"flags" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) .
+                                          showString ", " .
+                                            showString "fd = " .
+                                              showsPrec d (getField @"fd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc b/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/IndirectCommands.hsc
@@ -0,0 +1,721 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.IndirectCommands
+       (VkIndirectCommandsLayoutCreateInfoNVX(..),
+        VkIndirectCommandsLayoutTokenNVX(..),
+        VkIndirectCommandsTokenNVX(..))
+       where
+import           Foreign.Storable                            (Storable (..))
+import           GHC.Base                                    (Addr##, ByteArray##,
+                                                              byteArrayContents##,
+                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes             (VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.IndirectCommands (VkIndirectCommandsLayoutUsageFlagsNVX,
+                                                              VkIndirectCommandsTokenTypeNVX)
+import           Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint)
+import           Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
+import           Graphics.Vulkan.Types.Handles               (VkBuffer)
+import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkPipelineBindPoint                      pipelineBindPoint;
+--   >     VkIndirectCommandsLayoutUsageFlagsNVX    flags;
+--   >     uint32_t                                 tokenCount;
+--   >     const VkIndirectCommandsLayoutTokenNVX*  pTokens;
+--   > } VkIndirectCommandsLayoutCreateInfoNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsLayoutCreateInfoNVX VkIndirectCommandsLayoutCreateInfoNVX registry at www.khronos.org>
+data VkIndirectCommandsLayoutCreateInfoNVX = VkIndirectCommandsLayoutCreateInfoNVX## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkIndirectCommandsLayoutCreateInfoNVX where
+        (VkIndirectCommandsLayoutCreateInfoNVX## a _) ==
+          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkIndirectCommandsLayoutCreateInfoNVX where
+        (VkIndirectCommandsLayoutCreateInfoNVX## a _) `compare`
+          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkIndirectCommandsLayoutCreateInfoNVX where
+        sizeOf ~_
+          = #{size VkIndirectCommandsLayoutCreateInfoNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkIndirectCommandsLayoutCreateInfoNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        unsafeAddr (VkIndirectCommandsLayoutCreateInfoNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkIndirectCommandsLayoutCreateInfoNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkIndirectCommandsLayoutCreateInfoNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkIndirectCommandsLayoutCreateInfoNVX where
+        type StructFields VkIndirectCommandsLayoutCreateInfoNVX =
+             '["sType", "pNext", "pipelineBindPoint", "flags", "tokenCount", -- ' closing tick for hsc2hs
+               "pTokens"]
+        type CUnionType VkIndirectCommandsLayoutCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkIndirectCommandsLayoutCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkIndirectCommandsLayoutCreateInfoNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
+        type FieldType "sType" VkIndirectCommandsLayoutCreateInfoNVX =
+             VkStructureType
+        type FieldOptional "sType" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkIndirectCommandsLayoutCreateInfoNVX =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
+        type FieldIsArray "sType" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
+        type FieldType "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
+             Ptr Void
+        type FieldOptional "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
+        type FieldIsArray "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineBindPoint" VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        type FieldType "pipelineBindPoint"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             = VkPipelineBindPoint
+        type FieldOptional "pipelineBindPoint"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineBindPoint"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
+        type FieldIsArray "pipelineBindPoint"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineBindPoint"
+           VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineBindPoint"
+           VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
+        type FieldType "flags" VkIndirectCommandsLayoutCreateInfoNVX =
+             VkIndirectCommandsLayoutUsageFlagsNVX
+        type FieldOptional "flags" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkIndirectCommandsLayoutCreateInfoNVX =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
+        type FieldIsArray "flags" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX where
+        type FieldType "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX =
+             Word32
+        type FieldOptional "tokenCount"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
+             =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
+        type FieldIsArray "tokenCount"
+               VkIndirectCommandsLayoutCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
+        type FieldType "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
+             Ptr VkIndirectCommandsLayoutTokenNVX
+        type FieldOptional "pTokens" VkIndirectCommandsLayoutCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
+             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
+        type FieldIsArray "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
+
+instance Show VkIndirectCommandsLayoutCreateInfoNVX where
+        showsPrec d x
+          = showString "VkIndirectCommandsLayoutCreateInfoNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pipelineBindPoint = " .
+                            showsPrec d (getField @"pipelineBindPoint" x) .
+                              showString ", " .
+                                showString "flags = " .
+                                  showsPrec d (getField @"flags" x) .
+                                    showString ", " .
+                                      showString "tokenCount = " .
+                                        showsPrec d (getField @"tokenCount" x) .
+                                          showString ", " .
+                                            showString "pTokens = " .
+                                              showsPrec d (getField @"pTokens" x) . showChar '}'
+
+-- | > typedef struct VkIndirectCommandsLayoutTokenNVX {
+--   >     VkIndirectCommandsTokenTypeNVX      tokenType;
+--   >     uint32_t                         bindingUnit;
+--   >     uint32_t                         dynamicCount;
+--   >     uint32_t                         divisor;
+--   > } VkIndirectCommandsLayoutTokenNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsLayoutTokenNVX VkIndirectCommandsLayoutTokenNVX registry at www.khronos.org>
+data VkIndirectCommandsLayoutTokenNVX = VkIndirectCommandsLayoutTokenNVX## Addr##
+                                                                          ByteArray##
+
+instance Eq VkIndirectCommandsLayoutTokenNVX where
+        (VkIndirectCommandsLayoutTokenNVX## a _) ==
+          x@(VkIndirectCommandsLayoutTokenNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkIndirectCommandsLayoutTokenNVX where
+        (VkIndirectCommandsLayoutTokenNVX## a _) `compare`
+          x@(VkIndirectCommandsLayoutTokenNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkIndirectCommandsLayoutTokenNVX where
+        sizeOf ~_ = #{size VkIndirectCommandsLayoutTokenNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkIndirectCommandsLayoutTokenNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkIndirectCommandsLayoutTokenNVX where
+        unsafeAddr (VkIndirectCommandsLayoutTokenNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkIndirectCommandsLayoutTokenNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkIndirectCommandsLayoutTokenNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkIndirectCommandsLayoutTokenNVX where
+        type StructFields VkIndirectCommandsLayoutTokenNVX =
+             '["tokenType", "bindingUnit", "dynamicCount", "divisor"] -- ' closing tick for hsc2hs
+        type CUnionType VkIndirectCommandsLayoutTokenNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkIndirectCommandsLayoutTokenNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkIndirectCommandsLayoutTokenNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "tokenType" VkIndirectCommandsLayoutTokenNVX where
+        type FieldType "tokenType" VkIndirectCommandsLayoutTokenNVX =
+             VkIndirectCommandsTokenTypeNVX
+        type FieldOptional "tokenType" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "tokenType" VkIndirectCommandsLayoutTokenNVX =
+             #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
+        type FieldIsArray "tokenType" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tokenType" VkIndirectCommandsLayoutTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, tokenType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tokenType" VkIndirectCommandsLayoutTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
+        type FieldType "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
+             Word32
+        type FieldOptional "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
+             #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
+        type FieldIsArray "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
+
+instance {-# OVERLAPPING #-}
+         HasField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
+        type FieldType "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
+             Word32
+        type FieldOptional "dynamicCount" VkIndirectCommandsLayoutTokenNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
+             #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
+        type FieldIsArray "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "divisor" VkIndirectCommandsLayoutTokenNVX where
+        type FieldType "divisor" VkIndirectCommandsLayoutTokenNVX = Word32
+        type FieldOptional "divisor" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "divisor" VkIndirectCommandsLayoutTokenNVX =
+             #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
+        type FieldIsArray "divisor" VkIndirectCommandsLayoutTokenNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "divisor" VkIndirectCommandsLayoutTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, divisor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "divisor" VkIndirectCommandsLayoutTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
+
+instance Show VkIndirectCommandsLayoutTokenNVX where
+        showsPrec d x
+          = showString "VkIndirectCommandsLayoutTokenNVX {" .
+              showString "tokenType = " .
+                showsPrec d (getField @"tokenType" x) .
+                  showString ", " .
+                    showString "bindingUnit = " .
+                      showsPrec d (getField @"bindingUnit" x) .
+                        showString ", " .
+                          showString "dynamicCount = " .
+                            showsPrec d (getField @"dynamicCount" x) .
+                              showString ", " .
+                                showString "divisor = " .
+                                  showsPrec d (getField @"divisor" x) . showChar '}'
+
+-- | > typedef struct VkIndirectCommandsTokenNVX {
+--   >     VkIndirectCommandsTokenTypeNVX      tokenType;
+--   >     VkBuffer                         buffer;
+--   >     VkDeviceSize                     offset;
+--   > } VkIndirectCommandsTokenNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIndirectCommandsTokenNVX VkIndirectCommandsTokenNVX registry at www.khronos.org>
+data VkIndirectCommandsTokenNVX = VkIndirectCommandsTokenNVX## Addr##
+                                                              ByteArray##
+
+instance Eq VkIndirectCommandsTokenNVX where
+        (VkIndirectCommandsTokenNVX## a _) ==
+          x@(VkIndirectCommandsTokenNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkIndirectCommandsTokenNVX where
+        (VkIndirectCommandsTokenNVX## a _) `compare`
+          x@(VkIndirectCommandsTokenNVX## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkIndirectCommandsTokenNVX where
+        sizeOf ~_ = #{size VkIndirectCommandsTokenNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkIndirectCommandsTokenNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkIndirectCommandsTokenNVX where
+        unsafeAddr (VkIndirectCommandsTokenNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkIndirectCommandsTokenNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkIndirectCommandsTokenNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkIndirectCommandsTokenNVX where
+        type StructFields VkIndirectCommandsTokenNVX =
+             '["tokenType", "buffer", "offset"] -- ' closing tick for hsc2hs
+        type CUnionType VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkIndirectCommandsTokenNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "tokenType" VkIndirectCommandsTokenNVX where
+        type FieldType "tokenType" VkIndirectCommandsTokenNVX =
+             VkIndirectCommandsTokenTypeNVX
+        type FieldOptional "tokenType" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tokenType" VkIndirectCommandsTokenNVX =
+             #{offset VkIndirectCommandsTokenNVX, tokenType}
+        type FieldIsArray "tokenType" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tokenType" VkIndirectCommandsTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, tokenType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tokenType" VkIndirectCommandsTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, tokenType}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkIndirectCommandsTokenNVX where
+        type FieldType "buffer" VkIndirectCommandsTokenNVX = VkBuffer
+        type FieldOptional "buffer" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkIndirectCommandsTokenNVX =
+             #{offset VkIndirectCommandsTokenNVX, buffer}
+        type FieldIsArray "buffer" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsTokenNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkIndirectCommandsTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkIndirectCommandsTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkIndirectCommandsTokenNVX where
+        type FieldType "offset" VkIndirectCommandsTokenNVX = VkDeviceSize
+        type FieldOptional "offset" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkIndirectCommandsTokenNVX =
+             #{offset VkIndirectCommandsTokenNVX, offset}
+        type FieldIsArray "offset" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIndirectCommandsTokenNVX, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkIndirectCommandsTokenNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkIndirectCommandsTokenNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, offset}
+
+instance Show VkIndirectCommandsTokenNVX where
+        showsPrec d x
+          = showString "VkIndirectCommandsTokenNVX {" .
+              showString "tokenType = " .
+                showsPrec d (getField @"tokenType" x) .
+                  showString ", " .
+                    showString "buffer = " .
+                      showsPrec d (getField @"buffer" x) .
+                        showString ", " .
+                          showString "offset = " .
+                            showsPrec d (getField @"offset" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc b/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/InputAttachmentAspectReference.hsc
@@ -0,0 +1,211 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
+       (VkInputAttachmentAspectReference(..),
+        VkInputAttachmentAspectReferenceKHR)
+       where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Image (VkImageAspectFlags)
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkInputAttachmentAspectReference {
+--   >     uint32_t                        subpass;
+--   >     uint32_t                        inputAttachmentIndex;
+--   >     VkImageAspectFlags              aspectMask;
+--   > } VkInputAttachmentAspectReference;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkInputAttachmentAspectReference VkInputAttachmentAspectReference registry at www.khronos.org>
+data VkInputAttachmentAspectReference = VkInputAttachmentAspectReference## Addr##
+                                                                          ByteArray##
+
+instance Eq VkInputAttachmentAspectReference where
+        (VkInputAttachmentAspectReference## a _) ==
+          x@(VkInputAttachmentAspectReference## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkInputAttachmentAspectReference where
+        (VkInputAttachmentAspectReference## a _) `compare`
+          x@(VkInputAttachmentAspectReference## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkInputAttachmentAspectReference where
+        sizeOf ~_ = #{size VkInputAttachmentAspectReference}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkInputAttachmentAspectReference}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkInputAttachmentAspectReference where
+        unsafeAddr (VkInputAttachmentAspectReference## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkInputAttachmentAspectReference## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkInputAttachmentAspectReference##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkInputAttachmentAspectReference where
+        type StructFields VkInputAttachmentAspectReference =
+             '["subpass", "inputAttachmentIndex", "aspectMask"] -- ' closing tick for hsc2hs
+        type CUnionType VkInputAttachmentAspectReference = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkInputAttachmentAspectReference = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkInputAttachmentAspectReference = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "subpass" VkInputAttachmentAspectReference where
+        type FieldType "subpass" VkInputAttachmentAspectReference = Word32
+        type FieldOptional "subpass" VkInputAttachmentAspectReference =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subpass" VkInputAttachmentAspectReference =
+             #{offset VkInputAttachmentAspectReference, subpass}
+        type FieldIsArray "subpass" VkInputAttachmentAspectReference =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInputAttachmentAspectReference, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpass" VkInputAttachmentAspectReference where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, subpass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInputAttachmentAspectReference, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpass" VkInputAttachmentAspectReference where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInputAttachmentAspectReference, subpass}
+
+instance {-# OVERLAPPING #-}
+         HasField "inputAttachmentIndex" VkInputAttachmentAspectReference
+         where
+        type FieldType "inputAttachmentIndex"
+               VkInputAttachmentAspectReference
+             = Word32
+        type FieldOptional "inputAttachmentIndex"
+               VkInputAttachmentAspectReference
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "inputAttachmentIndex"
+               VkInputAttachmentAspectReference
+             =
+             #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
+        type FieldIsArray "inputAttachmentIndex"
+               VkInputAttachmentAspectReference
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "inputAttachmentIndex"
+           VkInputAttachmentAspectReference
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, inputAttachmentIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "inputAttachmentIndex"
+           VkInputAttachmentAspectReference
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkInputAttachmentAspectReference where
+        type FieldType "aspectMask" VkInputAttachmentAspectReference =
+             VkImageAspectFlags
+        type FieldOptional "aspectMask" VkInputAttachmentAspectReference =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkInputAttachmentAspectReference =
+             #{offset VkInputAttachmentAspectReference, aspectMask}
+        type FieldIsArray "aspectMask" VkInputAttachmentAspectReference =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInputAttachmentAspectReference, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkInputAttachmentAspectReference where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInputAttachmentAspectReference, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkInputAttachmentAspectReference where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInputAttachmentAspectReference, aspectMask}
+
+instance Show VkInputAttachmentAspectReference where
+        showsPrec d x
+          = showString "VkInputAttachmentAspectReference {" .
+              showString "subpass = " .
+                showsPrec d (getField @"subpass" x) .
+                  showString ", " .
+                    showString "inputAttachmentIndex = " .
+                      showsPrec d (getField @"inputAttachmentIndex" x) .
+                        showString ", " .
+                          showString "aspectMask = " .
+                            showsPrec d (getField @"aspectMask" x) . showChar '}'
+
+-- | Alias for `VkInputAttachmentAspectReference`
+type VkInputAttachmentAspectReferenceKHR =
+     VkInputAttachmentAspectReference
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/InstanceCreateInfo.hsc
@@ -0,0 +1,377 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+       (VkInstanceCreateInfo(..)) where
+import           Foreign.Storable                             (Storable (..))
+import           GHC.Base                                     (Addr##,
+                                                               ByteArray##,
+                                                               byteArrayContents##,
+                                                               plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks               (VkInstanceCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType     (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.ApplicationInfo (VkApplicationInfo)
+import           System.IO.Unsafe                             (unsafeDupablePerformIO)
+
+-- | > typedef struct VkInstanceCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*     pNext;
+--   >     VkInstanceCreateFlags  flags;
+--   >     const VkApplicationInfo* pApplicationInfo;
+--   >     uint32_t               enabledLayerCount;
+--   >     const char* const*      ppEnabledLayerNames;
+--   >     uint32_t               enabledExtensionCount;
+--   >     const char* const*      ppEnabledExtensionNames;
+--   > } VkInstanceCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkInstanceCreateInfo VkInstanceCreateInfo registry at www.khronos.org>
+data VkInstanceCreateInfo = VkInstanceCreateInfo## Addr## ByteArray##
+
+instance Eq VkInstanceCreateInfo where
+        (VkInstanceCreateInfo## a _) == x@(VkInstanceCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkInstanceCreateInfo where
+        (VkInstanceCreateInfo## a _) `compare` x@(VkInstanceCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkInstanceCreateInfo where
+        sizeOf ~_ = #{size VkInstanceCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkInstanceCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkInstanceCreateInfo where
+        unsafeAddr (VkInstanceCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkInstanceCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkInstanceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkInstanceCreateInfo where
+        type StructFields VkInstanceCreateInfo =
+             '["sType", "pNext", "flags", "pApplicationInfo", -- ' closing tick for hsc2hs
+               "enabledLayerCount", "ppEnabledLayerNames",
+               "enabledExtensionCount", "ppEnabledExtensionNames"]
+        type CUnionType VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkInstanceCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkInstanceCreateInfo
+         where
+        type FieldType "sType" VkInstanceCreateInfo = VkStructureType
+        type FieldOptional "sType" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, sType}
+        type FieldIsArray "sType" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkInstanceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkInstanceCreateInfo
+         where
+        type FieldType "pNext" VkInstanceCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, pNext}
+        type FieldIsArray "pNext" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkInstanceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkInstanceCreateInfo
+         where
+        type FieldType "flags" VkInstanceCreateInfo = VkInstanceCreateFlags
+        type FieldOptional "flags" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, flags}
+        type FieldIsArray "flags" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkInstanceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pApplicationInfo" VkInstanceCreateInfo where
+        type FieldType "pApplicationInfo" VkInstanceCreateInfo =
+             Ptr VkApplicationInfo
+        type FieldOptional "pApplicationInfo" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pApplicationInfo" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, pApplicationInfo}
+        type FieldIsArray "pApplicationInfo" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInstanceCreateInfo, pApplicationInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pApplicationInfo" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, pApplicationInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, pApplicationInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pApplicationInfo" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, pApplicationInfo}
+
+instance {-# OVERLAPPING #-}
+         HasField "enabledLayerCount" VkInstanceCreateInfo where
+        type FieldType "enabledLayerCount" VkInstanceCreateInfo = Word32
+        type FieldOptional "enabledLayerCount" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "enabledLayerCount" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, enabledLayerCount}
+        type FieldIsArray "enabledLayerCount" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInstanceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "enabledLayerCount" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, enabledLayerCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "enabledLayerCount" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, enabledLayerCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "ppEnabledLayerNames" VkInstanceCreateInfo where
+        type FieldType "ppEnabledLayerNames" VkInstanceCreateInfo =
+             Ptr CString
+        type FieldOptional "ppEnabledLayerNames" VkInstanceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "ppEnabledLayerNames" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
+        type FieldIsArray "ppEnabledLayerNames" VkInstanceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ppEnabledLayerNames" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, ppEnabledLayerNames})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ppEnabledLayerNames" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
+
+instance {-# OVERLAPPING #-}
+         HasField "enabledExtensionCount" VkInstanceCreateInfo where
+        type FieldType "enabledExtensionCount" VkInstanceCreateInfo =
+             Word32
+        type FieldOptional "enabledExtensionCount" VkInstanceCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "enabledExtensionCount" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, enabledExtensionCount}
+        type FieldIsArray "enabledExtensionCount" VkInstanceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInstanceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "enabledExtensionCount" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, enabledExtensionCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "enabledExtensionCount" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, enabledExtensionCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "ppEnabledExtensionNames" VkInstanceCreateInfo where
+        type FieldType "ppEnabledExtensionNames" VkInstanceCreateInfo =
+             Ptr CString
+        type FieldOptional "ppEnabledExtensionNames" VkInstanceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "ppEnabledExtensionNames" VkInstanceCreateInfo =
+             #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
+        type FieldIsArray "ppEnabledExtensionNames" VkInstanceCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ppEnabledExtensionNames" VkInstanceCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, ppEnabledExtensionNames})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ppEnabledExtensionNames" VkInstanceCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
+
+instance Show VkInstanceCreateInfo where
+        showsPrec d x
+          = showString "VkInstanceCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pApplicationInfo = " .
+                                  showsPrec d (getField @"pApplicationInfo" x) .
+                                    showString ", " .
+                                      showString "enabledLayerCount = " .
+                                        showsPrec d (getField @"enabledLayerCount" x) .
+                                          showString ", " .
+                                            showString "ppEnabledLayerNames = " .
+                                              showsPrec d (getField @"ppEnabledLayerNames" x) .
+                                                showString ", " .
+                                                  showString "enabledExtensionCount = " .
+                                                    showsPrec d
+                                                      (getField @"enabledExtensionCount" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "ppEnabledExtensionNames = " .
+                                                          showsPrec d
+                                                            (getField @"ppEnabledExtensionNames" x)
+                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/LayerProperties.hsc
@@ -0,0 +1,335 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.LayerProperties
+       (VkLayerProperties(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##, Proxy##,
+                                                   byteArrayContents##,
+                                                   plusAddr##, proxy##)
+import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Constants        (VK_MAX_DESCRIPTION_SIZE, pattern VK_MAX_DESCRIPTION_SIZE,
+                                                   VK_MAX_EXTENSION_NAME_SIZE,
+                                                   pattern VK_MAX_EXTENSION_NAME_SIZE)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkLayerProperties {
+--   >     char            layerName[VK_MAX_EXTENSION_NAME_SIZE];
+--   >     uint32_t        specVersion;
+--   >     uint32_t        implementationVersion;
+--   >     char            description[VK_MAX_DESCRIPTION_SIZE];
+--   > } VkLayerProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkLayerProperties VkLayerProperties registry at www.khronos.org>
+data VkLayerProperties = VkLayerProperties## Addr## ByteArray##
+
+instance Eq VkLayerProperties where
+        (VkLayerProperties## a _) == x@(VkLayerProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkLayerProperties where
+        (VkLayerProperties## a _) `compare` x@(VkLayerProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkLayerProperties where
+        sizeOf ~_ = #{size VkLayerProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkLayerProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkLayerProperties where
+        unsafeAddr (VkLayerProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkLayerProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkLayerProperties## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkLayerProperties where
+        type StructFields VkLayerProperties =
+             '["layerName", "specVersion", "implementationVersion", -- ' closing tick for hsc2hs
+               "description"]
+        type CUnionType VkLayerProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkLayerProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkLayerProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "layerName" VkLayerProperties
+         where
+        type FieldType "layerName" VkLayerProperties = CChar
+        type FieldOptional "layerName" VkLayerProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layerName" VkLayerProperties =
+             #{offset VkLayerProperties, layerName}
+        type FieldIsArray "layerName" VkLayerProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkLayerProperties, layerName}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>
+         CanReadFieldArray "layerName" idx VkLayerProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "layerName" 0 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "layerName" 1 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "layerName" 2 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "layerName" 3 VkLayerProperties #-}
+        type FieldArrayLength "layerName" VkLayerProperties =
+             VK_MAX_EXTENSION_NAME_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkLayerProperties, layerName} +
+                      sizeOf (undefined :: CChar) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkLayerProperties, layerName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>
+         CanWriteFieldArray "layerName" idx VkLayerProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "layerName" 0 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "layerName" 1 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "layerName" 2 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "layerName" 3 VkLayerProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkLayerProperties, layerName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "specVersion" VkLayerProperties where
+        type FieldType "specVersion" VkLayerProperties = Word32
+        type FieldOptional "specVersion" VkLayerProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "specVersion" VkLayerProperties =
+             #{offset VkLayerProperties, specVersion}
+        type FieldIsArray "specVersion" VkLayerProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkLayerProperties, specVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "specVersion" VkLayerProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkLayerProperties, specVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkLayerProperties, specVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "specVersion" VkLayerProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkLayerProperties, specVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "implementationVersion" VkLayerProperties where
+        type FieldType "implementationVersion" VkLayerProperties = Word32
+        type FieldOptional "implementationVersion" VkLayerProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "implementationVersion" VkLayerProperties =
+             #{offset VkLayerProperties, implementationVersion}
+        type FieldIsArray "implementationVersion" VkLayerProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkLayerProperties, implementationVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "implementationVersion" VkLayerProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkLayerProperties, implementationVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkLayerProperties, implementationVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "implementationVersion" VkLayerProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkLayerProperties, implementationVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "description" VkLayerProperties where
+        type FieldType "description" VkLayerProperties = CChar
+        type FieldOptional "description" VkLayerProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "description" VkLayerProperties =
+             #{offset VkLayerProperties, description}
+        type FieldIsArray "description" VkLayerProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkLayerProperties, description}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "description" idx VkLayerProperties) =>
+         CanReadFieldArray "description" idx VkLayerProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "description" 0 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "description" 1 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "description" 2 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "description" 3 VkLayerProperties #-}
+        type FieldArrayLength "description" VkLayerProperties =
+             VK_MAX_DESCRIPTION_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_DESCRIPTION_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkLayerProperties, description} +
+                      sizeOf (undefined :: CChar) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkLayerProperties, description} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "description" idx VkLayerProperties) =>
+         CanWriteFieldArray "description" idx VkLayerProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "description" 0 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "description" 1 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "description" 2 VkLayerProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "description" 3 VkLayerProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkLayerProperties, description} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkLayerProperties where
+        showsPrec d x
+          = showString "VkLayerProperties {" .
+              (showString "layerName = [" .
+                 showsPrec d
+                   (let s = sizeOf
+                              (undefined :: FieldType "layerName" VkLayerProperties)
+                        o = fieldOffset @"layerName" @VkLayerProperties
+                        f i
+                          = peekByteOff (unsafePtr x) i ::
+                              IO (FieldType "layerName" VkLayerProperties)
+                      in
+                      unsafeDupablePerformIO . mapM f $
+                        map (\ i -> o + i * s) [0 .. VK_MAX_EXTENSION_NAME_SIZE - 1])
+                   . showChar ']')
+                .
+                showString ", " .
+                  showString "specVersion = " .
+                    showsPrec d (getField @"specVersion" x) .
+                      showString ", " .
+                        showString "implementationVersion = " .
+                          showsPrec d (getField @"implementationVersion" x) .
+                            showString ", " .
+                              (showString "description = [" .
+                                 showsPrec d
+                                   (let s = sizeOf
+                                              (undefined ::
+                                                 FieldType "description" VkLayerProperties)
+                                        o = fieldOffset @"description" @VkLayerProperties
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO (FieldType "description" VkLayerProperties)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. VK_MAX_DESCRIPTION_SIZE - 1])
+                                   . showChar ']')
+                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/MappedMemoryRange.hsc
@@ -0,0 +1,250 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.MappedMemoryRange
+       (VkMappedMemoryRange(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkDeviceMemory)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkMappedMemoryRange {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDeviceMemory         memory;
+--   >     VkDeviceSize           offset;
+--   >     VkDeviceSize           size;
+--   > } VkMappedMemoryRange;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMappedMemoryRange VkMappedMemoryRange registry at www.khronos.org>
+data VkMappedMemoryRange = VkMappedMemoryRange## Addr## ByteArray##
+
+instance Eq VkMappedMemoryRange where
+        (VkMappedMemoryRange## a _) == x@(VkMappedMemoryRange## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMappedMemoryRange where
+        (VkMappedMemoryRange## a _) `compare` x@(VkMappedMemoryRange## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMappedMemoryRange where
+        sizeOf ~_ = #{size VkMappedMemoryRange}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMappedMemoryRange}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMappedMemoryRange where
+        unsafeAddr (VkMappedMemoryRange## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMappedMemoryRange## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMappedMemoryRange## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMappedMemoryRange where
+        type StructFields VkMappedMemoryRange =
+             '["sType", "pNext", "memory", "offset", "size"] -- ' closing tick for hsc2hs
+        type CUnionType VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMappedMemoryRange = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkMappedMemoryRange
+         where
+        type FieldType "sType" VkMappedMemoryRange = VkStructureType
+        type FieldOptional "sType" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMappedMemoryRange =
+             #{offset VkMappedMemoryRange, sType}
+        type FieldIsArray "sType" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMappedMemoryRange, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMappedMemoryRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMappedMemoryRange, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMappedMemoryRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMappedMemoryRange, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkMappedMemoryRange
+         where
+        type FieldType "pNext" VkMappedMemoryRange = Ptr Void
+        type FieldOptional "pNext" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMappedMemoryRange =
+             #{offset VkMappedMemoryRange, pNext}
+        type FieldIsArray "pNext" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMappedMemoryRange, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMappedMemoryRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMappedMemoryRange, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMappedMemoryRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMappedMemoryRange, pNext}
+
+instance {-# OVERLAPPING #-} HasField "memory" VkMappedMemoryRange
+         where
+        type FieldType "memory" VkMappedMemoryRange = VkDeviceMemory
+        type FieldOptional "memory" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkMappedMemoryRange =
+             #{offset VkMappedMemoryRange, memory}
+        type FieldIsArray "memory" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMappedMemoryRange, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkMappedMemoryRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMappedMemoryRange, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkMappedMemoryRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMappedMemoryRange, memory}
+
+instance {-# OVERLAPPING #-} HasField "offset" VkMappedMemoryRange
+         where
+        type FieldType "offset" VkMappedMemoryRange = VkDeviceSize
+        type FieldOptional "offset" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkMappedMemoryRange =
+             #{offset VkMappedMemoryRange, offset}
+        type FieldIsArray "offset" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMappedMemoryRange, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkMappedMemoryRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMappedMemoryRange, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkMappedMemoryRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMappedMemoryRange, offset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkMappedMemoryRange
+         where
+        type FieldType "size" VkMappedMemoryRange = VkDeviceSize
+        type FieldOptional "size" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkMappedMemoryRange =
+             #{offset VkMappedMemoryRange, size}
+        type FieldIsArray "size" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMappedMemoryRange, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkMappedMemoryRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMappedMemoryRange, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkMappedMemoryRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMappedMemoryRange, size}
+
+instance Show VkMappedMemoryRange where
+        showsPrec d x
+          = showString "VkMappedMemoryRange {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memory = " .
+                            showsPrec d (getField @"memory" x) .
+                              showString ", " .
+                                showString "offset = " .
+                                  showsPrec d (getField @"offset" x) .
+                                    showString ", " .
+                                      showString "size = " .
+                                        showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Memory.hsc
@@ -0,0 +1,2185 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Memory
+       (VkMemoryAllocateFlagsInfo(..), VkMemoryAllocateFlagsInfoKHR,
+        VkMemoryAllocateInfo(..), VkMemoryBarrier(..),
+        VkMemoryDedicatedAllocateInfo(..),
+        VkMemoryDedicatedAllocateInfoKHR,
+        VkMemoryDedicatedRequirements(..),
+        VkMemoryDedicatedRequirementsKHR, VkMemoryFdPropertiesKHR(..),
+        VkMemoryGetFdInfoKHR(..), VkMemoryHeap(..),
+        VkMemoryHostPointerPropertiesEXT(..), VkMemoryRequirements(..),
+        VkMemoryRequirements2(..), VkMemoryRequirements2KHR,
+        VkMemoryType(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32,
+                                                           VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.AccessFlags   (VkAccessFlags)
+import           Graphics.Vulkan.Types.Enum.External      (VkExternalMemoryHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Memory        (VkMemoryAllocateFlags,
+                                                           VkMemoryHeapFlags,
+                                                           VkMemoryPropertyFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer,
+                                                           VkDeviceMemory,
+                                                           VkImage)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkMemoryAllocateFlagsInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkMemoryAllocateFlags flags;
+--   >     uint32_t                         deviceMask;
+--   > } VkMemoryAllocateFlagsInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfo registry at www.khronos.org>
+data VkMemoryAllocateFlagsInfo = VkMemoryAllocateFlagsInfo## Addr##
+                                                            ByteArray##
+
+instance Eq VkMemoryAllocateFlagsInfo where
+        (VkMemoryAllocateFlagsInfo## a _) ==
+          x@(VkMemoryAllocateFlagsInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryAllocateFlagsInfo where
+        (VkMemoryAllocateFlagsInfo## a _) `compare`
+          x@(VkMemoryAllocateFlagsInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryAllocateFlagsInfo where
+        sizeOf ~_ = #{size VkMemoryAllocateFlagsInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryAllocateFlagsInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryAllocateFlagsInfo where
+        unsafeAddr (VkMemoryAllocateFlagsInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryAllocateFlagsInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryAllocateFlagsInfo## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryAllocateFlagsInfo where
+        type StructFields VkMemoryAllocateFlagsInfo =
+             '["sType", "pNext", "flags", "deviceMask"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryAllocateFlagsInfo =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryAllocateFlagsInfo where
+        type FieldType "sType" VkMemoryAllocateFlagsInfo = VkStructureType
+        type FieldOptional "sType" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryAllocateFlagsInfo =
+             #{offset VkMemoryAllocateFlagsInfo, sType}
+        type FieldIsArray "sType" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateFlagsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryAllocateFlagsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryAllocateFlagsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryAllocateFlagsInfo where
+        type FieldType "pNext" VkMemoryAllocateFlagsInfo = Ptr Void
+        type FieldOptional "pNext" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryAllocateFlagsInfo =
+             #{offset VkMemoryAllocateFlagsInfo, pNext}
+        type FieldIsArray "pNext" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateFlagsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryAllocateFlagsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryAllocateFlagsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkMemoryAllocateFlagsInfo where
+        type FieldType "flags" VkMemoryAllocateFlagsInfo =
+             VkMemoryAllocateFlags
+        type FieldOptional "flags" VkMemoryAllocateFlagsInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkMemoryAllocateFlagsInfo =
+             #{offset VkMemoryAllocateFlagsInfo, flags}
+        type FieldIsArray "flags" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateFlagsInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkMemoryAllocateFlagsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkMemoryAllocateFlagsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceMask" VkMemoryAllocateFlagsInfo where
+        type FieldType "deviceMask" VkMemoryAllocateFlagsInfo = Word32
+        type FieldOptional "deviceMask" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceMask" VkMemoryAllocateFlagsInfo =
+             #{offset VkMemoryAllocateFlagsInfo, deviceMask}
+        type FieldIsArray "deviceMask" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateFlagsInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceMask" VkMemoryAllocateFlagsInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, deviceMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, deviceMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceMask" VkMemoryAllocateFlagsInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, deviceMask}
+
+instance Show VkMemoryAllocateFlagsInfo where
+        showsPrec d x
+          = showString "VkMemoryAllocateFlagsInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "deviceMask = " .
+                                  showsPrec d (getField @"deviceMask" x) . showChar '}'
+
+-- | Alias for `VkMemoryAllocateFlagsInfo`
+type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo
+
+-- | > typedef struct VkMemoryAllocateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDeviceSize           allocationSize;
+--   >     uint32_t               memoryTypeIndex;
+--   > } VkMemoryAllocateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryAllocateInfo VkMemoryAllocateInfo registry at www.khronos.org>
+data VkMemoryAllocateInfo = VkMemoryAllocateInfo## Addr## ByteArray##
+
+instance Eq VkMemoryAllocateInfo where
+        (VkMemoryAllocateInfo## a _) == x@(VkMemoryAllocateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryAllocateInfo where
+        (VkMemoryAllocateInfo## a _) `compare` x@(VkMemoryAllocateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryAllocateInfo where
+        sizeOf ~_ = #{size VkMemoryAllocateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryAllocateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryAllocateInfo where
+        unsafeAddr (VkMemoryAllocateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryAllocateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryAllocateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryAllocateInfo where
+        type StructFields VkMemoryAllocateInfo =
+             '["sType", "pNext", "allocationSize", "memoryTypeIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryAllocateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkMemoryAllocateInfo
+         where
+        type FieldType "sType" VkMemoryAllocateInfo = VkStructureType
+        type FieldOptional "sType" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryAllocateInfo =
+             #{offset VkMemoryAllocateInfo, sType}
+        type FieldIsArray "sType" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryAllocateInfo
+         where
+        type FieldType "pNext" VkMemoryAllocateInfo = Ptr Void
+        type FieldOptional "pNext" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryAllocateInfo =
+             #{offset VkMemoryAllocateInfo, pNext}
+        type FieldIsArray "pNext" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "allocationSize" VkMemoryAllocateInfo where
+        type FieldType "allocationSize" VkMemoryAllocateInfo = VkDeviceSize
+        type FieldOptional "allocationSize" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "allocationSize" VkMemoryAllocateInfo =
+             #{offset VkMemoryAllocateInfo, allocationSize}
+        type FieldIsArray "allocationSize" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateInfo, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "allocationSize" VkMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, allocationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateInfo, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "allocationSize" VkMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateInfo, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeIndex" VkMemoryAllocateInfo where
+        type FieldType "memoryTypeIndex" VkMemoryAllocateInfo = Word32
+        type FieldOptional "memoryTypeIndex" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeIndex" VkMemoryAllocateInfo =
+             #{offset VkMemoryAllocateInfo, memoryTypeIndex}
+        type FieldIsArray "memoryTypeIndex" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryAllocateInfo, memoryTypeIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeIndex" VkMemoryAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, memoryTypeIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryAllocateInfo, memoryTypeIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeIndex" VkMemoryAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryAllocateInfo, memoryTypeIndex}
+
+instance Show VkMemoryAllocateInfo where
+        showsPrec d x
+          = showString "VkMemoryAllocateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "allocationSize = " .
+                            showsPrec d (getField @"allocationSize" x) .
+                              showString ", " .
+                                showString "memoryTypeIndex = " .
+                                  showsPrec d (getField @"memoryTypeIndex" x) . showChar '}'
+
+-- | > typedef struct VkMemoryBarrier {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkAccessFlags          srcAccessMask;
+--   >     VkAccessFlags          dstAccessMask;
+--   > } VkMemoryBarrier;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryBarrier VkMemoryBarrier registry at www.khronos.org>
+data VkMemoryBarrier = VkMemoryBarrier## Addr## ByteArray##
+
+instance Eq VkMemoryBarrier where
+        (VkMemoryBarrier## a _) == x@(VkMemoryBarrier## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryBarrier where
+        (VkMemoryBarrier## a _) `compare` x@(VkMemoryBarrier## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryBarrier where
+        sizeOf ~_ = #{size VkMemoryBarrier}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryBarrier}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryBarrier where
+        unsafeAddr (VkMemoryBarrier## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryBarrier## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryBarrier where
+        type StructFields VkMemoryBarrier =
+             '["sType", "pNext", "srcAccessMask", "dstAccessMask"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryBarrier = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkMemoryBarrier where
+        type FieldType "sType" VkMemoryBarrier = VkStructureType
+        type FieldOptional "sType" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryBarrier =
+             #{offset VkMemoryBarrier, sType}
+        type FieldIsArray "sType" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkMemoryBarrier
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-} CanWriteField "sType" VkMemoryBarrier
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryBarrier, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryBarrier where
+        type FieldType "pNext" VkMemoryBarrier = Ptr Void
+        type FieldOptional "pNext" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryBarrier =
+             #{offset VkMemoryBarrier, pNext}
+        type FieldIsArray "pNext" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkMemoryBarrier
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-} CanWriteField "pNext" VkMemoryBarrier
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryBarrier, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcAccessMask" VkMemoryBarrier where
+        type FieldType "srcAccessMask" VkMemoryBarrier = VkAccessFlags
+        type FieldOptional "srcAccessMask" VkMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "srcAccessMask" VkMemoryBarrier =
+             #{offset VkMemoryBarrier, srcAccessMask}
+        type FieldIsArray "srcAccessMask" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcAccessMask" VkMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, srcAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcAccessMask" VkMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryBarrier, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstAccessMask" VkMemoryBarrier where
+        type FieldType "dstAccessMask" VkMemoryBarrier = VkAccessFlags
+        type FieldOptional "dstAccessMask" VkMemoryBarrier = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dstAccessMask" VkMemoryBarrier =
+             #{offset VkMemoryBarrier, dstAccessMask}
+        type FieldIsArray "dstAccessMask" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstAccessMask" VkMemoryBarrier where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, dstAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryBarrier, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstAccessMask" VkMemoryBarrier where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryBarrier, dstAccessMask}
+
+instance Show VkMemoryBarrier where
+        showsPrec d x
+          = showString "VkMemoryBarrier {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcAccessMask = " .
+                            showsPrec d (getField @"srcAccessMask" x) .
+                              showString ", " .
+                                showString "dstAccessMask = " .
+                                  showsPrec d (getField @"dstAccessMask" x) . showChar '}'
+
+-- | > typedef struct VkMemoryDedicatedAllocateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkImage          image;
+--   >     VkBuffer         buffer;
+--   > } VkMemoryDedicatedAllocateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfo registry at www.khronos.org>
+data VkMemoryDedicatedAllocateInfo = VkMemoryDedicatedAllocateInfo## Addr##
+                                                                    ByteArray##
+
+instance Eq VkMemoryDedicatedAllocateInfo where
+        (VkMemoryDedicatedAllocateInfo## a _) ==
+          x@(VkMemoryDedicatedAllocateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryDedicatedAllocateInfo where
+        (VkMemoryDedicatedAllocateInfo## a _) `compare`
+          x@(VkMemoryDedicatedAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryDedicatedAllocateInfo where
+        sizeOf ~_ = #{size VkMemoryDedicatedAllocateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryDedicatedAllocateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryDedicatedAllocateInfo where
+        unsafeAddr (VkMemoryDedicatedAllocateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryDedicatedAllocateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryDedicatedAllocateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryDedicatedAllocateInfo where
+        type StructFields VkMemoryDedicatedAllocateInfo =
+             '["sType", "pNext", "image", "buffer"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryDedicatedAllocateInfo =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryDedicatedAllocateInfo where
+        type FieldType "sType" VkMemoryDedicatedAllocateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryDedicatedAllocateInfo =
+             #{offset VkMemoryDedicatedAllocateInfo, sType}
+        type FieldIsArray "sType" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryDedicatedAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryDedicatedAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryDedicatedAllocateInfo where
+        type FieldType "pNext" VkMemoryDedicatedAllocateInfo = Ptr Void
+        type FieldOptional "pNext" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryDedicatedAllocateInfo =
+             #{offset VkMemoryDedicatedAllocateInfo, pNext}
+        type FieldIsArray "pNext" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryDedicatedAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryDedicatedAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkMemoryDedicatedAllocateInfo where
+        type FieldType "image" VkMemoryDedicatedAllocateInfo = VkImage
+        type FieldOptional "image" VkMemoryDedicatedAllocateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkMemoryDedicatedAllocateInfo =
+             #{offset VkMemoryDedicatedAllocateInfo, image}
+        type FieldIsArray "image" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedAllocateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkMemoryDedicatedAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkMemoryDedicatedAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkMemoryDedicatedAllocateInfo where
+        type FieldType "buffer" VkMemoryDedicatedAllocateInfo = VkBuffer
+        type FieldOptional "buffer" VkMemoryDedicatedAllocateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkMemoryDedicatedAllocateInfo =
+             #{offset VkMemoryDedicatedAllocateInfo, buffer}
+        type FieldIsArray "buffer" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedAllocateInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkMemoryDedicatedAllocateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkMemoryDedicatedAllocateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, buffer}
+
+instance Show VkMemoryDedicatedAllocateInfo where
+        showsPrec d x
+          = showString "VkMemoryDedicatedAllocateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "image = " .
+                            showsPrec d (getField @"image" x) .
+                              showString ", " .
+                                showString "buffer = " .
+                                  showsPrec d (getField @"buffer" x) . showChar '}'
+
+-- | Alias for `VkMemoryDedicatedAllocateInfo`
+type VkMemoryDedicatedAllocateInfoKHR =
+     VkMemoryDedicatedAllocateInfo
+
+-- | > typedef struct VkMemoryDedicatedRequirements {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         prefersDedicatedAllocation;
+--   >     VkBool32                         requiresDedicatedAllocation;
+--   > } VkMemoryDedicatedRequirements;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryDedicatedRequirements VkMemoryDedicatedRequirements registry at www.khronos.org>
+data VkMemoryDedicatedRequirements = VkMemoryDedicatedRequirements## Addr##
+                                                                    ByteArray##
+
+instance Eq VkMemoryDedicatedRequirements where
+        (VkMemoryDedicatedRequirements## a _) ==
+          x@(VkMemoryDedicatedRequirements## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryDedicatedRequirements where
+        (VkMemoryDedicatedRequirements## a _) `compare`
+          x@(VkMemoryDedicatedRequirements## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryDedicatedRequirements where
+        sizeOf ~_ = #{size VkMemoryDedicatedRequirements}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryDedicatedRequirements}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryDedicatedRequirements where
+        unsafeAddr (VkMemoryDedicatedRequirements## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryDedicatedRequirements## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryDedicatedRequirements##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryDedicatedRequirements where
+        type StructFields VkMemoryDedicatedRequirements =
+             '["sType", "pNext", "prefersDedicatedAllocation", -- ' closing tick for hsc2hs
+               "requiresDedicatedAllocation"]
+        type CUnionType VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryDedicatedRequirements = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryDedicatedRequirements =
+             '[VkMemoryRequirements2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryDedicatedRequirements where
+        type FieldType "sType" VkMemoryDedicatedRequirements =
+             VkStructureType
+        type FieldOptional "sType" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryDedicatedRequirements =
+             #{offset VkMemoryDedicatedRequirements, sType}
+        type FieldIsArray "sType" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedRequirements, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryDedicatedRequirements where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedRequirements, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryDedicatedRequirements where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryDedicatedRequirements where
+        type FieldType "pNext" VkMemoryDedicatedRequirements = Ptr Void
+        type FieldOptional "pNext" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryDedicatedRequirements =
+             #{offset VkMemoryDedicatedRequirements, pNext}
+        type FieldIsArray "pNext" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedRequirements, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryDedicatedRequirements where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedRequirements, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryDedicatedRequirements where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "prefersDedicatedAllocation" VkMemoryDedicatedRequirements
+         where
+        type FieldType "prefersDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = VkBool32
+        type FieldOptional "prefersDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "prefersDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             =
+             #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
+        type FieldIsArray "prefersDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "prefersDedicatedAllocation"
+           VkMemoryDedicatedRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "prefersDedicatedAllocation"
+           VkMemoryDedicatedRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "requiresDedicatedAllocation"
+           VkMemoryDedicatedRequirements
+         where
+        type FieldType "requiresDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = VkBool32
+        type FieldOptional "requiresDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "requiresDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             =
+             #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
+        type FieldIsArray "requiresDedicatedAllocation"
+               VkMemoryDedicatedRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "requiresDedicatedAllocation"
+           VkMemoryDedicatedRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "requiresDedicatedAllocation"
+           VkMemoryDedicatedRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
+
+instance Show VkMemoryDedicatedRequirements where
+        showsPrec d x
+          = showString "VkMemoryDedicatedRequirements {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "prefersDedicatedAllocation = " .
+                            showsPrec d (getField @"prefersDedicatedAllocation" x) .
+                              showString ", " .
+                                showString "requiresDedicatedAllocation = " .
+                                  showsPrec d (getField @"requiresDedicatedAllocation" x) .
+                                    showChar '}'
+
+-- | Alias for `VkMemoryDedicatedRequirements`
+type VkMemoryDedicatedRequirementsKHR =
+     VkMemoryDedicatedRequirements
+
+-- | > typedef struct VkMemoryFdPropertiesKHR {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         memoryTypeBits;
+--   > } VkMemoryFdPropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryFdPropertiesKHR VkMemoryFdPropertiesKHR registry at www.khronos.org>
+data VkMemoryFdPropertiesKHR = VkMemoryFdPropertiesKHR## Addr##
+                                                        ByteArray##
+
+instance Eq VkMemoryFdPropertiesKHR where
+        (VkMemoryFdPropertiesKHR## a _) == x@(VkMemoryFdPropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryFdPropertiesKHR where
+        (VkMemoryFdPropertiesKHR## a _) `compare`
+          x@(VkMemoryFdPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryFdPropertiesKHR where
+        sizeOf ~_ = #{size VkMemoryFdPropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryFdPropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryFdPropertiesKHR where
+        unsafeAddr (VkMemoryFdPropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryFdPropertiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryFdPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryFdPropertiesKHR where
+        type StructFields VkMemoryFdPropertiesKHR =
+             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryFdPropertiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryFdPropertiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryFdPropertiesKHR where
+        type FieldType "sType" VkMemoryFdPropertiesKHR = VkStructureType
+        type FieldOptional "sType" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryFdPropertiesKHR =
+             #{offset VkMemoryFdPropertiesKHR, sType}
+        type FieldIsArray "sType" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryFdPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryFdPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryFdPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryFdPropertiesKHR where
+        type FieldType "pNext" VkMemoryFdPropertiesKHR = Ptr Void
+        type FieldOptional "pNext" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryFdPropertiesKHR =
+             #{offset VkMemoryFdPropertiesKHR, pNext}
+        type FieldIsArray "pNext" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryFdPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryFdPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryFdPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeBits" VkMemoryFdPropertiesKHR where
+        type FieldType "memoryTypeBits" VkMemoryFdPropertiesKHR = Word32
+        type FieldOptional "memoryTypeBits" VkMemoryFdPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeBits" VkMemoryFdPropertiesKHR =
+             #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
+        type FieldIsArray "memoryTypeBits" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeBits" VkMemoryFdPropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, memoryTypeBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeBits" VkMemoryFdPropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
+
+instance Show VkMemoryFdPropertiesKHR where
+        showsPrec d x
+          = showString "VkMemoryFdPropertiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryTypeBits = " .
+                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
+
+-- | > typedef struct VkMemoryGetFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDeviceMemory                   memory;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkMemoryGetFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetFdInfoKHR VkMemoryGetFdInfoKHR registry at www.khronos.org>
+data VkMemoryGetFdInfoKHR = VkMemoryGetFdInfoKHR## Addr## ByteArray##
+
+instance Eq VkMemoryGetFdInfoKHR where
+        (VkMemoryGetFdInfoKHR## a _) == x@(VkMemoryGetFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryGetFdInfoKHR where
+        (VkMemoryGetFdInfoKHR## a _) `compare` x@(VkMemoryGetFdInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryGetFdInfoKHR where
+        sizeOf ~_ = #{size VkMemoryGetFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryGetFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryGetFdInfoKHR where
+        unsafeAddr (VkMemoryGetFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryGetFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryGetFdInfoKHR where
+        type StructFields VkMemoryGetFdInfoKHR =
+             '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkMemoryGetFdInfoKHR
+         where
+        type FieldType "sType" VkMemoryGetFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryGetFdInfoKHR =
+             #{offset VkMemoryGetFdInfoKHR, sType}
+        type FieldIsArray "sType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryGetFdInfoKHR
+         where
+        type FieldType "pNext" VkMemoryGetFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryGetFdInfoKHR =
+             #{offset VkMemoryGetFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-} HasField "memory" VkMemoryGetFdInfoKHR
+         where
+        type FieldType "memory" VkMemoryGetFdInfoKHR = VkDeviceMemory
+        type FieldOptional "memory" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkMemoryGetFdInfoKHR =
+             #{offset VkMemoryGetFdInfoKHR, memory}
+        type FieldIsArray "memory" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryGetFdInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkMemoryGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkMemoryGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkMemoryGetFdInfoKHR where
+        type FieldType "handleType" VkMemoryGetFdInfoKHR =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkMemoryGetFdInfoKHR =
+             #{offset VkMemoryGetFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkMemoryGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkMemoryGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, handleType}
+
+instance Show VkMemoryGetFdInfoKHR where
+        showsPrec d x
+          = showString "VkMemoryGetFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memory = " .
+                            showsPrec d (getField @"memory" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | > typedef struct VkMemoryHeap {
+--   >     VkDeviceSize           size;
+--   >     VkMemoryHeapFlags      flags;
+--   > } VkMemoryHeap;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryHeap VkMemoryHeap registry at www.khronos.org>
+data VkMemoryHeap = VkMemoryHeap## Addr## ByteArray##
+
+instance Eq VkMemoryHeap where
+        (VkMemoryHeap## a _) == x@(VkMemoryHeap## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryHeap where
+        (VkMemoryHeap## a _) `compare` x@(VkMemoryHeap## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryHeap where
+        sizeOf ~_ = #{size VkMemoryHeap}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryHeap}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryHeap where
+        unsafeAddr (VkMemoryHeap## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryHeap## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryHeap## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryHeap where
+        type StructFields VkMemoryHeap = '["size", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryHeap = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryHeap = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryHeap = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "size" VkMemoryHeap where
+        type FieldType "size" VkMemoryHeap = VkDeviceSize
+        type FieldOptional "size" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkMemoryHeap =
+             #{offset VkMemoryHeap, size}
+        type FieldIsArray "size" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryHeap, size}
+
+instance {-# OVERLAPPING #-} CanReadField "size" VkMemoryHeap where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryHeap, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryHeap, size}
+
+instance {-# OVERLAPPING #-} CanWriteField "size" VkMemoryHeap
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryHeap, size}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkMemoryHeap where
+        type FieldType "flags" VkMemoryHeap = VkMemoryHeapFlags
+        type FieldOptional "flags" VkMemoryHeap = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkMemoryHeap =
+             #{offset VkMemoryHeap, flags}
+        type FieldIsArray "flags" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryHeap, flags}
+
+instance {-# OVERLAPPING #-} CanReadField "flags" VkMemoryHeap
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryHeap, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryHeap, flags}
+
+instance {-# OVERLAPPING #-} CanWriteField "flags" VkMemoryHeap
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryHeap, flags}
+
+instance Show VkMemoryHeap where
+        showsPrec d x
+          = showString "VkMemoryHeap {" .
+              showString "size = " .
+                showsPrec d (getField @"size" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkMemoryHostPointerPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     uint32_t memoryTypeBits;
+--   > } VkMemoryHostPointerPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryHostPointerPropertiesEXT VkMemoryHostPointerPropertiesEXT registry at www.khronos.org>
+data VkMemoryHostPointerPropertiesEXT = VkMemoryHostPointerPropertiesEXT## Addr##
+                                                                          ByteArray##
+
+instance Eq VkMemoryHostPointerPropertiesEXT where
+        (VkMemoryHostPointerPropertiesEXT## a _) ==
+          x@(VkMemoryHostPointerPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryHostPointerPropertiesEXT where
+        (VkMemoryHostPointerPropertiesEXT## a _) `compare`
+          x@(VkMemoryHostPointerPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryHostPointerPropertiesEXT where
+        sizeOf ~_ = #{size VkMemoryHostPointerPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryHostPointerPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryHostPointerPropertiesEXT where
+        unsafeAddr (VkMemoryHostPointerPropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryHostPointerPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryHostPointerPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryHostPointerPropertiesEXT where
+        type StructFields VkMemoryHostPointerPropertiesEXT =
+             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryHostPointerPropertiesEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryHostPointerPropertiesEXT where
+        type FieldType "sType" VkMemoryHostPointerPropertiesEXT =
+             VkStructureType
+        type FieldOptional "sType" VkMemoryHostPointerPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryHostPointerPropertiesEXT =
+             #{offset VkMemoryHostPointerPropertiesEXT, sType}
+        type FieldIsArray "sType" VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryHostPointerPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryHostPointerPropertiesEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryHostPointerPropertiesEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryHostPointerPropertiesEXT where
+        type FieldType "pNext" VkMemoryHostPointerPropertiesEXT = Ptr Void
+        type FieldOptional "pNext" VkMemoryHostPointerPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryHostPointerPropertiesEXT =
+             #{offset VkMemoryHostPointerPropertiesEXT, pNext}
+        type FieldIsArray "pNext" VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryHostPointerPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryHostPointerPropertiesEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryHostPointerPropertiesEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT where
+        type FieldType "memoryTypeBits" VkMemoryHostPointerPropertiesEXT =
+             Word32
+        type FieldOptional "memoryTypeBits"
+               VkMemoryHostPointerPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
+             =
+             #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
+        type FieldIsArray "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
+
+instance Show VkMemoryHostPointerPropertiesEXT where
+        showsPrec d x
+          = showString "VkMemoryHostPointerPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryTypeBits = " .
+                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
+
+-- | > typedef struct VkMemoryRequirements {
+--   >     VkDeviceSize           size;
+--   >     VkDeviceSize           alignment;
+--   >     uint32_t               memoryTypeBits;
+--   > } VkMemoryRequirements;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryRequirements VkMemoryRequirements registry at www.khronos.org>
+data VkMemoryRequirements = VkMemoryRequirements## Addr## ByteArray##
+
+instance Eq VkMemoryRequirements where
+        (VkMemoryRequirements## a _) == x@(VkMemoryRequirements## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryRequirements where
+        (VkMemoryRequirements## a _) `compare` x@(VkMemoryRequirements## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryRequirements where
+        sizeOf ~_ = #{size VkMemoryRequirements}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryRequirements}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryRequirements where
+        unsafeAddr (VkMemoryRequirements## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryRequirements## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryRequirements## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryRequirements where
+        type StructFields VkMemoryRequirements =
+             '["size", "alignment", "memoryTypeBits"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryRequirements = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryRequirements = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "size" VkMemoryRequirements
+         where
+        type FieldType "size" VkMemoryRequirements = VkDeviceSize
+        type FieldOptional "size" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkMemoryRequirements =
+             #{offset VkMemoryRequirements, size}
+        type FieldIsArray "size" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryRequirements, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkMemoryRequirements where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkMemoryRequirements where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements, size}
+
+instance {-# OVERLAPPING #-}
+         HasField "alignment" VkMemoryRequirements where
+        type FieldType "alignment" VkMemoryRequirements = VkDeviceSize
+        type FieldOptional "alignment" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "alignment" VkMemoryRequirements =
+             #{offset VkMemoryRequirements, alignment}
+        type FieldIsArray "alignment" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryRequirements, alignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alignment" VkMemoryRequirements where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, alignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements, alignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alignment" VkMemoryRequirements where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements, alignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeBits" VkMemoryRequirements where
+        type FieldType "memoryTypeBits" VkMemoryRequirements = Word32
+        type FieldOptional "memoryTypeBits" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeBits" VkMemoryRequirements =
+             #{offset VkMemoryRequirements, memoryTypeBits}
+        type FieldIsArray "memoryTypeBits" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryRequirements, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeBits" VkMemoryRequirements where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, memoryTypeBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeBits" VkMemoryRequirements where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements, memoryTypeBits}
+
+instance Show VkMemoryRequirements where
+        showsPrec d x
+          = showString "VkMemoryRequirements {" .
+              showString "size = " .
+                showsPrec d (getField @"size" x) .
+                  showString ", " .
+                    showString "alignment = " .
+                      showsPrec d (getField @"alignment" x) .
+                        showString ", " .
+                          showString "memoryTypeBits = " .
+                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
+
+-- | > typedef struct VkMemoryRequirements2 {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     VkMemoryRequirements                                                 memoryRequirements;
+--   > } VkMemoryRequirements2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryRequirements2 VkMemoryRequirements2 registry at www.khronos.org>
+data VkMemoryRequirements2 = VkMemoryRequirements2## Addr##
+                                                    ByteArray##
+
+instance Eq VkMemoryRequirements2 where
+        (VkMemoryRequirements2## a _) == x@(VkMemoryRequirements2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryRequirements2 where
+        (VkMemoryRequirements2## a _) `compare`
+          x@(VkMemoryRequirements2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryRequirements2 where
+        sizeOf ~_ = #{size VkMemoryRequirements2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryRequirements2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryRequirements2 where
+        unsafeAddr (VkMemoryRequirements2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryRequirements2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryRequirements2## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryRequirements2 where
+        type StructFields VkMemoryRequirements2 =
+             '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryRequirements2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryRequirements2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkMemoryRequirements2
+         where
+        type FieldType "sType" VkMemoryRequirements2 = VkStructureType
+        type FieldOptional "sType" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryRequirements2 =
+             #{offset VkMemoryRequirements2, sType}
+        type FieldIsArray "sType" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryRequirements2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryRequirements2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryRequirements2
+         where
+        type FieldType "pNext" VkMemoryRequirements2 = Ptr Void
+        type FieldOptional "pNext" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryRequirements2 =
+             #{offset VkMemoryRequirements2, pNext}
+        type FieldIsArray "pNext" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryRequirements2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryRequirements2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryRequirements" VkMemoryRequirements2 where
+        type FieldType "memoryRequirements" VkMemoryRequirements2 =
+             VkMemoryRequirements
+        type FieldOptional "memoryRequirements" VkMemoryRequirements2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryRequirements" VkMemoryRequirements2 =
+             #{offset VkMemoryRequirements2, memoryRequirements}
+        type FieldIsArray "memoryRequirements" VkMemoryRequirements2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryRequirements2, memoryRequirements}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryRequirements" VkMemoryRequirements2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, memoryRequirements})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryRequirements2, memoryRequirements}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryRequirements" VkMemoryRequirements2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryRequirements2, memoryRequirements}
+
+instance Show VkMemoryRequirements2 where
+        showsPrec d x
+          = showString "VkMemoryRequirements2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryRequirements = " .
+                            showsPrec d (getField @"memoryRequirements" x) . showChar '}'
+
+-- | Alias for `VkMemoryRequirements2`
+type VkMemoryRequirements2KHR = VkMemoryRequirements2
+
+-- | > typedef struct VkMemoryType {
+--   >     VkMemoryPropertyFlags  propertyFlags;
+--   >     uint32_t               heapIndex;
+--   > } VkMemoryType;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryType VkMemoryType registry at www.khronos.org>
+data VkMemoryType = VkMemoryType## Addr## ByteArray##
+
+instance Eq VkMemoryType where
+        (VkMemoryType## a _) == x@(VkMemoryType## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryType where
+        (VkMemoryType## a _) `compare` x@(VkMemoryType## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryType where
+        sizeOf ~_ = #{size VkMemoryType}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMemoryType}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryType where
+        unsafeAddr (VkMemoryType## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryType## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryType## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryType where
+        type StructFields VkMemoryType = '["propertyFlags", "heapIndex"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryType = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryType = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryType = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "propertyFlags" VkMemoryType
+         where
+        type FieldType "propertyFlags" VkMemoryType = VkMemoryPropertyFlags
+        type FieldOptional "propertyFlags" VkMemoryType = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "propertyFlags" VkMemoryType =
+             #{offset VkMemoryType, propertyFlags}
+        type FieldIsArray "propertyFlags" VkMemoryType = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryType, propertyFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "propertyFlags" VkMemoryType where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryType, propertyFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryType, propertyFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "propertyFlags" VkMemoryType where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryType, propertyFlags}
+
+instance {-# OVERLAPPING #-} HasField "heapIndex" VkMemoryType
+         where
+        type FieldType "heapIndex" VkMemoryType = Word32
+        type FieldOptional "heapIndex" VkMemoryType = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "heapIndex" VkMemoryType =
+             #{offset VkMemoryType, heapIndex}
+        type FieldIsArray "heapIndex" VkMemoryType = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkMemoryType, heapIndex}
+
+instance {-# OVERLAPPING #-} CanReadField "heapIndex" VkMemoryType
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryType, heapIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryType, heapIndex}
+
+instance {-# OVERLAPPING #-} CanWriteField "heapIndex" VkMemoryType
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryType, heapIndex}
+
+instance Show VkMemoryType where
+        showsPrec d x
+          = showString "VkMemoryType {" .
+              showString "propertyFlags = " .
+                showsPrec d (getField @"propertyFlags" x) .
+                  showString ", " .
+                    showString "heapIndex = " .
+                      showsPrec d (getField @"heapIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/MultisamplePropertiesEXT.hsc
@@ -0,0 +1,199 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
+       (VkMultisamplePropertiesEXT(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent2D)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkMultisamplePropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkExtent2D                       maxSampleLocationGridSize;
+--   > } VkMultisamplePropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMultisamplePropertiesEXT VkMultisamplePropertiesEXT registry at www.khronos.org>
+data VkMultisamplePropertiesEXT = VkMultisamplePropertiesEXT## Addr##
+                                                              ByteArray##
+
+instance Eq VkMultisamplePropertiesEXT where
+        (VkMultisamplePropertiesEXT## a _) ==
+          x@(VkMultisamplePropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMultisamplePropertiesEXT where
+        (VkMultisamplePropertiesEXT## a _) `compare`
+          x@(VkMultisamplePropertiesEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMultisamplePropertiesEXT where
+        sizeOf ~_ = #{size VkMultisamplePropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMultisamplePropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMultisamplePropertiesEXT where
+        unsafeAddr (VkMultisamplePropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMultisamplePropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMultisamplePropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMultisamplePropertiesEXT where
+        type StructFields VkMultisamplePropertiesEXT =
+             '["sType", "pNext", "maxSampleLocationGridSize"] -- ' closing tick for hsc2hs
+        type CUnionType VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMultisamplePropertiesEXT = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMultisamplePropertiesEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMultisamplePropertiesEXT where
+        type FieldType "sType" VkMultisamplePropertiesEXT = VkStructureType
+        type FieldOptional "sType" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMultisamplePropertiesEXT =
+             #{offset VkMultisamplePropertiesEXT, sType}
+        type FieldIsArray "sType" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMultisamplePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMultisamplePropertiesEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMultisamplePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMultisamplePropertiesEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMultisamplePropertiesEXT where
+        type FieldType "pNext" VkMultisamplePropertiesEXT = Ptr Void
+        type FieldOptional "pNext" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMultisamplePropertiesEXT =
+             #{offset VkMultisamplePropertiesEXT, pNext}
+        type FieldIsArray "pNext" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMultisamplePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMultisamplePropertiesEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMultisamplePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMultisamplePropertiesEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampleLocationGridSize" VkMultisamplePropertiesEXT
+         where
+        type FieldType "maxSampleLocationGridSize"
+               VkMultisamplePropertiesEXT
+             = VkExtent2D
+        type FieldOptional "maxSampleLocationGridSize"
+               VkMultisamplePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampleLocationGridSize"
+               VkMultisamplePropertiesEXT
+             =
+             #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
+        type FieldIsArray "maxSampleLocationGridSize"
+               VkMultisamplePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampleLocationGridSize" VkMultisamplePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampleLocationGridSize"
+           VkMultisamplePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
+
+instance Show VkMultisamplePropertiesEXT where
+        showsPrec d x
+          = showString "VkMultisamplePropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxSampleLocationGridSize = " .
+                            showsPrec d (getField @"maxSampleLocationGridSize" x) .
+                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ObjectTable.hsc
@@ -0,0 +1,1720 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.ObjectTable
+       (VkObjectTableCreateInfoNVX(..),
+        VkObjectTableDescriptorSetEntryNVX(..), VkObjectTableEntryNVX(..),
+        VkObjectTableIndexBufferEntryNVX(..),
+        VkObjectTablePipelineEntryNVX(..),
+        VkObjectTablePushConstantEntryNVX(..),
+        VkObjectTableVertexBufferEntryNVX(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.IndexType     (VkIndexType)
+import           Graphics.Vulkan.Types.Enum.Object        (VkObjectEntryTypeNVX, VkObjectEntryUsageFlagsNVX)
+import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer,
+                                                           VkDescriptorSet,
+                                                           VkPipeline,
+                                                           VkPipelineLayout)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkObjectTableCreateInfoNVX {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                                          objectCount;
+--   >     const VkObjectEntryTypeNVX*       pObjectEntryTypes;
+--   >     const uint32_t*                   pObjectEntryCounts;
+--   >     const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
+--   >     uint32_t maxUniformBuffersPerDescriptor;
+--   >     uint32_t maxStorageBuffersPerDescriptor;
+--   >     uint32_t maxStorageImagesPerDescriptor;
+--   >     uint32_t maxSampledImagesPerDescriptor;
+--   >     uint32_t maxPipelineLayouts;
+--   > } VkObjectTableCreateInfoNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableCreateInfoNVX VkObjectTableCreateInfoNVX registry at www.khronos.org>
+data VkObjectTableCreateInfoNVX = VkObjectTableCreateInfoNVX## Addr##
+                                                              ByteArray##
+
+instance Eq VkObjectTableCreateInfoNVX where
+        (VkObjectTableCreateInfoNVX## a _) ==
+          x@(VkObjectTableCreateInfoNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTableCreateInfoNVX where
+        (VkObjectTableCreateInfoNVX## a _) `compare`
+          x@(VkObjectTableCreateInfoNVX## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTableCreateInfoNVX where
+        sizeOf ~_ = #{size VkObjectTableCreateInfoNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkObjectTableCreateInfoNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTableCreateInfoNVX where
+        unsafeAddr (VkObjectTableCreateInfoNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTableCreateInfoNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTableCreateInfoNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTableCreateInfoNVX where
+        type StructFields VkObjectTableCreateInfoNVX =
+             '["sType", "pNext", "objectCount", "pObjectEntryTypes", -- ' closing tick for hsc2hs
+               "pObjectEntryCounts", "pObjectEntryUsageFlags",
+               "maxUniformBuffersPerDescriptor", "maxStorageBuffersPerDescriptor",
+               "maxStorageImagesPerDescriptor", "maxSampledImagesPerDescriptor",
+               "maxPipelineLayouts"]
+        type CUnionType VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTableCreateInfoNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkObjectTableCreateInfoNVX where
+        type FieldType "sType" VkObjectTableCreateInfoNVX = VkStructureType
+        type FieldOptional "sType" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, sType}
+        type FieldIsArray "sType" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkObjectTableCreateInfoNVX where
+        type FieldType "pNext" VkObjectTableCreateInfoNVX = Ptr Void
+        type FieldOptional "pNext" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, pNext}
+        type FieldIsArray "pNext" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "objectCount" VkObjectTableCreateInfoNVX where
+        type FieldType "objectCount" VkObjectTableCreateInfoNVX = Word32
+        type FieldOptional "objectCount" VkObjectTableCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "objectCount" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, objectCount}
+        type FieldIsArray "objectCount" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, objectCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "objectCount" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, objectCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, objectCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "objectCount" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, objectCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
+        type FieldType "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
+             Ptr VkObjectEntryTypeNVX
+        type FieldOptional "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
+        type FieldIsArray "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
+        type FieldType "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
+             Ptr Word32
+        type FieldOptional "pObjectEntryCounts" VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
+        type FieldIsArray "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX where
+        type FieldType "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
+             = Ptr VkObjectEntryUsageFlagsNVX
+        type FieldOptional "pObjectEntryUsageFlags"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pObjectEntryUsageFlags"
+               VkObjectTableCreateInfoNVX
+             =
+             #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
+        type FieldIsArray "pObjectEntryUsageFlags"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxUniformBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        type FieldType "maxUniformBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = Word32
+        type FieldOptional "maxUniformBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxUniformBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             =
+             #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
+        type FieldIsArray "maxUniformBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxUniformBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxUniformBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxStorageBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        type FieldType "maxStorageBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = Word32
+        type FieldOptional "maxStorageBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxStorageBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             =
+             #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
+        type FieldIsArray "maxStorageBuffersPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxStorageBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxStorageBuffersPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxStorageImagesPerDescriptor" VkObjectTableCreateInfoNVX
+         where
+        type FieldType "maxStorageImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = Word32
+        type FieldOptional "maxStorageImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxStorageImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             =
+             #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
+        type FieldIsArray "maxStorageImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxStorageImagesPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxStorageImagesPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampledImagesPerDescriptor" VkObjectTableCreateInfoNVX
+         where
+        type FieldType "maxSampledImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = Word32
+        type FieldOptional "maxSampledImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampledImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             =
+             #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
+        type FieldIsArray "maxSampledImagesPerDescriptor"
+               VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampledImagesPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampledImagesPerDescriptor"
+           VkObjectTableCreateInfoNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
+        type FieldType "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
+             Word32
+        type FieldOptional "maxPipelineLayouts" VkObjectTableCreateInfoNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
+             #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
+        type FieldIsArray "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
+
+instance Show VkObjectTableCreateInfoNVX where
+        showsPrec d x
+          = showString "VkObjectTableCreateInfoNVX {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "objectCount = " .
+                            showsPrec d (getField @"objectCount" x) .
+                              showString ", " .
+                                showString "pObjectEntryTypes = " .
+                                  showsPrec d (getField @"pObjectEntryTypes" x) .
+                                    showString ", " .
+                                      showString "pObjectEntryCounts = " .
+                                        showsPrec d (getField @"pObjectEntryCounts" x) .
+                                          showString ", " .
+                                            showString "pObjectEntryUsageFlags = " .
+                                              showsPrec d (getField @"pObjectEntryUsageFlags" x) .
+                                                showString ", " .
+                                                  showString "maxUniformBuffersPerDescriptor = " .
+                                                    showsPrec d
+                                                      (getField @"maxUniformBuffersPerDescriptor" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "maxStorageBuffersPerDescriptor = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"maxStorageBuffersPerDescriptor"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "maxStorageImagesPerDescriptor = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"maxStorageImagesPerDescriptor"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "maxSampledImagesPerDescriptor = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"maxSampledImagesPerDescriptor"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxPipelineLayouts = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxPipelineLayouts"
+                                                                                 x)
+                                                                              . showChar '}'
+
+-- | > typedef struct VkObjectTableDescriptorSetEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   >     VkPipelineLayout             pipelineLayout;
+--   >     VkDescriptorSet              descriptorSet;
+--   > } VkObjectTableDescriptorSetEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableDescriptorSetEntryNVX VkObjectTableDescriptorSetEntryNVX registry at www.khronos.org>
+data VkObjectTableDescriptorSetEntryNVX = VkObjectTableDescriptorSetEntryNVX## Addr##
+                                                                              ByteArray##
+
+instance Eq VkObjectTableDescriptorSetEntryNVX where
+        (VkObjectTableDescriptorSetEntryNVX## a _) ==
+          x@(VkObjectTableDescriptorSetEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTableDescriptorSetEntryNVX where
+        (VkObjectTableDescriptorSetEntryNVX## a _) `compare`
+          x@(VkObjectTableDescriptorSetEntryNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTableDescriptorSetEntryNVX where
+        sizeOf ~_ = #{size VkObjectTableDescriptorSetEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkObjectTableDescriptorSetEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTableDescriptorSetEntryNVX where
+        unsafeAddr (VkObjectTableDescriptorSetEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTableDescriptorSetEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTableDescriptorSetEntryNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTableDescriptorSetEntryNVX where
+        type StructFields VkObjectTableDescriptorSetEntryNVX =
+             '["type", "flags", "pipelineLayout", "descriptorSet"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTableDescriptorSetEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTableDescriptorSetEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTableDescriptorSetEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkObjectTableDescriptorSetEntryNVX where
+        type FieldType "type" VkObjectTableDescriptorSetEntryNVX =
+             VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTableDescriptorSetEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTableDescriptorSetEntryNVX =
+             #{offset VkObjectTableDescriptorSetEntryNVX, type}
+        type FieldIsArray "type" VkObjectTableDescriptorSetEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableDescriptorSetEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTableDescriptorSetEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTableDescriptorSetEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkObjectTableDescriptorSetEntryNVX where
+        type FieldType "flags" VkObjectTableDescriptorSetEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTableDescriptorSetEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTableDescriptorSetEntryNVX =
+             #{offset VkObjectTableDescriptorSetEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTableDescriptorSetEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableDescriptorSetEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTableDescriptorSetEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTableDescriptorSetEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX where
+        type FieldType "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
+             = VkPipelineLayout
+        type FieldOptional "pipelineLayout"
+               VkObjectTableDescriptorSetEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineLayout"
+               VkObjectTableDescriptorSetEntryNVX
+             =
+             #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
+        type FieldIsArray "pipelineLayout"
+               VkObjectTableDescriptorSetEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorSet" VkObjectTableDescriptorSetEntryNVX where
+        type FieldType "descriptorSet" VkObjectTableDescriptorSetEntryNVX =
+             VkDescriptorSet
+        type FieldOptional "descriptorSet"
+               VkObjectTableDescriptorSetEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorSet" VkObjectTableDescriptorSetEntryNVX
+             =
+             #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
+        type FieldIsArray "descriptorSet"
+               VkObjectTableDescriptorSetEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorSet" VkObjectTableDescriptorSetEntryNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorSet" VkObjectTableDescriptorSetEntryNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
+
+instance Show VkObjectTableDescriptorSetEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTableDescriptorSetEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) .
+                        showString ", " .
+                          showString "pipelineLayout = " .
+                            showsPrec d (getField @"pipelineLayout" x) .
+                              showString ", " .
+                                showString "descriptorSet = " .
+                                  showsPrec d (getField @"descriptorSet" x) . showChar '}'
+
+-- | > typedef struct VkObjectTableEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   > } VkObjectTableEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableEntryNVX VkObjectTableEntryNVX registry at www.khronos.org>
+data VkObjectTableEntryNVX = VkObjectTableEntryNVX## Addr##
+                                                    ByteArray##
+
+instance Eq VkObjectTableEntryNVX where
+        (VkObjectTableEntryNVX## a _) == x@(VkObjectTableEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTableEntryNVX where
+        (VkObjectTableEntryNVX## a _) `compare`
+          x@(VkObjectTableEntryNVX## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTableEntryNVX where
+        sizeOf ~_ = #{size VkObjectTableEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkObjectTableEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTableEntryNVX where
+        unsafeAddr (VkObjectTableEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTableEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTableEntryNVX## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTableEntryNVX where
+        type StructFields VkObjectTableEntryNVX = '["type", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTableEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "type" VkObjectTableEntryNVX
+         where
+        type FieldType "type" VkObjectTableEntryNVX = VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTableEntryNVX =
+             #{offset VkObjectTableEntryNVX, type}
+        type FieldIsArray "type" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkObjectTableEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTableEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTableEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableEntryNVX, type}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkObjectTableEntryNVX
+         where
+        type FieldType "flags" VkObjectTableEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTableEntryNVX =
+             #{offset VkObjectTableEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkObjectTableEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTableEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTableEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableEntryNVX, flags}
+
+instance Show VkObjectTableEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTableEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkObjectTableIndexBufferEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   >     VkBuffer                     buffer;
+--   >     VkIndexType                  indexType;
+--   > } VkObjectTableIndexBufferEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableIndexBufferEntryNVX VkObjectTableIndexBufferEntryNVX registry at www.khronos.org>
+data VkObjectTableIndexBufferEntryNVX = VkObjectTableIndexBufferEntryNVX## Addr##
+                                                                          ByteArray##
+
+instance Eq VkObjectTableIndexBufferEntryNVX where
+        (VkObjectTableIndexBufferEntryNVX## a _) ==
+          x@(VkObjectTableIndexBufferEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTableIndexBufferEntryNVX where
+        (VkObjectTableIndexBufferEntryNVX## a _) `compare`
+          x@(VkObjectTableIndexBufferEntryNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTableIndexBufferEntryNVX where
+        sizeOf ~_ = #{size VkObjectTableIndexBufferEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkObjectTableIndexBufferEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTableIndexBufferEntryNVX where
+        unsafeAddr (VkObjectTableIndexBufferEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTableIndexBufferEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTableIndexBufferEntryNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTableIndexBufferEntryNVX where
+        type StructFields VkObjectTableIndexBufferEntryNVX =
+             '["type", "flags", "buffer", "indexType"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTableIndexBufferEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkObjectTableIndexBufferEntryNVX where
+        type FieldType "type" VkObjectTableIndexBufferEntryNVX =
+             VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTableIndexBufferEntryNVX =
+             #{offset VkObjectTableIndexBufferEntryNVX, type}
+        type FieldIsArray "type" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableIndexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTableIndexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTableIndexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkObjectTableIndexBufferEntryNVX where
+        type FieldType "flags" VkObjectTableIndexBufferEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTableIndexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTableIndexBufferEntryNVX =
+             #{offset VkObjectTableIndexBufferEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableIndexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTableIndexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTableIndexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkObjectTableIndexBufferEntryNVX where
+        type FieldType "buffer" VkObjectTableIndexBufferEntryNVX = VkBuffer
+        type FieldOptional "buffer" VkObjectTableIndexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkObjectTableIndexBufferEntryNVX =
+             #{offset VkObjectTableIndexBufferEntryNVX, buffer}
+        type FieldIsArray "buffer" VkObjectTableIndexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableIndexBufferEntryNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkObjectTableIndexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkObjectTableIndexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "indexType" VkObjectTableIndexBufferEntryNVX where
+        type FieldType "indexType" VkObjectTableIndexBufferEntryNVX =
+             VkIndexType
+        type FieldOptional "indexType" VkObjectTableIndexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "indexType" VkObjectTableIndexBufferEntryNVX =
+             #{offset VkObjectTableIndexBufferEntryNVX, indexType}
+        type FieldIsArray "indexType" VkObjectTableIndexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableIndexBufferEntryNVX, indexType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "indexType" VkObjectTableIndexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, indexType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, indexType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "indexType" VkObjectTableIndexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, indexType}
+
+instance Show VkObjectTableIndexBufferEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTableIndexBufferEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) .
+                        showString ", " .
+                          showString "buffer = " .
+                            showsPrec d (getField @"buffer" x) .
+                              showString ", " .
+                                showString "indexType = " .
+                                  showsPrec d (getField @"indexType" x) . showChar '}'
+
+-- | > typedef struct VkObjectTablePipelineEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   >     VkPipeline                   pipeline;
+--   > } VkObjectTablePipelineEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTablePipelineEntryNVX VkObjectTablePipelineEntryNVX registry at www.khronos.org>
+data VkObjectTablePipelineEntryNVX = VkObjectTablePipelineEntryNVX## Addr##
+                                                                    ByteArray##
+
+instance Eq VkObjectTablePipelineEntryNVX where
+        (VkObjectTablePipelineEntryNVX## a _) ==
+          x@(VkObjectTablePipelineEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTablePipelineEntryNVX where
+        (VkObjectTablePipelineEntryNVX## a _) `compare`
+          x@(VkObjectTablePipelineEntryNVX## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTablePipelineEntryNVX where
+        sizeOf ~_ = #{size VkObjectTablePipelineEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkObjectTablePipelineEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTablePipelineEntryNVX where
+        unsafeAddr (VkObjectTablePipelineEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTablePipelineEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTablePipelineEntryNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTablePipelineEntryNVX where
+        type StructFields VkObjectTablePipelineEntryNVX =
+             '["type", "flags", "pipeline"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTablePipelineEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkObjectTablePipelineEntryNVX where
+        type FieldType "type" VkObjectTablePipelineEntryNVX =
+             VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTablePipelineEntryNVX =
+             #{offset VkObjectTablePipelineEntryNVX, type}
+        type FieldIsArray "type" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePipelineEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTablePipelineEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTablePipelineEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkObjectTablePipelineEntryNVX where
+        type FieldType "flags" VkObjectTablePipelineEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTablePipelineEntryNVX =
+             #{offset VkObjectTablePipelineEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePipelineEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTablePipelineEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTablePipelineEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipeline" VkObjectTablePipelineEntryNVX where
+        type FieldType "pipeline" VkObjectTablePipelineEntryNVX =
+             VkPipeline
+        type FieldOptional "pipeline" VkObjectTablePipelineEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipeline" VkObjectTablePipelineEntryNVX =
+             #{offset VkObjectTablePipelineEntryNVX, pipeline}
+        type FieldIsArray "pipeline" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePipelineEntryNVX, pipeline}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipeline" VkObjectTablePipelineEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, pipeline})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, pipeline}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipeline" VkObjectTablePipelineEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, pipeline}
+
+instance Show VkObjectTablePipelineEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTablePipelineEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) .
+                        showString ", " .
+                          showString "pipeline = " .
+                            showsPrec d (getField @"pipeline" x) . showChar '}'
+
+-- | > typedef struct VkObjectTablePushConstantEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   >     VkPipelineLayout             pipelineLayout;
+--   >     VkShaderStageFlags           stageFlags;
+--   > } VkObjectTablePushConstantEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTablePushConstantEntryNVX VkObjectTablePushConstantEntryNVX registry at www.khronos.org>
+data VkObjectTablePushConstantEntryNVX = VkObjectTablePushConstantEntryNVX## Addr##
+                                                                            ByteArray##
+
+instance Eq VkObjectTablePushConstantEntryNVX where
+        (VkObjectTablePushConstantEntryNVX## a _) ==
+          x@(VkObjectTablePushConstantEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTablePushConstantEntryNVX where
+        (VkObjectTablePushConstantEntryNVX## a _) `compare`
+          x@(VkObjectTablePushConstantEntryNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTablePushConstantEntryNVX where
+        sizeOf ~_ = #{size VkObjectTablePushConstantEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkObjectTablePushConstantEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTablePushConstantEntryNVX where
+        unsafeAddr (VkObjectTablePushConstantEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTablePushConstantEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTablePushConstantEntryNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTablePushConstantEntryNVX where
+        type StructFields VkObjectTablePushConstantEntryNVX =
+             '["type", "flags", "pipelineLayout", "stageFlags"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTablePushConstantEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkObjectTablePushConstantEntryNVX where
+        type FieldType "type" VkObjectTablePushConstantEntryNVX =
+             VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTablePushConstantEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTablePushConstantEntryNVX =
+             #{offset VkObjectTablePushConstantEntryNVX, type}
+        type FieldIsArray "type" VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePushConstantEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTablePushConstantEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTablePushConstantEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkObjectTablePushConstantEntryNVX where
+        type FieldType "flags" VkObjectTablePushConstantEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTablePushConstantEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTablePushConstantEntryNVX =
+             #{offset VkObjectTablePushConstantEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTablePushConstantEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePushConstantEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTablePushConstantEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTablePushConstantEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineLayout" VkObjectTablePushConstantEntryNVX where
+        type FieldType "pipelineLayout" VkObjectTablePushConstantEntryNVX =
+             VkPipelineLayout
+        type FieldOptional "pipelineLayout"
+               VkObjectTablePushConstantEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineLayout" VkObjectTablePushConstantEntryNVX
+             =
+             #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
+        type FieldIsArray "pipelineLayout"
+               VkObjectTablePushConstantEntryNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineLayout" VkObjectTablePushConstantEntryNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineLayout" VkObjectTablePushConstantEntryNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
+
+instance {-# OVERLAPPING #-}
+         HasField "stageFlags" VkObjectTablePushConstantEntryNVX where
+        type FieldType "stageFlags" VkObjectTablePushConstantEntryNVX =
+             VkShaderStageFlags
+        type FieldOptional "stageFlags" VkObjectTablePushConstantEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stageFlags" VkObjectTablePushConstantEntryNVX =
+             #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
+        type FieldIsArray "stageFlags" VkObjectTablePushConstantEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stageFlags" VkObjectTablePushConstantEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, stageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stageFlags" VkObjectTablePushConstantEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
+
+instance Show VkObjectTablePushConstantEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTablePushConstantEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) .
+                        showString ", " .
+                          showString "pipelineLayout = " .
+                            showsPrec d (getField @"pipelineLayout" x) .
+                              showString ", " .
+                                showString "stageFlags = " .
+                                  showsPrec d (getField @"stageFlags" x) . showChar '}'
+
+-- | > typedef struct VkObjectTableVertexBufferEntryNVX {
+--   >     VkObjectEntryTypeNVX         type;
+--   >     VkObjectEntryUsageFlagsNVX   flags;
+--   >     VkBuffer                     buffer;
+--   > } VkObjectTableVertexBufferEntryNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkObjectTableVertexBufferEntryNVX VkObjectTableVertexBufferEntryNVX registry at www.khronos.org>
+data VkObjectTableVertexBufferEntryNVX = VkObjectTableVertexBufferEntryNVX## Addr##
+                                                                            ByteArray##
+
+instance Eq VkObjectTableVertexBufferEntryNVX where
+        (VkObjectTableVertexBufferEntryNVX## a _) ==
+          x@(VkObjectTableVertexBufferEntryNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkObjectTableVertexBufferEntryNVX where
+        (VkObjectTableVertexBufferEntryNVX## a _) `compare`
+          x@(VkObjectTableVertexBufferEntryNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkObjectTableVertexBufferEntryNVX where
+        sizeOf ~_ = #{size VkObjectTableVertexBufferEntryNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkObjectTableVertexBufferEntryNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkObjectTableVertexBufferEntryNVX where
+        unsafeAddr (VkObjectTableVertexBufferEntryNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkObjectTableVertexBufferEntryNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkObjectTableVertexBufferEntryNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkObjectTableVertexBufferEntryNVX where
+        type StructFields VkObjectTableVertexBufferEntryNVX =
+             '["type", "flags", "buffer"] -- ' closing tick for hsc2hs
+        type CUnionType VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkObjectTableVertexBufferEntryNVX = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkObjectTableVertexBufferEntryNVX where
+        type FieldType "type" VkObjectTableVertexBufferEntryNVX =
+             VkObjectEntryTypeNVX
+        type FieldOptional "type" VkObjectTableVertexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkObjectTableVertexBufferEntryNVX =
+             #{offset VkObjectTableVertexBufferEntryNVX, type}
+        type FieldIsArray "type" VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableVertexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkObjectTableVertexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkObjectTableVertexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkObjectTableVertexBufferEntryNVX where
+        type FieldType "flags" VkObjectTableVertexBufferEntryNVX =
+             VkObjectEntryUsageFlagsNVX
+        type FieldOptional "flags" VkObjectTableVertexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkObjectTableVertexBufferEntryNVX =
+             #{offset VkObjectTableVertexBufferEntryNVX, flags}
+        type FieldIsArray "flags" VkObjectTableVertexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableVertexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkObjectTableVertexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkObjectTableVertexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkObjectTableVertexBufferEntryNVX where
+        type FieldType "buffer" VkObjectTableVertexBufferEntryNVX =
+             VkBuffer
+        type FieldOptional "buffer" VkObjectTableVertexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkObjectTableVertexBufferEntryNVX =
+             #{offset VkObjectTableVertexBufferEntryNVX, buffer}
+        type FieldIsArray "buffer" VkObjectTableVertexBufferEntryNVX =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkObjectTableVertexBufferEntryNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkObjectTableVertexBufferEntryNVX where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkObjectTableVertexBufferEntryNVX where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, buffer}
+
+instance Show VkObjectTableVertexBufferEntryNVX where
+        showsPrec d x
+          = showString "VkObjectTableVertexBufferEntryNVX {" .
+              showString "type = " .
+                showsPrec d (getField @"type" x) .
+                  showString ", " .
+                    showString "flags = " .
+                      showsPrec d (getField @"flags" x) .
+                        showString ", " .
+                          showString "buffer = " .
+                            showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Offset.hsc
@@ -0,0 +1,272 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Offset
+       (VkOffset2D(..), VkOffset3D(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkOffset2D {
+--   >     int32_t        x;
+--   >     int32_t        y;
+--   > } VkOffset2D;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkOffset2D VkOffset2D registry at www.khronos.org>
+data VkOffset2D = VkOffset2D## Addr## ByteArray##
+
+instance Eq VkOffset2D where
+        (VkOffset2D## a _) == x@(VkOffset2D## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkOffset2D where
+        (VkOffset2D## a _) `compare` x@(VkOffset2D## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkOffset2D where
+        sizeOf ~_ = #{size VkOffset2D}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkOffset2D}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkOffset2D where
+        unsafeAddr (VkOffset2D## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkOffset2D## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkOffset2D## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkOffset2D where
+        type StructFields VkOffset2D = '["x", "y"] -- ' closing tick for hsc2hs
+        type CUnionType VkOffset2D = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkOffset2D = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkOffset2D = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkOffset2D where
+        type FieldType "x" VkOffset2D = Int32
+        type FieldOptional "x" VkOffset2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkOffset2D =
+             #{offset VkOffset2D, x}
+        type FieldIsArray "x" VkOffset2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkOffset2D, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkOffset2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkOffset2D, x})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkOffset2D, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkOffset2D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkOffset2D, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkOffset2D where
+        type FieldType "y" VkOffset2D = Int32
+        type FieldOptional "y" VkOffset2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkOffset2D =
+             #{offset VkOffset2D, y}
+        type FieldIsArray "y" VkOffset2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkOffset2D, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkOffset2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkOffset2D, y})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkOffset2D, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkOffset2D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkOffset2D, y}
+
+instance Show VkOffset2D where
+        showsPrec d x
+          = showString "VkOffset2D {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
+
+-- | > typedef struct VkOffset3D {
+--   >     int32_t        x;
+--   >     int32_t        y;
+--   >     int32_t        z;
+--   > } VkOffset3D;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkOffset3D VkOffset3D registry at www.khronos.org>
+data VkOffset3D = VkOffset3D## Addr## ByteArray##
+
+instance Eq VkOffset3D where
+        (VkOffset3D## a _) == x@(VkOffset3D## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkOffset3D where
+        (VkOffset3D## a _) `compare` x@(VkOffset3D## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkOffset3D where
+        sizeOf ~_ = #{size VkOffset3D}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkOffset3D}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkOffset3D where
+        unsafeAddr (VkOffset3D## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkOffset3D## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkOffset3D## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkOffset3D where
+        type StructFields VkOffset3D = '["x", "y", "z"] -- ' closing tick for hsc2hs
+        type CUnionType VkOffset3D = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkOffset3D = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkOffset3D = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkOffset3D where
+        type FieldType "x" VkOffset3D = Int32
+        type FieldOptional "x" VkOffset3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkOffset3D =
+             #{offset VkOffset3D, x}
+        type FieldIsArray "x" VkOffset3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkOffset3D, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkOffset3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkOffset3D, x})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkOffset3D, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkOffset3D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkOffset3D, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkOffset3D where
+        type FieldType "y" VkOffset3D = Int32
+        type FieldOptional "y" VkOffset3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkOffset3D =
+             #{offset VkOffset3D, y}
+        type FieldIsArray "y" VkOffset3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkOffset3D, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkOffset3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkOffset3D, y})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkOffset3D, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkOffset3D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkOffset3D, y}
+
+instance {-# OVERLAPPING #-} HasField "z" VkOffset3D where
+        type FieldType "z" VkOffset3D = Int32
+        type FieldOptional "z" VkOffset3D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "z" VkOffset3D =
+             #{offset VkOffset3D, z}
+        type FieldIsArray "z" VkOffset3D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkOffset3D, z}
+
+instance {-# OVERLAPPING #-} CanReadField "z" VkOffset3D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkOffset3D, z})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkOffset3D, z}
+
+instance {-# OVERLAPPING #-} CanWriteField "z" VkOffset3D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkOffset3D, z}
+
+instance Show VkOffset3D where
+        showsPrec d x
+          = showString "VkOffset3D {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " .
+                      showsPrec d (getField @"y" x) .
+                        showString ", " .
+                          showString "z = " . showsPrec d (getField @"z" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PastPresentationTimingGOOGLE.hsc
@@ -0,0 +1,289 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
+       (VkPastPresentationTimingGOOGLE(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPastPresentationTimingGOOGLE {
+--   >     uint32_t                         presentID;
+--   >     uint64_t                         desiredPresentTime;
+--   >     uint64_t                         actualPresentTime;
+--   >     uint64_t                         earliestPresentTime;
+--   >     uint64_t                         presentMargin;
+--   > } VkPastPresentationTimingGOOGLE;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPastPresentationTimingGOOGLE VkPastPresentationTimingGOOGLE registry at www.khronos.org>
+data VkPastPresentationTimingGOOGLE = VkPastPresentationTimingGOOGLE## Addr##
+                                                                      ByteArray##
+
+instance Eq VkPastPresentationTimingGOOGLE where
+        (VkPastPresentationTimingGOOGLE## a _) ==
+          x@(VkPastPresentationTimingGOOGLE## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPastPresentationTimingGOOGLE where
+        (VkPastPresentationTimingGOOGLE## a _) `compare`
+          x@(VkPastPresentationTimingGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPastPresentationTimingGOOGLE where
+        sizeOf ~_ = #{size VkPastPresentationTimingGOOGLE}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPastPresentationTimingGOOGLE}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPastPresentationTimingGOOGLE where
+        unsafeAddr (VkPastPresentationTimingGOOGLE## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPastPresentationTimingGOOGLE## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPastPresentationTimingGOOGLE##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPastPresentationTimingGOOGLE where
+        type StructFields VkPastPresentationTimingGOOGLE =
+             '["presentID", "desiredPresentTime", "actualPresentTime", -- ' closing tick for hsc2hs
+               "earliestPresentTime", "presentMargin"]
+        type CUnionType VkPastPresentationTimingGOOGLE = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPastPresentationTimingGOOGLE = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPastPresentationTimingGOOGLE = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "presentID" VkPastPresentationTimingGOOGLE where
+        type FieldType "presentID" VkPastPresentationTimingGOOGLE = Word32
+        type FieldOptional "presentID" VkPastPresentationTimingGOOGLE =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "presentID" VkPastPresentationTimingGOOGLE =
+             #{offset VkPastPresentationTimingGOOGLE, presentID}
+        type FieldIsArray "presentID" VkPastPresentationTimingGOOGLE =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPastPresentationTimingGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "presentID" VkPastPresentationTimingGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, presentID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "presentID" VkPastPresentationTimingGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         HasField "desiredPresentTime" VkPastPresentationTimingGOOGLE where
+        type FieldType "desiredPresentTime" VkPastPresentationTimingGOOGLE
+             = Word64
+        type FieldOptional "desiredPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "desiredPresentTime"
+               VkPastPresentationTimingGOOGLE
+             =
+             #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
+        type FieldIsArray "desiredPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "desiredPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "desiredPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
+
+instance {-# OVERLAPPING #-}
+         HasField "actualPresentTime" VkPastPresentationTimingGOOGLE where
+        type FieldType "actualPresentTime" VkPastPresentationTimingGOOGLE =
+             Word64
+        type FieldOptional "actualPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "actualPresentTime" VkPastPresentationTimingGOOGLE
+             =
+             #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
+        type FieldIsArray "actualPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "actualPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, actualPresentTime})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "actualPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
+
+instance {-# OVERLAPPING #-}
+         HasField "earliestPresentTime" VkPastPresentationTimingGOOGLE where
+        type FieldType "earliestPresentTime" VkPastPresentationTimingGOOGLE
+             = Word64
+        type FieldOptional "earliestPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "earliestPresentTime"
+               VkPastPresentationTimingGOOGLE
+             =
+             #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
+        type FieldIsArray "earliestPresentTime"
+               VkPastPresentationTimingGOOGLE
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "earliestPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "earliestPresentTime" VkPastPresentationTimingGOOGLE
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
+
+instance {-# OVERLAPPING #-}
+         HasField "presentMargin" VkPastPresentationTimingGOOGLE where
+        type FieldType "presentMargin" VkPastPresentationTimingGOOGLE =
+             Word64
+        type FieldOptional "presentMargin" VkPastPresentationTimingGOOGLE =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "presentMargin" VkPastPresentationTimingGOOGLE =
+             #{offset VkPastPresentationTimingGOOGLE, presentMargin}
+        type FieldIsArray "presentMargin" VkPastPresentationTimingGOOGLE =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPastPresentationTimingGOOGLE, presentMargin}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "presentMargin" VkPastPresentationTimingGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, presentMargin})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, presentMargin}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "presentMargin" VkPastPresentationTimingGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, presentMargin}
+
+instance Show VkPastPresentationTimingGOOGLE where
+        showsPrec d x
+          = showString "VkPastPresentationTimingGOOGLE {" .
+              showString "presentID = " .
+                showsPrec d (getField @"presentID" x) .
+                  showString ", " .
+                    showString "desiredPresentTime = " .
+                      showsPrec d (getField @"desiredPresentTime" x) .
+                        showString ", " .
+                          showString "actualPresentTime = " .
+                            showsPrec d (getField @"actualPresentTime" x) .
+                              showString ", " .
+                                showString "earliestPresentTime = " .
+                                  showsPrec d (getField @"earliestPresentTime" x) .
+                                    showString ", " .
+                                      showString "presentMargin = " .
+                                        showsPrec d (getField @"presentMargin" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDevice.hsc
@@ -0,0 +1,20205 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.PhysicalDevice
+       (VkPhysicalDevice16BitStorageFeatures(..),
+        VkPhysicalDevice16BitStorageFeaturesKHR,
+        VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(..),
+        VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(..),
+        VkPhysicalDeviceConservativeRasterizationPropertiesEXT(..),
+        VkPhysicalDeviceDescriptorIndexingFeaturesEXT(..),
+        VkPhysicalDeviceDescriptorIndexingPropertiesEXT(..),
+        VkPhysicalDeviceDiscardRectanglePropertiesEXT(..),
+        VkPhysicalDeviceExternalBufferInfo(..),
+        VkPhysicalDeviceExternalBufferInfoKHR,
+        VkPhysicalDeviceExternalFenceInfo(..),
+        VkPhysicalDeviceExternalFenceInfoKHR,
+        VkPhysicalDeviceExternalImageFormatInfo(..),
+        VkPhysicalDeviceExternalImageFormatInfoKHR,
+        VkPhysicalDeviceExternalMemoryHostPropertiesEXT(..),
+        VkPhysicalDeviceExternalSemaphoreInfo(..),
+        VkPhysicalDeviceExternalSemaphoreInfoKHR,
+        VkPhysicalDeviceFeatures2(..), VkPhysicalDeviceFeatures2KHR,
+        VkPhysicalDeviceGroupProperties(..),
+        VkPhysicalDeviceGroupPropertiesKHR,
+        VkPhysicalDeviceIDProperties(..), VkPhysicalDeviceIDPropertiesKHR,
+        VkPhysicalDeviceImageFormatInfo2(..),
+        VkPhysicalDeviceImageFormatInfo2KHR, VkPhysicalDeviceLimits(..),
+        VkPhysicalDeviceMaintenance3Properties(..),
+        VkPhysicalDeviceMaintenance3PropertiesKHR,
+        VkPhysicalDeviceMemoryProperties(..),
+        VkPhysicalDeviceMemoryProperties2(..),
+        VkPhysicalDeviceMemoryProperties2KHR,
+        VkPhysicalDeviceMultiviewFeatures(..),
+        VkPhysicalDeviceMultiviewFeaturesKHR,
+        VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(..),
+        VkPhysicalDeviceMultiviewProperties(..),
+        VkPhysicalDeviceMultiviewPropertiesKHR,
+        VkPhysicalDevicePointClippingProperties(..),
+        VkPhysicalDevicePointClippingPropertiesKHR,
+        VkPhysicalDeviceProperties(..), VkPhysicalDeviceProperties2(..),
+        VkPhysicalDeviceProperties2KHR,
+        VkPhysicalDeviceProtectedMemoryFeatures(..),
+        VkPhysicalDeviceProtectedMemoryProperties(..),
+        VkPhysicalDevicePushDescriptorPropertiesKHR(..),
+        VkPhysicalDeviceSampleLocationsPropertiesEXT(..),
+        VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(..),
+        VkPhysicalDeviceSamplerYcbcrConversionFeatures(..),
+        VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
+        VkPhysicalDeviceShaderCorePropertiesAMD(..),
+        VkPhysicalDeviceShaderDrawParameterFeatures(..),
+        VkPhysicalDeviceSparseImageFormatInfo2(..),
+        VkPhysicalDeviceSparseImageFormatInfo2KHR,
+        VkPhysicalDeviceSparseProperties(..),
+        VkPhysicalDeviceSubgroupProperties(..),
+        VkPhysicalDeviceSurfaceInfo2KHR(..),
+        VkPhysicalDeviceVariablePointerFeatures(..),
+        VkPhysicalDeviceVariablePointerFeaturesKHR,
+        VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(..))
+       where
+import           Foreign.Storable                                    (Storable (..))
+import           GHC.Base                                            (Addr##,
+                                                                      ByteArray##,
+                                                                      Proxy##,
+                                                                      byteArrayContents##,
+                                                                      plusAddr##,
+                                                                      proxy##)
+import           GHC.TypeLits                                        (KnownNat,
+                                                                      natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Constants                           (VK_LUID_SIZE,
+                                                                      pattern VK_LUID_SIZE,
+                                                                      VK_MAX_DEVICE_GROUP_SIZE,
+                                                                      pattern VK_MAX_DEVICE_GROUP_SIZE,
+                                                                      VK_MAX_MEMORY_HEAPS,
+                                                                      pattern VK_MAX_MEMORY_HEAPS,
+                                                                      VK_MAX_MEMORY_TYPES,
+                                                                      pattern VK_MAX_MEMORY_TYPES,
+                                                                      VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
+                                                                      pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
+                                                                      VK_UUID_SIZE,
+                                                                      pattern VK_UUID_SIZE)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes                     (VkBool32, VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.Buffer                   (VkBufferCreateFlags,
+                                                                      VkBufferUsageFlags)
+import           Graphics.Vulkan.Types.Enum.External                 (VkExternalFenceHandleTypeFlagBits,
+                                                                      VkExternalMemoryHandleTypeFlagBits,
+                                                                      VkExternalSemaphoreHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Format                   (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Image                    (VkImageCreateFlags,
+                                                                      VkImageTiling,
+                                                                      VkImageType,
+                                                                      VkImageUsageFlags)
+import           Graphics.Vulkan.Types.Enum.PhysicalDeviceType       (VkPhysicalDeviceType)
+import           Graphics.Vulkan.Types.Enum.PointClippingBehavior    (VkPointClippingBehavior)
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags         (VkSampleCountFlagBits,
+                                                                      VkSampleCountFlags)
+import           Graphics.Vulkan.Types.Enum.Shader                   (VkShaderStageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags     (VkSubgroupFeatureFlags)
+import           Graphics.Vulkan.Types.Handles                       (VkPhysicalDevice,
+                                                                      VkSurfaceKHR)
+import           Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Extent                 (VkExtent2D)
+import           Graphics.Vulkan.Types.Struct.Memory                 (VkMemoryHeap,
+                                                                      VkMemoryType)
+import           Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
+import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPhysicalDevice16BitStorageFeatures {
+--   >     VkStructureType sType;
+--   >     void*      pNext;
+--   >     VkBool32                         storageBuffer16BitAccess;
+--   >     VkBool32                         uniformAndStorageBuffer16BitAccess;
+--   >     VkBool32                         storagePushConstant16;
+--   >     VkBool32                         storageInputOutput16;
+--   > } VkPhysicalDevice16BitStorageFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeatures registry at www.khronos.org>
+data VkPhysicalDevice16BitStorageFeatures = VkPhysicalDevice16BitStorageFeatures## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkPhysicalDevice16BitStorageFeatures where
+        (VkPhysicalDevice16BitStorageFeatures## a _) ==
+          x@(VkPhysicalDevice16BitStorageFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevice16BitStorageFeatures where
+        (VkPhysicalDevice16BitStorageFeatures## a _) `compare`
+          x@(VkPhysicalDevice16BitStorageFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevice16BitStorageFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDevice16BitStorageFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevice16BitStorageFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDevice16BitStorageFeatures
+         where
+        unsafeAddr (VkPhysicalDevice16BitStorageFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDevice16BitStorageFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDevice16BitStorageFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDevice16BitStorageFeatures where
+        type StructFields VkPhysicalDevice16BitStorageFeatures =
+             '["sType", "pNext", "storageBuffer16BitAccess", -- ' closing tick for hsc2hs
+               "uniformAndStorageBuffer16BitAccess", "storagePushConstant16",
+               "storageInputOutput16"]
+        type CUnionType VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevice16BitStorageFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevice16BitStorageFeatures where
+        type FieldType "sType" VkPhysicalDevice16BitStorageFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDevice16BitStorageFeatures =
+             #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevice16BitStorageFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevice16BitStorageFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        type FieldType "pNext" VkPhysicalDevice16BitStorageFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDevice16BitStorageFeatures =
+             #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDevice16BitStorageFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevice16BitStorageFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+        type FieldIsArray "storageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+        type FieldIsArray "uniformAndStorageBuffer16BitAccess"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "uniformAndStorageBuffer16BitAccess"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+        type FieldIsArray "storagePushConstant16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storagePushConstant16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        type FieldType "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = VkBool32
+        type FieldOptional "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             =
+             #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+        type FieldIsArray "storageInputOutput16"
+               VkPhysicalDevice16BitStorageFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageInputOutput16"
+           VkPhysicalDevice16BitStorageFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
+
+instance Show VkPhysicalDevice16BitStorageFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDevice16BitStorageFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "storageBuffer16BitAccess = " .
+                            showsPrec d (getField @"storageBuffer16BitAccess" x) .
+                              showString ", " .
+                                showString "uniformAndStorageBuffer16BitAccess = " .
+                                  showsPrec d (getField @"uniformAndStorageBuffer16BitAccess" x) .
+                                    showString ", " .
+                                      showString "storagePushConstant16 = " .
+                                        showsPrec d (getField @"storagePushConstant16" x) .
+                                          showString ", " .
+                                            showString "storageInputOutput16 = " .
+                                              showsPrec d (getField @"storageInputOutput16" x) .
+                                                showChar '}'
+
+-- | Alias for `VkPhysicalDevice16BitStorageFeatures`
+type VkPhysicalDevice16BitStorageFeaturesKHR =
+     VkPhysicalDevice16BitStorageFeatures
+
+-- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         advancedBlendCoherentOperations;
+--   > } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT registry at www.khronos.org>
+data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## Addr##
+                                                                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where
+        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) ==
+          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) `compare`
+          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type StructFields VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = '["sType", "pNext", "advancedBlendCoherentOperations"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        type FieldType "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+        type FieldIsArray "advancedBlendCoherentOperations"
+               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendCoherentOperations"
+           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
+
+instance Show VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
+         where
+        showsPrec d x
+          = showString "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "advancedBlendCoherentOperations = " .
+                            showsPrec d (getField @"advancedBlendCoherentOperations" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         advancedBlendMaxColorAttachments;
+--   >     VkBool32                         advancedBlendIndependentBlend;
+--   >     VkBool32                         advancedBlendNonPremultipliedSrcColor;
+--   >     VkBool32                         advancedBlendNonPremultipliedDstColor;
+--   >     VkBool32                         advancedBlendCorrelatedOverlap;
+--   >     VkBool32                         advancedBlendAllOperations;
+--   > } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## Addr##
+                                                                                                                ByteArray##
+
+instance Eq VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _)
+          `compare`
+          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        unsafeAddr
+          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type StructFields
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             '["sType", "pNext", "advancedBlendMaxColorAttachments", -- ' closing tick for hsc2hs
+               "advancedBlendIndependentBlend",
+               "advancedBlendNonPremultipliedSrcColor",
+               "advancedBlendNonPremultipliedDstColor",
+               "advancedBlendCorrelatedOverlap", "advancedBlendAllOperations"]
+        type CUnionType VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = Word32
+        type FieldOptional "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+        type FieldIsArray "advancedBlendMaxColorAttachments"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendMaxColorAttachments"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+        type FieldIsArray "advancedBlendIndependentBlend"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendIndependentBlend"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+        type FieldIsArray "advancedBlendNonPremultipliedSrcColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendNonPremultipliedSrcColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+        type FieldIsArray "advancedBlendNonPremultipliedDstColor"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendNonPremultipliedDstColor"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+        type FieldIsArray "advancedBlendCorrelatedOverlap"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendCorrelatedOverlap"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
+
+instance {-# OVERLAPPING #-}
+         HasField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        type FieldType "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = VkBool32
+        type FieldOptional "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+        type FieldIsArray "advancedBlendAllOperations"
+               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "advancedBlendAllOperations"
+           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
+
+instance Show VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "advancedBlendMaxColorAttachments = " .
+                            showsPrec d (getField @"advancedBlendMaxColorAttachments" x) .
+                              showString ", " .
+                                showString "advancedBlendIndependentBlend = " .
+                                  showsPrec d (getField @"advancedBlendIndependentBlend" x) .
+                                    showString ", " .
+                                      showString "advancedBlendNonPremultipliedSrcColor = " .
+                                        showsPrec d
+                                          (getField @"advancedBlendNonPremultipliedSrcColor" x)
+                                          .
+                                          showString ", " .
+                                            showString "advancedBlendNonPremultipliedDstColor = " .
+                                              showsPrec d
+                                                (getField @"advancedBlendNonPremultipliedDstColor"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString "advancedBlendCorrelatedOverlap = " .
+                                                    showsPrec d
+                                                      (getField @"advancedBlendCorrelatedOverlap" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "advancedBlendAllOperations = " .
+                                                          showsPrec d
+                                                            (getField @"advancedBlendAllOperations"
+                                                               x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     float                  primitiveOverestimationSize;
+--   >     float                  maxExtraPrimitiveOverestimationSize;
+--   >     float                  extraPrimitiveOverestimationSizeGranularity;
+--   >     VkBool32               primitiveUnderestimation;
+--   >     VkBool32               conservativePointAndLineRasterization;
+--   >     VkBool32               degenerateTrianglesRasterized;
+--   >     VkBool32               degenerateLinesRasterized;
+--   >     VkBool32               fullyCoveredFragmentShaderInputVariable;
+--   >     VkBool32               conservativeRasterizationPostDepthCoverage;
+--   > } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceConservativeRasterizationPropertiesEXT VkPhysicalDeviceConservativeRasterizationPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceConservativeRasterizationPropertiesEXT = VkPhysicalDeviceConservativeRasterizationPropertiesEXT## Addr##
+                                                                                                                      ByteArray##
+
+instance Eq VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _)
+          `compare`
+          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        unsafeAddr
+          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceConservativeRasterizationPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type StructFields
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             '["sType", "pNext", "primitiveOverestimationSize", -- ' closing tick for hsc2hs
+               "maxExtraPrimitiveOverestimationSize",
+               "extraPrimitiveOverestimationSizeGranularity",
+               "primitiveUnderestimation",
+               "conservativePointAndLineRasterization",
+               "degenerateTrianglesRasterized", "degenerateLinesRasterized",
+               "fullyCoveredFragmentShaderInputVariable",
+               "conservativeRasterizationPostDepthCoverage"]
+        type CUnionType
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+        type FieldIsArray "primitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "primitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+        type FieldIsArray "maxExtraPrimitiveOverestimationSize"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxExtraPrimitiveOverestimationSize"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = #{type float}
+        type FieldOptional "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+        type FieldIsArray "extraPrimitiveOverestimationSizeGranularity"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "extraPrimitiveOverestimationSizeGranularity"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+        type FieldIsArray "primitiveUnderestimation"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "primitiveUnderestimation"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
+
+instance {-# OVERLAPPING #-}
+         HasField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+        type FieldIsArray "conservativePointAndLineRasterization"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conservativePointAndLineRasterization"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
+
+instance {-# OVERLAPPING #-}
+         HasField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+        type FieldIsArray "degenerateTrianglesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "degenerateTrianglesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
+
+instance {-# OVERLAPPING #-}
+         HasField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+        type FieldIsArray "degenerateLinesRasterized"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "degenerateLinesRasterized"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
+
+instance {-# OVERLAPPING #-}
+         HasField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+        type FieldIsArray "fullyCoveredFragmentShaderInputVariable"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fullyCoveredFragmentShaderInputVariable"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
+
+instance {-# OVERLAPPING #-}
+         HasField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        type FieldType "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = VkBool32
+        type FieldOptional "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+        type FieldIsArray "conservativeRasterizationPostDepthCoverage"
+               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conservativeRasterizationPostDepthCoverage"
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
+
+instance Show
+           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceConservativeRasterizationPropertiesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "primitiveOverestimationSize = " .
+                            showsPrec d (getField @"primitiveOverestimationSize" x) .
+                              showString ", " .
+                                showString "maxExtraPrimitiveOverestimationSize = " .
+                                  showsPrec d (getField @"maxExtraPrimitiveOverestimationSize" x) .
+                                    showString ", " .
+                                      showString "extraPrimitiveOverestimationSizeGranularity = " .
+                                        showsPrec d
+                                          (getField @"extraPrimitiveOverestimationSizeGranularity"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString "primitiveUnderestimation = " .
+                                              showsPrec d (getField @"primitiveUnderestimation" x) .
+                                                showString ", " .
+                                                  showString
+                                                    "conservativePointAndLineRasterization = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"conservativePointAndLineRasterization"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "degenerateTrianglesRasterized = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"degenerateTrianglesRasterized"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "degenerateLinesRasterized = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"degenerateLinesRasterized"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "fullyCoveredFragmentShaderInputVariable = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"fullyCoveredFragmentShaderInputVariable"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "conservativeRasterizationPostDepthCoverage = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"conservativeRasterizationPostDepthCoverage"
+                                                                                 x)
+                                                                              . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32               shaderInputAttachmentArrayDynamicIndexing;
+--   >     VkBool32               shaderUniformTexelBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderStorageTexelBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderUniformBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderSampledImageArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageImageArrayNonUniformIndexing;
+--   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexing;
+--   >     VkBool32               shaderUniformTexelBufferArrayNonUniformIndexing;
+--   >     VkBool32               shaderStorageTexelBufferArrayNonUniformIndexing;
+--   >     VkBool32               descriptorBindingUniformBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingSampledImageUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageImageUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingUniformTexelBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingStorageTexelBufferUpdateAfterBind;
+--   >     VkBool32               descriptorBindingUpdateUnusedWhilePending;
+--   >     VkBool32               descriptorBindingPartiallyBound;
+--   >     VkBool32               descriptorBindingVariableDescriptorCount;
+--   >     VkBool32               runtimeDescriptorArray;
+--   > } VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingFeaturesEXT VkPhysicalDeviceDescriptorIndexingFeaturesEXT registry at www.khronos.org>
+data VkPhysicalDeviceDescriptorIndexingFeaturesEXT = VkPhysicalDeviceDescriptorIndexingFeaturesEXT## Addr##
+                                                                                                    ByteArray##
+
+instance Eq VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) ==
+          x@(VkPhysicalDeviceDescriptorIndexingFeaturesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) `compare`
+          x@(VkPhysicalDeviceDescriptorIndexingFeaturesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDescriptorIndexingFeaturesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceDescriptorIndexingFeaturesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceDescriptorIndexingFeaturesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type StructFields VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             '["sType", "pNext", "shaderInputAttachmentArrayDynamicIndexing", -- ' closing tick for hsc2hs
+               "shaderUniformTexelBufferArrayDynamicIndexing",
+               "shaderStorageTexelBufferArrayDynamicIndexing",
+               "shaderUniformBufferArrayNonUniformIndexing",
+               "shaderSampledImageArrayNonUniformIndexing",
+               "shaderStorageBufferArrayNonUniformIndexing",
+               "shaderStorageImageArrayNonUniformIndexing",
+               "shaderInputAttachmentArrayNonUniformIndexing",
+               "shaderUniformTexelBufferArrayNonUniformIndexing",
+               "shaderStorageTexelBufferArrayNonUniformIndexing",
+               "descriptorBindingUniformBufferUpdateAfterBind",
+               "descriptorBindingSampledImageUpdateAfterBind",
+               "descriptorBindingStorageImageUpdateAfterBind",
+               "descriptorBindingStorageBufferUpdateAfterBind",
+               "descriptorBindingUniformTexelBufferUpdateAfterBind",
+               "descriptorBindingStorageTexelBufferUpdateAfterBind",
+               "descriptorBindingUpdateUnusedWhilePending",
+               "descriptorBindingPartiallyBound",
+               "descriptorBindingVariableDescriptorCount",
+               "runtimeDescriptorArray"]
+        type CUnionType VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDescriptorIndexingFeaturesEXT =
+             '[VkPhysicalDeviceFeatures2KHR, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+        type FieldIsArray "shaderInputAttachmentArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderUniformTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderStorageTexelBufferArrayDynamicIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageTexelBufferArrayDynamicIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderUniformBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+        type FieldIsArray "shaderSampledImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderSampledImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderSampledImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageImageArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageImageArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+        type FieldIsArray "shaderInputAttachmentArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderInputAttachmentArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderUniformTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderUniformTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+        type FieldIsArray "shaderStorageTexelBufferArrayNonUniformIndexing"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageTexelBufferArrayNonUniformIndexing"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, shaderStorageTexelBufferArrayNonUniformIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+        type FieldIsArray "descriptorBindingUniformBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUniformBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+        type FieldIsArray "descriptorBindingSampledImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingSampledImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingSampledImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+        type FieldIsArray "descriptorBindingStorageImageUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageImageUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageImageUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+        type FieldIsArray "descriptorBindingStorageBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+        type FieldIsArray
+               "descriptorBindingUniformTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUniformTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUniformTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+        type FieldIsArray
+               "descriptorBindingStorageTexelBufferUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingStorageTexelBufferUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingStorageTexelBufferUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+        type FieldIsArray "descriptorBindingUpdateUnusedWhilePending"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingUpdateUnusedWhilePending"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingUpdateUnusedWhilePending}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+        type FieldIsArray "descriptorBindingPartiallyBound"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingPartiallyBound"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingPartiallyBound}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+        type FieldIsArray "descriptorBindingVariableDescriptorCount"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorBindingVariableDescriptorCount"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, descriptorBindingVariableDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        type FieldType "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = VkBool32
+        type FieldOptional "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+        type FieldIsArray "runtimeDescriptorArray"
+               VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "runtimeDescriptorArray"
+           VkPhysicalDeviceDescriptorIndexingFeaturesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingFeaturesEXT, runtimeDescriptorArray}
+
+instance Show VkPhysicalDeviceDescriptorIndexingFeaturesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDescriptorIndexingFeaturesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderInputAttachmentArrayDynamicIndexing = " .
+                            showsPrec d
+                              (getField @"shaderInputAttachmentArrayDynamicIndexing" x)
+                              .
+                              showString ", " .
+                                showString "shaderUniformTexelBufferArrayDynamicIndexing = " .
+                                  showsPrec d
+                                    (getField @"shaderUniformTexelBufferArrayDynamicIndexing" x)
+                                    .
+                                    showString ", " .
+                                      showString "shaderStorageTexelBufferArrayDynamicIndexing = " .
+                                        showsPrec d
+                                          (getField @"shaderStorageTexelBufferArrayDynamicIndexing"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString
+                                              "shaderUniformBufferArrayNonUniformIndexing = "
+                                              .
+                                              showsPrec d
+                                                (getField
+                                                   @"shaderUniformBufferArrayNonUniformIndexing"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString
+                                                    "shaderSampledImageArrayNonUniformIndexing = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"shaderSampledImageArrayNonUniformIndexing"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "shaderStorageBufferArrayNonUniformIndexing = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"shaderStorageBufferArrayNonUniformIndexing"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "shaderStorageImageArrayNonUniformIndexing = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"shaderStorageImageArrayNonUniformIndexing"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "shaderInputAttachmentArrayNonUniformIndexing = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"shaderInputAttachmentArrayNonUniformIndexing"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "shaderUniformTexelBufferArrayNonUniformIndexing = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"shaderUniformTexelBufferArrayNonUniformIndexing"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "shaderStorageTexelBufferArrayNonUniformIndexing = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"shaderStorageTexelBufferArrayNonUniformIndexing"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "descriptorBindingUniformBufferUpdateAfterBind = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"descriptorBindingUniformBufferUpdateAfterBind"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "descriptorBindingSampledImageUpdateAfterBind = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"descriptorBindingSampledImageUpdateAfterBind"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "descriptorBindingStorageImageUpdateAfterBind = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"descriptorBindingStorageImageUpdateAfterBind"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "descriptorBindingStorageBufferUpdateAfterBind = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"descriptorBindingStorageBufferUpdateAfterBind"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "descriptorBindingUniformTexelBufferUpdateAfterBind = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"descriptorBindingUniformTexelBufferUpdateAfterBind"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "descriptorBindingStorageTexelBufferUpdateAfterBind = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"descriptorBindingStorageTexelBufferUpdateAfterBind"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "descriptorBindingUpdateUnusedWhilePending = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"descriptorBindingUpdateUnusedWhilePending"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "descriptorBindingPartiallyBound = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"descriptorBindingPartiallyBound"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "descriptorBindingVariableDescriptorCount = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"descriptorBindingVariableDescriptorCount"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "runtimeDescriptorArray = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"runtimeDescriptorArray"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showChar
+                                                                                                                                                  '}'
+
+-- | > typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t               maxUpdateAfterBindDescriptorsInAllPools;
+--   >     VkBool32               shaderUniformBufferArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderSampledImageArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderStorageBufferArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderStorageImageArrayNonUniformIndexingNative;
+--   >     VkBool32               shaderInputAttachmentArrayNonUniformIndexingNative;
+--   >     VkBool32               robustBufferAccessUpdateAfterBind;
+--   >     VkBool32               quadDivergentImplicitLod;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSamplers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindUniformBuffers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageBuffers;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindSampledImages;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindStorageImages;
+--   >     uint32_t               maxPerStageDescriptorUpdateAfterBindInputAttachments;
+--   >     uint32_t               maxPerStageUpdateAfterBindResources;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindSamplers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffers;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindSampledImages;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindStorageImages;
+--   >     uint32_t               maxDescriptorSetUpdateAfterBindInputAttachments;
+--   > } VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDescriptorIndexingPropertiesEXT VkPhysicalDeviceDescriptorIndexingPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceDescriptorIndexingPropertiesEXT = VkPhysicalDeviceDescriptorIndexingPropertiesEXT## Addr##
+                                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceDescriptorIndexingPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _) `compare`
+          x@(VkPhysicalDeviceDescriptorIndexingPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDescriptorIndexingPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceDescriptorIndexingPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceDescriptorIndexingPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             '["sType", "pNext", "maxUpdateAfterBindDescriptorsInAllPools", -- ' closing tick for hsc2hs
+               "shaderUniformBufferArrayNonUniformIndexingNative",
+               "shaderSampledImageArrayNonUniformIndexingNative",
+               "shaderStorageBufferArrayNonUniformIndexingNative",
+               "shaderStorageImageArrayNonUniformIndexingNative",
+               "shaderInputAttachmentArrayNonUniformIndexingNative",
+               "robustBufferAccessUpdateAfterBind", "quadDivergentImplicitLod",
+               "maxPerStageDescriptorUpdateAfterBindSamplers",
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers",
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers",
+               "maxPerStageDescriptorUpdateAfterBindSampledImages",
+               "maxPerStageDescriptorUpdateAfterBindStorageImages",
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments",
+               "maxPerStageUpdateAfterBindResources",
+               "maxDescriptorSetUpdateAfterBindSamplers",
+               "maxDescriptorSetUpdateAfterBindUniformBuffers",
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic",
+               "maxDescriptorSetUpdateAfterBindStorageBuffers",
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic",
+               "maxDescriptorSetUpdateAfterBindSampledImages",
+               "maxDescriptorSetUpdateAfterBindStorageImages",
+               "maxDescriptorSetUpdateAfterBindInputAttachments"]
+        type CUnionType VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDescriptorIndexingPropertiesEXT =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = '[VkPhysicalDeviceProperties2KHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+        type FieldIsArray "maxUpdateAfterBindDescriptorsInAllPools"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxUpdateAfterBindDescriptorsInAllPools"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxUpdateAfterBindDescriptorsInAllPools}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderUniformBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderUniformBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+        type FieldIsArray "shaderSampledImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderSampledImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderSampledImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderStorageBufferArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageBufferArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageBufferArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+        type FieldIsArray "shaderStorageImageArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderStorageImageArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+        type FieldIsArray
+               "shaderInputAttachmentArrayNonUniformIndexingNative"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInputAttachmentArrayNonUniformIndexingNative"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, shaderInputAttachmentArrayNonUniformIndexingNative}
+
+instance {-# OVERLAPPING #-}
+         HasField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+        type FieldIsArray "robustBufferAccessUpdateAfterBind"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "robustBufferAccessUpdateAfterBind"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, robustBufferAccessUpdateAfterBind}
+
+instance {-# OVERLAPPING #-}
+         HasField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = VkBool32
+        type FieldOptional "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+        type FieldIsArray "quadDivergentImplicitLod"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "quadDivergentImplicitLod"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, quadDivergentImplicitLod}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+        type FieldIsArray "maxPerStageDescriptorUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+        type FieldIsArray
+               "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxPerStageDescriptorUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageDescriptorUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+        type FieldIsArray "maxPerStageUpdateAfterBindResources"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageUpdateAfterBindResources"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxPerStageUpdateAfterBindResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindSamplers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindSamplers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindUniformBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindUniformBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+        type FieldIsArray
+               "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageBuffers"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindStorageBuffers"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+        type FieldIsArray
+               "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField
+           "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindSampledImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindSampledImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindStorageImages"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindStorageImages"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        type FieldType "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = Word32
+        type FieldOptional
+               "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+        type FieldIsArray "maxDescriptorSetUpdateAfterBindInputAttachments"
+               VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUpdateAfterBindInputAttachments"
+           VkPhysicalDeviceDescriptorIndexingPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDescriptorIndexingPropertiesEXT, maxDescriptorSetUpdateAfterBindInputAttachments}
+
+instance Show VkPhysicalDeviceDescriptorIndexingPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDescriptorIndexingPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxUpdateAfterBindDescriptorsInAllPools = " .
+                            showsPrec d (getField @"maxUpdateAfterBindDescriptorsInAllPools" x)
+                              .
+                              showString ", " .
+                                showString "shaderUniformBufferArrayNonUniformIndexingNative = " .
+                                  showsPrec d
+                                    (getField @"shaderUniformBufferArrayNonUniformIndexingNative" x)
+                                    .
+                                    showString ", " .
+                                      showString
+                                        "shaderSampledImageArrayNonUniformIndexingNative = "
+                                        .
+                                        showsPrec d
+                                          (getField
+                                             @"shaderSampledImageArrayNonUniformIndexingNative"
+                                             x)
+                                          .
+                                          showString ", " .
+                                            showString
+                                              "shaderStorageBufferArrayNonUniformIndexingNative = "
+                                              .
+                                              showsPrec d
+                                                (getField
+                                                   @"shaderStorageBufferArrayNonUniformIndexingNative"
+                                                   x)
+                                                .
+                                                showString ", " .
+                                                  showString
+                                                    "shaderStorageImageArrayNonUniformIndexingNative = "
+                                                    .
+                                                    showsPrec d
+                                                      (getField
+                                                         @"shaderStorageImageArrayNonUniformIndexingNative"
+                                                         x)
+                                                      .
+                                                      showString ", " .
+                                                        showString
+                                                          "shaderInputAttachmentArrayNonUniformIndexingNative = "
+                                                          .
+                                                          showsPrec d
+                                                            (getField
+                                                               @"shaderInputAttachmentArrayNonUniformIndexingNative"
+                                                               x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "robustBufferAccessUpdateAfterBind = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"robustBufferAccessUpdateAfterBind"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "quadDivergentImplicitLod = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"quadDivergentImplicitLod"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxPerStageDescriptorUpdateAfterBindSamplers = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxPerStageDescriptorUpdateAfterBindSamplers"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "maxPerStageDescriptorUpdateAfterBindUniformBuffers = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"maxPerStageDescriptorUpdateAfterBindUniformBuffers"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "maxPerStageDescriptorUpdateAfterBindStorageBuffers = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"maxPerStageDescriptorUpdateAfterBindStorageBuffers"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "maxPerStageDescriptorUpdateAfterBindSampledImages = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"maxPerStageDescriptorUpdateAfterBindSampledImages"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxPerStageDescriptorUpdateAfterBindStorageImages = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxPerStageDescriptorUpdateAfterBindStorageImages"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "maxPerStageDescriptorUpdateAfterBindInputAttachments = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"maxPerStageDescriptorUpdateAfterBindInputAttachments"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "maxPerStageUpdateAfterBindResources = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"maxPerStageUpdateAfterBindResources"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "maxDescriptorSetUpdateAfterBindSamplers = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"maxDescriptorSetUpdateAfterBindSamplers"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "maxDescriptorSetUpdateAfterBindUniformBuffers = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"maxDescriptorSetUpdateAfterBindUniformBuffers"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"maxDescriptorSetUpdateAfterBindUniformBuffersDynamic"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "maxDescriptorSetUpdateAfterBindStorageBuffers = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"maxDescriptorSetUpdateAfterBindStorageBuffers"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"maxDescriptorSetUpdateAfterBindStorageBuffersDynamic"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showString
+                                                                                                                                                  ", "
+                                                                                                                                                  .
+                                                                                                                                                  showString
+                                                                                                                                                    "maxDescriptorSetUpdateAfterBindSampledImages = "
+                                                                                                                                                    .
+                                                                                                                                                    showsPrec
+                                                                                                                                                      d
+                                                                                                                                                      (getField
+                                                                                                                                                         @"maxDescriptorSetUpdateAfterBindSampledImages"
+                                                                                                                                                         x)
+                                                                                                                                                      .
+                                                                                                                                                      showString
+                                                                                                                                                        ", "
+                                                                                                                                                        .
+                                                                                                                                                        showString
+                                                                                                                                                          "maxDescriptorSetUpdateAfterBindStorageImages = "
+                                                                                                                                                          .
+                                                                                                                                                          showsPrec
+                                                                                                                                                            d
+                                                                                                                                                            (getField
+                                                                                                                                                               @"maxDescriptorSetUpdateAfterBindStorageImages"
+                                                                                                                                                               x)
+                                                                                                                                                            .
+                                                                                                                                                            showString
+                                                                                                                                                              ", "
+                                                                                                                                                              .
+                                                                                                                                                              showString
+                                                                                                                                                                "maxDescriptorSetUpdateAfterBindInputAttachments = "
+                                                                                                                                                                .
+                                                                                                                                                                showsPrec
+                                                                                                                                                                  d
+                                                                                                                                                                  (getField
+                                                                                                                                                                     @"maxDescriptorSetUpdateAfterBindInputAttachments"
+                                                                                                                                                                     x)
+                                                                                                                                                                  .
+                                                                                                                                                                  showChar
+                                                                                                                                                                    '}'
+
+-- | > typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     uint32_t               maxDiscardRectangles;
+--   > } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceDiscardRectanglePropertiesEXT VkPhysicalDeviceDiscardRectanglePropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceDiscardRectanglePropertiesEXT = VkPhysicalDeviceDiscardRectanglePropertiesEXT## Addr##
+                                                                                                    ByteArray##
+
+instance Eq VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) `compare`
+          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceDiscardRectanglePropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceDiscardRectanglePropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceDiscardRectanglePropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceDiscardRectanglePropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             '["sType", "pNext", "maxDiscardRectangles"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceDiscardRectanglePropertiesEXT =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        type FieldType "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = Word32
+        type FieldOptional "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             =
+             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+        type FieldIsArray "maxDiscardRectangles"
+               VkPhysicalDeviceDiscardRectanglePropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDiscardRectangles"
+           VkPhysicalDeviceDiscardRectanglePropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
+
+instance Show VkPhysicalDeviceDiscardRectanglePropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceDiscardRectanglePropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxDiscardRectangles = " .
+                            showsPrec d (getField @"maxDiscardRectangles" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceExternalBufferInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBufferCreateFlags flags;
+--   >     VkBufferUsageFlags               usage;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalBufferInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfo registry at www.khronos.org>
+data VkPhysicalDeviceExternalBufferInfo = VkPhysicalDeviceExternalBufferInfo## Addr##
+                                                                              ByteArray##
+
+instance Eq VkPhysicalDeviceExternalBufferInfo where
+        (VkPhysicalDeviceExternalBufferInfo## a _) ==
+          x@(VkPhysicalDeviceExternalBufferInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalBufferInfo where
+        (VkPhysicalDeviceExternalBufferInfo## a _) `compare`
+          x@(VkPhysicalDeviceExternalBufferInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalBufferInfo where
+        sizeOf ~_ = #{size VkPhysicalDeviceExternalBufferInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalBufferInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceExternalBufferInfo where
+        unsafeAddr (VkPhysicalDeviceExternalBufferInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceExternalBufferInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceExternalBufferInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalBufferInfo where
+        type StructFields VkPhysicalDeviceExternalBufferInfo =
+             '["sType", "pNext", "flags", "usage", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalBufferInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalBufferInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalBufferInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "flags" VkPhysicalDeviceExternalBufferInfo =
+             VkBufferCreateFlags
+        type FieldOptional "flags" VkPhysicalDeviceExternalBufferInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+        type FieldIsArray "flags" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "usage" VkPhysicalDeviceExternalBufferInfo =
+             VkBufferUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalBufferInfo =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkPhysicalDeviceExternalBufferInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalBufferInfo =
+             #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+        type FieldIsArray "handleType" VkPhysicalDeviceExternalBufferInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalBufferInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalBufferInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalBufferInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "usage = " .
+                                  showsPrec d (getField @"usage" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalBufferInfo`
+type VkPhysicalDeviceExternalBufferInfoKHR =
+     VkPhysicalDeviceExternalBufferInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalFenceInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalFenceHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalFenceInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfo registry at www.khronos.org>
+data VkPhysicalDeviceExternalFenceInfo = VkPhysicalDeviceExternalFenceInfo## Addr##
+                                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceExternalFenceInfo where
+        (VkPhysicalDeviceExternalFenceInfo## a _) ==
+          x@(VkPhysicalDeviceExternalFenceInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalFenceInfo where
+        (VkPhysicalDeviceExternalFenceInfo## a _) `compare`
+          x@(VkPhysicalDeviceExternalFenceInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalFenceInfo where
+        sizeOf ~_ = #{size VkPhysicalDeviceExternalFenceInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalFenceInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceExternalFenceInfo where
+        unsafeAddr (VkPhysicalDeviceExternalFenceInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceExternalFenceInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceExternalFenceInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalFenceInfo where
+        type StructFields VkPhysicalDeviceExternalFenceInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalFenceInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalFenceInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalFenceInfo = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalFenceInfo =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalFenceInfo =
+             #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+        type FieldIsArray "handleType" VkPhysicalDeviceExternalFenceInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalFenceInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalFenceInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalFenceInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalFenceInfo`
+type VkPhysicalDeviceExternalFenceInfoKHR =
+     VkPhysicalDeviceExternalFenceInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalImageFormatInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalImageFormatInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfo registry at www.khronos.org>
+data VkPhysicalDeviceExternalImageFormatInfo = VkPhysicalDeviceExternalImageFormatInfo## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceExternalImageFormatInfo where
+        (VkPhysicalDeviceExternalImageFormatInfo## a _) ==
+          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalImageFormatInfo where
+        (VkPhysicalDeviceExternalImageFormatInfo## a _) `compare`
+          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalImageFormatInfo where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalImageFormatInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalImageFormatInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceExternalImageFormatInfo
+         where
+        unsafeAddr (VkPhysicalDeviceExternalImageFormatInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceExternalImageFormatInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceExternalImageFormatInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalImageFormatInfo
+         where
+        type StructFields VkPhysicalDeviceExternalImageFormatInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalImageFormatInfo =
+             '[VkPhysicalDeviceImageFormatInfo2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalImageFormatInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalImageFormatInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalImageFormatInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalImageFormatInfo
+             = VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             =
+             #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+        type FieldIsArray "handleType"
+               VkPhysicalDeviceExternalImageFormatInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalImageFormatInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalImageFormatInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalImageFormatInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalImageFormatInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalImageFormatInfo`
+type VkPhysicalDeviceExternalImageFormatInfoKHR =
+     VkPhysicalDeviceExternalImageFormatInfo
+
+-- | > typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     VkDeviceSize minImportedHostPointerAlignment;
+--   > } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalMemoryHostPropertiesEXT VkPhysicalDeviceExternalMemoryHostPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceExternalMemoryHostPropertiesEXT = VkPhysicalDeviceExternalMemoryHostPropertiesEXT## Addr##
+                                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) `compare`
+          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceExternalMemoryHostPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             '["sType", "pNext", "minImportedHostPointerAlignment"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        type FieldType "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = VkDeviceSize
+        type FieldOptional "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+        type FieldIsArray "minImportedHostPointerAlignment"
+               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImportedHostPointerAlignment"
+           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
+
+instance Show VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalMemoryHostPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "minImportedHostPointerAlignment = " .
+                            showsPrec d (getField @"minImportedHostPointerAlignment" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   > } VkPhysicalDeviceExternalSemaphoreInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfo registry at www.khronos.org>
+data VkPhysicalDeviceExternalSemaphoreInfo = VkPhysicalDeviceExternalSemaphoreInfo## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkPhysicalDeviceExternalSemaphoreInfo where
+        (VkPhysicalDeviceExternalSemaphoreInfo## a _) ==
+          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceExternalSemaphoreInfo where
+        (VkPhysicalDeviceExternalSemaphoreInfo## a _) `compare`
+          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceExternalSemaphoreInfo where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceExternalSemaphoreInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceExternalSemaphoreInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceExternalSemaphoreInfo
+         where
+        unsafeAddr (VkPhysicalDeviceExternalSemaphoreInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceExternalSemaphoreInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceExternalSemaphoreInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceExternalSemaphoreInfo where
+        type StructFields VkPhysicalDeviceExternalSemaphoreInfo =
+             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceExternalSemaphoreInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkPhysicalDeviceExternalSemaphoreInfo where
+        type FieldType "handleType" VkPhysicalDeviceExternalSemaphoreInfo =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType"
+               VkPhysicalDeviceExternalSemaphoreInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+             =
+             #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+        type FieldIsArray "handleType"
+               VkPhysicalDeviceExternalSemaphoreInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
+
+instance Show VkPhysicalDeviceExternalSemaphoreInfo where
+        showsPrec d x
+          = showString "VkPhysicalDeviceExternalSemaphoreInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceExternalSemaphoreInfo`
+type VkPhysicalDeviceExternalSemaphoreInfoKHR =
+     VkPhysicalDeviceExternalSemaphoreInfo
+
+-- | > typedef struct VkPhysicalDeviceFeatures2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceFeatures         features;
+--   > } VkPhysicalDeviceFeatures2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2 registry at www.khronos.org>
+data VkPhysicalDeviceFeatures2 = VkPhysicalDeviceFeatures2## Addr##
+                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceFeatures2 where
+        (VkPhysicalDeviceFeatures2## a _) ==
+          x@(VkPhysicalDeviceFeatures2## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceFeatures2 where
+        (VkPhysicalDeviceFeatures2## a _) `compare`
+          x@(VkPhysicalDeviceFeatures2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceFeatures2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceFeatures2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceFeatures2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceFeatures2 where
+        unsafeAddr (VkPhysicalDeviceFeatures2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceFeatures2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceFeatures2## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceFeatures2 where
+        type StructFields VkPhysicalDeviceFeatures2 =
+             '["sType", "pNext", "features"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceFeatures2 =
+             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceFeatures2 where
+        type FieldType "sType" VkPhysicalDeviceFeatures2 = VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceFeatures2 where
+        type FieldType "pNext" VkPhysicalDeviceFeatures2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "features" VkPhysicalDeviceFeatures2 where
+        type FieldType "features" VkPhysicalDeviceFeatures2 =
+             VkPhysicalDeviceFeatures
+        type FieldOptional "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "features" VkPhysicalDeviceFeatures2 =
+             #{offset VkPhysicalDeviceFeatures2, features}
+        type FieldIsArray "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures2, features}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "features" VkPhysicalDeviceFeatures2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, features})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, features}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "features" VkPhysicalDeviceFeatures2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, features}
+
+instance Show VkPhysicalDeviceFeatures2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceFeatures2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "features = " .
+                            showsPrec d (getField @"features" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceFeatures2`
+type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
+
+-- | > typedef struct VkPhysicalDeviceGroupProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         physicalDeviceCount;
+--   >     VkPhysicalDevice                 physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
+--   >     VkBool32                         subsetAllocation;
+--   > } VkPhysicalDeviceGroupProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupProperties registry at www.khronos.org>
+data VkPhysicalDeviceGroupProperties = VkPhysicalDeviceGroupProperties## Addr##
+                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceGroupProperties where
+        (VkPhysicalDeviceGroupProperties## a _) ==
+          x@(VkPhysicalDeviceGroupProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceGroupProperties where
+        (VkPhysicalDeviceGroupProperties## a _) `compare`
+          x@(VkPhysicalDeviceGroupProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceGroupProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceGroupProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceGroupProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceGroupProperties where
+        unsafeAddr (VkPhysicalDeviceGroupProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceGroupProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceGroupProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceGroupProperties where
+        type StructFields VkPhysicalDeviceGroupProperties =
+             '["sType", "pNext", "physicalDeviceCount", "physicalDevices", -- ' closing tick for hsc2hs
+               "subsetAllocation"]
+        type CUnionType VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceGroupProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceGroupProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceGroupProperties where
+        type FieldType "sType" VkPhysicalDeviceGroupProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceGroupProperties =
+             #{offset VkPhysicalDeviceGroupProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceGroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceGroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceGroupProperties where
+        type FieldType "pNext" VkPhysicalDeviceGroupProperties = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceGroupProperties =
+             #{offset VkPhysicalDeviceGroupProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceGroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceGroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        type FieldType "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = Word32
+        type FieldOptional "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+        type FieldIsArray "physicalDeviceCount"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "physicalDevices" VkPhysicalDeviceGroupProperties where
+        type FieldType "physicalDevices" VkPhysicalDeviceGroupProperties =
+             VkPhysicalDevice
+        type FieldOptional "physicalDevices"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "physicalDevices" VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+        type FieldIsArray "physicalDevices" VkPhysicalDeviceGroupProperties
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "physicalDevices" idx
+            VkPhysicalDeviceGroupProperties) =>
+         CanReadFieldArray "physicalDevices" idx
+           VkPhysicalDeviceGroupProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "physicalDevices" 0
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "physicalDevices" 1
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "physicalDevices" 2
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "physicalDevices" 3
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+        type FieldArrayLength "physicalDevices"
+               VkPhysicalDeviceGroupProperties
+             = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                      +
+                      sizeOf (undefined :: VkPhysicalDevice) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                 +
+                 sizeOf (undefined :: VkPhysicalDevice) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "physicalDevices" idx
+            VkPhysicalDeviceGroupProperties) =>
+         CanWriteFieldArray "physicalDevices" idx
+           VkPhysicalDeviceGroupProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "physicalDevices" 0
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "physicalDevices" 1
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "physicalDevices" 2
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "physicalDevices" 3
+                         VkPhysicalDeviceGroupProperties
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
+                 +
+                 sizeOf (undefined :: VkPhysicalDevice) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "subsetAllocation" VkPhysicalDeviceGroupProperties where
+        type FieldType "subsetAllocation" VkPhysicalDeviceGroupProperties =
+             VkBool32
+        type FieldOptional "subsetAllocation"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subsetAllocation" VkPhysicalDeviceGroupProperties
+             =
+             #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+        type FieldIsArray "subsetAllocation"
+               VkPhysicalDeviceGroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subsetAllocation" VkPhysicalDeviceGroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, subsetAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subsetAllocation" VkPhysicalDeviceGroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
+
+instance Show VkPhysicalDeviceGroupProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceGroupProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "physicalDeviceCount = " .
+                            showsPrec d (getField @"physicalDeviceCount" x) .
+                              showString ", " .
+                                (showString "physicalDevices = [" .
+                                   showsPrec d
+                                     (let s = sizeOf
+                                                (undefined ::
+                                                   FieldType "physicalDevices"
+                                                     VkPhysicalDeviceGroupProperties)
+                                          o = fieldOffset @"physicalDevices"
+                                                @VkPhysicalDeviceGroupProperties
+                                          f i
+                                            = peekByteOff (unsafePtr x) i ::
+                                                IO
+                                                  (FieldType "physicalDevices"
+                                                     VkPhysicalDeviceGroupProperties)
+                                        in
+                                        unsafeDupablePerformIO . mapM f $
+                                          map (\ i -> o + i * s)
+                                            [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
+                                     . showChar ']')
+                                  .
+                                  showString ", " .
+                                    showString "subsetAllocation = " .
+                                      showsPrec d (getField @"subsetAllocation" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceGroupProperties`
+type VkPhysicalDeviceGroupPropertiesKHR =
+     VkPhysicalDeviceGroupProperties
+
+-- | > typedef struct VkPhysicalDeviceIDProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint8_t                          deviceUUID[VK_UUID_SIZE];
+--   >     uint8_t                          driverUUID[VK_UUID_SIZE];
+--   >     uint8_t                          deviceLUID[VK_LUID_SIZE];
+--   >     uint32_t                         deviceNodeMask;
+--   >     VkBool32                         deviceLUIDValid;
+--   > } VkPhysicalDeviceIDProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceIDProperties VkPhysicalDeviceIDProperties registry at www.khronos.org>
+data VkPhysicalDeviceIDProperties = VkPhysicalDeviceIDProperties## Addr##
+                                                                  ByteArray##
+
+instance Eq VkPhysicalDeviceIDProperties where
+        (VkPhysicalDeviceIDProperties## a _) ==
+          x@(VkPhysicalDeviceIDProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceIDProperties where
+        (VkPhysicalDeviceIDProperties## a _) `compare`
+          x@(VkPhysicalDeviceIDProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceIDProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceIDProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceIDProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceIDProperties where
+        unsafeAddr (VkPhysicalDeviceIDProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceIDProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceIDProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceIDProperties where
+        type StructFields VkPhysicalDeviceIDProperties =
+             '["sType", "pNext", "deviceUUID", "driverUUID", "deviceLUID", -- ' closing tick for hsc2hs
+               "deviceNodeMask", "deviceLUIDValid"]
+        type CUnionType VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceIDProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceIDProperties where
+        type FieldType "sType" VkPhysicalDeviceIDProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceIDProperties where
+        type FieldType "pNext" VkPhysicalDeviceIDProperties = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceUUID" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceUUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "deviceUUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceUUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceUUID}
+        type FieldIsArray "deviceUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceUUID}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>
+         CanReadFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}
+        type FieldArrayLength "deviceUUID" VkPhysicalDeviceIDProperties =
+             VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                      sizeOf (undefined :: Word8) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>
+         CanWriteFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "driverUUID" VkPhysicalDeviceIDProperties where
+        type FieldType "driverUUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "driverUUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "driverUUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, driverUUID}
+        type FieldIsArray "driverUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, driverUUID}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>
+         CanReadFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}
+        type FieldArrayLength "driverUUID" VkPhysicalDeviceIDProperties =
+             VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                      sizeOf (undefined :: Word8) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>
+         CanWriteFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceLUID" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceLUID" VkPhysicalDeviceIDProperties = Word8
+        type FieldOptional "deviceLUID" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceLUID" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceLUID}
+        type FieldIsArray "deviceLUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceLUID}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>
+         CanReadFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}
+        type FieldArrayLength "deviceLUID" VkPhysicalDeviceIDProperties =
+             VK_LUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_LUID_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                      sizeOf (undefined :: Word8) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>
+         CanWriteFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             Word32
+        type FieldOptional "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+        type FieldIsArray "deviceNodeMask" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceNodeMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceNodeMask" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        type FieldType "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             VkBool32
+        type FieldOptional "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+        type FieldIsArray "deviceLUIDValid" VkPhysicalDeviceIDProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
+
+instance Show VkPhysicalDeviceIDProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceIDProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          (showString "deviceUUID = [" .
+                             showsPrec d
+                               (let s = sizeOf
+                                          (undefined ::
+                                             FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
+                                    o = fieldOffset @"deviceUUID" @VkPhysicalDeviceIDProperties
+                                    f i
+                                      = peekByteOff (unsafePtr x) i ::
+                                          IO (FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
+                                  in
+                                  unsafeDupablePerformIO . mapM f $
+                                    map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
+                               . showChar ']')
+                            .
+                            showString ", " .
+                              (showString "driverUUID = [" .
+                                 showsPrec d
+                                   (let s = sizeOf
+                                              (undefined ::
+                                                 FieldType "driverUUID"
+                                                   VkPhysicalDeviceIDProperties)
+                                        o = fieldOffset @"driverUUID" @VkPhysicalDeviceIDProperties
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO
+                                                (FieldType "driverUUID"
+                                                   VkPhysicalDeviceIDProperties)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
+                                   . showChar ']')
+                                .
+                                showString ", " .
+                                  (showString "deviceLUID = [" .
+                                     showsPrec d
+                                       (let s = sizeOf
+                                                  (undefined ::
+                                                     FieldType "deviceLUID"
+                                                       VkPhysicalDeviceIDProperties)
+                                            o = fieldOffset @"deviceLUID"
+                                                  @VkPhysicalDeviceIDProperties
+                                            f i
+                                              = peekByteOff (unsafePtr x) i ::
+                                                  IO
+                                                    (FieldType "deviceLUID"
+                                                       VkPhysicalDeviceIDProperties)
+                                          in
+                                          unsafeDupablePerformIO . mapM f $
+                                            map (\ i -> o + i * s) [0 .. VK_LUID_SIZE - 1])
+                                       . showChar ']')
+                                    .
+                                    showString ", " .
+                                      showString "deviceNodeMask = " .
+                                        showsPrec d (getField @"deviceNodeMask" x) .
+                                          showString ", " .
+                                            showString "deviceLUIDValid = " .
+                                              showsPrec d (getField @"deviceLUIDValid" x) .
+                                                showChar '}'
+
+-- | Alias for `VkPhysicalDeviceIDProperties`
+type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
+
+-- | > typedef struct VkPhysicalDeviceImageFormatInfo2 {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkFormat                         format;
+--   >     VkImageType                      type;
+--   >     VkImageTiling                    tiling;
+--   >     VkImageUsageFlags                usage;
+--   >     VkImageCreateFlags flags;
+--   > } VkPhysicalDeviceImageFormatInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2 registry at www.khronos.org>
+data VkPhysicalDeviceImageFormatInfo2 = VkPhysicalDeviceImageFormatInfo2## Addr##
+                                                                          ByteArray##
+
+instance Eq VkPhysicalDeviceImageFormatInfo2 where
+        (VkPhysicalDeviceImageFormatInfo2## a _) ==
+          x@(VkPhysicalDeviceImageFormatInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceImageFormatInfo2 where
+        (VkPhysicalDeviceImageFormatInfo2## a _) `compare`
+          x@(VkPhysicalDeviceImageFormatInfo2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceImageFormatInfo2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceImageFormatInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceImageFormatInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceImageFormatInfo2 where
+        unsafeAddr (VkPhysicalDeviceImageFormatInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceImageFormatInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceImageFormatInfo2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceImageFormatInfo2 where
+        type StructFields VkPhysicalDeviceImageFormatInfo2 =
+             '["sType", "pNext", "format", "type", "tiling", "usage", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "sType" VkPhysicalDeviceImageFormatInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "pNext" VkPhysicalDeviceImageFormatInfo2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "format" VkPhysicalDeviceImageFormatInfo2 = VkFormat
+        type FieldOptional "format" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, format}
+        type FieldIsArray "format" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "type" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageType
+        type FieldOptional "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, type}
+        type FieldIsArray "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageTiling
+        type FieldOptional "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+        type FieldIsArray "tiling" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, tiling})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tiling" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "usage" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        type FieldType "flags" VkPhysicalDeviceImageFormatInfo2 =
+             VkImageCreateFlags
+        type FieldOptional "flags" VkPhysicalDeviceImageFormatInfo2 = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPhysicalDeviceImageFormatInfo2 =
+             #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+        type FieldIsArray "flags" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPhysicalDeviceImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
+
+instance Show VkPhysicalDeviceImageFormatInfo2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceImageFormatInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "type = " .
+                                  showsPrec d (getField @"type" x) .
+                                    showString ", " .
+                                      showString "tiling = " .
+                                        showsPrec d (getField @"tiling" x) .
+                                          showString ", " .
+                                            showString "usage = " .
+                                              showsPrec d (getField @"usage" x) .
+                                                showString ", " .
+                                                  showString "flags = " .
+                                                    showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceImageFormatInfo2`
+type VkPhysicalDeviceImageFormatInfo2KHR =
+     VkPhysicalDeviceImageFormatInfo2
+
+-- | > typedef struct VkPhysicalDeviceLimits {
+--   >     uint32_t               maxImageDimension1D;
+--   >     uint32_t               maxImageDimension2D;
+--   >     uint32_t               maxImageDimension3D;
+--   >     uint32_t               maxImageDimensionCube;
+--   >     uint32_t               maxImageArrayLayers;
+--   >     uint32_t               maxTexelBufferElements;
+--   >     uint32_t               maxUniformBufferRange;
+--   >     uint32_t               maxStorageBufferRange;
+--   >     uint32_t               maxPushConstantsSize;
+--   >     uint32_t               maxMemoryAllocationCount;
+--   >     uint32_t               maxSamplerAllocationCount;
+--   >     VkDeviceSize           bufferImageGranularity;
+--   >     VkDeviceSize           sparseAddressSpaceSize;
+--   >     uint32_t               maxBoundDescriptorSets;
+--   >     uint32_t               maxPerStageDescriptorSamplers;
+--   >     uint32_t               maxPerStageDescriptorUniformBuffers;
+--   >     uint32_t               maxPerStageDescriptorStorageBuffers;
+--   >     uint32_t               maxPerStageDescriptorSampledImages;
+--   >     uint32_t               maxPerStageDescriptorStorageImages;
+--   >     uint32_t               maxPerStageDescriptorInputAttachments;
+--   >     uint32_t               maxPerStageResources;
+--   >     uint32_t               maxDescriptorSetSamplers;
+--   >     uint32_t               maxDescriptorSetUniformBuffers;
+--   >     uint32_t               maxDescriptorSetUniformBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetStorageBuffers;
+--   >     uint32_t               maxDescriptorSetStorageBuffersDynamic;
+--   >     uint32_t               maxDescriptorSetSampledImages;
+--   >     uint32_t               maxDescriptorSetStorageImages;
+--   >     uint32_t               maxDescriptorSetInputAttachments;
+--   >     uint32_t               maxVertexInputAttributes;
+--   >     uint32_t               maxVertexInputBindings;
+--   >     uint32_t               maxVertexInputAttributeOffset;
+--   >     uint32_t               maxVertexInputBindingStride;
+--   >     uint32_t               maxVertexOutputComponents;
+--   >     uint32_t               maxTessellationGenerationLevel;
+--   >     uint32_t               maxTessellationPatchSize;
+--   >     uint32_t               maxTessellationControlPerVertexInputComponents;
+--   >     uint32_t               maxTessellationControlPerVertexOutputComponents;
+--   >     uint32_t               maxTessellationControlPerPatchOutputComponents;
+--   >     uint32_t               maxTessellationControlTotalOutputComponents;
+--   >     uint32_t               maxTessellationEvaluationInputComponents;
+--   >     uint32_t               maxTessellationEvaluationOutputComponents;
+--   >     uint32_t               maxGeometryShaderInvocations;
+--   >     uint32_t               maxGeometryInputComponents;
+--   >     uint32_t               maxGeometryOutputComponents;
+--   >     uint32_t               maxGeometryOutputVertices;
+--   >     uint32_t               maxGeometryTotalOutputComponents;
+--   >     uint32_t               maxFragmentInputComponents;
+--   >     uint32_t               maxFragmentOutputAttachments;
+--   >     uint32_t               maxFragmentDualSrcAttachments;
+--   >     uint32_t               maxFragmentCombinedOutputResources;
+--   >     uint32_t               maxComputeSharedMemorySize;
+--   >     uint32_t               maxComputeWorkGroupCount[3];
+--   >     uint32_t               maxComputeWorkGroupInvocations;
+--   >     uint32_t               maxComputeWorkGroupSize[3];
+--   >     uint32_t               subPixelPrecisionBits;
+--   >     uint32_t               subTexelPrecisionBits;
+--   >     uint32_t               mipmapPrecisionBits;
+--   >     uint32_t               maxDrawIndexedIndexValue;
+--   >     uint32_t               maxDrawIndirectCount;
+--   >     float                  maxSamplerLodBias;
+--   >     float                  maxSamplerAnisotropy;
+--   >     uint32_t               maxViewports;
+--   >     uint32_t               maxViewportDimensions[2];
+--   >     float                  viewportBoundsRange[2];
+--   >     uint32_t               viewportSubPixelBits;
+--   >     size_t                 minMemoryMapAlignment;
+--   >     VkDeviceSize           minTexelBufferOffsetAlignment;
+--   >     VkDeviceSize           minUniformBufferOffsetAlignment;
+--   >     VkDeviceSize           minStorageBufferOffsetAlignment;
+--   >     int32_t                minTexelOffset;
+--   >     uint32_t               maxTexelOffset;
+--   >     int32_t                minTexelGatherOffset;
+--   >     uint32_t               maxTexelGatherOffset;
+--   >     float                  minInterpolationOffset;
+--   >     float                  maxInterpolationOffset;
+--   >     uint32_t               subPixelInterpolationOffsetBits;
+--   >     uint32_t               maxFramebufferWidth;
+--   >     uint32_t               maxFramebufferHeight;
+--   >     uint32_t               maxFramebufferLayers;
+--   >     VkSampleCountFlags     framebufferColorSampleCounts;
+--   >     VkSampleCountFlags     framebufferDepthSampleCounts;
+--   >     VkSampleCountFlags     framebufferStencilSampleCounts;
+--   >     VkSampleCountFlags     framebufferNoAttachmentsSampleCounts;
+--   >     uint32_t               maxColorAttachments;
+--   >     VkSampleCountFlags     sampledImageColorSampleCounts;
+--   >     VkSampleCountFlags     sampledImageIntegerSampleCounts;
+--   >     VkSampleCountFlags     sampledImageDepthSampleCounts;
+--   >     VkSampleCountFlags     sampledImageStencilSampleCounts;
+--   >     VkSampleCountFlags     storageImageSampleCounts;
+--   >     uint32_t               maxSampleMaskWords;
+--   >     VkBool32               timestampComputeAndGraphics;
+--   >     float                  timestampPeriod;
+--   >     uint32_t               maxClipDistances;
+--   >     uint32_t               maxCullDistances;
+--   >     uint32_t               maxCombinedClipAndCullDistances;
+--   >     uint32_t               discreteQueuePriorities;
+--   >     float                  pointSizeRange[2];
+--   >     float                  lineWidthRange[2];
+--   >     float                  pointSizeGranularity;
+--   >     float                  lineWidthGranularity;
+--   >     VkBool32               strictLines;
+--   >     VkBool32               standardSampleLocations;
+--   >     VkDeviceSize           optimalBufferCopyOffsetAlignment;
+--   >     VkDeviceSize           optimalBufferCopyRowPitchAlignment;
+--   >     VkDeviceSize           nonCoherentAtomSize;
+--   > } VkPhysicalDeviceLimits;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceLimits VkPhysicalDeviceLimits registry at www.khronos.org>
+data VkPhysicalDeviceLimits = VkPhysicalDeviceLimits## Addr##
+                                                      ByteArray##
+
+instance Eq VkPhysicalDeviceLimits where
+        (VkPhysicalDeviceLimits## a _) == x@(VkPhysicalDeviceLimits## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceLimits where
+        (VkPhysicalDeviceLimits## a _) `compare`
+          x@(VkPhysicalDeviceLimits## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceLimits where
+        sizeOf ~_ = #{size VkPhysicalDeviceLimits}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceLimits}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceLimits where
+        unsafeAddr (VkPhysicalDeviceLimits## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceLimits## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceLimits## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceLimits where
+        type StructFields VkPhysicalDeviceLimits =
+             '["maxImageDimension1D", "maxImageDimension2D", -- ' closing tick for hsc2hs
+               "maxImageDimension3D", "maxImageDimensionCube",
+               "maxImageArrayLayers", "maxTexelBufferElements",
+               "maxUniformBufferRange", "maxStorageBufferRange",
+               "maxPushConstantsSize", "maxMemoryAllocationCount",
+               "maxSamplerAllocationCount", "bufferImageGranularity",
+               "sparseAddressSpaceSize", "maxBoundDescriptorSets",
+               "maxPerStageDescriptorSamplers",
+               "maxPerStageDescriptorUniformBuffers",
+               "maxPerStageDescriptorStorageBuffers",
+               "maxPerStageDescriptorSampledImages",
+               "maxPerStageDescriptorStorageImages",
+               "maxPerStageDescriptorInputAttachments", "maxPerStageResources",
+               "maxDescriptorSetSamplers", "maxDescriptorSetUniformBuffers",
+               "maxDescriptorSetUniformBuffersDynamic",
+               "maxDescriptorSetStorageBuffers",
+               "maxDescriptorSetStorageBuffersDynamic",
+               "maxDescriptorSetSampledImages", "maxDescriptorSetStorageImages",
+               "maxDescriptorSetInputAttachments", "maxVertexInputAttributes",
+               "maxVertexInputBindings", "maxVertexInputAttributeOffset",
+               "maxVertexInputBindingStride", "maxVertexOutputComponents",
+               "maxTessellationGenerationLevel", "maxTessellationPatchSize",
+               "maxTessellationControlPerVertexInputComponents",
+               "maxTessellationControlPerVertexOutputComponents",
+               "maxTessellationControlPerPatchOutputComponents",
+               "maxTessellationControlTotalOutputComponents",
+               "maxTessellationEvaluationInputComponents",
+               "maxTessellationEvaluationOutputComponents",
+               "maxGeometryShaderInvocations", "maxGeometryInputComponents",
+               "maxGeometryOutputComponents", "maxGeometryOutputVertices",
+               "maxGeometryTotalOutputComponents", "maxFragmentInputComponents",
+               "maxFragmentOutputAttachments", "maxFragmentDualSrcAttachments",
+               "maxFragmentCombinedOutputResources", "maxComputeSharedMemorySize",
+               "maxComputeWorkGroupCount", "maxComputeWorkGroupInvocations",
+               "maxComputeWorkGroupSize", "subPixelPrecisionBits",
+               "subTexelPrecisionBits", "mipmapPrecisionBits",
+               "maxDrawIndexedIndexValue", "maxDrawIndirectCount",
+               "maxSamplerLodBias", "maxSamplerAnisotropy", "maxViewports",
+               "maxViewportDimensions", "viewportBoundsRange",
+               "viewportSubPixelBits", "minMemoryMapAlignment",
+               "minTexelBufferOffsetAlignment", "minUniformBufferOffsetAlignment",
+               "minStorageBufferOffsetAlignment", "minTexelOffset",
+               "maxTexelOffset", "minTexelGatherOffset", "maxTexelGatherOffset",
+               "minInterpolationOffset", "maxInterpolationOffset",
+               "subPixelInterpolationOffsetBits", "maxFramebufferWidth",
+               "maxFramebufferHeight", "maxFramebufferLayers",
+               "framebufferColorSampleCounts", "framebufferDepthSampleCounts",
+               "framebufferStencilSampleCounts",
+               "framebufferNoAttachmentsSampleCounts", "maxColorAttachments",
+               "sampledImageColorSampleCounts", "sampledImageIntegerSampleCounts",
+               "sampledImageDepthSampleCounts", "sampledImageStencilSampleCounts",
+               "storageImageSampleCounts", "maxSampleMaskWords",
+               "timestampComputeAndGraphics", "timestampPeriod",
+               "maxClipDistances", "maxCullDistances",
+               "maxCombinedClipAndCullDistances", "discreteQueuePriorities",
+               "pointSizeRange", "lineWidthRange", "pointSizeGranularity",
+               "lineWidthGranularity", "strictLines", "standardSampleLocations",
+               "optimalBufferCopyOffsetAlignment",
+               "optimalBufferCopyRowPitchAlignment", "nonCoherentAtomSize"]
+        type CUnionType VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceLimits = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension1D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension1D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension1D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+        type FieldIsArray "maxImageDimension1D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension1D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension1D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension2D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension2D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension2D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+        type FieldIsArray "maxImageDimension2D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension2D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension2D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimension3D" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimension3D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimension3D" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+        type FieldIsArray "maxImageDimension3D" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension3D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimension3D" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        type FieldType "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+        type FieldIsArray "maxImageDimensionCube" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimensionCube})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageDimensionCube" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        type FieldType "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+        type FieldIsArray "maxImageArrayLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageArrayLayers" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTexelBufferElements" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+        type FieldIsArray "maxTexelBufferElements" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelBufferElements})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelBufferElements" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        type FieldType "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+        type FieldIsArray "maxUniformBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxUniformBufferRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxUniformBufferRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        type FieldType "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+        type FieldIsArray "maxStorageBufferRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxStorageBufferRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxStorageBufferRange" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        type FieldType "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+        type FieldIsArray "maxPushConstantsSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPushConstantsSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPushConstantsSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMemoryAllocationCount" VkPhysicalDeviceLimits where
+        type FieldType "maxMemoryAllocationCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxMemoryAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+        type FieldIsArray "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerAllocationCount" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerAllocationCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxSamplerAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+        type FieldIsArray "maxSamplerAllocationCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        type FieldType "bufferImageGranularity" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "bufferImageGranularity" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bufferImageGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+        type FieldIsArray "bufferImageGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, bufferImageGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bufferImageGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        type FieldType "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "sparseAddressSpaceSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+        type FieldIsArray "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        type FieldType "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxBoundDescriptorSets" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+        type FieldIsArray "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+        type FieldIsArray "maxPerStageDescriptorSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorSamplers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+        type FieldIsArray "maxPerStageDescriptorUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+        type FieldIsArray "maxPerStageDescriptorStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+        type FieldIsArray "maxPerStageDescriptorSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+        type FieldIsArray "maxPerStageDescriptorStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+        type FieldIsArray "maxPerStageDescriptorInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageDescriptorInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerStageResources" VkPhysicalDeviceLimits where
+        type FieldType "maxPerStageResources" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxPerStageResources" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerStageResources" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+        type FieldIsArray "maxPerStageResources" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerStageResources" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerStageResources" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits where
+        type FieldType "maxDescriptorSetSamplers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDescriptorSetSamplers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+        type FieldIsArray "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUniformBuffers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+        type FieldIsArray "maxDescriptorSetUniformBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUniformBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+        type FieldIsArray "maxDescriptorSetUniformBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetUniformBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageBuffers" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+        type FieldIsArray "maxDescriptorSetStorageBuffers"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageBuffers"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+        type FieldIsArray "maxDescriptorSetStorageBuffersDynamic"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageBuffersDynamic"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+        type FieldIsArray "maxDescriptorSetSampledImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetSampledImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+        type FieldIsArray "maxDescriptorSetStorageImages"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetStorageImages"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDescriptorSetInputAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+        type FieldIsArray "maxDescriptorSetInputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDescriptorSetInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDescriptorSetInputAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputAttributes" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputAttributes" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexInputAttributes"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputAttributes" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+        type FieldIsArray "maxVertexInputAttributes" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputAttributes" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputAttributes" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexInputBindings" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+        type FieldIsArray "maxVertexInputBindings" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindings})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputBindings" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+        type FieldIsArray "maxVertexInputAttributeOffset"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputAttributeOffset"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexInputBindingStride" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+        type FieldIsArray "maxVertexInputBindingStride"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexOutputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxVertexOutputComponents" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexOutputComponents" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+        type FieldIsArray "maxVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationGenerationLevel" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+        type FieldIsArray "maxTessellationGenerationLevel"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationGenerationLevel"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationGenerationLevel"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationPatchSize" VkPhysicalDeviceLimits where
+        type FieldType "maxTessellationPatchSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTessellationPatchSize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationPatchSize" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+        type FieldIsArray "maxTessellationPatchSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationPatchSize" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationPatchSize" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+        type FieldIsArray "maxTessellationControlPerVertexInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerVertexInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional
+               "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+        type FieldIsArray "maxTessellationControlPerVertexOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerVertexOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+        type FieldIsArray "maxTessellationControlPerPatchOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlPerPatchOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+        type FieldIsArray "maxTessellationControlTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationControlTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+        type FieldIsArray "maxTessellationEvaluationInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationEvaluationInputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+        type FieldIsArray "maxTessellationEvaluationOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTessellationEvaluationOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+        type FieldIsArray "maxGeometryShaderInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryInputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryInputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+        type FieldIsArray "maxGeometryInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryOutputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+        type FieldIsArray "maxGeometryOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryOutputVertices" VkPhysicalDeviceLimits where
+        type FieldType "maxGeometryOutputVertices" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxGeometryOutputVertices"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+        type FieldIsArray "maxGeometryOutputVertices"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxGeometryTotalOutputComponents" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+        type FieldIsArray "maxGeometryTotalOutputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxGeometryTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxGeometryTotalOutputComponents"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentInputComponents" VkPhysicalDeviceLimits where
+        type FieldType "maxFragmentInputComponents" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+        type FieldIsArray "maxFragmentInputComponents"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentInputComponents" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+        type FieldIsArray "maxFragmentOutputAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+        type FieldIsArray "maxFragmentDualSrcAttachments"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentDualSrcAttachments"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+        type FieldIsArray "maxFragmentCombinedOutputResources"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFragmentCombinedOutputResources"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+        type FieldIsArray "maxComputeSharedMemorySize"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeWorkGroupCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxComputeWorkGroupCount"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+        type FieldIsArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxComputeWorkGroupCount" idx
+            VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "maxComputeWorkGroupCount" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupCount" 0
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupCount" 1
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupCount" 2
+                         VkPhysicalDeviceLimits
+                       #-}
+        type FieldArrayLength "maxComputeWorkGroupCount"
+               VkPhysicalDeviceLimits
+             = 3
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 3
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                      +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxComputeWorkGroupCount" idx
+            VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "maxComputeWorkGroupCount" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupCount" 0
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupCount" 1
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupCount" 2
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupInvocations" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+        type FieldIsArray "maxComputeWorkGroupInvocations"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxComputeWorkGroupInvocations"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxComputeWorkGroupInvocations"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where
+        type FieldType "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+        type FieldIsArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxComputeWorkGroupSize" idx
+            VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "maxComputeWorkGroupSize" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupSize" 0
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupSize" 1
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxComputeWorkGroupSize" 2
+                         VkPhysicalDeviceLimits
+                       #-}
+        type FieldArrayLength "maxComputeWorkGroupSize"
+               VkPhysicalDeviceLimits
+             = 3
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 3
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                      +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxComputeWorkGroupSize" idx
+            VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "maxComputeWorkGroupSize" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupSize" 0
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupSize" 1
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxComputeWorkGroupSize" 2
+                         VkPhysicalDeviceLimits
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+        type FieldIsArray "subPixelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+        type FieldIsArray "subTexelPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        type FieldType "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+        type FieldIsArray "mipmapPrecisionBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits where
+        type FieldType "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDrawIndexedIndexValue"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+        type FieldIsArray "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        type FieldType "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+        type FieldIsArray "maxDrawIndirectCount" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+        type FieldIsArray "maxSamplerLodBias" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerLodBias})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerLodBias" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        type FieldType "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+        type FieldIsArray "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxViewports" VkPhysicalDeviceLimits where
+        type FieldType "maxViewports" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxViewports" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxViewports}
+        type FieldIsArray "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxViewports" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxViewports})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxViewports" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxViewportDimensions" VkPhysicalDeviceLimits where
+        type FieldType "maxViewportDimensions" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxViewportDimensions" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxViewportDimensions" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+        type FieldIsArray "maxViewportDimensions" VkPhysicalDeviceLimits =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxViewportDimensions" idx
+            VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "maxViewportDimensions" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits
+                       #-}
+        type FieldArrayLength "maxViewportDimensions"
+               VkPhysicalDeviceLimits
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                      +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "maxViewportDimensions" idx
+            VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "maxViewportDimensions" idx
+           VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportBoundsRange" VkPhysicalDeviceLimits where
+        type FieldType "viewportBoundsRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "viewportBoundsRange" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportBoundsRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+        type FieldIsArray "viewportBoundsRange" VkPhysicalDeviceLimits =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits
+                       #-}
+        type FieldArrayLength "viewportBoundsRange" VkPhysicalDeviceLimits
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                      +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        type FieldType "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+        type FieldIsArray "viewportSubPixelBits" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, viewportSubPixelBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportSubPixelBits" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        type FieldType "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             CSize
+        type FieldOptional "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+        type FieldIsArray "minMemoryMapAlignment" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+        type FieldIsArray "minTexelBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minUniformBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+        type FieldIsArray "minUniformBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minUniformBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minUniformBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minStorageBufferOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+        type FieldIsArray "minStorageBufferOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minStorageBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minStorageBufferOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelOffset" VkPhysicalDeviceLimits where
+        type FieldType "minTexelOffset" VkPhysicalDeviceLimits = Int32
+        type FieldOptional "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minTexelOffset}
+        type FieldIsArray "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelOffset" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+        type FieldIsArray "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        type FieldType "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             Int32
+        type FieldOptional "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+        type FieldIsArray "minTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelGatherOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+        type FieldIsArray "maxTexelGatherOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        type FieldType "minInterpolationOffset" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "minInterpolationOffset" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minInterpolationOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+        type FieldIsArray "minInterpolationOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minInterpolationOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        type FieldType "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "maxInterpolationOffset" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+        type FieldIsArray "maxInterpolationOffset" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxInterpolationOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxInterpolationOffset" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "subPixelInterpolationOffsetBits" VkPhysicalDeviceLimits
+         where
+        type FieldType "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+        type FieldIsArray "subPixelInterpolationOffsetBits"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subPixelInterpolationOffsetBits"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subPixelInterpolationOffsetBits"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+        type FieldIsArray "maxFramebufferWidth" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferWidth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferWidth" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+        type FieldIsArray "maxFramebufferHeight" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferHeight})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferHeight" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        type FieldType "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+        type FieldIsArray "maxFramebufferLayers" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxFramebufferLayers" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+        type FieldIsArray "framebufferColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+        type FieldIsArray "framebufferDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferStencilSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+        type FieldIsArray "framebufferStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+        type FieldIsArray "framebufferNoAttachmentsSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebufferNoAttachmentsSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxColorAttachments" VkPhysicalDeviceLimits where
+        type FieldType "maxColorAttachments" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "maxColorAttachments" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxColorAttachments" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+        type FieldIsArray "maxColorAttachments" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxColorAttachments" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxColorAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxColorAttachments" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+        type FieldIsArray "sampledImageColorSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageColorSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageIntegerSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+        type FieldIsArray "sampledImageIntegerSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageIntegerSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageIntegerSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+        type FieldIsArray "sampledImageDepthSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageDepthSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampledImageStencilSampleCounts" VkPhysicalDeviceLimits
+         where
+        type FieldType "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = VkSampleCountFlags
+        type FieldOptional "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+        type FieldIsArray "sampledImageStencilSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampledImageStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampledImageStencilSampleCounts"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "storageImageSampleCounts" VkPhysicalDeviceLimits where
+        type FieldType "storageImageSampleCounts" VkPhysicalDeviceLimits =
+             VkSampleCountFlags
+        type FieldOptional "storageImageSampleCounts"
+               VkPhysicalDeviceLimits
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "storageImageSampleCounts" VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+        type FieldIsArray "storageImageSampleCounts" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "storageImageSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, storageImageSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "storageImageSampleCounts" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        type FieldType "maxSampleMaskWords" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+        type FieldIsArray "maxSampleMaskWords" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSampleMaskWords})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampleMaskWords" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
+
+instance {-# OVERLAPPING #-}
+         HasField "timestampComputeAndGraphics" VkPhysicalDeviceLimits where
+        type FieldType "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+             = VkBool32
+        type FieldOptional "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+        type FieldIsArray "timestampComputeAndGraphics"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
+
+instance {-# OVERLAPPING #-}
+         HasField "timestampPeriod" VkPhysicalDeviceLimits where
+        type FieldType "timestampPeriod" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "timestampPeriod" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "timestampPeriod" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, timestampPeriod}
+        type FieldIsArray "timestampPeriod" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timestampPeriod" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampPeriod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timestampPeriod" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxClipDistances" VkPhysicalDeviceLimits where
+        type FieldType "maxClipDistances" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxClipDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxClipDistances" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxClipDistances}
+        type FieldIsArray "maxClipDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxClipDistances" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxClipDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxClipDistances" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxCullDistances" VkPhysicalDeviceLimits where
+        type FieldType "maxCullDistances" VkPhysicalDeviceLimits = Word32
+        type FieldOptional "maxCullDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxCullDistances" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, maxCullDistances}
+        type FieldIsArray "maxCullDistances" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxCullDistances" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCullDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxCullDistances" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxCombinedClipAndCullDistances" VkPhysicalDeviceLimits
+         where
+        type FieldType "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = Word32
+        type FieldOptional "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+        type FieldIsArray "maxCombinedClipAndCullDistances"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxCombinedClipAndCullDistances"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxCombinedClipAndCullDistances"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
+
+instance {-# OVERLAPPING #-}
+         HasField "discreteQueuePriorities" VkPhysicalDeviceLimits where
+        type FieldType "discreteQueuePriorities" VkPhysicalDeviceLimits =
+             Word32
+        type FieldOptional "discreteQueuePriorities" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "discreteQueuePriorities" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+        type FieldIsArray "discreteQueuePriorities" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "discreteQueuePriorities" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, discreteQueuePriorities})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "discreteQueuePriorities" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
+
+instance {-# OVERLAPPING #-}
+         HasField "pointSizeRange" VkPhysicalDeviceLimits where
+        type FieldType "pointSizeRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "pointSizeRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointSizeRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, pointSizeRange}
+        type FieldIsArray "pointSizeRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, pointSizeRange}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}
+        type FieldArrayLength "pointSizeRange" VkPhysicalDeviceLimits = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "lineWidthRange" VkPhysicalDeviceLimits where
+        type FieldType "lineWidthRange" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "lineWidthRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "lineWidthRange" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, lineWidthRange}
+        type FieldIsArray "lineWidthRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, lineWidthRange}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>
+         CanReadFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}
+        type FieldArrayLength "lineWidthRange" VkPhysicalDeviceLimits = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>
+         CanWriteFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        type FieldType "pointSizeGranularity" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "pointSizeGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointSizeGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+        type FieldIsArray "pointSizeGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, pointSizeGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pointSizeGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        type FieldType "lineWidthGranularity" VkPhysicalDeviceLimits =
+             #{type float}
+        type FieldOptional "lineWidthGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "lineWidthGranularity" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+        type FieldIsArray "lineWidthGranularity" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, lineWidthGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "lineWidthGranularity" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "strictLines" VkPhysicalDeviceLimits where
+        type FieldType "strictLines" VkPhysicalDeviceLimits = VkBool32
+        type FieldOptional "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "strictLines" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, strictLines}
+        type FieldIsArray "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "strictLines" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, strictLines})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "strictLines" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
+
+instance {-# OVERLAPPING #-}
+         HasField "standardSampleLocations" VkPhysicalDeviceLimits where
+        type FieldType "standardSampleLocations" VkPhysicalDeviceLimits =
+             VkBool32
+        type FieldOptional "standardSampleLocations" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "standardSampleLocations" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+        type FieldIsArray "standardSampleLocations" VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "standardSampleLocations" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, standardSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "standardSampleLocations" VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "optimalBufferCopyOffsetAlignment" VkPhysicalDeviceLimits
+         where
+        type FieldType "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+        type FieldIsArray "optimalBufferCopyOffsetAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "optimalBufferCopyOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "optimalBufferCopyOffsetAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        type FieldType "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = VkDeviceSize
+        type FieldOptional "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             =
+             #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+        type FieldIsArray "optimalBufferCopyRowPitchAlignment"
+               VkPhysicalDeviceLimits
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "optimalBufferCopyRowPitchAlignment"
+           VkPhysicalDeviceLimits
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
+
+instance {-# OVERLAPPING #-}
+         HasField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        type FieldType "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             VkDeviceSize
+        type FieldOptional "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+        type FieldIsArray "nonCoherentAtomSize" VkPhysicalDeviceLimits =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
+
+instance Show VkPhysicalDeviceLimits where
+        showsPrec d x
+          = showString "VkPhysicalDeviceLimits {" .
+              showString "maxImageDimension1D = " .
+                showsPrec d (getField @"maxImageDimension1D" x) .
+                  showString ", " .
+                    showString "maxImageDimension2D = " .
+                      showsPrec d (getField @"maxImageDimension2D" x) .
+                        showString ", " .
+                          showString "maxImageDimension3D = " .
+                            showsPrec d (getField @"maxImageDimension3D" x) .
+                              showString ", " .
+                                showString "maxImageDimensionCube = " .
+                                  showsPrec d (getField @"maxImageDimensionCube" x) .
+                                    showString ", " .
+                                      showString "maxImageArrayLayers = " .
+                                        showsPrec d (getField @"maxImageArrayLayers" x) .
+                                          showString ", " .
+                                            showString "maxTexelBufferElements = " .
+                                              showsPrec d (getField @"maxTexelBufferElements" x) .
+                                                showString ", " .
+                                                  showString "maxUniformBufferRange = " .
+                                                    showsPrec d
+                                                      (getField @"maxUniformBufferRange" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "maxStorageBufferRange = " .
+                                                          showsPrec d
+                                                            (getField @"maxStorageBufferRange" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "maxPushConstantsSize = " .
+                                                                showsPrec d
+                                                                  (getField @"maxPushConstantsSize"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "maxMemoryAllocationCount = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"maxMemoryAllocationCount"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxSamplerAllocationCount = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxSamplerAllocationCount"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "bufferImageGranularity = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"bufferImageGranularity"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "sparseAddressSpaceSize = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"sparseAddressSpaceSize"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "maxBoundDescriptorSets = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"maxBoundDescriptorSets"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxPerStageDescriptorSamplers = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxPerStageDescriptorSamplers"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "maxPerStageDescriptorUniformBuffers = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"maxPerStageDescriptorUniformBuffers"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "maxPerStageDescriptorStorageBuffers = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"maxPerStageDescriptorStorageBuffers"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "maxPerStageDescriptorSampledImages = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"maxPerStageDescriptorSampledImages"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "maxPerStageDescriptorStorageImages = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"maxPerStageDescriptorStorageImages"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "maxPerStageDescriptorInputAttachments = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"maxPerStageDescriptorInputAttachments"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "maxPerStageResources = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"maxPerStageResources"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "maxDescriptorSetSamplers = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"maxDescriptorSetSamplers"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showString
+                                                                                                                                                  ", "
+                                                                                                                                                  .
+                                                                                                                                                  showString
+                                                                                                                                                    "maxDescriptorSetUniformBuffers = "
+                                                                                                                                                    .
+                                                                                                                                                    showsPrec
+                                                                                                                                                      d
+                                                                                                                                                      (getField
+                                                                                                                                                         @"maxDescriptorSetUniformBuffers"
+                                                                                                                                                         x)
+                                                                                                                                                      .
+                                                                                                                                                      showString
+                                                                                                                                                        ", "
+                                                                                                                                                        .
+                                                                                                                                                        showString
+                                                                                                                                                          "maxDescriptorSetUniformBuffersDynamic = "
+                                                                                                                                                          .
+                                                                                                                                                          showsPrec
+                                                                                                                                                            d
+                                                                                                                                                            (getField
+                                                                                                                                                               @"maxDescriptorSetUniformBuffersDynamic"
+                                                                                                                                                               x)
+                                                                                                                                                            .
+                                                                                                                                                            showString
+                                                                                                                                                              ", "
+                                                                                                                                                              .
+                                                                                                                                                              showString
+                                                                                                                                                                "maxDescriptorSetStorageBuffers = "
+                                                                                                                                                                .
+                                                                                                                                                                showsPrec
+                                                                                                                                                                  d
+                                                                                                                                                                  (getField
+                                                                                                                                                                     @"maxDescriptorSetStorageBuffers"
+                                                                                                                                                                     x)
+                                                                                                                                                                  .
+                                                                                                                                                                  showString
+                                                                                                                                                                    ", "
+                                                                                                                                                                    .
+                                                                                                                                                                    showString
+                                                                                                                                                                      "maxDescriptorSetStorageBuffersDynamic = "
+                                                                                                                                                                      .
+                                                                                                                                                                      showsPrec
+                                                                                                                                                                        d
+                                                                                                                                                                        (getField
+                                                                                                                                                                           @"maxDescriptorSetStorageBuffersDynamic"
+                                                                                                                                                                           x)
+                                                                                                                                                                        .
+                                                                                                                                                                        showString
+                                                                                                                                                                          ", "
+                                                                                                                                                                          .
+                                                                                                                                                                          showString
+                                                                                                                                                                            "maxDescriptorSetSampledImages = "
+                                                                                                                                                                            .
+                                                                                                                                                                            showsPrec
+                                                                                                                                                                              d
+                                                                                                                                                                              (getField
+                                                                                                                                                                                 @"maxDescriptorSetSampledImages"
+                                                                                                                                                                                 x)
+                                                                                                                                                                              .
+                                                                                                                                                                              showString
+                                                                                                                                                                                ", "
+                                                                                                                                                                                .
+                                                                                                                                                                                showString
+                                                                                                                                                                                  "maxDescriptorSetStorageImages = "
+                                                                                                                                                                                  .
+                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                    d
+                                                                                                                                                                                    (getField
+                                                                                                                                                                                       @"maxDescriptorSetStorageImages"
+                                                                                                                                                                                       x)
+                                                                                                                                                                                    .
+                                                                                                                                                                                    showString
+                                                                                                                                                                                      ", "
+                                                                                                                                                                                      .
+                                                                                                                                                                                      showString
+                                                                                                                                                                                        "maxDescriptorSetInputAttachments = "
+                                                                                                                                                                                        .
+                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                          d
+                                                                                                                                                                                          (getField
+                                                                                                                                                                                             @"maxDescriptorSetInputAttachments"
+                                                                                                                                                                                             x)
+                                                                                                                                                                                          .
+                                                                                                                                                                                          showString
+                                                                                                                                                                                            ", "
+                                                                                                                                                                                            .
+                                                                                                                                                                                            showString
+                                                                                                                                                                                              "maxVertexInputAttributes = "
+                                                                                                                                                                                              .
+                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                d
+                                                                                                                                                                                                (getField
+                                                                                                                                                                                                   @"maxVertexInputAttributes"
+                                                                                                                                                                                                   x)
+                                                                                                                                                                                                .
+                                                                                                                                                                                                showString
+                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                  .
+                                                                                                                                                                                                  showString
+                                                                                                                                                                                                    "maxVertexInputBindings = "
+                                                                                                                                                                                                    .
+                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                      d
+                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                         @"maxVertexInputBindings"
+                                                                                                                                                                                                         x)
+                                                                                                                                                                                                      .
+                                                                                                                                                                                                      showString
+                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                        .
+                                                                                                                                                                                                        showString
+                                                                                                                                                                                                          "maxVertexInputAttributeOffset = "
+                                                                                                                                                                                                          .
+                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                            d
+                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                               @"maxVertexInputAttributeOffset"
+                                                                                                                                                                                                               x)
+                                                                                                                                                                                                            .
+                                                                                                                                                                                                            showString
+                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                              .
+                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                "maxVertexInputBindingStride = "
+                                                                                                                                                                                                                .
+                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                     @"maxVertexInputBindingStride"
+                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                      "maxVertexOutputComponents = "
+                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                           @"maxVertexOutputComponents"
+                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                            "maxTessellationGenerationLevel = "
+                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                 @"maxTessellationGenerationLevel"
+                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                  "maxTessellationPatchSize = "
+                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                       @"maxTessellationPatchSize"
+                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                        "maxTessellationControlPerVertexInputComponents = "
+                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                             @"maxTessellationControlPerVertexInputComponents"
+                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                              "maxTessellationControlPerVertexOutputComponents = "
+                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                   @"maxTessellationControlPerVertexOutputComponents"
+                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                    "maxTessellationControlPerPatchOutputComponents = "
+                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                         @"maxTessellationControlPerPatchOutputComponents"
+                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                          "maxTessellationControlTotalOutputComponents = "
+                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                               @"maxTessellationControlTotalOutputComponents"
+                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                "maxTessellationEvaluationInputComponents = "
+                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                     @"maxTessellationEvaluationInputComponents"
+                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                      "maxTessellationEvaluationOutputComponents = "
+                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                           @"maxTessellationEvaluationOutputComponents"
+                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                            "maxGeometryShaderInvocations = "
+                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                 @"maxGeometryShaderInvocations"
+                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                  "maxGeometryInputComponents = "
+                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                       @"maxGeometryInputComponents"
+                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                        "maxGeometryOutputComponents = "
+                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                             @"maxGeometryOutputComponents"
+                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                              "maxGeometryOutputVertices = "
+                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                   @"maxGeometryOutputVertices"
+                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                    "maxGeometryTotalOutputComponents = "
+                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                         @"maxGeometryTotalOutputComponents"
+                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                          "maxFragmentInputComponents = "
+                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                               @"maxFragmentInputComponents"
+                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                "maxFragmentOutputAttachments = "
+                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                     @"maxFragmentOutputAttachments"
+                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                      "maxFragmentDualSrcAttachments = "
+                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                           @"maxFragmentDualSrcAttachments"
+                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                            "maxFragmentCombinedOutputResources = "
+                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                 @"maxFragmentCombinedOutputResources"
+                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                  "maxComputeSharedMemorySize = "
+                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                       @"maxComputeSharedMemorySize"
+                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                      (showString
+                                                                                                                                                                                                                                                                                                                                         "maxComputeWorkGroupCount = ["
+                                                                                                                                                                                                                                                                                                                                         .
+                                                                                                                                                                                                                                                                                                                                         showsPrec
+                                                                                                                                                                                                                                                                                                                                           d
+                                                                                                                                                                                                                                                                                                                                           (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                      (undefined
+                                                                                                                                                                                                                                                                                                                                                         ::
+                                                                                                                                                                                                                                                                                                                                                         FieldType
+                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                      @"maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                      @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                f i
+                                                                                                                                                                                                                                                                                                                                                  = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                      (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                      i
+                                                                                                                                                                                                                                                                                                                                                      ::
+                                                                                                                                                                                                                                                                                                                                                      IO
+                                                                                                                                                                                                                                                                                                                                                        (FieldType
+                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
+                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                              in
+                                                                                                                                                                                                                                                                                                                                              unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                mapM
+                                                                                                                                                                                                                                                                                                                                                  f
+                                                                                                                                                                                                                                                                                                                                                $
+                                                                                                                                                                                                                                                                                                                                                map
+                                                                                                                                                                                                                                                                                                                                                  (\ i
+                                                                                                                                                                                                                                                                                                                                                     ->
+                                                                                                                                                                                                                                                                                                                                                     o +
+                                                                                                                                                                                                                                                                                                                                                       i *
+                                                                                                                                                                                                                                                                                                                                                         s)
+                                                                                                                                                                                                                                                                                                                                                  [0
+                                                                                                                                                                                                                                                                                                                                                   ..
+                                                                                                                                                                                                                                                                                                                                                   3 -
+                                                                                                                                                                                                                                                                                                                                                     1])
+                                                                                                                                                                                                                                                                                                                                           .
+                                                                                                                                                                                                                                                                                                                                           showChar
+                                                                                                                                                                                                                                                                                                                                             ']')
+                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                            "maxComputeWorkGroupInvocations = "
+                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                 @"maxComputeWorkGroupInvocations"
+                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                (showString
+                                                                                                                                                                                                                                                                                                                                                   "maxComputeWorkGroupSize = ["
+                                                                                                                                                                                                                                                                                                                                                   .
+                                                                                                                                                                                                                                                                                                                                                   showsPrec
+                                                                                                                                                                                                                                                                                                                                                     d
+                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                (undefined
+                                                                                                                                                                                                                                                                                                                                                                   ::
+                                                                                                                                                                                                                                                                                                                                                                   FieldType
+                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                @"maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                          f i
+                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                i
+                                                                                                                                                                                                                                                                                                                                                                ::
+                                                                                                                                                                                                                                                                                                                                                                IO
+                                                                                                                                                                                                                                                                                                                                                                  (FieldType
+                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
+                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                        in
+                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                          mapM
+                                                                                                                                                                                                                                                                                                                                                            f
+                                                                                                                                                                                                                                                                                                                                                          $
+                                                                                                                                                                                                                                                                                                                                                          map
+                                                                                                                                                                                                                                                                                                                                                            (\ i
+                                                                                                                                                                                                                                                                                                                                                               ->
+                                                                                                                                                                                                                                                                                                                                                               o +
+                                                                                                                                                                                                                                                                                                                                                                 i *
+                                                                                                                                                                                                                                                                                                                                                                   s)
+                                                                                                                                                                                                                                                                                                                                                            [0
+                                                                                                                                                                                                                                                                                                                                                             ..
+                                                                                                                                                                                                                                                                                                                                                             3 -
+                                                                                                                                                                                                                                                                                                                                                               1])
+                                                                                                                                                                                                                                                                                                                                                     .
+                                                                                                                                                                                                                                                                                                                                                     showChar
+                                                                                                                                                                                                                                                                                                                                                       ']')
+                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                      "subPixelPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                           @"subPixelPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                            "subTexelPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                 @"subTexelPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                  "mipmapPrecisionBits = "
+                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                       @"mipmapPrecisionBits"
+                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                        "maxDrawIndexedIndexValue = "
+                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                             @"maxDrawIndexedIndexValue"
+                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                              "maxDrawIndirectCount = "
+                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                   @"maxDrawIndirectCount"
+                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                    "maxSamplerLodBias = "
+                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                         @"maxSamplerLodBias"
+                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                          "maxSamplerAnisotropy = "
+                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                               @"maxSamplerAnisotropy"
+                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                "maxViewports = "
+                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                     @"maxViewports"
+                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                    (showString
+                                                                                                                                                                                                                                                                                                                                                                                                       "maxViewportDimensions = ["
+                                                                                                                                                                                                                                                                                                                                                                                                       .
+                                                                                                                                                                                                                                                                                                                                                                                                       showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                         d
+                                                                                                                                                                                                                                                                                                                                                                                                         (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                    (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                       ::
+                                                                                                                                                                                                                                                                                                                                                                                                                       FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                              o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                    @"maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                    @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                              f i
+                                                                                                                                                                                                                                                                                                                                                                                                                = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                    (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                    i
+                                                                                                                                                                                                                                                                                                                                                                                                                    ::
+                                                                                                                                                                                                                                                                                                                                                                                                                    IO
+                                                                                                                                                                                                                                                                                                                                                                                                                      (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
+                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                            in
+                                                                                                                                                                                                                                                                                                                                                                                                            unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                              mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                f
+                                                                                                                                                                                                                                                                                                                                                                                                              $
+                                                                                                                                                                                                                                                                                                                                                                                                              map
+                                                                                                                                                                                                                                                                                                                                                                                                                (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                   ->
+                                                                                                                                                                                                                                                                                                                                                                                                                   o +
+                                                                                                                                                                                                                                                                                                                                                                                                                     i *
+                                                                                                                                                                                                                                                                                                                                                                                                                       s)
+                                                                                                                                                                                                                                                                                                                                                                                                                [0
+                                                                                                                                                                                                                                                                                                                                                                                                                 ..
+                                                                                                                                                                                                                                                                                                                                                                                                                 2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                   1])
+                                                                                                                                                                                                                                                                                                                                                                                                         .
+                                                                                                                                                                                                                                                                                                                                                                                                         showChar
+                                                                                                                                                                                                                                                                                                                                                                                                           ']')
+                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                        (showString
+                                                                                                                                                                                                                                                                                                                                                                                                           "viewportBoundsRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                           .
+                                                                                                                                                                                                                                                                                                                                                                                                           showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                             d
+                                                                                                                                                                                                                                                                                                                                                                                                             (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                        (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                           ::
+                                                                                                                                                                                                                                                                                                                                                                                                                           FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                  o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                        @"viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                        @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                  f i
+                                                                                                                                                                                                                                                                                                                                                                                                                    = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                        (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                        i
+                                                                                                                                                                                                                                                                                                                                                                                                                        ::
+                                                                                                                                                                                                                                                                                                                                                                                                                        IO
+                                                                                                                                                                                                                                                                                                                                                                                                                          (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                in
+                                                                                                                                                                                                                                                                                                                                                                                                                unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                  mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                    f
+                                                                                                                                                                                                                                                                                                                                                                                                                  $
+                                                                                                                                                                                                                                                                                                                                                                                                                  map
+                                                                                                                                                                                                                                                                                                                                                                                                                    (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                       ->
+                                                                                                                                                                                                                                                                                                                                                                                                                       o +
+                                                                                                                                                                                                                                                                                                                                                                                                                         i *
+                                                                                                                                                                                                                                                                                                                                                                                                                           s)
+                                                                                                                                                                                                                                                                                                                                                                                                                    [0
+                                                                                                                                                                                                                                                                                                                                                                                                                     ..
+                                                                                                                                                                                                                                                                                                                                                                                                                     2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                       1])
+                                                                                                                                                                                                                                                                                                                                                                                                             .
+                                                                                                                                                                                                                                                                                                                                                                                                             showChar
+                                                                                                                                                                                                                                                                                                                                                                                                               ']')
+                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                              "viewportSubPixelBits = "
+                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                   @"viewportSubPixelBits"
+                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                    "minMemoryMapAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                         @"minMemoryMapAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                          "minTexelBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                               @"minTexelBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                "minUniformBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                     @"minUniformBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                      "minStorageBufferOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                           @"minStorageBufferOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                            "minTexelOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"minTexelOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxTexelOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxTexelOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        "minTexelGatherOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"minTexelGatherOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              "maxTexelGatherOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"maxTexelGatherOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "minInterpolationOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"minInterpolationOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "maxInterpolationOffset = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"maxInterpolationOffset"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "subPixelInterpolationOffsetBits = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"subPixelInterpolationOffsetBits"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxFramebufferWidth = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxFramebufferWidth"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxFramebufferHeight = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxFramebufferHeight"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxFramebufferLayers = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxFramebufferLayers"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "framebufferColorSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"framebufferColorSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "framebufferDepthSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"framebufferDepthSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "framebufferStencilSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"framebufferStencilSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "framebufferNoAttachmentsSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"framebufferNoAttachmentsSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "maxColorAttachments = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"maxColorAttachments"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "sampledImageColorSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"sampledImageColorSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "sampledImageIntegerSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"sampledImageIntegerSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "sampledImageDepthSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"sampledImageDepthSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "sampledImageStencilSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"sampledImageStencilSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "storageImageSampleCounts = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"storageImageSampleCounts"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "maxSampleMaskWords = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"maxSampleMaskWords"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "timestampComputeAndGraphics = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"timestampComputeAndGraphics"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "timestampPeriod = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"timestampPeriod"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxClipDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxClipDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxCullDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxCullDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxCombinedClipAndCullDistances = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxCombinedClipAndCullDistances"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "discreteQueuePriorities = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"discreteQueuePriorities"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               "pointSizeRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @"pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      f i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        f
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      $
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      map
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           o +
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             i *
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               s)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [0
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ..
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           1])
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ']')
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "lineWidthRange = ["
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (undefined
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @"lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          f i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ::
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (FieldType
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          mapM
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            f
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          map
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (\ i
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               o +
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 i *
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   s)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ..
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             2 -
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1])
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ']')
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "pointSizeGranularity = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"pointSizeGranularity"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "lineWidthGranularity = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"lineWidthGranularity"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "strictLines = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"strictLines"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "standardSampleLocations = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"standardSampleLocations"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "optimalBufferCopyOffsetAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"optimalBufferCopyOffsetAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "optimalBufferCopyRowPitchAlignment = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"optimalBufferCopyRowPitchAlignment"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "nonCoherentAtomSize = "
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"nonCoherentAtomSize"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showChar
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              '}'
+
+-- | > typedef struct VkPhysicalDeviceMaintenance3Properties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxPerSetDescriptors;
+--   >     VkDeviceSize                     maxMemoryAllocationSize;
+--   > } VkPhysicalDeviceMaintenance3Properties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3Properties registry at www.khronos.org>
+data VkPhysicalDeviceMaintenance3Properties = VkPhysicalDeviceMaintenance3Properties## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkPhysicalDeviceMaintenance3Properties where
+        (VkPhysicalDeviceMaintenance3Properties## a _) ==
+          x@(VkPhysicalDeviceMaintenance3Properties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMaintenance3Properties where
+        (VkPhysicalDeviceMaintenance3Properties## a _) `compare`
+          x@(VkPhysicalDeviceMaintenance3Properties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMaintenance3Properties where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceMaintenance3Properties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMaintenance3Properties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceMaintenance3Properties
+         where
+        unsafeAddr (VkPhysicalDeviceMaintenance3Properties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceMaintenance3Properties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMaintenance3Properties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceMaintenance3Properties where
+        type StructFields VkPhysicalDeviceMaintenance3Properties =
+             '["sType", "pNext", "maxPerSetDescriptors", -- ' closing tick for hsc2hs
+               "maxMemoryAllocationSize"]
+        type CUnionType VkPhysicalDeviceMaintenance3Properties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMaintenance3Properties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMaintenance3Properties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMaintenance3Properties where
+        type FieldType "sType" VkPhysicalDeviceMaintenance3Properties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMaintenance3Properties =
+             #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMaintenance3Properties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMaintenance3Properties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        type FieldType "pNext" VkPhysicalDeviceMaintenance3Properties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMaintenance3Properties =
+             #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMaintenance3Properties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMaintenance3Properties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        type FieldType "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = Word32
+        type FieldOptional "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             =
+             #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+        type FieldIsArray "maxPerSetDescriptors"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPerSetDescriptors"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        type FieldType "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = VkDeviceSize
+        type FieldOptional "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             =
+             #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+        type FieldIsArray "maxMemoryAllocationSize"
+               VkPhysicalDeviceMaintenance3Properties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMemoryAllocationSize"
+           VkPhysicalDeviceMaintenance3Properties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
+
+instance Show VkPhysicalDeviceMaintenance3Properties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMaintenance3Properties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxPerSetDescriptors = " .
+                            showsPrec d (getField @"maxPerSetDescriptors" x) .
+                              showString ", " .
+                                showString "maxMemoryAllocationSize = " .
+                                  showsPrec d (getField @"maxMemoryAllocationSize" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMaintenance3Properties`
+type VkPhysicalDeviceMaintenance3PropertiesKHR =
+     VkPhysicalDeviceMaintenance3Properties
+
+-- | > typedef struct VkPhysicalDeviceMemoryProperties {
+--   >     uint32_t               memoryTypeCount;
+--   >     VkMemoryType           memoryTypes[VK_MAX_MEMORY_TYPES];
+--   >     uint32_t               memoryHeapCount;
+--   >     VkMemoryHeap           memoryHeaps[VK_MAX_MEMORY_HEAPS];
+--   > } VkPhysicalDeviceMemoryProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties VkPhysicalDeviceMemoryProperties registry at www.khronos.org>
+data VkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties## Addr##
+                                                                          ByteArray##
+
+instance Eq VkPhysicalDeviceMemoryProperties where
+        (VkPhysicalDeviceMemoryProperties## a _) ==
+          x@(VkPhysicalDeviceMemoryProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMemoryProperties where
+        (VkPhysicalDeviceMemoryProperties## a _) `compare`
+          x@(VkPhysicalDeviceMemoryProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMemoryProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMemoryProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties where
+        unsafeAddr (VkPhysicalDeviceMemoryProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceMemoryProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMemoryProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceMemoryProperties where
+        type StructFields VkPhysicalDeviceMemoryProperties =
+             '["memoryTypeCount", "memoryTypes", "memoryHeapCount", -- ' closing tick for hsc2hs
+               "memoryHeaps"]
+        type CUnionType VkPhysicalDeviceMemoryProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMemoryProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMemoryProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeCount" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryTypeCount" VkPhysicalDeviceMemoryProperties =
+             Word32
+        type FieldOptional "memoryTypeCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+             =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+        type FieldIsArray "memoryTypeCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypes" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             VkMemoryType
+        type FieldOptional "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+        type FieldIsArray "memoryTypes" VkPhysicalDeviceMemoryProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "memoryTypes" idx
+            VkPhysicalDeviceMemoryProperties) =>
+         CanReadFieldArray "memoryTypes" idx
+           VkPhysicalDeviceMemoryProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties
+                       #-}
+        type FieldArrayLength "memoryTypes"
+               VkPhysicalDeviceMemoryProperties
+             = VK_MAX_MEMORY_TYPES
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_MEMORY_TYPES
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                      +
+                      sizeOf (undefined :: VkMemoryType) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                 +
+                 sizeOf (undefined :: VkMemoryType) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "memoryTypes" idx
+            VkPhysicalDeviceMemoryProperties) =>
+         CanWriteFieldArray "memoryTypes" idx
+           VkPhysicalDeviceMemoryProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
+                 +
+                 sizeOf (undefined :: VkMemoryType) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryHeapCount" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryHeapCount" VkPhysicalDeviceMemoryProperties =
+             Word32
+        type FieldOptional "memoryHeapCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+             =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+        type FieldIsArray "memoryHeapCount"
+               VkPhysicalDeviceMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryHeaps" VkPhysicalDeviceMemoryProperties where
+        type FieldType "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             VkMemoryHeap
+        type FieldOptional "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+        type FieldIsArray "memoryHeaps" VkPhysicalDeviceMemoryProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "memoryHeaps" idx
+            VkPhysicalDeviceMemoryProperties) =>
+         CanReadFieldArray "memoryHeaps" idx
+           VkPhysicalDeviceMemoryProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties
+                       #-}
+        type FieldArrayLength "memoryHeaps"
+               VkPhysicalDeviceMemoryProperties
+             = VK_MAX_MEMORY_HEAPS
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_MEMORY_HEAPS
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                      +
+                      sizeOf (undefined :: VkMemoryHeap) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                 +
+                 sizeOf (undefined :: VkMemoryHeap) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "memoryHeaps" idx
+            VkPhysicalDeviceMemoryProperties) =>
+         CanWriteFieldArray "memoryHeaps" idx
+           VkPhysicalDeviceMemoryProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
+                 +
+                 sizeOf (undefined :: VkMemoryHeap) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkPhysicalDeviceMemoryProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMemoryProperties {" .
+              showString "memoryTypeCount = " .
+                showsPrec d (getField @"memoryTypeCount" x) .
+                  showString ", " .
+                    (showString "memoryTypes = [" .
+                       showsPrec d
+                         (let s = sizeOf
+                                    (undefined ::
+                                       FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
+                              o = fieldOffset @"memoryTypes" @VkPhysicalDeviceMemoryProperties
+                              f i
+                                = peekByteOff (unsafePtr x) i ::
+                                    IO (FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
+                            in
+                            unsafeDupablePerformIO . mapM f $
+                              map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_TYPES - 1])
+                         . showChar ']')
+                      .
+                      showString ", " .
+                        showString "memoryHeapCount = " .
+                          showsPrec d (getField @"memoryHeapCount" x) .
+                            showString ", " .
+                              (showString "memoryHeaps = [" .
+                                 showsPrec d
+                                   (let s = sizeOf
+                                              (undefined ::
+                                                 FieldType "memoryHeaps"
+                                                   VkPhysicalDeviceMemoryProperties)
+                                        o = fieldOffset @"memoryHeaps"
+                                              @VkPhysicalDeviceMemoryProperties
+                                        f i
+                                          = peekByteOff (unsafePtr x) i ::
+                                              IO
+                                                (FieldType "memoryHeaps"
+                                                   VkPhysicalDeviceMemoryProperties)
+                                      in
+                                      unsafeDupablePerformIO . mapM f $
+                                        map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_HEAPS - 1])
+                                   . showChar ']')
+                                . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceMemoryProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceMemoryProperties memoryProperties;
+--   > } VkPhysicalDeviceMemoryProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
+data VkPhysicalDeviceMemoryProperties2 = VkPhysicalDeviceMemoryProperties2## Addr##
+                                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceMemoryProperties2 where
+        (VkPhysicalDeviceMemoryProperties2## a _) ==
+          x@(VkPhysicalDeviceMemoryProperties2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMemoryProperties2 where
+        (VkPhysicalDeviceMemoryProperties2## a _) `compare`
+          x@(VkPhysicalDeviceMemoryProperties2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMemoryProperties2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMemoryProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties2 where
+        unsafeAddr (VkPhysicalDeviceMemoryProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceMemoryProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMemoryProperties2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceMemoryProperties2 where
+        type StructFields VkPhysicalDeviceMemoryProperties2 =
+             '["sType", "pNext", "memoryProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceMemoryProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMemoryProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMemoryProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "sType" VkPhysicalDeviceMemoryProperties2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMemoryProperties2 =
+             #{offset VkPhysicalDeviceMemoryProperties2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMemoryProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMemoryProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "pNext" VkPhysicalDeviceMemoryProperties2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMemoryProperties2 =
+             #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMemoryProperties2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMemoryProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryProperties" VkPhysicalDeviceMemoryProperties2 where
+        type FieldType "memoryProperties" VkPhysicalDeviceMemoryProperties2
+             = VkPhysicalDeviceMemoryProperties
+        type FieldOptional "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             =
+             #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+        type FieldIsArray "memoryProperties"
+               VkPhysicalDeviceMemoryProperties2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryProperties" VkPhysicalDeviceMemoryProperties2
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryProperties" VkPhysicalDeviceMemoryProperties2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
+
+instance Show VkPhysicalDeviceMemoryProperties2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMemoryProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryProperties = " .
+                            showsPrec d (getField @"memoryProperties" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMemoryProperties2`
+type VkPhysicalDeviceMemoryProperties2KHR =
+     VkPhysicalDeviceMemoryProperties2
+
+-- | > typedef struct VkPhysicalDeviceMultiviewFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         multiview;
+--   >     VkBool32                         multiviewGeometryShader;
+--   >     VkBool32                         multiviewTessellationShader;
+--   > } VkPhysicalDeviceMultiviewFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeatures registry at www.khronos.org>
+data VkPhysicalDeviceMultiviewFeatures = VkPhysicalDeviceMultiviewFeatures## Addr##
+                                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceMultiviewFeatures where
+        (VkPhysicalDeviceMultiviewFeatures## a _) ==
+          x@(VkPhysicalDeviceMultiviewFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMultiviewFeatures where
+        (VkPhysicalDeviceMultiviewFeatures## a _) `compare`
+          x@(VkPhysicalDeviceMultiviewFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMultiviewFeatures where
+        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceMultiviewFeatures where
+        unsafeAddr (VkPhysicalDeviceMultiviewFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceMultiviewFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMultiviewFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceMultiviewFeatures where
+        type StructFields VkPhysicalDeviceMultiviewFeatures =
+             '["sType", "pNext", "multiview", "multiviewGeometryShader", -- ' closing tick for hsc2hs
+               "multiviewTessellationShader"]
+        type CUnionType VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMultiviewFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "sType" VkPhysicalDeviceMultiviewFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "pNext" VkPhysicalDeviceMultiviewFeatures = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        type FieldType "multiview" VkPhysicalDeviceMultiviewFeatures =
+             VkBool32
+        type FieldOptional "multiview" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiview" VkPhysicalDeviceMultiviewFeatures =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+        type FieldIsArray "multiview" VkPhysicalDeviceMultiviewFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiview})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiview" VkPhysicalDeviceMultiviewFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        type FieldType "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = VkBool32
+        type FieldOptional "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+        type FieldIsArray "multiviewGeometryShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiviewGeometryShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        type FieldType "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = VkBool32
+        type FieldOptional "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             =
+             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+        type FieldIsArray "multiviewTessellationShader"
+               VkPhysicalDeviceMultiviewFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiviewTessellationShader"
+           VkPhysicalDeviceMultiviewFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
+
+instance Show VkPhysicalDeviceMultiviewFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMultiviewFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "multiview = " .
+                            showsPrec d (getField @"multiview" x) .
+                              showString ", " .
+                                showString "multiviewGeometryShader = " .
+                                  showsPrec d (getField @"multiviewGeometryShader" x) .
+                                    showString ", " .
+                                      showString "multiviewTessellationShader = " .
+                                        showsPrec d (getField @"multiviewTessellationShader" x) .
+                                          showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMultiviewFeatures`
+type VkPhysicalDeviceMultiviewFeaturesKHR =
+     VkPhysicalDeviceMultiviewFeatures
+
+-- | > typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         perViewPositionAllComponents;
+--   > } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX registry at www.khronos.org>
+data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## Addr##
+                                                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) ==
+          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _)
+          `compare`
+          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        unsafeAddr
+          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type StructFields
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = '["sType", "pNext", "perViewPositionAllComponents"] -- ' closing tick for hsc2hs
+        type CUnionType
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        type FieldType "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = VkBool32
+        type FieldOptional "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             =
+             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+        type FieldIsArray "perViewPositionAllComponents"
+               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "perViewPositionAllComponents"
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
+
+instance Show
+           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "perViewPositionAllComponents = " .
+                            showsPrec d (getField @"perViewPositionAllComponents" x) .
+                              showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceMultiviewProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxMultiviewViewCount;
+--   >     uint32_t                         maxMultiviewInstanceIndex;
+--   > } VkPhysicalDeviceMultiviewProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewProperties registry at www.khronos.org>
+data VkPhysicalDeviceMultiviewProperties = VkPhysicalDeviceMultiviewProperties## Addr##
+                                                                                ByteArray##
+
+instance Eq VkPhysicalDeviceMultiviewProperties where
+        (VkPhysicalDeviceMultiviewProperties## a _) ==
+          x@(VkPhysicalDeviceMultiviewProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceMultiviewProperties where
+        (VkPhysicalDeviceMultiviewProperties## a _) `compare`
+          x@(VkPhysicalDeviceMultiviewProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceMultiviewProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceMultiviewProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceMultiviewProperties
+         where
+        unsafeAddr (VkPhysicalDeviceMultiviewProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceMultiviewProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceMultiviewProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceMultiviewProperties where
+        type StructFields VkPhysicalDeviceMultiviewProperties =
+             '["sType", "pNext", "maxMultiviewViewCount", -- ' closing tick for hsc2hs
+               "maxMultiviewInstanceIndex"]
+        type CUnionType VkPhysicalDeviceMultiviewProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceMultiviewProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceMultiviewProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceMultiviewProperties where
+        type FieldType "sType" VkPhysicalDeviceMultiviewProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceMultiviewProperties =
+             #{offset VkPhysicalDeviceMultiviewProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceMultiviewProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceMultiviewProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceMultiviewProperties where
+        type FieldType "pNext" VkPhysicalDeviceMultiviewProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceMultiviewProperties =
+             #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceMultiviewProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceMultiviewProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        type FieldType "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = Word32
+        type FieldOptional "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             =
+             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+        type FieldIsArray "maxMultiviewViewCount"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMultiviewViewCount"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        type FieldType "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = Word32
+        type FieldOptional "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             =
+             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+        type FieldIsArray "maxMultiviewInstanceIndex"
+               VkPhysicalDeviceMultiviewProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxMultiviewInstanceIndex"
+           VkPhysicalDeviceMultiviewProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
+
+instance Show VkPhysicalDeviceMultiviewProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceMultiviewProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxMultiviewViewCount = " .
+                            showsPrec d (getField @"maxMultiviewViewCount" x) .
+                              showString ", " .
+                                showString "maxMultiviewInstanceIndex = " .
+                                  showsPrec d (getField @"maxMultiviewInstanceIndex" x) .
+                                    showChar '}'
+
+-- | Alias for `VkPhysicalDeviceMultiviewProperties`
+type VkPhysicalDeviceMultiviewPropertiesKHR =
+     VkPhysicalDeviceMultiviewProperties
+
+-- | > typedef struct VkPhysicalDevicePointClippingProperties {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPointClippingBehavior      pointClippingBehavior;
+--   > } VkPhysicalDevicePointClippingProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingProperties registry at www.khronos.org>
+data VkPhysicalDevicePointClippingProperties = VkPhysicalDevicePointClippingProperties## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkPhysicalDevicePointClippingProperties where
+        (VkPhysicalDevicePointClippingProperties## a _) ==
+          x@(VkPhysicalDevicePointClippingProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevicePointClippingProperties where
+        (VkPhysicalDevicePointClippingProperties## a _) `compare`
+          x@(VkPhysicalDevicePointClippingProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevicePointClippingProperties where
+        sizeOf ~_
+          = #{size VkPhysicalDevicePointClippingProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevicePointClippingProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDevicePointClippingProperties
+         where
+        unsafeAddr (VkPhysicalDevicePointClippingProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDevicePointClippingProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDevicePointClippingProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDevicePointClippingProperties
+         where
+        type StructFields VkPhysicalDevicePointClippingProperties =
+             '["sType", "pNext", "pointClippingBehavior"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDevicePointClippingProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevicePointClippingProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevicePointClippingProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevicePointClippingProperties where
+        type FieldType "sType" VkPhysicalDevicePointClippingProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDevicePointClippingProperties =
+             #{offset VkPhysicalDevicePointClippingProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDevicePointClippingProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevicePointClippingProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevicePointClippingProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevicePointClippingProperties where
+        type FieldType "pNext" VkPhysicalDevicePointClippingProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDevicePointClippingProperties =
+             #{offset VkPhysicalDevicePointClippingProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDevicePointClippingProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevicePointClippingProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevicePointClippingProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        type FieldType "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = VkPointClippingBehavior
+        type FieldOptional "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             =
+             #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+        type FieldIsArray "pointClippingBehavior"
+               VkPhysicalDevicePointClippingProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pointClippingBehavior"
+           VkPhysicalDevicePointClippingProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
+
+instance Show VkPhysicalDevicePointClippingProperties where
+        showsPrec d x
+          = showString "VkPhysicalDevicePointClippingProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pointClippingBehavior = " .
+                            showsPrec d (getField @"pointClippingBehavior" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDevicePointClippingProperties`
+type VkPhysicalDevicePointClippingPropertiesKHR =
+     VkPhysicalDevicePointClippingProperties
+
+-- | > typedef struct VkPhysicalDeviceProperties {
+--   >     uint32_t       apiVersion;
+--   >     uint32_t       driverVersion;
+--   >     uint32_t       vendorID;
+--   >     uint32_t       deviceID;
+--   >     VkPhysicalDeviceType deviceType;
+--   >     char           deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
+--   >     uint8_t        pipelineCacheUUID[VK_UUID_SIZE];
+--   >     VkPhysicalDeviceLimits limits;
+--   >     VkPhysicalDeviceSparseProperties sparseProperties;
+--   > } VkPhysicalDeviceProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties VkPhysicalDeviceProperties registry at www.khronos.org>
+data VkPhysicalDeviceProperties = VkPhysicalDeviceProperties## Addr##
+                                                              ByteArray##
+
+instance Eq VkPhysicalDeviceProperties where
+        (VkPhysicalDeviceProperties## a _) ==
+          x@(VkPhysicalDeviceProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProperties where
+        (VkPhysicalDeviceProperties## a _) `compare`
+          x@(VkPhysicalDeviceProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceProperties where
+        unsafeAddr (VkPhysicalDeviceProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceProperties where
+        type StructFields VkPhysicalDeviceProperties =
+             '["apiVersion", "driverVersion", "vendorID", "deviceID", -- ' closing tick for hsc2hs
+               "deviceType", "deviceName", "pipelineCacheUUID", "limits",
+               "sparseProperties"]
+        type CUnionType VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "apiVersion" VkPhysicalDeviceProperties where
+        type FieldType "apiVersion" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "apiVersion" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, apiVersion}
+        type FieldIsArray "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "apiVersion" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, apiVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "apiVersion" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "driverVersion" VkPhysicalDeviceProperties where
+        type FieldType "driverVersion" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "driverVersion" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "driverVersion" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, driverVersion}
+        type FieldIsArray "driverVersion" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "driverVersion" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, driverVersion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "driverVersion" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
+
+instance {-# OVERLAPPING #-}
+         HasField "vendorID" VkPhysicalDeviceProperties where
+        type FieldType "vendorID" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vendorID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, vendorID}
+        type FieldIsArray "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vendorID" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, vendorID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vendorID" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceID" VkPhysicalDeviceProperties where
+        type FieldType "deviceID" VkPhysicalDeviceProperties = Word32
+        type FieldOptional "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceID}
+        type FieldIsArray "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceID" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceID" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceType" VkPhysicalDeviceProperties where
+        type FieldType "deviceType" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceType
+        type FieldOptional "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceType" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceType}
+        type FieldIsArray "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "deviceType" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "deviceType" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
+
+instance {-# OVERLAPPING #-}
+         HasField "deviceName" VkPhysicalDeviceProperties where
+        type FieldType "deviceName" VkPhysicalDeviceProperties = CChar
+        type FieldOptional "deviceName" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "deviceName" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, deviceName}
+        type FieldIsArray "deviceName" VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, deviceName}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>
+         CanReadFieldArray "deviceName" idx VkPhysicalDeviceProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}
+        type FieldArrayLength "deviceName" VkPhysicalDeviceProperties =
+             VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceProperties, deviceName} +
+                      sizeOf (undefined :: CChar) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceProperties, deviceName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>
+         CanWriteFieldArray "deviceName" idx VkPhysicalDeviceProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceProperties, deviceName} +
+                 sizeOf (undefined :: CChar) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineCacheUUID" VkPhysicalDeviceProperties where
+        type FieldType "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             Word8
+        type FieldOptional "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+        type FieldIsArray "pipelineCacheUUID" VkPhysicalDeviceProperties =
+             'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "pipelineCacheUUID" idx
+            VkPhysicalDeviceProperties) =>
+         CanReadFieldArray "pipelineCacheUUID" idx
+           VkPhysicalDeviceProperties
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties
+                       #-}
+        type FieldArrayLength "pipelineCacheUUID"
+               VkPhysicalDeviceProperties
+             = VK_UUID_SIZE
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = VK_UUID_SIZE
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                      +
+                      sizeOf (undefined :: Word8) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                 +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "pipelineCacheUUID" idx
+            VkPhysicalDeviceProperties) =>
+         CanWriteFieldArray "pipelineCacheUUID" idx
+           VkPhysicalDeviceProperties
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
+                 +
+                 sizeOf (undefined :: Word8) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "limits" VkPhysicalDeviceProperties where
+        type FieldType "limits" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceLimits
+        type FieldOptional "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "limits" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, limits}
+        type FieldIsArray "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "limits" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, limits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "limits" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, limits}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseProperties" VkPhysicalDeviceProperties where
+        type FieldType "sparseProperties" VkPhysicalDeviceProperties =
+             VkPhysicalDeviceSparseProperties
+        type FieldOptional "sparseProperties" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseProperties" VkPhysicalDeviceProperties =
+             #{offset VkPhysicalDeviceProperties, sparseProperties}
+        type FieldIsArray "sparseProperties" VkPhysicalDeviceProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseProperties" VkPhysicalDeviceProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, sparseProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseProperties" VkPhysicalDeviceProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
+
+instance Show VkPhysicalDeviceProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProperties {" .
+              showString "apiVersion = " .
+                showsPrec d (getField @"apiVersion" x) .
+                  showString ", " .
+                    showString "driverVersion = " .
+                      showsPrec d (getField @"driverVersion" x) .
+                        showString ", " .
+                          showString "vendorID = " .
+                            showsPrec d (getField @"vendorID" x) .
+                              showString ", " .
+                                showString "deviceID = " .
+                                  showsPrec d (getField @"deviceID" x) .
+                                    showString ", " .
+                                      showString "deviceType = " .
+                                        showsPrec d (getField @"deviceType" x) .
+                                          showString ", " .
+                                            (showString "deviceName = [" .
+                                               showsPrec d
+                                                 (let s = sizeOf
+                                                            (undefined ::
+                                                               FieldType "deviceName"
+                                                                 VkPhysicalDeviceProperties)
+                                                      o = fieldOffset @"deviceName"
+                                                            @VkPhysicalDeviceProperties
+                                                      f i
+                                                        = peekByteOff (unsafePtr x) i ::
+                                                            IO
+                                                              (FieldType "deviceName"
+                                                                 VkPhysicalDeviceProperties)
+                                                    in
+                                                    unsafeDupablePerformIO . mapM f $
+                                                      map (\ i -> o + i * s)
+                                                        [0 .. VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - 1])
+                                                 . showChar ']')
+                                              .
+                                              showString ", " .
+                                                (showString "pipelineCacheUUID = [" .
+                                                   showsPrec d
+                                                     (let s = sizeOf
+                                                                (undefined ::
+                                                                   FieldType "pipelineCacheUUID"
+                                                                     VkPhysicalDeviceProperties)
+                                                          o = fieldOffset @"pipelineCacheUUID"
+                                                                @VkPhysicalDeviceProperties
+                                                          f i
+                                                            = peekByteOff (unsafePtr x) i ::
+                                                                IO
+                                                                  (FieldType "pipelineCacheUUID"
+                                                                     VkPhysicalDeviceProperties)
+                                                        in
+                                                        unsafeDupablePerformIO . mapM f $
+                                                          map (\ i -> o + i * s)
+                                                            [0 .. VK_UUID_SIZE - 1])
+                                                     . showChar ']')
+                                                  .
+                                                  showString ", " .
+                                                    showString "limits = " .
+                                                      showsPrec d (getField @"limits" x) .
+                                                        showString ", " .
+                                                          showString "sparseProperties = " .
+                                                            showsPrec d
+                                                              (getField @"sparseProperties" x)
+                                                              . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkPhysicalDeviceProperties       properties;
+--   > } VkPhysicalDeviceProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2 registry at www.khronos.org>
+data VkPhysicalDeviceProperties2 = VkPhysicalDeviceProperties2## Addr##
+                                                                ByteArray##
+
+instance Eq VkPhysicalDeviceProperties2 where
+        (VkPhysicalDeviceProperties2## a _) ==
+          x@(VkPhysicalDeviceProperties2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProperties2 where
+        (VkPhysicalDeviceProperties2## a _) `compare`
+          x@(VkPhysicalDeviceProperties2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProperties2 where
+        sizeOf ~_ = #{size VkPhysicalDeviceProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceProperties2 where
+        unsafeAddr (VkPhysicalDeviceProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceProperties2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceProperties2 where
+        type StructFields VkPhysicalDeviceProperties2 =
+             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProperties2 where
+        type FieldType "sType" VkPhysicalDeviceProperties2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProperties2 where
+        type FieldType "pNext" VkPhysicalDeviceProperties2 = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "properties" VkPhysicalDeviceProperties2 where
+        type FieldType "properties" VkPhysicalDeviceProperties2 =
+             VkPhysicalDeviceProperties
+        type FieldOptional "properties" VkPhysicalDeviceProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "properties" VkPhysicalDeviceProperties2 =
+             #{offset VkPhysicalDeviceProperties2, properties}
+        type FieldIsArray "properties" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "properties" VkPhysicalDeviceProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, properties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "properties" VkPhysicalDeviceProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, properties}
+
+instance Show VkPhysicalDeviceProperties2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "properties = " .
+                            showsPrec d (getField @"properties" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceProperties2`
+type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
+
+-- | > typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
+--   >     VkStructureType sType;
+--   >     void*                               pNext;
+--   >     VkBool32                            protectedMemory;
+--   > } VkPhysicalDeviceProtectedMemoryFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryFeatures VkPhysicalDeviceProtectedMemoryFeatures registry at www.khronos.org>
+data VkPhysicalDeviceProtectedMemoryFeatures = VkPhysicalDeviceProtectedMemoryFeatures## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceProtectedMemoryFeatures where
+        (VkPhysicalDeviceProtectedMemoryFeatures## a _) ==
+          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProtectedMemoryFeatures where
+        (VkPhysicalDeviceProtectedMemoryFeatures## a _) `compare`
+          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProtectedMemoryFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceProtectedMemoryFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceProtectedMemoryFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        unsafeAddr (VkPhysicalDeviceProtectedMemoryFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceProtectedMemoryFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceProtectedMemoryFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        type StructFields VkPhysicalDeviceProtectedMemoryFeatures =
+             '["sType", "pNext", "protectedMemory"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProtectedMemoryFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        type FieldType "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "protectedMemory" VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        type FieldType "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = VkBool32
+        type FieldOptional "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+        type FieldIsArray "protectedMemory"
+               VkPhysicalDeviceProtectedMemoryFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "protectedMemory"
+           VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "protectedMemory"
+           VkPhysicalDeviceProtectedMemoryFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
+
+instance Show VkPhysicalDeviceProtectedMemoryFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProtectedMemoryFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "protectedMemory = " .
+                            showsPrec d (getField @"protectedMemory" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceProtectedMemoryProperties {
+--   >     VkStructureType sType;
+--   >     void*                               pNext;
+--   >     VkBool32                            protectedNoFault;
+--   > } VkPhysicalDeviceProtectedMemoryProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceProtectedMemoryProperties VkPhysicalDeviceProtectedMemoryProperties registry at www.khronos.org>
+data VkPhysicalDeviceProtectedMemoryProperties = VkPhysicalDeviceProtectedMemoryProperties## Addr##
+                                                                                            ByteArray##
+
+instance Eq VkPhysicalDeviceProtectedMemoryProperties where
+        (VkPhysicalDeviceProtectedMemoryProperties## a _) ==
+          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceProtectedMemoryProperties where
+        (VkPhysicalDeviceProtectedMemoryProperties## a _) `compare`
+          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceProtectedMemoryProperties where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceProtectedMemoryProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceProtectedMemoryProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        unsafeAddr (VkPhysicalDeviceProtectedMemoryProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceProtectedMemoryProperties## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceProtectedMemoryProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceProtectedMemoryProperties
+         where
+        type StructFields VkPhysicalDeviceProtectedMemoryProperties =
+             '["sType", "pNext", "protectedNoFault"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceProtectedMemoryProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceProtectedMemoryProperties =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceProtectedMemoryProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceProtectedMemoryProperties where
+        type FieldType "sType" VkPhysicalDeviceProtectedMemoryProperties =
+             VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceProtectedMemoryProperties where
+        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryProperties =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        type FieldType "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = VkBool32
+        type FieldOptional "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             =
+             #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+        type FieldIsArray "protectedNoFault"
+               VkPhysicalDeviceProtectedMemoryProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "protectedNoFault"
+           VkPhysicalDeviceProtectedMemoryProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
+
+instance Show VkPhysicalDeviceProtectedMemoryProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceProtectedMemoryProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "protectedNoFault = " .
+                            showsPrec d (getField @"protectedNoFault" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         maxPushDescriptors;
+--   > } VkPhysicalDevicePushDescriptorPropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDevicePushDescriptorPropertiesKHR VkPhysicalDevicePushDescriptorPropertiesKHR registry at www.khronos.org>
+data VkPhysicalDevicePushDescriptorPropertiesKHR = VkPhysicalDevicePushDescriptorPropertiesKHR## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkPhysicalDevicePushDescriptorPropertiesKHR where
+        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) ==
+          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDevicePushDescriptorPropertiesKHR where
+        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) `compare`
+          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDevicePushDescriptorPropertiesKHR where
+        sizeOf ~_
+          = #{size VkPhysicalDevicePushDescriptorPropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDevicePushDescriptorPropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        unsafeAddr (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDevicePushDescriptorPropertiesKHR## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDevicePushDescriptorPropertiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        type StructFields VkPhysicalDevicePushDescriptorPropertiesKHR =
+             '["sType", "pNext", "maxPushDescriptors"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDevicePushDescriptorPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDevicePushDescriptorPropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDevicePushDescriptorPropertiesKHR =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR where
+        type FieldType "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR where
+        type FieldType "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        type FieldType "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = Word32
+        type FieldOptional "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             =
+             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+        type FieldIsArray "maxPushDescriptors"
+               VkPhysicalDevicePushDescriptorPropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxPushDescriptors"
+           VkPhysicalDevicePushDescriptorPropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
+
+instance Show VkPhysicalDevicePushDescriptorPropertiesKHR where
+        showsPrec d x
+          = showString "VkPhysicalDevicePushDescriptorPropertiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxPushDescriptors = " .
+                            showsPrec d (getField @"maxPushDescriptors" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkSampleCountFlags               sampleLocationSampleCounts;
+--   >     VkExtent2D                       maxSampleLocationGridSize;
+--   >     float                            sampleLocationCoordinateRange[2];
+--   >     uint32_t                         sampleLocationSubPixelBits;
+--   >     VkBool32                         variableSampleLocations;
+--   > } VkPhysicalDeviceSampleLocationsPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSampleLocationsPropertiesEXT VkPhysicalDeviceSampleLocationsPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceSampleLocationsPropertiesEXT = VkPhysicalDeviceSampleLocationsPropertiesEXT## Addr##
+                                                                                                  ByteArray##
+
+instance Eq VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) `compare`
+          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSampleLocationsPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSampleLocationsPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceSampleLocationsPropertiesEXT## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSampleLocationsPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             '["sType", "pNext", "sampleLocationSampleCounts", -- ' closing tick for hsc2hs
+               "maxSampleLocationGridSize", "sampleLocationCoordinateRange",
+               "sampleLocationSubPixelBits", "variableSampleLocations"]
+        type CUnionType VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSampleLocationsPropertiesEXT =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        type FieldType "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        type FieldType "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkSampleCountFlags
+        type FieldOptional "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+        type FieldIsArray "sampleLocationSampleCounts"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationSampleCounts"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkExtent2D
+        type FieldOptional "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+        type FieldIsArray "maxSampleLocationGridSize"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSampleLocationGridSize"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationCoordinateRange"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = #{type float}
+        type FieldOptional "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+        type FieldIsArray "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "sampleLocationCoordinateRange" idx
+            VkPhysicalDeviceSampleLocationsPropertiesEXT) =>
+         CanReadFieldArray "sampleLocationCoordinateRange" idx
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "sampleLocationCoordinateRange" 0
+                         VkPhysicalDeviceSampleLocationsPropertiesEXT
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "sampleLocationCoordinateRange" 1
+                         VkPhysicalDeviceSampleLocationsPropertiesEXT
+                       #-}
+        type FieldArrayLength "sampleLocationCoordinateRange"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 2
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 2
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                      +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "sampleLocationCoordinateRange" idx
+            VkPhysicalDeviceSampleLocationsPropertiesEXT) =>
+         CanWriteFieldArray "sampleLocationCoordinateRange" idx
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "sampleLocationCoordinateRange" 0
+                         VkPhysicalDeviceSampleLocationsPropertiesEXT
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "sampleLocationCoordinateRange" 1
+                         VkPhysicalDeviceSampleLocationsPropertiesEXT
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = Word32
+        type FieldOptional "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+        type FieldIsArray "sampleLocationSubPixelBits"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationSubPixelBits"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        type FieldType "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = VkBool32
+        type FieldOptional "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+        type FieldIsArray "variableSampleLocations"
+               VkPhysicalDeviceSampleLocationsPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variableSampleLocations"
+           VkPhysicalDeviceSampleLocationsPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
+
+instance Show VkPhysicalDeviceSampleLocationsPropertiesEXT where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSampleLocationsPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "sampleLocationSampleCounts = " .
+                            showsPrec d (getField @"sampleLocationSampleCounts" x) .
+                              showString ", " .
+                                showString "maxSampleLocationGridSize = " .
+                                  showsPrec d (getField @"maxSampleLocationGridSize" x) .
+                                    showString ", " .
+                                      (showString "sampleLocationCoordinateRange = [" .
+                                         showsPrec d
+                                           (let s = sizeOf
+                                                      (undefined ::
+                                                         FieldType "sampleLocationCoordinateRange"
+                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
+                                                o = fieldOffset @"sampleLocationCoordinateRange"
+                                                      @VkPhysicalDeviceSampleLocationsPropertiesEXT
+                                                f i
+                                                  = peekByteOff (unsafePtr x) i ::
+                                                      IO
+                                                        (FieldType "sampleLocationCoordinateRange"
+                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
+                                              in
+                                              unsafeDupablePerformIO . mapM f $
+                                                map (\ i -> o + i * s) [0 .. 2 - 1])
+                                           . showChar ']')
+                                        .
+                                        showString ", " .
+                                          showString "sampleLocationSubPixelBits = " .
+                                            showsPrec d (getField @"sampleLocationSubPixelBits" x) .
+                                              showString ", " .
+                                                showString "variableSampleLocations = " .
+                                                  showsPrec d
+                                                    (getField @"variableSampleLocations" x)
+                                                    . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     VkBool32               filterMinmaxSingleComponentFormats;
+--   >     VkBool32               filterMinmaxImageComponentMapping;
+--   > } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## Addr##
+                                                                                                          ByteArray##
+
+instance Eq VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
+        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
+        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) `compare`
+          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        unsafeAddr (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type StructFields VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             '["sType", "pNext", "filterMinmaxSingleComponentFormats", -- ' closing tick for hsc2hs
+               "filterMinmaxImageComponentMapping"]
+        type CUnionType VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkBool32
+        type FieldOptional "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+        type FieldIsArray "filterMinmaxSingleComponentFormats"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "filterMinmaxSingleComponentFormats"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
+
+instance {-# OVERLAPPING #-}
+         HasField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        type FieldType "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = VkBool32
+        type FieldOptional "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+        type FieldIsArray "filterMinmaxImageComponentMapping"
+               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "filterMinmaxImageComponentMapping"
+           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
+
+instance Show VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
+         where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "filterMinmaxSingleComponentFormats = " .
+                            showsPrec d (getField @"filterMinmaxSingleComponentFormats" x) .
+                              showString ", " .
+                                showString "filterMinmaxImageComponentMapping = " .
+                                  showsPrec d (getField @"filterMinmaxImageComponentMapping" x) .
+                                    showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
+--   >     VkStructureType sType;
+--   >     void*      pNext;
+--   >     VkBool32                         samplerYcbcrConversion;
+--   > } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeatures registry at www.khronos.org>
+data VkPhysicalDeviceSamplerYcbcrConversionFeatures = VkPhysicalDeviceSamplerYcbcrConversionFeatures## Addr##
+                                                                                                      ByteArray##
+
+instance Eq VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) ==
+          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) `compare`
+          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSamplerYcbcrConversionFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSamplerYcbcrConversionFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        unsafeAddr (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceSamplerYcbcrConversionFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSamplerYcbcrConversionFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type StructFields VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             '["sType", "pNext", "samplerYcbcrConversion"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSamplerYcbcrConversionFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        type FieldType "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = VkBool32
+        type FieldOptional "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             =
+             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+        type FieldIsArray "samplerYcbcrConversion"
+               VkPhysicalDeviceSamplerYcbcrConversionFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samplerYcbcrConversion"
+           VkPhysicalDeviceSamplerYcbcrConversionFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
+
+instance Show VkPhysicalDeviceSamplerYcbcrConversionFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSamplerYcbcrConversionFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "samplerYcbcrConversion = " .
+                            showsPrec d (getField @"samplerYcbcrConversion" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceSamplerYcbcrConversionFeatures`
+type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
+     VkPhysicalDeviceSamplerYcbcrConversionFeatures
+
+-- | > typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
+--   >     VkStructureType sType;
+--   >     void*    pNext;
+--   >     uint32_t shaderEngineCount;
+--   >     uint32_t shaderArraysPerEngineCount;
+--   >     uint32_t computeUnitsPerShaderArray;
+--   >     uint32_t simdPerComputeUnit;
+--   >     uint32_t wavefrontsPerSimd;
+--   >     uint32_t wavefrontSize;
+--   >     uint32_t sgprsPerSimd;
+--   >     uint32_t minSgprAllocation;
+--   >     uint32_t maxSgprAllocation;
+--   >     uint32_t sgprAllocationGranularity;
+--   >     uint32_t vgprsPerSimd;
+--   >     uint32_t minVgprAllocation;
+--   >     uint32_t maxVgprAllocation;
+--   >     uint32_t vgprAllocationGranularity;
+--   > } VkPhysicalDeviceShaderCorePropertiesAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderCorePropertiesAMD VkPhysicalDeviceShaderCorePropertiesAMD registry at www.khronos.org>
+data VkPhysicalDeviceShaderCorePropertiesAMD = VkPhysicalDeviceShaderCorePropertiesAMD## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceShaderCorePropertiesAMD where
+        (VkPhysicalDeviceShaderCorePropertiesAMD## a _) ==
+          x@(VkPhysicalDeviceShaderCorePropertiesAMD## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceShaderCorePropertiesAMD where
+        (VkPhysicalDeviceShaderCorePropertiesAMD## a _) `compare`
+          x@(VkPhysicalDeviceShaderCorePropertiesAMD## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceShaderCorePropertiesAMD where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceShaderCorePropertiesAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceShaderCorePropertiesAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        unsafeAddr (VkPhysicalDeviceShaderCorePropertiesAMD## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceShaderCorePropertiesAMD## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceShaderCorePropertiesAMD##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type StructFields VkPhysicalDeviceShaderCorePropertiesAMD =
+             '["sType", "pNext", "shaderEngineCount", -- ' closing tick for hsc2hs
+               "shaderArraysPerEngineCount", "computeUnitsPerShaderArray",
+               "simdPerComputeUnit", "wavefrontsPerSimd", "wavefrontSize",
+               "sgprsPerSimd", "minSgprAllocation", "maxSgprAllocation",
+               "sgprAllocationGranularity", "vgprsPerSimd", "minVgprAllocation",
+               "maxVgprAllocation", "vgprAllocationGranularity"]
+        type CUnionType VkPhysicalDeviceShaderCorePropertiesAMD = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceShaderCorePropertiesAMD = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceShaderCorePropertiesAMD =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        type FieldType "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceShaderCorePropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        type FieldType "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceShaderCorePropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceShaderCorePropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+        type FieldIsArray "shaderEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderEngineCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+        type FieldIsArray "shaderArraysPerEngineCount"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderArraysPerEngineCount"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, shaderArraysPerEngineCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+        type FieldIsArray "computeUnitsPerShaderArray"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "computeUnitsPerShaderArray"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, computeUnitsPerShaderArray}
+
+instance {-# OVERLAPPING #-}
+         HasField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+        type FieldIsArray "simdPerComputeUnit"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "simdPerComputeUnit"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, simdPerComputeUnit}
+
+instance {-# OVERLAPPING #-}
+         HasField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+        type FieldIsArray "wavefrontsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "wavefrontsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "wavefrontSize" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+        type FieldIsArray "wavefrontSize"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "wavefrontSize"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "wavefrontSize"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, wavefrontSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+        type FieldIsArray "sgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sgprsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+        type FieldIsArray "minSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+        type FieldIsArray "maxSgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxSgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxSgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+        type FieldIsArray "sgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, sgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+        type FieldIsArray "vgprsPerSimd"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vgprsPerSimd" VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vgprsPerSimd"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprsPerSimd}
+
+instance {-# OVERLAPPING #-}
+         HasField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+        type FieldIsArray "minVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, minVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+        type FieldIsArray "maxVgprAllocation"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVgprAllocation"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, maxVgprAllocation}
+
+instance {-# OVERLAPPING #-}
+         HasField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        type FieldType "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = Word32
+        type FieldOptional "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             =
+             #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+        type FieldIsArray "vgprAllocationGranularity"
+               VkPhysicalDeviceShaderCorePropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vgprAllocationGranularity"
+           VkPhysicalDeviceShaderCorePropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderCorePropertiesAMD, vgprAllocationGranularity}
+
+instance Show VkPhysicalDeviceShaderCorePropertiesAMD where
+        showsPrec d x
+          = showString "VkPhysicalDeviceShaderCorePropertiesAMD {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderEngineCount = " .
+                            showsPrec d (getField @"shaderEngineCount" x) .
+                              showString ", " .
+                                showString "shaderArraysPerEngineCount = " .
+                                  showsPrec d (getField @"shaderArraysPerEngineCount" x) .
+                                    showString ", " .
+                                      showString "computeUnitsPerShaderArray = " .
+                                        showsPrec d (getField @"computeUnitsPerShaderArray" x) .
+                                          showString ", " .
+                                            showString "simdPerComputeUnit = " .
+                                              showsPrec d (getField @"simdPerComputeUnit" x) .
+                                                showString ", " .
+                                                  showString "wavefrontsPerSimd = " .
+                                                    showsPrec d (getField @"wavefrontsPerSimd" x) .
+                                                      showString ", " .
+                                                        showString "wavefrontSize = " .
+                                                          showsPrec d (getField @"wavefrontSize" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "sgprsPerSimd = " .
+                                                                showsPrec d
+                                                                  (getField @"sgprsPerSimd" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "minSgprAllocation = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"minSgprAllocation"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "maxSgprAllocation = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"maxSgprAllocation"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "sgprAllocationGranularity = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"sgprAllocationGranularity"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "vgprsPerSimd = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"vgprsPerSimd"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "minVgprAllocation = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"minVgprAllocation"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "maxVgprAllocation = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"maxVgprAllocation"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "vgprAllocationGranularity = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"vgprAllocationGranularity"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showChar
+                                                                                                              '}'
+
+-- | > typedef struct VkPhysicalDeviceShaderDrawParameterFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         shaderDrawParameters;
+--   > } VkPhysicalDeviceShaderDrawParameterFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceShaderDrawParameterFeatures VkPhysicalDeviceShaderDrawParameterFeatures registry at www.khronos.org>
+data VkPhysicalDeviceShaderDrawParameterFeatures = VkPhysicalDeviceShaderDrawParameterFeatures## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkPhysicalDeviceShaderDrawParameterFeatures where
+        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) ==
+          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceShaderDrawParameterFeatures where
+        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) `compare`
+          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceShaderDrawParameterFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceShaderDrawParameterFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceShaderDrawParameterFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        unsafeAddr (VkPhysicalDeviceShaderDrawParameterFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceShaderDrawParameterFeatures## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceShaderDrawParameterFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        type StructFields VkPhysicalDeviceShaderDrawParameterFeatures =
+             '["sType", "pNext", "shaderDrawParameters"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceShaderDrawParameterFeatures =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceShaderDrawParameterFeatures =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceShaderDrawParameterFeatures =
+             '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceShaderDrawParameterFeatures where
+        type FieldType "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures where
+        type FieldType "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        type FieldType "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = VkBool32
+        type FieldOptional "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             =
+             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+        type FieldIsArray "shaderDrawParameters"
+               VkPhysicalDeviceShaderDrawParameterFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderDrawParameters"
+           VkPhysicalDeviceShaderDrawParameterFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
+
+instance Show VkPhysicalDeviceShaderDrawParameterFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceShaderDrawParameterFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "shaderDrawParameters = " .
+                            showsPrec d (getField @"shaderDrawParameters" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkFormat                         format;
+--   >     VkImageType                      type;
+--   >     VkSampleCountFlagBits            samples;
+--   >     VkImageUsageFlags                usage;
+--   >     VkImageTiling                    tiling;
+--   > } VkPhysicalDeviceSparseImageFormatInfo2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2 registry at www.khronos.org>
+data VkPhysicalDeviceSparseImageFormatInfo2 = VkPhysicalDeviceSparseImageFormatInfo2## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkPhysicalDeviceSparseImageFormatInfo2 where
+        (VkPhysicalDeviceSparseImageFormatInfo2## a _) ==
+          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSparseImageFormatInfo2 where
+        (VkPhysicalDeviceSparseImageFormatInfo2## a _) `compare`
+          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceSparseImageFormatInfo2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSparseImageFormatInfo2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceSparseImageFormatInfo2
+         where
+        unsafeAddr (VkPhysicalDeviceSparseImageFormatInfo2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceSparseImageFormatInfo2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSparseImageFormatInfo2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceSparseImageFormatInfo2 where
+        type StructFields VkPhysicalDeviceSparseImageFormatInfo2 =
+             '["sType", "pNext", "format", "type", "samples", "usage", "tiling"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSparseImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkFormat
+        type FieldOptional "format" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+        type FieldIsArray "format" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageType
+        type FieldOptional "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+        type FieldIsArray "type" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, type})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
+
+instance {-# OVERLAPPING #-}
+         HasField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkSampleCountFlagBits
+        type FieldOptional "samples" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+        type FieldIsArray "samples" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samples" VkPhysicalDeviceSparseImageFormatInfo2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageUsageFlags
+        type FieldOptional "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+        type FieldIsArray "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
+
+instance {-# OVERLAPPING #-}
+         HasField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        type FieldType "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             VkImageTiling
+        type FieldOptional "tiling" VkPhysicalDeviceSparseImageFormatInfo2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+        type FieldIsArray "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
+
+instance Show VkPhysicalDeviceSparseImageFormatInfo2 where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSparseImageFormatInfo2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "type = " .
+                                  showsPrec d (getField @"type" x) .
+                                    showString ", " .
+                                      showString "samples = " .
+                                        showsPrec d (getField @"samples" x) .
+                                          showString ", " .
+                                            showString "usage = " .
+                                              showsPrec d (getField @"usage" x) .
+                                                showString ", " .
+                                                  showString "tiling = " .
+                                                    showsPrec d (getField @"tiling" x) .
+                                                      showChar '}'
+
+-- | Alias for `VkPhysicalDeviceSparseImageFormatInfo2`
+type VkPhysicalDeviceSparseImageFormatInfo2KHR =
+     VkPhysicalDeviceSparseImageFormatInfo2
+
+-- | > typedef struct VkPhysicalDeviceSparseProperties {
+--   >     VkBool32               residencyStandard2DBlockShape;
+--   >     VkBool32               residencyStandard2DMultisampleBlockShape;
+--   >     VkBool32               residencyStandard3DBlockShape;
+--   >     VkBool32               residencyAlignedMipSize;
+--   >     VkBool32               residencyNonResidentStrict;
+--   > } VkPhysicalDeviceSparseProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSparseProperties VkPhysicalDeviceSparseProperties registry at www.khronos.org>
+data VkPhysicalDeviceSparseProperties = VkPhysicalDeviceSparseProperties## Addr##
+                                                                          ByteArray##
+
+instance Eq VkPhysicalDeviceSparseProperties where
+        (VkPhysicalDeviceSparseProperties## a _) ==
+          x@(VkPhysicalDeviceSparseProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSparseProperties where
+        (VkPhysicalDeviceSparseProperties## a _) `compare`
+          x@(VkPhysicalDeviceSparseProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSparseProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceSparseProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSparseProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceSparseProperties where
+        unsafeAddr (VkPhysicalDeviceSparseProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceSparseProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSparseProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceSparseProperties where
+        type StructFields VkPhysicalDeviceSparseProperties =
+             '["residencyStandard2DBlockShape", -- ' closing tick for hsc2hs
+               "residencyStandard2DMultisampleBlockShape",
+               "residencyStandard3DBlockShape", "residencyAlignedMipSize",
+               "residencyNonResidentStrict"]
+        type CUnionType VkPhysicalDeviceSparseProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSparseProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSparseProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+        type FieldIsArray "residencyStandard2DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard2DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+        type FieldIsArray "residencyStandard2DMultisampleBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard2DMultisampleBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+        type FieldIsArray "residencyStandard3DBlockShape"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyStandard3DBlockShape"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyAlignedMipSize" VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+        type FieldIsArray "residencyAlignedMipSize"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyAlignedMipSize"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyAlignedMipSize"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        type FieldType "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = VkBool32
+        type FieldOptional "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             =
+             #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+        type FieldIsArray "residencyNonResidentStrict"
+               VkPhysicalDeviceSparseProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "residencyNonResidentStrict"
+           VkPhysicalDeviceSparseProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
+
+instance Show VkPhysicalDeviceSparseProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSparseProperties {" .
+              showString "residencyStandard2DBlockShape = " .
+                showsPrec d (getField @"residencyStandard2DBlockShape" x) .
+                  showString ", " .
+                    showString "residencyStandard2DMultisampleBlockShape = " .
+                      showsPrec d
+                        (getField @"residencyStandard2DMultisampleBlockShape" x)
+                        .
+                        showString ", " .
+                          showString "residencyStandard3DBlockShape = " .
+                            showsPrec d (getField @"residencyStandard3DBlockShape" x) .
+                              showString ", " .
+                                showString "residencyAlignedMipSize = " .
+                                  showsPrec d (getField @"residencyAlignedMipSize" x) .
+                                    showString ", " .
+                                      showString "residencyNonResidentStrict = " .
+                                        showsPrec d (getField @"residencyNonResidentStrict" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSubgroupProperties {
+--   >     VkStructureType sType;
+--   >     void*                   pNext;
+--   >     uint32_t                      subgroupSize;
+--   >     VkShaderStageFlags            supportedStages;
+--   >     VkSubgroupFeatureFlags        supportedOperations;
+--   >     VkBool32 quadOperationsInAllStages;
+--   > } VkPhysicalDeviceSubgroupProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSubgroupProperties VkPhysicalDeviceSubgroupProperties registry at www.khronos.org>
+data VkPhysicalDeviceSubgroupProperties = VkPhysicalDeviceSubgroupProperties## Addr##
+                                                                              ByteArray##
+
+instance Eq VkPhysicalDeviceSubgroupProperties where
+        (VkPhysicalDeviceSubgroupProperties## a _) ==
+          x@(VkPhysicalDeviceSubgroupProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSubgroupProperties where
+        (VkPhysicalDeviceSubgroupProperties## a _) `compare`
+          x@(VkPhysicalDeviceSubgroupProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSubgroupProperties where
+        sizeOf ~_ = #{size VkPhysicalDeviceSubgroupProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSubgroupProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceSubgroupProperties where
+        unsafeAddr (VkPhysicalDeviceSubgroupProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceSubgroupProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSubgroupProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceSubgroupProperties where
+        type StructFields VkPhysicalDeviceSubgroupProperties =
+             '["sType", "pNext", "subgroupSize", "supportedStages", -- ' closing tick for hsc2hs
+               "supportedOperations", "quadOperationsInAllStages"]
+        type CUnionType VkPhysicalDeviceSubgroupProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSubgroupProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSubgroupProperties =
+             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "sType" VkPhysicalDeviceSubgroupProperties =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSubgroupProperties =
+             #{offset VkPhysicalDeviceSubgroupProperties, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSubgroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSubgroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "pNext" VkPhysicalDeviceSubgroupProperties =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSubgroupProperties =
+             #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSubgroupProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSubgroupProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSubgroupProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "subgroupSize" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "subgroupSize" VkPhysicalDeviceSubgroupProperties =
+             Word32
+        type FieldOptional "subgroupSize"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subgroupSize" VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+        type FieldIsArray "subgroupSize" VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subgroupSize" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subgroupSize" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedStages" VkPhysicalDeviceSubgroupProperties where
+        type FieldType "supportedStages" VkPhysicalDeviceSubgroupProperties
+             = VkShaderStageFlags
+        type FieldOptional "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+        type FieldIsArray "supportedStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedStages" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedStages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedStages" VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedOperations" VkPhysicalDeviceSubgroupProperties
+         where
+        type FieldType "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = VkSubgroupFeatureFlags
+        type FieldOptional "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+        type FieldIsArray "supportedOperations"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedOperations"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedOperations"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
+
+instance {-# OVERLAPPING #-}
+         HasField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        type FieldType "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = VkBool32
+        type FieldOptional "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             =
+             #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+        type FieldIsArray "quadOperationsInAllStages"
+               VkPhysicalDeviceSubgroupProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "quadOperationsInAllStages"
+           VkPhysicalDeviceSubgroupProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
+
+instance Show VkPhysicalDeviceSubgroupProperties where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSubgroupProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "subgroupSize = " .
+                            showsPrec d (getField @"subgroupSize" x) .
+                              showString ", " .
+                                showString "supportedStages = " .
+                                  showsPrec d (getField @"supportedStages" x) .
+                                    showString ", " .
+                                      showString "supportedOperations = " .
+                                        showsPrec d (getField @"supportedOperations" x) .
+                                          showString ", " .
+                                            showString "quadOperationsInAllStages = " .
+                                              showsPrec d (getField @"quadOperationsInAllStages" x)
+                                                . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkSurfaceKHR surface;
+--   > } VkPhysicalDeviceSurfaceInfo2KHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceSurfaceInfo2KHR VkPhysicalDeviceSurfaceInfo2KHR registry at www.khronos.org>
+data VkPhysicalDeviceSurfaceInfo2KHR = VkPhysicalDeviceSurfaceInfo2KHR## Addr##
+                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceSurfaceInfo2KHR where
+        (VkPhysicalDeviceSurfaceInfo2KHR## a _) ==
+          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceSurfaceInfo2KHR where
+        (VkPhysicalDeviceSurfaceInfo2KHR## a _) `compare`
+          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceSurfaceInfo2KHR where
+        sizeOf ~_ = #{size VkPhysicalDeviceSurfaceInfo2KHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceSurfaceInfo2KHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceSurfaceInfo2KHR where
+        unsafeAddr (VkPhysicalDeviceSurfaceInfo2KHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceSurfaceInfo2KHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceSurfaceInfo2KHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceSurfaceInfo2KHR where
+        type StructFields VkPhysicalDeviceSurfaceInfo2KHR =
+             '["sType", "pNext", "surface"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceSurfaceInfo2KHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "sType" VkPhysicalDeviceSurfaceInfo2KHR =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "pNext" VkPhysicalDeviceSurfaceInfo2KHR = Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        type FieldType "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             VkSurfaceKHR
+        type FieldOptional "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+        type FieldIsArray "surface" VkPhysicalDeviceSurfaceInfo2KHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
+
+instance Show VkPhysicalDeviceSurfaceInfo2KHR where
+        showsPrec d x
+          = showString "VkPhysicalDeviceSurfaceInfo2KHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "surface = " .
+                            showsPrec d (getField @"surface" x) . showChar '}'
+
+-- | > typedef struct VkPhysicalDeviceVariablePointerFeatures {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         variablePointersStorageBuffer;
+--   >     VkBool32                         variablePointers;
+--   > } VkPhysicalDeviceVariablePointerFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeatures registry at www.khronos.org>
+data VkPhysicalDeviceVariablePointerFeatures = VkPhysicalDeviceVariablePointerFeatures## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkPhysicalDeviceVariablePointerFeatures where
+        (VkPhysicalDeviceVariablePointerFeatures## a _) ==
+          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceVariablePointerFeatures where
+        (VkPhysicalDeviceVariablePointerFeatures## a _) `compare`
+          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceVariablePointerFeatures where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceVariablePointerFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceVariablePointerFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceVariablePointerFeatures
+         where
+        unsafeAddr (VkPhysicalDeviceVariablePointerFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceVariablePointerFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceVariablePointerFeatures##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceVariablePointerFeatures
+         where
+        type StructFields VkPhysicalDeviceVariablePointerFeatures =
+             '["sType", "pNext", "variablePointersStorageBuffer", -- ' closing tick for hsc2hs
+               "variablePointers"]
+        type CUnionType VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceVariablePointerFeatures =
+             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        type FieldType "sType" VkPhysicalDeviceVariablePointerFeatures =
+             VkStructureType
+        type FieldOptional "sType" VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPhysicalDeviceVariablePointerFeatures =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+        type FieldIsArray "sType" VkPhysicalDeviceVariablePointerFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPhysicalDeviceVariablePointerFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        type FieldType "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             Ptr Void
+        type FieldOptional "pNext" VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+        type FieldIsArray "pNext" VkPhysicalDeviceVariablePointerFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPhysicalDeviceVariablePointerFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        type FieldType "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = VkBool32
+        type FieldOptional "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+        type FieldIsArray "variablePointersStorageBuffer"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variablePointersStorageBuffer"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "variablePointers" VkPhysicalDeviceVariablePointerFeatures
+         where
+        type FieldType "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = VkBool32
+        type FieldOptional "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             =
+             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+        type FieldIsArray "variablePointers"
+               VkPhysicalDeviceVariablePointerFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variablePointers"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variablePointers"
+           VkPhysicalDeviceVariablePointerFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
+
+instance Show VkPhysicalDeviceVariablePointerFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceVariablePointerFeatures {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "variablePointersStorageBuffer = " .
+                            showsPrec d (getField @"variablePointersStorageBuffer" x) .
+                              showString ", " .
+                                showString "variablePointers = " .
+                                  showsPrec d (getField @"variablePointers" x) . showChar '}'
+
+-- | Alias for `VkPhysicalDeviceVariablePointerFeatures`
+type VkPhysicalDeviceVariablePointerFeaturesKHR =
+     VkPhysicalDeviceVariablePointerFeatures
+
+-- | > typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
+--   >     VkStructureType sType;
+--   >     void*                  pNext;
+--   >     uint32_t               maxVertexAttribDivisor;
+--   > } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT registry at www.khronos.org>
+data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## Addr##
+                                                                                                                ByteArray##
+
+instance Eq VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) ==
+          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _)
+          `compare`
+          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        sizeOf ~_
+          = #{size VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        unsafeAddr
+          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        type StructFields
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = '["sType", "pNext", "maxVertexAttribDivisor"] -- ' closing tick for hsc2hs
+        type CUnionType VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        type FieldType "sType"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
+        type FieldIsArray "sType"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        type FieldType "pNext"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxVertexAttribDivisor"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        type FieldType "maxVertexAttribDivisor"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = Word32
+        type FieldOptional "maxVertexAttribDivisor"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxVertexAttribDivisor"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             =
+             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
+        type FieldIsArray "maxVertexAttribDivisor"
+               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxVertexAttribDivisor"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxVertexAttribDivisor"
+           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
+
+instance Show VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "maxVertexAttribDivisor = " .
+                            showsPrec d (getField @"maxVertexAttribDivisor" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PhysicalDeviceFeatures.hsc
@@ -0,0 +1,2803 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+       (VkPhysicalDeviceFeatures(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes  (VkBool32)
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPhysicalDeviceFeatures {
+--   >     VkBool32               robustBufferAccess;
+--   >     VkBool32               fullDrawIndexUint32;
+--   >     VkBool32               imageCubeArray;
+--   >     VkBool32               independentBlend;
+--   >     VkBool32               geometryShader;
+--   >     VkBool32               tessellationShader;
+--   >     VkBool32               sampleRateShading;
+--   >     VkBool32               dualSrcBlend;
+--   >     VkBool32               logicOp;
+--   >     VkBool32               multiDrawIndirect;
+--   >     VkBool32               drawIndirectFirstInstance;
+--   >     VkBool32               depthClamp;
+--   >     VkBool32               depthBiasClamp;
+--   >     VkBool32               fillModeNonSolid;
+--   >     VkBool32               depthBounds;
+--   >     VkBool32               wideLines;
+--   >     VkBool32               largePoints;
+--   >     VkBool32               alphaToOne;
+--   >     VkBool32               multiViewport;
+--   >     VkBool32               samplerAnisotropy;
+--   >     VkBool32               textureCompressionETC2;
+--   >     VkBool32               textureCompressionASTC_LDR;
+--   >     VkBool32               textureCompressionBC;
+--   >     VkBool32               occlusionQueryPrecise;
+--   >     VkBool32               pipelineStatisticsQuery;
+--   >     VkBool32               vertexPipelineStoresAndAtomics;
+--   >     VkBool32               fragmentStoresAndAtomics;
+--   >     VkBool32               shaderTessellationAndGeometryPointSize;
+--   >     VkBool32               shaderImageGatherExtended;
+--   >     VkBool32               shaderStorageImageExtendedFormats;
+--   >     VkBool32               shaderStorageImageMultisample;
+--   >     VkBool32               shaderStorageImageReadWithoutFormat;
+--   >     VkBool32               shaderStorageImageWriteWithoutFormat;
+--   >     VkBool32               shaderUniformBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderSampledImageArrayDynamicIndexing;
+--   >     VkBool32               shaderStorageBufferArrayDynamicIndexing;
+--   >     VkBool32               shaderStorageImageArrayDynamicIndexing;
+--   >     VkBool32               shaderClipDistance;
+--   >     VkBool32               shaderCullDistance;
+--   >     VkBool32               shaderFloat64;
+--   >     VkBool32               shaderInt64;
+--   >     VkBool32               shaderInt16;
+--   >     VkBool32               shaderResourceResidency;
+--   >     VkBool32               shaderResourceMinLod;
+--   >     VkBool32               sparseBinding;
+--   >     VkBool32               sparseResidencyBuffer;
+--   >     VkBool32               sparseResidencyImage2D;
+--   >     VkBool32               sparseResidencyImage3D;
+--   >     VkBool32               sparseResidency2Samples;
+--   >     VkBool32               sparseResidency4Samples;
+--   >     VkBool32               sparseResidency8Samples;
+--   >     VkBool32               sparseResidency16Samples;
+--   >     VkBool32               sparseResidencyAliased;
+--   >     VkBool32               variableMultisampleRate;
+--   >     VkBool32               inheritedQueries;
+--   > } VkPhysicalDeviceFeatures;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPhysicalDeviceFeatures VkPhysicalDeviceFeatures registry at www.khronos.org>
+data VkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures## Addr##
+                                                          ByteArray##
+
+instance Eq VkPhysicalDeviceFeatures where
+        (VkPhysicalDeviceFeatures## a _) ==
+          x@(VkPhysicalDeviceFeatures## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPhysicalDeviceFeatures where
+        (VkPhysicalDeviceFeatures## a _) `compare`
+          x@(VkPhysicalDeviceFeatures## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPhysicalDeviceFeatures where
+        sizeOf ~_ = #{size VkPhysicalDeviceFeatures}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPhysicalDeviceFeatures}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPhysicalDeviceFeatures where
+        unsafeAddr (VkPhysicalDeviceFeatures## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPhysicalDeviceFeatures## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPhysicalDeviceFeatures## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPhysicalDeviceFeatures where
+        type StructFields VkPhysicalDeviceFeatures =
+             '["robustBufferAccess", "fullDrawIndexUint32", "imageCubeArray", -- ' closing tick for hsc2hs
+               "independentBlend", "geometryShader", "tessellationShader",
+               "sampleRateShading", "dualSrcBlend", "logicOp",
+               "multiDrawIndirect", "drawIndirectFirstInstance", "depthClamp",
+               "depthBiasClamp", "fillModeNonSolid", "depthBounds", "wideLines",
+               "largePoints", "alphaToOne", "multiViewport", "samplerAnisotropy",
+               "textureCompressionETC2", "textureCompressionASTC_LDR",
+               "textureCompressionBC", "occlusionQueryPrecise",
+               "pipelineStatisticsQuery", "vertexPipelineStoresAndAtomics",
+               "fragmentStoresAndAtomics",
+               "shaderTessellationAndGeometryPointSize",
+               "shaderImageGatherExtended", "shaderStorageImageExtendedFormats",
+               "shaderStorageImageMultisample",
+               "shaderStorageImageReadWithoutFormat",
+               "shaderStorageImageWriteWithoutFormat",
+               "shaderUniformBufferArrayDynamicIndexing",
+               "shaderSampledImageArrayDynamicIndexing",
+               "shaderStorageBufferArrayDynamicIndexing",
+               "shaderStorageImageArrayDynamicIndexing", "shaderClipDistance",
+               "shaderCullDistance", "shaderFloat64", "shaderInt64",
+               "shaderInt16", "shaderResourceResidency", "shaderResourceMinLod",
+               "sparseBinding", "sparseResidencyBuffer", "sparseResidencyImage2D",
+               "sparseResidencyImage3D", "sparseResidency2Samples",
+               "sparseResidency4Samples", "sparseResidency8Samples",
+               "sparseResidency16Samples", "sparseResidencyAliased",
+               "variableMultisampleRate", "inheritedQueries"]
+        type CUnionType VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPhysicalDeviceFeatures = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "robustBufferAccess" VkPhysicalDeviceFeatures where
+        type FieldType "robustBufferAccess" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "robustBufferAccess" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "robustBufferAccess" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
+        type FieldIsArray "robustBufferAccess" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "robustBufferAccess" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, robustBufferAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "robustBufferAccess" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
+        type FieldType "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
+        type FieldIsArray "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageCubeArray" VkPhysicalDeviceFeatures where
+        type FieldType "imageCubeArray" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "imageCubeArray" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageCubeArray" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, imageCubeArray}
+        type FieldIsArray "imageCubeArray" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, imageCubeArray}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageCubeArray" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, imageCubeArray})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, imageCubeArray}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageCubeArray" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, imageCubeArray}
+
+instance {-# OVERLAPPING #-}
+         HasField "independentBlend" VkPhysicalDeviceFeatures where
+        type FieldType "independentBlend" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "independentBlend" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "independentBlend" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, independentBlend}
+        type FieldIsArray "independentBlend" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, independentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "independentBlend" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, independentBlend})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, independentBlend}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "independentBlend" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, independentBlend}
+
+instance {-# OVERLAPPING #-}
+         HasField "geometryShader" VkPhysicalDeviceFeatures where
+        type FieldType "geometryShader" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "geometryShader" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "geometryShader" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, geometryShader}
+        type FieldIsArray "geometryShader" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, geometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "geometryShader" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, geometryShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, geometryShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "geometryShader" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, geometryShader}
+
+instance {-# OVERLAPPING #-}
+         HasField "tessellationShader" VkPhysicalDeviceFeatures where
+        type FieldType "tessellationShader" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "tessellationShader" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "tessellationShader" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, tessellationShader}
+        type FieldIsArray "tessellationShader" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, tessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "tessellationShader" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, tessellationShader})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, tessellationShader}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "tessellationShader" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, tessellationShader}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleRateShading" VkPhysicalDeviceFeatures where
+        type FieldType "sampleRateShading" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sampleRateShading" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleRateShading" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, sampleRateShading}
+        type FieldIsArray "sampleRateShading" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sampleRateShading}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleRateShading" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sampleRateShading})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sampleRateShading}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleRateShading" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sampleRateShading}
+
+instance {-# OVERLAPPING #-}
+         HasField "dualSrcBlend" VkPhysicalDeviceFeatures where
+        type FieldType "dualSrcBlend" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "dualSrcBlend" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dualSrcBlend" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
+        type FieldIsArray "dualSrcBlend" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dualSrcBlend" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, dualSrcBlend})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dualSrcBlend" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
+
+instance {-# OVERLAPPING #-}
+         HasField "logicOp" VkPhysicalDeviceFeatures where
+        type FieldType "logicOp" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "logicOp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "logicOp" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, logicOp}
+        type FieldIsArray "logicOp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, logicOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "logicOp" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, logicOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, logicOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "logicOp" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, logicOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiDrawIndirect" VkPhysicalDeviceFeatures where
+        type FieldType "multiDrawIndirect" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "multiDrawIndirect" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiDrawIndirect" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
+        type FieldIsArray "multiDrawIndirect" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiDrawIndirect" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, multiDrawIndirect})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiDrawIndirect" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
+
+instance {-# OVERLAPPING #-}
+         HasField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures where
+        type FieldType "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "drawIndirectFirstInstance"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "drawIndirectFirstInstance"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
+        type FieldIsArray "drawIndirectFirstInstance"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthClamp" VkPhysicalDeviceFeatures where
+        type FieldType "depthClamp" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "depthClamp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthClamp" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, depthClamp}
+        type FieldIsArray "depthClamp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, depthClamp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthClamp" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthClamp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthClamp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthClamp" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthClamp}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBiasClamp" VkPhysicalDeviceFeatures where
+        type FieldType "depthBiasClamp" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "depthBiasClamp" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBiasClamp" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
+        type FieldIsArray "depthBiasClamp" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBiasClamp" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthBiasClamp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBiasClamp" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         HasField "fillModeNonSolid" VkPhysicalDeviceFeatures where
+        type FieldType "fillModeNonSolid" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "fillModeNonSolid" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "fillModeNonSolid" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
+        type FieldIsArray "fillModeNonSolid" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fillModeNonSolid" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fillModeNonSolid})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fillModeNonSolid" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBounds" VkPhysicalDeviceFeatures where
+        type FieldType "depthBounds" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "depthBounds" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBounds" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, depthBounds}
+        type FieldIsArray "depthBounds" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, depthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBounds" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthBounds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBounds" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthBounds}
+
+instance {-# OVERLAPPING #-}
+         HasField "wideLines" VkPhysicalDeviceFeatures where
+        type FieldType "wideLines" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "wideLines" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "wideLines" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, wideLines}
+        type FieldIsArray "wideLines" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, wideLines}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "wideLines" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, wideLines})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, wideLines}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "wideLines" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, wideLines}
+
+instance {-# OVERLAPPING #-}
+         HasField "largePoints" VkPhysicalDeviceFeatures where
+        type FieldType "largePoints" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "largePoints" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "largePoints" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, largePoints}
+        type FieldIsArray "largePoints" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, largePoints}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "largePoints" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, largePoints})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, largePoints}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "largePoints" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, largePoints}
+
+instance {-# OVERLAPPING #-}
+         HasField "alphaToOne" VkPhysicalDeviceFeatures where
+        type FieldType "alphaToOne" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "alphaToOne" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "alphaToOne" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, alphaToOne}
+        type FieldIsArray "alphaToOne" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, alphaToOne}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alphaToOne" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, alphaToOne})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, alphaToOne}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alphaToOne" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, alphaToOne}
+
+instance {-# OVERLAPPING #-}
+         HasField "multiViewport" VkPhysicalDeviceFeatures where
+        type FieldType "multiViewport" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "multiViewport" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "multiViewport" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, multiViewport}
+        type FieldIsArray "multiViewport" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, multiViewport}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "multiViewport" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, multiViewport})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, multiViewport}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "multiViewport" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, multiViewport}
+
+instance {-# OVERLAPPING #-}
+         HasField "samplerAnisotropy" VkPhysicalDeviceFeatures where
+        type FieldType "samplerAnisotropy" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "samplerAnisotropy" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "samplerAnisotropy" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
+        type FieldIsArray "samplerAnisotropy" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samplerAnisotropy" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, samplerAnisotropy})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samplerAnisotropy" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         HasField "textureCompressionETC2" VkPhysicalDeviceFeatures where
+        type FieldType "textureCompressionETC2" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "textureCompressionETC2"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "textureCompressionETC2" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
+        type FieldIsArray "textureCompressionETC2" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "textureCompressionETC2" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionETC2})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "textureCompressionETC2" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
+
+instance {-# OVERLAPPING #-}
+         HasField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
+         where
+        type FieldType "textureCompressionASTC_LDR"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "textureCompressionASTC_LDR"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "textureCompressionASTC_LDR"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
+        type FieldIsArray "textureCompressionASTC_LDR"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
+
+instance {-# OVERLAPPING #-}
+         HasField "textureCompressionBC" VkPhysicalDeviceFeatures where
+        type FieldType "textureCompressionBC" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "textureCompressionBC" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "textureCompressionBC" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
+        type FieldIsArray "textureCompressionBC" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "textureCompressionBC" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionBC})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "textureCompressionBC" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
+
+instance {-# OVERLAPPING #-}
+         HasField "occlusionQueryPrecise" VkPhysicalDeviceFeatures where
+        type FieldType "occlusionQueryPrecise" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "occlusionQueryPrecise" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "occlusionQueryPrecise" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
+        type FieldIsArray "occlusionQueryPrecise" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "occlusionQueryPrecise" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "occlusionQueryPrecise" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures where
+        type FieldType "pipelineStatisticsQuery" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "pipelineStatisticsQuery"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
+        type FieldIsArray "pipelineStatisticsQuery"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexPipelineStoresAndAtomics" VkPhysicalDeviceFeatures
+         where
+        type FieldType "vertexPipelineStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "vertexPipelineStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vertexPipelineStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
+        type FieldIsArray "vertexPipelineStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexPipelineStoresAndAtomics"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexPipelineStoresAndAtomics"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         HasField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures where
+        type FieldType "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "fragmentStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fragmentStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
+        type FieldIsArray "fragmentStoresAndAtomics"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderTessellationAndGeometryPointSize"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderTessellationAndGeometryPointSize"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderTessellationAndGeometryPointSize"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderTessellationAndGeometryPointSize"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
+        type FieldIsArray "shaderTessellationAndGeometryPointSize"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderTessellationAndGeometryPointSize"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderTessellationAndGeometryPointSize"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderImageGatherExtended" VkPhysicalDeviceFeatures where
+        type FieldType "shaderImageGatherExtended" VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderImageGatherExtended"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderImageGatherExtended"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
+        type FieldIsArray "shaderImageGatherExtended"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderImageGatherExtended" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderImageGatherExtended" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageExtendedFormats"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageImageExtendedFormats"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageImageExtendedFormats"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageExtendedFormats"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
+        type FieldIsArray "shaderStorageImageExtendedFormats"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageExtendedFormats"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageExtendedFormats"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageMultisample" VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageImageMultisample"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageImageMultisample"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageMultisample"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
+        type FieldIsArray "shaderStorageImageMultisample"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageMultisample"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageMultisample"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageReadWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageImageReadWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageImageReadWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageReadWithoutFormat"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
+        type FieldIsArray "shaderStorageImageReadWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageReadWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageReadWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageWriteWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageImageWriteWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageImageWriteWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageWriteWithoutFormat"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
+        type FieldIsArray "shaderStorageImageWriteWithoutFormat"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageWriteWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageWriteWithoutFormat"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderUniformBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderUniformBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderUniformBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderUniformBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderUniformBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderUniformBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderUniformBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderSampledImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderSampledImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderSampledImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderSampledImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
+        type FieldIsArray "shaderSampledImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderSampledImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderSampledImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
+        type FieldIsArray "shaderStorageBufferArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageBufferArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStorageImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        type FieldType "shaderStorageImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "shaderStorageImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStorageImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
+        type FieldIsArray "shaderStorageImageArrayDynamicIndexing"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStorageImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStorageImageArrayDynamicIndexing"
+           VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderClipDistance" VkPhysicalDeviceFeatures where
+        type FieldType "shaderClipDistance" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "shaderClipDistance" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderClipDistance" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
+        type FieldIsArray "shaderClipDistance" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderClipDistance" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderClipDistance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderClipDistance" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderCullDistance" VkPhysicalDeviceFeatures where
+        type FieldType "shaderCullDistance" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "shaderCullDistance" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderCullDistance" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
+        type FieldIsArray "shaderCullDistance" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderCullDistance" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderCullDistance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderCullDistance" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderFloat64" VkPhysicalDeviceFeatures where
+        type FieldType "shaderFloat64" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "shaderFloat64" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderFloat64" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderFloat64}
+        type FieldIsArray "shaderFloat64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderFloat64}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderFloat64" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderFloat64})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderFloat64}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderFloat64" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderFloat64}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInt64" VkPhysicalDeviceFeatures where
+        type FieldType "shaderInt64" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "shaderInt64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInt64" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderInt64}
+        type FieldIsArray "shaderInt64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderInt64}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInt64" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderInt64})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt64}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInt64" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt64}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderInt16" VkPhysicalDeviceFeatures where
+        type FieldType "shaderInt16" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "shaderInt16" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderInt16" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderInt16}
+        type FieldIsArray "shaderInt16" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderInt16}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderInt16" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderInt16})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt16}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderInt16" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt16}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderResourceResidency" VkPhysicalDeviceFeatures where
+        type FieldType "shaderResourceResidency" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "shaderResourceResidency"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderResourceResidency" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
+        type FieldIsArray "shaderResourceResidency"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderResourceResidency" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderResourceResidency})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderResourceResidency" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
+        type FieldType "shaderResourceMinLod" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "shaderResourceMinLod" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderResourceMinLod" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
+        type FieldIsArray "shaderResourceMinLod" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseBinding" VkPhysicalDeviceFeatures where
+        type FieldType "sparseBinding" VkPhysicalDeviceFeatures = VkBool32
+        type FieldOptional "sparseBinding" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseBinding" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, sparseBinding}
+        type FieldIsArray "sparseBinding" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseBinding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseBinding" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseBinding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseBinding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseBinding" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseBinding}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidencyBuffer" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidencyBuffer" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidencyBuffer" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidencyBuffer" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
+        type FieldIsArray "sparseResidencyBuffer" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidencyBuffer" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidencyBuffer" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidencyImage2D" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidencyImage2D" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidencyImage2D"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidencyImage2D" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
+        type FieldIsArray "sparseResidencyImage2D" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidencyImage2D" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidencyImage2D" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidencyImage3D" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidencyImage3D" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidencyImage3D"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidencyImage3D" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
+        type FieldIsArray "sparseResidencyImage3D" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidencyImage3D" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidencyImage3D" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidency2Samples" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidency2Samples" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidency2Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidency2Samples" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
+        type FieldIsArray "sparseResidency2Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidency2Samples" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidency2Samples" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidency4Samples" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidency4Samples" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidency4Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidency4Samples" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
+        type FieldIsArray "sparseResidency4Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidency4Samples" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidency4Samples" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidency8Samples" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidency8Samples" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidency8Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidency8Samples" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
+        type FieldIsArray "sparseResidency8Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidency8Samples" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidency8Samples" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidency16Samples" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidency16Samples" VkPhysicalDeviceFeatures
+             = VkBool32
+        type FieldOptional "sparseResidency16Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidency16Samples"
+               VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
+        type FieldIsArray "sparseResidency16Samples"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidency16Samples" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidency16Samples" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
+
+instance {-# OVERLAPPING #-}
+         HasField "sparseResidencyAliased" VkPhysicalDeviceFeatures where
+        type FieldType "sparseResidencyAliased" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "sparseResidencyAliased"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sparseResidencyAliased" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
+        type FieldIsArray "sparseResidencyAliased" VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sparseResidencyAliased" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sparseResidencyAliased" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
+
+instance {-# OVERLAPPING #-}
+         HasField "variableMultisampleRate" VkPhysicalDeviceFeatures where
+        type FieldType "variableMultisampleRate" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "variableMultisampleRate"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "variableMultisampleRate" VkPhysicalDeviceFeatures
+             =
+             #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
+        type FieldIsArray "variableMultisampleRate"
+               VkPhysicalDeviceFeatures
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "variableMultisampleRate" VkPhysicalDeviceFeatures
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, variableMultisampleRate})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "variableMultisampleRate" VkPhysicalDeviceFeatures
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
+
+instance {-# OVERLAPPING #-}
+         HasField "inheritedQueries" VkPhysicalDeviceFeatures where
+        type FieldType "inheritedQueries" VkPhysicalDeviceFeatures =
+             VkBool32
+        type FieldOptional "inheritedQueries" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "inheritedQueries" VkPhysicalDeviceFeatures =
+             #{offset VkPhysicalDeviceFeatures, inheritedQueries}
+        type FieldIsArray "inheritedQueries" VkPhysicalDeviceFeatures =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPhysicalDeviceFeatures, inheritedQueries}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "inheritedQueries" VkPhysicalDeviceFeatures where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, inheritedQueries})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPhysicalDeviceFeatures, inheritedQueries}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "inheritedQueries" VkPhysicalDeviceFeatures where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, inheritedQueries}
+
+instance Show VkPhysicalDeviceFeatures where
+        showsPrec d x
+          = showString "VkPhysicalDeviceFeatures {" .
+              showString "robustBufferAccess = " .
+                showsPrec d (getField @"robustBufferAccess" x) .
+                  showString ", " .
+                    showString "fullDrawIndexUint32 = " .
+                      showsPrec d (getField @"fullDrawIndexUint32" x) .
+                        showString ", " .
+                          showString "imageCubeArray = " .
+                            showsPrec d (getField @"imageCubeArray" x) .
+                              showString ", " .
+                                showString "independentBlend = " .
+                                  showsPrec d (getField @"independentBlend" x) .
+                                    showString ", " .
+                                      showString "geometryShader = " .
+                                        showsPrec d (getField @"geometryShader" x) .
+                                          showString ", " .
+                                            showString "tessellationShader = " .
+                                              showsPrec d (getField @"tessellationShader" x) .
+                                                showString ", " .
+                                                  showString "sampleRateShading = " .
+                                                    showsPrec d (getField @"sampleRateShading" x) .
+                                                      showString ", " .
+                                                        showString "dualSrcBlend = " .
+                                                          showsPrec d (getField @"dualSrcBlend" x) .
+                                                            showString ", " .
+                                                              showString "logicOp = " .
+                                                                showsPrec d (getField @"logicOp" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "multiDrawIndirect = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"multiDrawIndirect"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "drawIndirectFirstInstance = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"drawIndirectFirstInstance"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "depthClamp = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"depthClamp"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "depthBiasClamp = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"depthBiasClamp"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "fillModeNonSolid = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"fillModeNonSolid"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "depthBounds = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"depthBounds"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "wideLines = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"wideLines"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "largePoints = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"largePoints"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "alphaToOne = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"alphaToOne"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "multiViewport = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"multiViewport"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showString
+                                                                                                                                ", "
+                                                                                                                                .
+                                                                                                                                showString
+                                                                                                                                  "samplerAnisotropy = "
+                                                                                                                                  .
+                                                                                                                                  showsPrec
+                                                                                                                                    d
+                                                                                                                                    (getField
+                                                                                                                                       @"samplerAnisotropy"
+                                                                                                                                       x)
+                                                                                                                                    .
+                                                                                                                                    showString
+                                                                                                                                      ", "
+                                                                                                                                      .
+                                                                                                                                      showString
+                                                                                                                                        "textureCompressionETC2 = "
+                                                                                                                                        .
+                                                                                                                                        showsPrec
+                                                                                                                                          d
+                                                                                                                                          (getField
+                                                                                                                                             @"textureCompressionETC2"
+                                                                                                                                             x)
+                                                                                                                                          .
+                                                                                                                                          showString
+                                                                                                                                            ", "
+                                                                                                                                            .
+                                                                                                                                            showString
+                                                                                                                                              "textureCompressionASTC_LDR = "
+                                                                                                                                              .
+                                                                                                                                              showsPrec
+                                                                                                                                                d
+                                                                                                                                                (getField
+                                                                                                                                                   @"textureCompressionASTC_LDR"
+                                                                                                                                                   x)
+                                                                                                                                                .
+                                                                                                                                                showString
+                                                                                                                                                  ", "
+                                                                                                                                                  .
+                                                                                                                                                  showString
+                                                                                                                                                    "textureCompressionBC = "
+                                                                                                                                                    .
+                                                                                                                                                    showsPrec
+                                                                                                                                                      d
+                                                                                                                                                      (getField
+                                                                                                                                                         @"textureCompressionBC"
+                                                                                                                                                         x)
+                                                                                                                                                      .
+                                                                                                                                                      showString
+                                                                                                                                                        ", "
+                                                                                                                                                        .
+                                                                                                                                                        showString
+                                                                                                                                                          "occlusionQueryPrecise = "
+                                                                                                                                                          .
+                                                                                                                                                          showsPrec
+                                                                                                                                                            d
+                                                                                                                                                            (getField
+                                                                                                                                                               @"occlusionQueryPrecise"
+                                                                                                                                                               x)
+                                                                                                                                                            .
+                                                                                                                                                            showString
+                                                                                                                                                              ", "
+                                                                                                                                                              .
+                                                                                                                                                              showString
+                                                                                                                                                                "pipelineStatisticsQuery = "
+                                                                                                                                                                .
+                                                                                                                                                                showsPrec
+                                                                                                                                                                  d
+                                                                                                                                                                  (getField
+                                                                                                                                                                     @"pipelineStatisticsQuery"
+                                                                                                                                                                     x)
+                                                                                                                                                                  .
+                                                                                                                                                                  showString
+                                                                                                                                                                    ", "
+                                                                                                                                                                    .
+                                                                                                                                                                    showString
+                                                                                                                                                                      "vertexPipelineStoresAndAtomics = "
+                                                                                                                                                                      .
+                                                                                                                                                                      showsPrec
+                                                                                                                                                                        d
+                                                                                                                                                                        (getField
+                                                                                                                                                                           @"vertexPipelineStoresAndAtomics"
+                                                                                                                                                                           x)
+                                                                                                                                                                        .
+                                                                                                                                                                        showString
+                                                                                                                                                                          ", "
+                                                                                                                                                                          .
+                                                                                                                                                                          showString
+                                                                                                                                                                            "fragmentStoresAndAtomics = "
+                                                                                                                                                                            .
+                                                                                                                                                                            showsPrec
+                                                                                                                                                                              d
+                                                                                                                                                                              (getField
+                                                                                                                                                                                 @"fragmentStoresAndAtomics"
+                                                                                                                                                                                 x)
+                                                                                                                                                                              .
+                                                                                                                                                                              showString
+                                                                                                                                                                                ", "
+                                                                                                                                                                                .
+                                                                                                                                                                                showString
+                                                                                                                                                                                  "shaderTessellationAndGeometryPointSize = "
+                                                                                                                                                                                  .
+                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                    d
+                                                                                                                                                                                    (getField
+                                                                                                                                                                                       @"shaderTessellationAndGeometryPointSize"
+                                                                                                                                                                                       x)
+                                                                                                                                                                                    .
+                                                                                                                                                                                    showString
+                                                                                                                                                                                      ", "
+                                                                                                                                                                                      .
+                                                                                                                                                                                      showString
+                                                                                                                                                                                        "shaderImageGatherExtended = "
+                                                                                                                                                                                        .
+                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                          d
+                                                                                                                                                                                          (getField
+                                                                                                                                                                                             @"shaderImageGatherExtended"
+                                                                                                                                                                                             x)
+                                                                                                                                                                                          .
+                                                                                                                                                                                          showString
+                                                                                                                                                                                            ", "
+                                                                                                                                                                                            .
+                                                                                                                                                                                            showString
+                                                                                                                                                                                              "shaderStorageImageExtendedFormats = "
+                                                                                                                                                                                              .
+                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                d
+                                                                                                                                                                                                (getField
+                                                                                                                                                                                                   @"shaderStorageImageExtendedFormats"
+                                                                                                                                                                                                   x)
+                                                                                                                                                                                                .
+                                                                                                                                                                                                showString
+                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                  .
+                                                                                                                                                                                                  showString
+                                                                                                                                                                                                    "shaderStorageImageMultisample = "
+                                                                                                                                                                                                    .
+                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                      d
+                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                         @"shaderStorageImageMultisample"
+                                                                                                                                                                                                         x)
+                                                                                                                                                                                                      .
+                                                                                                                                                                                                      showString
+                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                        .
+                                                                                                                                                                                                        showString
+                                                                                                                                                                                                          "shaderStorageImageReadWithoutFormat = "
+                                                                                                                                                                                                          .
+                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                            d
+                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                               @"shaderStorageImageReadWithoutFormat"
+                                                                                                                                                                                                               x)
+                                                                                                                                                                                                            .
+                                                                                                                                                                                                            showString
+                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                              .
+                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                "shaderStorageImageWriteWithoutFormat = "
+                                                                                                                                                                                                                .
+                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                     @"shaderStorageImageWriteWithoutFormat"
+                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                      "shaderUniformBufferArrayDynamicIndexing = "
+                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                           @"shaderUniformBufferArrayDynamicIndexing"
+                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                            "shaderSampledImageArrayDynamicIndexing = "
+                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                 @"shaderSampledImageArrayDynamicIndexing"
+                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                  "shaderStorageBufferArrayDynamicIndexing = "
+                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                       @"shaderStorageBufferArrayDynamicIndexing"
+                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                        "shaderStorageImageArrayDynamicIndexing = "
+                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                             @"shaderStorageImageArrayDynamicIndexing"
+                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                              "shaderClipDistance = "
+                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                   @"shaderClipDistance"
+                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                    "shaderCullDistance = "
+                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                         @"shaderCullDistance"
+                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                          "shaderFloat64 = "
+                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                               @"shaderFloat64"
+                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                "shaderInt64 = "
+                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                     @"shaderInt64"
+                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                      "shaderInt16 = "
+                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                           @"shaderInt16"
+                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                            "shaderResourceResidency = "
+                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                 @"shaderResourceResidency"
+                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                  "shaderResourceMinLod = "
+                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                       @"shaderResourceMinLod"
+                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                        "sparseBinding = "
+                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                             @"sparseBinding"
+                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                              "sparseResidencyBuffer = "
+                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                   @"sparseResidencyBuffer"
+                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                    "sparseResidencyImage2D = "
+                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                         @"sparseResidencyImage2D"
+                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                        ", "
+                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                          "sparseResidencyImage3D = "
+                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                          showsPrec
+                                                                                                                                                                                                                                                                                                            d
+                                                                                                                                                                                                                                                                                                            (getField
+                                                                                                                                                                                                                                                                                                               @"sparseResidencyImage3D"
+                                                                                                                                                                                                                                                                                                               x)
+                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                              ", "
+                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                "sparseResidency2Samples = "
+                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                showsPrec
+                                                                                                                                                                                                                                                                                                                  d
+                                                                                                                                                                                                                                                                                                                  (getField
+                                                                                                                                                                                                                                                                                                                     @"sparseResidency2Samples"
+                                                                                                                                                                                                                                                                                                                     x)
+                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                    ", "
+                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                      "sparseResidency4Samples = "
+                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                      showsPrec
+                                                                                                                                                                                                                                                                                                                        d
+                                                                                                                                                                                                                                                                                                                        (getField
+                                                                                                                                                                                                                                                                                                                           @"sparseResidency4Samples"
+                                                                                                                                                                                                                                                                                                                           x)
+                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                        showString
+                                                                                                                                                                                                                                                                                                                          ", "
+                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                            "sparseResidency8Samples = "
+                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                            showsPrec
+                                                                                                                                                                                                                                                                                                                              d
+                                                                                                                                                                                                                                                                                                                              (getField
+                                                                                                                                                                                                                                                                                                                                 @"sparseResidency8Samples"
+                                                                                                                                                                                                                                                                                                                                 x)
+                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                              showString
+                                                                                                                                                                                                                                                                                                                                ", "
+                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                  "sparseResidency16Samples = "
+                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                  showsPrec
+                                                                                                                                                                                                                                                                                                                                    d
+                                                                                                                                                                                                                                                                                                                                    (getField
+                                                                                                                                                                                                                                                                                                                                       @"sparseResidency16Samples"
+                                                                                                                                                                                                                                                                                                                                       x)
+                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                    showString
+                                                                                                                                                                                                                                                                                                                                      ", "
+                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                      showString
+                                                                                                                                                                                                                                                                                                                                        "sparseResidencyAliased = "
+                                                                                                                                                                                                                                                                                                                                        .
+                                                                                                                                                                                                                                                                                                                                        showsPrec
+                                                                                                                                                                                                                                                                                                                                          d
+                                                                                                                                                                                                                                                                                                                                          (getField
+                                                                                                                                                                                                                                                                                                                                             @"sparseResidencyAliased"
+                                                                                                                                                                                                                                                                                                                                             x)
+                                                                                                                                                                                                                                                                                                                                          .
+                                                                                                                                                                                                                                                                                                                                          showString
+                                                                                                                                                                                                                                                                                                                                            ", "
+                                                                                                                                                                                                                                                                                                                                            .
+                                                                                                                                                                                                                                                                                                                                            showString
+                                                                                                                                                                                                                                                                                                                                              "variableMultisampleRate = "
+                                                                                                                                                                                                                                                                                                                                              .
+                                                                                                                                                                                                                                                                                                                                              showsPrec
+                                                                                                                                                                                                                                                                                                                                                d
+                                                                                                                                                                                                                                                                                                                                                (getField
+                                                                                                                                                                                                                                                                                                                                                   @"variableMultisampleRate"
+                                                                                                                                                                                                                                                                                                                                                   x)
+                                                                                                                                                                                                                                                                                                                                                .
+                                                                                                                                                                                                                                                                                                                                                showString
+                                                                                                                                                                                                                                                                                                                                                  ", "
+                                                                                                                                                                                                                                                                                                                                                  .
+                                                                                                                                                                                                                                                                                                                                                  showString
+                                                                                                                                                                                                                                                                                                                                                    "inheritedQueries = "
+                                                                                                                                                                                                                                                                                                                                                    .
+                                                                                                                                                                                                                                                                                                                                                    showsPrec
+                                                                                                                                                                                                                                                                                                                                                      d
+                                                                                                                                                                                                                                                                                                                                                      (getField
+                                                                                                                                                                                                                                                                                                                                                         @"inheritedQueries"
+                                                                                                                                                                                                                                                                                                                                                         x)
+                                                                                                                                                                                                                                                                                                                                                      .
+                                                                                                                                                                                                                                                                                                                                                      showChar
+                                                                                                                                                                                                                                                                                                                                                        '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Pipeline.hsc
@@ -0,0 +1,9402 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Pipeline
+       (VkGraphicsPipelineCreateInfo(..), VkPipelineCacheCreateInfo(..),
+        VkPipelineColorBlendAdvancedStateCreateInfoEXT(..),
+        VkPipelineColorBlendAttachmentState(..),
+        VkPipelineColorBlendStateCreateInfo(..),
+        VkPipelineCoverageModulationStateCreateInfoNV(..),
+        VkPipelineCoverageToColorStateCreateInfoNV(..),
+        VkPipelineDepthStencilStateCreateInfo(..),
+        VkPipelineDiscardRectangleStateCreateInfoEXT(..),
+        VkPipelineDynamicStateCreateInfo(..),
+        VkPipelineInputAssemblyStateCreateInfo(..),
+        VkPipelineLayoutCreateInfo(..),
+        VkPipelineMultisampleStateCreateInfo(..),
+        VkPipelineRasterizationConservativeStateCreateInfoEXT(..),
+        VkPipelineRasterizationStateCreateInfo(..),
+        VkPipelineRasterizationStateRasterizationOrderAMD(..),
+        VkPipelineSampleLocationsStateCreateInfoEXT(..),
+        VkPipelineShaderStageCreateInfo(..),
+        VkPipelineTessellationDomainOriginStateCreateInfo(..),
+        VkPipelineTessellationDomainOriginStateCreateInfoKHR,
+        VkPipelineTessellationStateCreateInfo(..),
+        VkPipelineVertexInputDivisorStateCreateInfoEXT(..),
+        VkPipelineVertexInputStateCreateInfo(..),
+        VkPipelineViewportStateCreateInfo(..),
+        VkPipelineViewportSwizzleStateCreateInfoNV(..),
+        VkPipelineViewportWScalingStateCreateInfoNV(..))
+       where
+import           Foreign.Storable                                            (Storable (..))
+import           GHC.Base                                                    (Addr##,
+                                                                              ByteArray##,
+                                                                              Proxy##,
+                                                                              byteArrayContents##,
+                                                                              plusAddr##,
+                                                                              proxy##)
+import           GHC.TypeLits                                                (KnownNat,
+                                                                              natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes                             (VkBool32,
+                                                                              VkSampleMask)
+import           Graphics.Vulkan.Types.Bitmasks                              (VkPipelineCacheCreateFlags,
+                                                                              VkPipelineColorBlendStateCreateFlags,
+                                                                              VkPipelineCoverageModulationStateCreateFlagsNV,
+                                                                              VkPipelineCoverageToColorStateCreateFlagsNV,
+                                                                              VkPipelineDepthStencilStateCreateFlags,
+                                                                              VkPipelineDiscardRectangleStateCreateFlagsEXT,
+                                                                              VkPipelineDynamicStateCreateFlags,
+                                                                              VkPipelineInputAssemblyStateCreateFlags,
+                                                                              VkPipelineLayoutCreateFlags,
+                                                                              VkPipelineMultisampleStateCreateFlags,
+                                                                              VkPipelineRasterizationConservativeStateCreateFlagsEXT,
+                                                                              VkPipelineRasterizationStateCreateFlags,
+                                                                              VkPipelineShaderStageCreateFlags,
+                                                                              VkPipelineTessellationStateCreateFlags,
+                                                                              VkPipelineVertexInputStateCreateFlags,
+                                                                              VkPipelineViewportStateCreateFlags,
+                                                                              VkPipelineViewportSwizzleStateCreateFlagsNV)
+import           Graphics.Vulkan.Types.Enum.Blend                            (VkBlendFactor,
+                                                                              VkBlendOp,
+                                                                              VkBlendOverlapEXT)
+import           Graphics.Vulkan.Types.Enum.Color                            (VkColorComponentFlags)
+import           Graphics.Vulkan.Types.Enum.CompareOp                        (VkCompareOp)
+import           Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT (VkConservativeRasterizationModeEXT)
+import           Graphics.Vulkan.Types.Enum.CoverageModulationModeNV         (VkCoverageModulationModeNV)
+import           Graphics.Vulkan.Types.Enum.CullModeFlags                    (VkCullModeFlags)
+import           Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT          (VkDiscardRectangleModeEXT)
+import           Graphics.Vulkan.Types.Enum.DynamicState                     (VkDynamicState)
+import           Graphics.Vulkan.Types.Enum.FrontFace                        (VkFrontFace)
+import           Graphics.Vulkan.Types.Enum.LogicOp                          (VkLogicOp)
+import           Graphics.Vulkan.Types.Enum.Pipeline                         (VkPipelineCreateFlags)
+import           Graphics.Vulkan.Types.Enum.PolygonMode                      (VkPolygonMode)
+import           Graphics.Vulkan.Types.Enum.PrimitiveTopology                (VkPrimitiveTopology)
+import           Graphics.Vulkan.Types.Enum.RasterizationOrderAMD            (VkRasterizationOrderAMD)
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags                 (VkSampleCountFlagBits)
+import           Graphics.Vulkan.Types.Enum.Shader                           (VkShaderStageFlagBits)
+import           Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.TessellationDomainOrigin         (VkTessellationDomainOrigin)
+import           Graphics.Vulkan.Types.Handles                               (VkDescriptorSetLayout,
+                                                                              VkPipeline,
+                                                                              VkPipelineLayout,
+                                                                              VkRenderPass,
+                                                                              VkShaderModule)
+import           Graphics.Vulkan.Types.Struct.PushConstantRange              (VkPushConstantRange)
+import           Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
+import           Graphics.Vulkan.Types.Struct.SampleLocation                 (VkSampleLocationsInfoEXT)
+import           Graphics.Vulkan.Types.Struct.Specialization                 (VkSpecializationInfo)
+import           Graphics.Vulkan.Types.Struct.StencilOpState                 (VkStencilOpState)
+import           Graphics.Vulkan.Types.Struct.VertexInput                    (VkVertexInputAttributeDescription,
+                                                                              VkVertexInputBindingDescription,
+                                                                              VkVertexInputBindingDivisorDescriptionEXT)
+import           Graphics.Vulkan.Types.Struct.Viewport                       (VkViewport,
+                                                                              VkViewportSwizzleNV,
+                                                                              VkViewportWScalingNV)
+import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkGraphicsPipelineCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineCreateFlags  flags;
+--   >     uint32_t               stageCount;
+--   >     const VkPipelineShaderStageCreateInfo* pStages;
+--   >     const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
+--   >     const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
+--   >     const VkPipelineTessellationStateCreateInfo* pTessellationState;
+--   >     const VkPipelineViewportStateCreateInfo* pViewportState;
+--   >     const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
+--   >     const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
+--   >     const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
+--   >     const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
+--   >     const VkPipelineDynamicStateCreateInfo* pDynamicState;
+--   >     VkPipelineLayout       layout;
+--   >     VkRenderPass           renderPass;
+--   >     uint32_t               subpass;
+--   >     VkPipeline      basePipelineHandle;
+--   >     int32_t                basePipelineIndex;
+--   > } VkGraphicsPipelineCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkGraphicsPipelineCreateInfo VkGraphicsPipelineCreateInfo registry at www.khronos.org>
+data VkGraphicsPipelineCreateInfo = VkGraphicsPipelineCreateInfo## Addr##
+                                                                  ByteArray##
+
+instance Eq VkGraphicsPipelineCreateInfo where
+        (VkGraphicsPipelineCreateInfo## a _) ==
+          x@(VkGraphicsPipelineCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkGraphicsPipelineCreateInfo where
+        (VkGraphicsPipelineCreateInfo## a _) `compare`
+          x@(VkGraphicsPipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkGraphicsPipelineCreateInfo where
+        sizeOf ~_ = #{size VkGraphicsPipelineCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkGraphicsPipelineCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkGraphicsPipelineCreateInfo where
+        unsafeAddr (VkGraphicsPipelineCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkGraphicsPipelineCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkGraphicsPipelineCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkGraphicsPipelineCreateInfo where
+        type StructFields VkGraphicsPipelineCreateInfo =
+             '["sType", "pNext", "flags", "stageCount", "pStages", -- ' closing tick for hsc2hs
+               "pVertexInputState", "pInputAssemblyState", "pTessellationState",
+               "pViewportState", "pRasterizationState", "pMultisampleState",
+               "pDepthStencilState", "pColorBlendState", "pDynamicState",
+               "layout", "renderPass", "subpass", "basePipelineHandle",
+               "basePipelineIndex"]
+        type CUnionType VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkGraphicsPipelineCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkGraphicsPipelineCreateInfo where
+        type FieldType "sType" VkGraphicsPipelineCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, sType}
+        type FieldIsArray "sType" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkGraphicsPipelineCreateInfo where
+        type FieldType "pNext" VkGraphicsPipelineCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pNext}
+        type FieldIsArray "pNext" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkGraphicsPipelineCreateInfo where
+        type FieldType "flags" VkGraphicsPipelineCreateInfo =
+             VkPipelineCreateFlags
+        type FieldOptional "flags" VkGraphicsPipelineCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, flags}
+        type FieldIsArray "flags" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "stageCount" VkGraphicsPipelineCreateInfo where
+        type FieldType "stageCount" VkGraphicsPipelineCreateInfo = Word32
+        type FieldOptional "stageCount" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stageCount" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, stageCount}
+        type FieldIsArray "stageCount" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, stageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stageCount" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, stageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, stageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stageCount" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, stageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pStages" VkGraphicsPipelineCreateInfo where
+        type FieldType "pStages" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineShaderStageCreateInfo
+        type FieldOptional "pStages" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pStages" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pStages}
+        type FieldIsArray "pStages" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pStages}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pStages" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pStages})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pStages}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pStages" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pStages}
+
+instance {-# OVERLAPPING #-}
+         HasField "pVertexInputState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pVertexInputState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineVertexInputStateCreateInfo
+        type FieldOptional "pVertexInputState" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pVertexInputState" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
+        type FieldIsArray "pVertexInputState" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pVertexInputState" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pVertexInputState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pVertexInputState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pInputAssemblyState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pInputAssemblyState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineInputAssemblyStateCreateInfo
+        type FieldOptional "pInputAssemblyState"
+               VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pInputAssemblyState" VkGraphicsPipelineCreateInfo
+             =
+             #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
+        type FieldIsArray "pInputAssemblyState"
+               VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pInputAssemblyState" VkGraphicsPipelineCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pInputAssemblyState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTessellationState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pTessellationState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineTessellationStateCreateInfo
+        type FieldOptional "pTessellationState"
+               VkGraphicsPipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pTessellationState" VkGraphicsPipelineCreateInfo
+             =
+             #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
+        type FieldIsArray "pTessellationState" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTessellationState" VkGraphicsPipelineCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pTessellationState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTessellationState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewportState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pViewportState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineViewportStateCreateInfo
+        type FieldOptional "pViewportState" VkGraphicsPipelineCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pViewportState" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pViewportState}
+        type FieldIsArray "pViewportState" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pViewportState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewportState" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pViewportState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pViewportState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewportState" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pViewportState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pRasterizationState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pRasterizationState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineRasterizationStateCreateInfo
+        type FieldOptional "pRasterizationState"
+               VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pRasterizationState" VkGraphicsPipelineCreateInfo
+             =
+             #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
+        type FieldIsArray "pRasterizationState"
+               VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pRasterizationState" VkGraphicsPipelineCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pRasterizationState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pRasterizationState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pMultisampleState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pMultisampleState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineMultisampleStateCreateInfo
+        type FieldOptional "pMultisampleState" VkGraphicsPipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pMultisampleState" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
+        type FieldIsArray "pMultisampleState" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pMultisampleState" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pMultisampleState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pMultisampleState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDepthStencilState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pDepthStencilState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineDepthStencilStateCreateInfo
+        type FieldOptional "pDepthStencilState"
+               VkGraphicsPipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pDepthStencilState" VkGraphicsPipelineCreateInfo
+             =
+             #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
+        type FieldIsArray "pDepthStencilState" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDepthStencilState" VkGraphicsPipelineCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDepthStencilState" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pColorBlendState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pColorBlendState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineColorBlendStateCreateInfo
+        type FieldOptional "pColorBlendState" VkGraphicsPipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pColorBlendState" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
+        type FieldIsArray "pColorBlendState" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pColorBlendState" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pColorBlendState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pColorBlendState" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDynamicState" VkGraphicsPipelineCreateInfo where
+        type FieldType "pDynamicState" VkGraphicsPipelineCreateInfo =
+             Ptr VkPipelineDynamicStateCreateInfo
+        type FieldOptional "pDynamicState" VkGraphicsPipelineCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pDynamicState" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
+        type FieldIsArray "pDynamicState" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDynamicState" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pDynamicState})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDynamicState" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
+
+instance {-# OVERLAPPING #-}
+         HasField "layout" VkGraphicsPipelineCreateInfo where
+        type FieldType "layout" VkGraphicsPipelineCreateInfo =
+             VkPipelineLayout
+        type FieldOptional "layout" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layout" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, layout}
+        type FieldIsArray "layout" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "layout" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, layout})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "layout" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, layout}
+
+instance {-# OVERLAPPING #-}
+         HasField "renderPass" VkGraphicsPipelineCreateInfo where
+        type FieldType "renderPass" VkGraphicsPipelineCreateInfo =
+             VkRenderPass
+        type FieldOptional "renderPass" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "renderPass" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, renderPass}
+        type FieldIsArray "renderPass" VkGraphicsPipelineCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "renderPass" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, renderPass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "renderPass" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         HasField "subpass" VkGraphicsPipelineCreateInfo where
+        type FieldType "subpass" VkGraphicsPipelineCreateInfo = Word32
+        type FieldOptional "subpass" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subpass" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, subpass}
+        type FieldIsArray "subpass" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpass" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, subpass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpass" VkGraphicsPipelineCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, subpass}
+
+instance {-# OVERLAPPING #-}
+         HasField "basePipelineHandle" VkGraphicsPipelineCreateInfo where
+        type FieldType "basePipelineHandle" VkGraphicsPipelineCreateInfo =
+             VkPipeline
+        type FieldOptional "basePipelineHandle"
+               VkGraphicsPipelineCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "basePipelineHandle" VkGraphicsPipelineCreateInfo
+             =
+             #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
+        type FieldIsArray "basePipelineHandle" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "basePipelineHandle" VkGraphicsPipelineCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "basePipelineHandle" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
+
+instance {-# OVERLAPPING #-}
+         HasField "basePipelineIndex" VkGraphicsPipelineCreateInfo where
+        type FieldType "basePipelineIndex" VkGraphicsPipelineCreateInfo =
+             Int32
+        type FieldOptional "basePipelineIndex" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "basePipelineIndex" VkGraphicsPipelineCreateInfo =
+             #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
+        type FieldIsArray "basePipelineIndex" VkGraphicsPipelineCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "basePipelineIndex" VkGraphicsPipelineCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "basePipelineIndex" VkGraphicsPipelineCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
+
+instance Show VkGraphicsPipelineCreateInfo where
+        showsPrec d x
+          = showString "VkGraphicsPipelineCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "stageCount = " .
+                                  showsPrec d (getField @"stageCount" x) .
+                                    showString ", " .
+                                      showString "pStages = " .
+                                        showsPrec d (getField @"pStages" x) .
+                                          showString ", " .
+                                            showString "pVertexInputState = " .
+                                              showsPrec d (getField @"pVertexInputState" x) .
+                                                showString ", " .
+                                                  showString "pInputAssemblyState = " .
+                                                    showsPrec d (getField @"pInputAssemblyState" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pTessellationState = " .
+                                                          showsPrec d
+                                                            (getField @"pTessellationState" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pViewportState = " .
+                                                                showsPrec d
+                                                                  (getField @"pViewportState" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "pRasterizationState = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"pRasterizationState"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "pMultisampleState = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"pMultisampleState"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "pDepthStencilState = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"pDepthStencilState"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "pColorBlendState = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"pColorBlendState"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "pDynamicState = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"pDynamicState"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "layout = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"layout"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "renderPass = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"renderPass"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "subpass = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"subpass"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "basePipelineHandle = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"basePipelineHandle"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showString
+                                                                                                                          ", "
+                                                                                                                          .
+                                                                                                                          showString
+                                                                                                                            "basePipelineIndex = "
+                                                                                                                            .
+                                                                                                                            showsPrec
+                                                                                                                              d
+                                                                                                                              (getField
+                                                                                                                                 @"basePipelineIndex"
+                                                                                                                                 x)
+                                                                                                                              .
+                                                                                                                              showChar
+                                                                                                                                '}'
+
+-- | > typedef struct VkPipelineCacheCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineCacheCreateFlags    flags;
+--   >     size_t                 initialDataSize;
+--   >     const void*            pInitialData;
+--   > } VkPipelineCacheCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCacheCreateInfo VkPipelineCacheCreateInfo registry at www.khronos.org>
+data VkPipelineCacheCreateInfo = VkPipelineCacheCreateInfo## Addr##
+                                                            ByteArray##
+
+instance Eq VkPipelineCacheCreateInfo where
+        (VkPipelineCacheCreateInfo## a _) ==
+          x@(VkPipelineCacheCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineCacheCreateInfo where
+        (VkPipelineCacheCreateInfo## a _) `compare`
+          x@(VkPipelineCacheCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineCacheCreateInfo where
+        sizeOf ~_ = #{size VkPipelineCacheCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPipelineCacheCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineCacheCreateInfo where
+        unsafeAddr (VkPipelineCacheCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineCacheCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineCacheCreateInfo## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineCacheCreateInfo where
+        type StructFields VkPipelineCacheCreateInfo =
+             '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineCacheCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineCacheCreateInfo where
+        type FieldType "sType" VkPipelineCacheCreateInfo = VkStructureType
+        type FieldOptional "sType" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineCacheCreateInfo =
+             #{offset VkPipelineCacheCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCacheCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineCacheCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCacheCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineCacheCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineCacheCreateInfo where
+        type FieldType "pNext" VkPipelineCacheCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineCacheCreateInfo =
+             #{offset VkPipelineCacheCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCacheCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineCacheCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCacheCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineCacheCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineCacheCreateInfo where
+        type FieldType "flags" VkPipelineCacheCreateInfo =
+             VkPipelineCacheCreateFlags
+        type FieldOptional "flags" VkPipelineCacheCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineCacheCreateInfo =
+             #{offset VkPipelineCacheCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCacheCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineCacheCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCacheCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineCacheCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "initialDataSize" VkPipelineCacheCreateInfo where
+        type FieldType "initialDataSize" VkPipelineCacheCreateInfo = CSize
+        type FieldOptional "initialDataSize" VkPipelineCacheCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "initialDataSize" VkPipelineCacheCreateInfo =
+             #{offset VkPipelineCacheCreateInfo, initialDataSize}
+        type FieldIsArray "initialDataSize" VkPipelineCacheCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCacheCreateInfo, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "initialDataSize" VkPipelineCacheCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, initialDataSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCacheCreateInfo, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "initialDataSize" VkPipelineCacheCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "pInitialData" VkPipelineCacheCreateInfo where
+        type FieldType "pInitialData" VkPipelineCacheCreateInfo = Ptr Void
+        type FieldOptional "pInitialData" VkPipelineCacheCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pInitialData" VkPipelineCacheCreateInfo =
+             #{offset VkPipelineCacheCreateInfo, pInitialData}
+        type FieldIsArray "pInitialData" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCacheCreateInfo, pInitialData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pInitialData" VkPipelineCacheCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, pInitialData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCacheCreateInfo, pInitialData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pInitialData" VkPipelineCacheCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, pInitialData}
+
+instance Show VkPipelineCacheCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineCacheCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "initialDataSize = " .
+                                  showsPrec d (getField @"initialDataSize" x) .
+                                    showString ", " .
+                                      showString "pInitialData = " .
+                                        showsPrec d (getField @"pInitialData" x) . showChar '}'
+
+-- | > typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkBool32               srcPremultiplied;
+--   >     VkBool32               dstPremultiplied;
+--   >     VkBlendOverlapEXT      blendOverlap;
+--   > } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendAdvancedStateCreateInfoEXT VkPipelineColorBlendAdvancedStateCreateInfoEXT registry at www.khronos.org>
+data VkPipelineColorBlendAdvancedStateCreateInfoEXT = VkPipelineColorBlendAdvancedStateCreateInfoEXT## Addr##
+                                                                                                      ByteArray##
+
+instance Eq VkPipelineColorBlendAdvancedStateCreateInfoEXT where
+        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) ==
+          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineColorBlendAdvancedStateCreateInfoEXT where
+        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) `compare`
+          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkPipelineColorBlendAdvancedStateCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineColorBlendAdvancedStateCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        unsafeAddr (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineColorBlendAdvancedStateCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineColorBlendAdvancedStateCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type StructFields VkPipelineColorBlendAdvancedStateCreateInfoEXT =
+             '["sType", "pNext", "srcPremultiplied", "dstPremultiplied", -- ' closing tick for hsc2hs
+               "blendOverlap"]
+        type CUnionType VkPipelineColorBlendAdvancedStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineColorBlendAdvancedStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineColorBlendAdvancedStateCreateInfoEXT =
+             '[VkPipelineColorBlendStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type FieldType "sType"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             =
+             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type FieldType "pNext"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             =
+             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type FieldType "srcPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = VkBool32
+        type FieldOptional "srcPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             =
+             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
+        type FieldIsArray "srcPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type FieldType "dstPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = VkBool32
+        type FieldOptional "dstPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             =
+             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
+        type FieldIsArray "dstPremultiplied"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstPremultiplied"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
+
+instance {-# OVERLAPPING #-}
+         HasField "blendOverlap"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        type FieldType "blendOverlap"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = VkBlendOverlapEXT
+        type FieldOptional "blendOverlap"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "blendOverlap"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             =
+             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
+        type FieldIsArray "blendOverlap"
+               VkPipelineColorBlendAdvancedStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "blendOverlap"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "blendOverlap"
+           VkPipelineColorBlendAdvancedStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
+
+instance Show VkPipelineColorBlendAdvancedStateCreateInfoEXT where
+        showsPrec d x
+          = showString "VkPipelineColorBlendAdvancedStateCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "srcPremultiplied = " .
+                            showsPrec d (getField @"srcPremultiplied" x) .
+                              showString ", " .
+                                showString "dstPremultiplied = " .
+                                  showsPrec d (getField @"dstPremultiplied" x) .
+                                    showString ", " .
+                                      showString "blendOverlap = " .
+                                        showsPrec d (getField @"blendOverlap" x) . showChar '}'
+
+-- | > typedef struct VkPipelineColorBlendAttachmentState {
+--   >     VkBool32               blendEnable;
+--   >     VkBlendFactor          srcColorBlendFactor;
+--   >     VkBlendFactor          dstColorBlendFactor;
+--   >     VkBlendOp              colorBlendOp;
+--   >     VkBlendFactor          srcAlphaBlendFactor;
+--   >     VkBlendFactor          dstAlphaBlendFactor;
+--   >     VkBlendOp              alphaBlendOp;
+--   >     VkColorComponentFlags  colorWriteMask;
+--   > } VkPipelineColorBlendAttachmentState;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendAttachmentState VkPipelineColorBlendAttachmentState registry at www.khronos.org>
+data VkPipelineColorBlendAttachmentState = VkPipelineColorBlendAttachmentState## Addr##
+                                                                                ByteArray##
+
+instance Eq VkPipelineColorBlendAttachmentState where
+        (VkPipelineColorBlendAttachmentState## a _) ==
+          x@(VkPipelineColorBlendAttachmentState## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineColorBlendAttachmentState where
+        (VkPipelineColorBlendAttachmentState## a _) `compare`
+          x@(VkPipelineColorBlendAttachmentState## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineColorBlendAttachmentState where
+        sizeOf ~_ = #{size VkPipelineColorBlendAttachmentState}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineColorBlendAttachmentState}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineColorBlendAttachmentState
+         where
+        unsafeAddr (VkPipelineColorBlendAttachmentState## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineColorBlendAttachmentState## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineColorBlendAttachmentState##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineColorBlendAttachmentState where
+        type StructFields VkPipelineColorBlendAttachmentState =
+             '["blendEnable", "srcColorBlendFactor", "dstColorBlendFactor", -- ' closing tick for hsc2hs
+               "colorBlendOp", "srcAlphaBlendFactor", "dstAlphaBlendFactor",
+               "alphaBlendOp", "colorWriteMask"]
+        type CUnionType VkPipelineColorBlendAttachmentState = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineColorBlendAttachmentState = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineColorBlendAttachmentState = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "blendEnable" VkPipelineColorBlendAttachmentState where
+        type FieldType "blendEnable" VkPipelineColorBlendAttachmentState =
+             VkBool32
+        type FieldOptional "blendEnable"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "blendEnable" VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, blendEnable}
+        type FieldIsArray "blendEnable" VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, blendEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "blendEnable" VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, blendEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, blendEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "blendEnable" VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, blendEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcColorBlendFactor" VkPipelineColorBlendAttachmentState
+         where
+        type FieldType "srcColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = VkBlendFactor
+        type FieldOptional "srcColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
+        type FieldIsArray "srcColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcColorBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcColorBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstColorBlendFactor" VkPipelineColorBlendAttachmentState
+         where
+        type FieldType "dstColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = VkBlendFactor
+        type FieldOptional "dstColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
+        type FieldIsArray "dstColorBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstColorBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstColorBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "colorBlendOp" VkPipelineColorBlendAttachmentState where
+        type FieldType "colorBlendOp" VkPipelineColorBlendAttachmentState =
+             VkBlendOp
+        type FieldOptional "colorBlendOp"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "colorBlendOp" VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
+        type FieldIsArray "colorBlendOp"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "colorBlendOp" VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, colorBlendOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "colorBlendOp" VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcAlphaBlendFactor" VkPipelineColorBlendAttachmentState
+         where
+        type FieldType "srcAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = VkBlendFactor
+        type FieldOptional "srcAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
+        type FieldIsArray "srcAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcAlphaBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcAlphaBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstAlphaBlendFactor" VkPipelineColorBlendAttachmentState
+         where
+        type FieldType "dstAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = VkBlendFactor
+        type FieldOptional "dstAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
+        type FieldIsArray "dstAlphaBlendFactor"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstAlphaBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstAlphaBlendFactor"
+           VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "alphaBlendOp" VkPipelineColorBlendAttachmentState where
+        type FieldType "alphaBlendOp" VkPipelineColorBlendAttachmentState =
+             VkBlendOp
+        type FieldOptional "alphaBlendOp"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "alphaBlendOp" VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
+        type FieldIsArray "alphaBlendOp"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alphaBlendOp" VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alphaBlendOp" VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "colorWriteMask" VkPipelineColorBlendAttachmentState where
+        type FieldType "colorWriteMask" VkPipelineColorBlendAttachmentState
+             = VkColorComponentFlags
+        type FieldOptional "colorWriteMask"
+               VkPipelineColorBlendAttachmentState
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "colorWriteMask"
+               VkPipelineColorBlendAttachmentState
+             =
+             #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
+        type FieldIsArray "colorWriteMask"
+               VkPipelineColorBlendAttachmentState
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "colorWriteMask" VkPipelineColorBlendAttachmentState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, colorWriteMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "colorWriteMask" VkPipelineColorBlendAttachmentState
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
+
+instance Show VkPipelineColorBlendAttachmentState where
+        showsPrec d x
+          = showString "VkPipelineColorBlendAttachmentState {" .
+              showString "blendEnable = " .
+                showsPrec d (getField @"blendEnable" x) .
+                  showString ", " .
+                    showString "srcColorBlendFactor = " .
+                      showsPrec d (getField @"srcColorBlendFactor" x) .
+                        showString ", " .
+                          showString "dstColorBlendFactor = " .
+                            showsPrec d (getField @"dstColorBlendFactor" x) .
+                              showString ", " .
+                                showString "colorBlendOp = " .
+                                  showsPrec d (getField @"colorBlendOp" x) .
+                                    showString ", " .
+                                      showString "srcAlphaBlendFactor = " .
+                                        showsPrec d (getField @"srcAlphaBlendFactor" x) .
+                                          showString ", " .
+                                            showString "dstAlphaBlendFactor = " .
+                                              showsPrec d (getField @"dstAlphaBlendFactor" x) .
+                                                showString ", " .
+                                                  showString "alphaBlendOp = " .
+                                                    showsPrec d (getField @"alphaBlendOp" x) .
+                                                      showString ", " .
+                                                        showString "colorWriteMask = " .
+                                                          showsPrec d (getField @"colorWriteMask" x)
+                                                            . showChar '}'
+
+-- | > typedef struct VkPipelineColorBlendStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineColorBlendStateCreateFlags    flags;
+--   >     VkBool32               logicOpEnable;
+--   >     VkLogicOp              logicOp;
+--   >     uint32_t               attachmentCount;
+--   >     const VkPipelineColorBlendAttachmentState* pAttachments;
+--   >     float                  blendConstants[4];
+--   > } VkPipelineColorBlendStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineColorBlendStateCreateInfo VkPipelineColorBlendStateCreateInfo registry at www.khronos.org>
+data VkPipelineColorBlendStateCreateInfo = VkPipelineColorBlendStateCreateInfo## Addr##
+                                                                                ByteArray##
+
+instance Eq VkPipelineColorBlendStateCreateInfo where
+        (VkPipelineColorBlendStateCreateInfo## a _) ==
+          x@(VkPipelineColorBlendStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineColorBlendStateCreateInfo where
+        (VkPipelineColorBlendStateCreateInfo## a _) `compare`
+          x@(VkPipelineColorBlendStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineColorBlendStateCreateInfo where
+        sizeOf ~_ = #{size VkPipelineColorBlendStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineColorBlendStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineColorBlendStateCreateInfo
+         where
+        unsafeAddr (VkPipelineColorBlendStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineColorBlendStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineColorBlendStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineColorBlendStateCreateInfo where
+        type StructFields VkPipelineColorBlendStateCreateInfo =
+             '["sType", "pNext", "flags", "logicOpEnable", "logicOp", -- ' closing tick for hsc2hs
+               "attachmentCount", "pAttachments", "blendConstants"]
+        type CUnionType VkPipelineColorBlendStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineColorBlendStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineColorBlendStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "sType" VkPipelineColorBlendStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineColorBlendStateCreateInfo =
+             #{offset VkPipelineColorBlendStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineColorBlendStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineColorBlendStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "pNext" VkPipelineColorBlendStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineColorBlendStateCreateInfo =
+             #{offset VkPipelineColorBlendStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineColorBlendStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineColorBlendStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "flags" VkPipelineColorBlendStateCreateInfo =
+             VkPipelineColorBlendStateCreateFlags
+        type FieldOptional "flags" VkPipelineColorBlendStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineColorBlendStateCreateInfo =
+             #{offset VkPipelineColorBlendStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineColorBlendStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineColorBlendStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "logicOpEnable" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "logicOpEnable" VkPipelineColorBlendStateCreateInfo
+             = VkBool32
+        type FieldOptional "logicOpEnable"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "logicOpEnable"
+               VkPipelineColorBlendStateCreateInfo
+             =
+             #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
+        type FieldIsArray "logicOpEnable"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "logicOpEnable" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "logicOpEnable" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "logicOp" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "logicOp" VkPipelineColorBlendStateCreateInfo =
+             VkLogicOp
+        type FieldOptional "logicOp" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "logicOp" VkPipelineColorBlendStateCreateInfo =
+             #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
+        type FieldIsArray "logicOp" VkPipelineColorBlendStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "logicOp" VkPipelineColorBlendStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, logicOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "logicOp" VkPipelineColorBlendStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "attachmentCount" VkPipelineColorBlendStateCreateInfo
+         where
+        type FieldType "attachmentCount"
+               VkPipelineColorBlendStateCreateInfo
+             = Word32
+        type FieldOptional "attachmentCount"
+               VkPipelineColorBlendStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "attachmentCount"
+               VkPipelineColorBlendStateCreateInfo
+             =
+             #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
+        type FieldIsArray "attachmentCount"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachmentCount" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachmentCount" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttachments" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "pAttachments" VkPipelineColorBlendStateCreateInfo =
+             Ptr VkPipelineColorBlendAttachmentState
+        type FieldOptional "pAttachments"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAttachments" VkPipelineColorBlendStateCreateInfo
+             =
+             #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
+        type FieldIsArray "pAttachments"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttachments" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, pAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttachments" VkPipelineColorBlendStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "blendConstants" VkPipelineColorBlendStateCreateInfo where
+        type FieldType "blendConstants" VkPipelineColorBlendStateCreateInfo
+             = #{type float}
+        type FieldOptional "blendConstants"
+               VkPipelineColorBlendStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "blendConstants"
+               VkPipelineColorBlendStateCreateInfo
+             =
+             #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
+        type FieldIsArray "blendConstants"
+               VkPipelineColorBlendStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "blendConstants" idx
+            VkPipelineColorBlendStateCreateInfo) =>
+         CanReadFieldArray "blendConstants" idx
+           VkPipelineColorBlendStateCreateInfo
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "blendConstants" 0
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "blendConstants" 1
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "blendConstants" 2
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "blendConstants" 3
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+        type FieldArrayLength "blendConstants"
+               VkPipelineColorBlendStateCreateInfo
+             = 4
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 4
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
+                      +
+                      sizeOf (undefined :: #{type float}) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "blendConstants" idx
+            VkPipelineColorBlendStateCreateInfo) =>
+         CanWriteFieldArray "blendConstants" idx
+           VkPipelineColorBlendStateCreateInfo
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "blendConstants" 0
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "blendConstants" 1
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "blendConstants" 2
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "blendConstants" 3
+                         VkPipelineColorBlendStateCreateInfo
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
+                 +
+                 sizeOf (undefined :: #{type float}) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkPipelineColorBlendStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineColorBlendStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "logicOpEnable = " .
+                                  showsPrec d (getField @"logicOpEnable" x) .
+                                    showString ", " .
+                                      showString "logicOp = " .
+                                        showsPrec d (getField @"logicOp" x) .
+                                          showString ", " .
+                                            showString "attachmentCount = " .
+                                              showsPrec d (getField @"attachmentCount" x) .
+                                                showString ", " .
+                                                  showString "pAttachments = " .
+                                                    showsPrec d (getField @"pAttachments" x) .
+                                                      showString ", " .
+                                                        (showString "blendConstants = [" .
+                                                           showsPrec d
+                                                             (let s = sizeOf
+                                                                        (undefined ::
+                                                                           FieldType
+                                                                             "blendConstants"
+                                                                             VkPipelineColorBlendStateCreateInfo)
+                                                                  o = fieldOffset @"blendConstants"
+                                                                        @VkPipelineColorBlendStateCreateInfo
+                                                                  f i
+                                                                    = peekByteOff (unsafePtr x) i ::
+                                                                        IO
+                                                                          (FieldType
+                                                                             "blendConstants"
+                                                                             VkPipelineColorBlendStateCreateInfo)
+                                                                in
+                                                                unsafeDupablePerformIO . mapM f $
+                                                                  map (\ i -> o + i * s)
+                                                                    [0 .. 4 - 1])
+                                                             . showChar ']')
+                                                          . showChar '}'
+
+-- | > typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                                                                      pNext;
+--   >     VkPipelineCoverageModulationStateCreateFlagsNV                   flags;
+--   >     VkCoverageModulationModeNV                                                       coverageModulationMode;
+--   >     VkBool32                                                                         coverageModulationTableEnable;
+--   >     uint32_t                                                                         coverageModulationTableCount;
+--   >     const float* pCoverageModulationTable;
+--   > } VkPipelineCoverageModulationStateCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCoverageModulationStateCreateInfoNV VkPipelineCoverageModulationStateCreateInfoNV registry at www.khronos.org>
+data VkPipelineCoverageModulationStateCreateInfoNV = VkPipelineCoverageModulationStateCreateInfoNV## Addr##
+                                                                                                    ByteArray##
+
+instance Eq VkPipelineCoverageModulationStateCreateInfoNV where
+        (VkPipelineCoverageModulationStateCreateInfoNV## a _) ==
+          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineCoverageModulationStateCreateInfoNV where
+        (VkPipelineCoverageModulationStateCreateInfoNV## a _) `compare`
+          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        sizeOf ~_
+          = #{size VkPipelineCoverageModulationStateCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineCoverageModulationStateCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        unsafeAddr (VkPipelineCoverageModulationStateCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineCoverageModulationStateCreateInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineCoverageModulationStateCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type StructFields VkPipelineCoverageModulationStateCreateInfoNV =
+             '["sType", "pNext", "flags", "coverageModulationMode", -- ' closing tick for hsc2hs
+               "coverageModulationTableEnable", "coverageModulationTableCount",
+               "pCoverageModulationTable"]
+        type CUnionType VkPipelineCoverageModulationStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineCoverageModulationStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineCoverageModulationStateCreateInfoNV =
+             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "sType"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
+        type FieldIsArray "sType"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "pNext"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "flags"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = VkPipelineCoverageModulationStateCreateFlagsNV
+        type FieldOptional "flags"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
+        type FieldIsArray "flags"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "coverageModulationMode"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "coverageModulationMode"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = VkCoverageModulationModeNV
+        type FieldOptional "coverageModulationMode"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "coverageModulationMode"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
+        type FieldIsArray "coverageModulationMode"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "coverageModulationMode"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "coverageModulationMode"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "coverageModulationTableEnable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "coverageModulationTableEnable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = VkBool32
+        type FieldOptional "coverageModulationTableEnable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "coverageModulationTableEnable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
+        type FieldIsArray "coverageModulationTableEnable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "coverageModulationTableEnable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "coverageModulationTableEnable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "coverageModulationTableCount"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "coverageModulationTableCount"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = Word32
+        type FieldOptional "coverageModulationTableCount"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "coverageModulationTableCount"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
+        type FieldIsArray "coverageModulationTableCount"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "coverageModulationTableCount"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "coverageModulationTableCount"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCoverageModulationTable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        type FieldType "pCoverageModulationTable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = Ptr #{type float}
+        type FieldOptional "pCoverageModulationTable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pCoverageModulationTable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
+        type FieldIsArray "pCoverageModulationTable"
+               VkPipelineCoverageModulationStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCoverageModulationTable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCoverageModulationTable"
+           VkPipelineCoverageModulationStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
+
+instance Show VkPipelineCoverageModulationStateCreateInfoNV where
+        showsPrec d x
+          = showString "VkPipelineCoverageModulationStateCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "coverageModulationMode = " .
+                                  showsPrec d (getField @"coverageModulationMode" x) .
+                                    showString ", " .
+                                      showString "coverageModulationTableEnable = " .
+                                        showsPrec d (getField @"coverageModulationTableEnable" x) .
+                                          showString ", " .
+                                            showString "coverageModulationTableCount = " .
+                                              showsPrec d
+                                                (getField @"coverageModulationTableCount" x)
+                                                .
+                                                showString ", " .
+                                                  showString "pCoverageModulationTable = " .
+                                                    showsPrec d
+                                                      (getField @"pCoverageModulationTable" x)
+                                                      . showChar '}'
+
+-- | > typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                                                                      pNext;
+--   >     VkPipelineCoverageToColorStateCreateFlagsNV                    flags;
+--   >     VkBool32                         coverageToColorEnable;
+--   >     uint32_t         coverageToColorLocation;
+--   > } VkPipelineCoverageToColorStateCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineCoverageToColorStateCreateInfoNV VkPipelineCoverageToColorStateCreateInfoNV registry at www.khronos.org>
+data VkPipelineCoverageToColorStateCreateInfoNV = VkPipelineCoverageToColorStateCreateInfoNV## Addr##
+                                                                                              ByteArray##
+
+instance Eq VkPipelineCoverageToColorStateCreateInfoNV where
+        (VkPipelineCoverageToColorStateCreateInfoNV## a _) ==
+          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineCoverageToColorStateCreateInfoNV where
+        (VkPipelineCoverageToColorStateCreateInfoNV## a _) `compare`
+          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineCoverageToColorStateCreateInfoNV where
+        sizeOf ~_
+          = #{size VkPipelineCoverageToColorStateCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineCoverageToColorStateCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        unsafeAddr (VkPipelineCoverageToColorStateCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineCoverageToColorStateCreateInfoNV## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineCoverageToColorStateCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        type StructFields VkPipelineCoverageToColorStateCreateInfoNV =
+             '["sType", "pNext", "flags", "coverageToColorEnable", -- ' closing tick for hsc2hs
+               "coverageToColorLocation"]
+        type CUnionType VkPipelineCoverageToColorStateCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineCoverageToColorStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineCoverageToColorStateCreateInfoNV =
+             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineCoverageToColorStateCreateInfoNV where
+        type FieldType "sType" VkPipelineCoverageToColorStateCreateInfoNV =
+             VkStructureType
+        type FieldOptional "sType"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineCoverageToColorStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
+        type FieldIsArray "sType"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineCoverageToColorStateCreateInfoNV where
+        type FieldType "pNext" VkPipelineCoverageToColorStateCreateInfoNV =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineCoverageToColorStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineCoverageToColorStateCreateInfoNV where
+        type FieldType "flags" VkPipelineCoverageToColorStateCreateInfoNV =
+             VkPipelineCoverageToColorStateCreateFlagsNV
+        type FieldOptional "flags"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineCoverageToColorStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
+        type FieldIsArray "flags"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "coverageToColorEnable"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        type FieldType "coverageToColorEnable"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = VkBool32
+        type FieldOptional "coverageToColorEnable"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "coverageToColorEnable"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
+        type FieldIsArray "coverageToColorEnable"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "coverageToColorEnable"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "coverageToColorEnable"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "coverageToColorLocation"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        type FieldType "coverageToColorLocation"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = Word32
+        type FieldOptional "coverageToColorLocation"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "coverageToColorLocation"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             =
+             #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
+        type FieldIsArray "coverageToColorLocation"
+               VkPipelineCoverageToColorStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "coverageToColorLocation"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "coverageToColorLocation"
+           VkPipelineCoverageToColorStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
+
+instance Show VkPipelineCoverageToColorStateCreateInfoNV where
+        showsPrec d x
+          = showString "VkPipelineCoverageToColorStateCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "coverageToColorEnable = " .
+                                  showsPrec d (getField @"coverageToColorEnable" x) .
+                                    showString ", " .
+                                      showString "coverageToColorLocation = " .
+                                        showsPrec d (getField @"coverageToColorLocation" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkPipelineDepthStencilStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineDepthStencilStateCreateFlags    flags;
+--   >     VkBool32               depthTestEnable;
+--   >     VkBool32               depthWriteEnable;
+--   >     VkCompareOp            depthCompareOp;
+--   >     VkBool32               depthBoundsTestEnable;
+--   >     VkBool32               stencilTestEnable;
+--   >     VkStencilOpState       front;
+--   >     VkStencilOpState       back;
+--   >     float                  minDepthBounds;
+--   >     float                  maxDepthBounds;
+--   > } VkPipelineDepthStencilStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDepthStencilStateCreateInfo VkPipelineDepthStencilStateCreateInfo registry at www.khronos.org>
+data VkPipelineDepthStencilStateCreateInfo = VkPipelineDepthStencilStateCreateInfo## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkPipelineDepthStencilStateCreateInfo where
+        (VkPipelineDepthStencilStateCreateInfo## a _) ==
+          x@(VkPipelineDepthStencilStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineDepthStencilStateCreateInfo where
+        (VkPipelineDepthStencilStateCreateInfo## a _) `compare`
+          x@(VkPipelineDepthStencilStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineDepthStencilStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineDepthStencilStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineDepthStencilStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineDepthStencilStateCreateInfo
+         where
+        unsafeAddr (VkPipelineDepthStencilStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineDepthStencilStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineDepthStencilStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineDepthStencilStateCreateInfo where
+        type StructFields VkPipelineDepthStencilStateCreateInfo =
+             '["sType", "pNext", "flags", "depthTestEnable", "depthWriteEnable", -- ' closing tick for hsc2hs
+               "depthCompareOp", "depthBoundsTestEnable", "stencilTestEnable",
+               "front", "back", "minDepthBounds", "maxDepthBounds"]
+        type CUnionType VkPipelineDepthStencilStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineDepthStencilStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineDepthStencilStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineDepthStencilStateCreateInfo where
+        type FieldType "sType" VkPipelineDepthStencilStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineDepthStencilStateCreateInfo =
+             #{offset VkPipelineDepthStencilStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineDepthStencilStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineDepthStencilStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineDepthStencilStateCreateInfo where
+        type FieldType "pNext" VkPipelineDepthStencilStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineDepthStencilStateCreateInfo =
+             #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineDepthStencilStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineDepthStencilStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineDepthStencilStateCreateInfo where
+        type FieldType "flags" VkPipelineDepthStencilStateCreateInfo =
+             VkPipelineDepthStencilStateCreateFlags
+        type FieldOptional "flags" VkPipelineDepthStencilStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineDepthStencilStateCreateInfo =
+             #{offset VkPipelineDepthStencilStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineDepthStencilStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineDepthStencilStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthTestEnable" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "depthTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = VkBool32
+        type FieldOptional "depthTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
+        type FieldIsArray "depthTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthWriteEnable" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "depthWriteEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = VkBool32
+        type FieldOptional "depthWriteEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthWriteEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
+        type FieldIsArray "depthWriteEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthWriteEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthWriteEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthCompareOp" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "depthCompareOp"
+               VkPipelineDepthStencilStateCreateInfo
+             = VkCompareOp
+        type FieldOptional "depthCompareOp"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthCompareOp"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
+        type FieldIsArray "depthCompareOp"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthCompareOp" VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthCompareOp"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBoundsTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "depthBoundsTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = VkBool32
+        type FieldOptional "depthBoundsTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBoundsTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
+        type FieldIsArray "depthBoundsTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBoundsTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBoundsTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "stencilTestEnable" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "stencilTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = VkBool32
+        type FieldOptional "stencilTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stencilTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
+        type FieldIsArray "stencilTestEnable"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stencilTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stencilTestEnable"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "front" VkPipelineDepthStencilStateCreateInfo where
+        type FieldType "front" VkPipelineDepthStencilStateCreateInfo =
+             VkStencilOpState
+        type FieldOptional "front" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "front" VkPipelineDepthStencilStateCreateInfo =
+             #{offset VkPipelineDepthStencilStateCreateInfo, front}
+        type FieldIsArray "front" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, front}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "front" VkPipelineDepthStencilStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, front})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, front}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "front" VkPipelineDepthStencilStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, front}
+
+instance {-# OVERLAPPING #-}
+         HasField "back" VkPipelineDepthStencilStateCreateInfo where
+        type FieldType "back" VkPipelineDepthStencilStateCreateInfo =
+             VkStencilOpState
+        type FieldOptional "back" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "back" VkPipelineDepthStencilStateCreateInfo =
+             #{offset VkPipelineDepthStencilStateCreateInfo, back}
+        type FieldIsArray "back" VkPipelineDepthStencilStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, back}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "back" VkPipelineDepthStencilStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, back})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, back}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "back" VkPipelineDepthStencilStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, back}
+
+instance {-# OVERLAPPING #-}
+         HasField "minDepthBounds" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "minDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = #{type float}
+        type FieldOptional "minDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
+        type FieldIsArray "minDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minDepthBounds" VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minDepthBounds"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxDepthBounds" VkPipelineDepthStencilStateCreateInfo
+         where
+        type FieldType "maxDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = #{type float}
+        type FieldOptional "maxDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             =
+             #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
+        type FieldIsArray "maxDepthBounds"
+               VkPipelineDepthStencilStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxDepthBounds" VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxDepthBounds"
+           VkPipelineDepthStencilStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
+
+instance Show VkPipelineDepthStencilStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineDepthStencilStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "depthTestEnable = " .
+                                  showsPrec d (getField @"depthTestEnable" x) .
+                                    showString ", " .
+                                      showString "depthWriteEnable = " .
+                                        showsPrec d (getField @"depthWriteEnable" x) .
+                                          showString ", " .
+                                            showString "depthCompareOp = " .
+                                              showsPrec d (getField @"depthCompareOp" x) .
+                                                showString ", " .
+                                                  showString "depthBoundsTestEnable = " .
+                                                    showsPrec d
+                                                      (getField @"depthBoundsTestEnable" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "stencilTestEnable = " .
+                                                          showsPrec d
+                                                            (getField @"stencilTestEnable" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "front = " .
+                                                                showsPrec d (getField @"front" x) .
+                                                                  showString ", " .
+                                                                    showString "back = " .
+                                                                      showsPrec d
+                                                                        (getField @"back" x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "minDepthBounds = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"minDepthBounds"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "maxDepthBounds = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"maxDepthBounds"
+                                                                                       x)
+                                                                                    . showChar '}'
+
+-- | > typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                                                                      pNext;
+--   >     VkPipelineDiscardRectangleStateCreateFlagsEXT                    flags;
+--   >     VkDiscardRectangleModeEXT                                                        discardRectangleMode;
+--   >     uint32_t                                                         discardRectangleCount;
+--   >     const VkRect2D* pDiscardRectangles;
+--   > } VkPipelineDiscardRectangleStateCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDiscardRectangleStateCreateInfoEXT VkPipelineDiscardRectangleStateCreateInfoEXT registry at www.khronos.org>
+data VkPipelineDiscardRectangleStateCreateInfoEXT = VkPipelineDiscardRectangleStateCreateInfoEXT## Addr##
+                                                                                                  ByteArray##
+
+instance Eq VkPipelineDiscardRectangleStateCreateInfoEXT where
+        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) ==
+          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineDiscardRectangleStateCreateInfoEXT where
+        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) `compare`
+          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkPipelineDiscardRectangleStateCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineDiscardRectangleStateCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        unsafeAddr (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineDiscardRectangleStateCreateInfoEXT## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineDiscardRectangleStateCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        type StructFields VkPipelineDiscardRectangleStateCreateInfoEXT =
+             '["sType", "pNext", "flags", "discardRectangleMode", -- ' closing tick for hsc2hs
+               "discardRectangleCount", "pDiscardRectangles"]
+        type CUnionType VkPipelineDiscardRectangleStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineDiscardRectangleStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineDiscardRectangleStateCreateInfoEXT =
+             '[VkGraphicsPipelineCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT where
+        type FieldType "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT where
+        type FieldType "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT where
+        type FieldType "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
+             = VkPipelineDiscardRectangleStateCreateFlagsEXT
+        type FieldOptional "flags"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
+        type FieldIsArray "flags"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "discardRectangleMode"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        type FieldType "discardRectangleMode"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = VkDiscardRectangleModeEXT
+        type FieldOptional "discardRectangleMode"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "discardRectangleMode"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
+        type FieldIsArray "discardRectangleMode"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "discardRectangleMode"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "discardRectangleMode"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "discardRectangleCount"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        type FieldType "discardRectangleCount"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = Word32
+        type FieldOptional "discardRectangleCount"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "discardRectangleCount"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
+        type FieldIsArray "discardRectangleCount"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "discardRectangleCount"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "discardRectangleCount"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDiscardRectangles"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        type FieldType "pDiscardRectangles"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = Ptr VkRect2D
+        type FieldOptional "pDiscardRectangles"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pDiscardRectangles"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             =
+             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
+        type FieldIsArray "pDiscardRectangles"
+               VkPipelineDiscardRectangleStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDiscardRectangles"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDiscardRectangles"
+           VkPipelineDiscardRectangleStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
+
+instance Show VkPipelineDiscardRectangleStateCreateInfoEXT where
+        showsPrec d x
+          = showString "VkPipelineDiscardRectangleStateCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "discardRectangleMode = " .
+                                  showsPrec d (getField @"discardRectangleMode" x) .
+                                    showString ", " .
+                                      showString "discardRectangleCount = " .
+                                        showsPrec d (getField @"discardRectangleCount" x) .
+                                          showString ", " .
+                                            showString "pDiscardRectangles = " .
+                                              showsPrec d (getField @"pDiscardRectangles" x) .
+                                                showChar '}'
+
+-- | > typedef struct VkPipelineDynamicStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineDynamicStateCreateFlags    flags;
+--   >     uint32_t               dynamicStateCount;
+--   >     const VkDynamicState*  pDynamicStates;
+--   > } VkPipelineDynamicStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineDynamicStateCreateInfo VkPipelineDynamicStateCreateInfo registry at www.khronos.org>
+data VkPipelineDynamicStateCreateInfo = VkPipelineDynamicStateCreateInfo## Addr##
+                                                                          ByteArray##
+
+instance Eq VkPipelineDynamicStateCreateInfo where
+        (VkPipelineDynamicStateCreateInfo## a _) ==
+          x@(VkPipelineDynamicStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineDynamicStateCreateInfo where
+        (VkPipelineDynamicStateCreateInfo## a _) `compare`
+          x@(VkPipelineDynamicStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineDynamicStateCreateInfo where
+        sizeOf ~_ = #{size VkPipelineDynamicStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineDynamicStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineDynamicStateCreateInfo where
+        unsafeAddr (VkPipelineDynamicStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineDynamicStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineDynamicStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineDynamicStateCreateInfo where
+        type StructFields VkPipelineDynamicStateCreateInfo =
+             '["sType", "pNext", "flags", "dynamicStateCount", "pDynamicStates"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineDynamicStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineDynamicStateCreateInfo where
+        type FieldType "sType" VkPipelineDynamicStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineDynamicStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineDynamicStateCreateInfo =
+             #{offset VkPipelineDynamicStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDynamicStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineDynamicStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineDynamicStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineDynamicStateCreateInfo where
+        type FieldType "pNext" VkPipelineDynamicStateCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkPipelineDynamicStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineDynamicStateCreateInfo =
+             #{offset VkPipelineDynamicStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDynamicStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineDynamicStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineDynamicStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineDynamicStateCreateInfo where
+        type FieldType "flags" VkPipelineDynamicStateCreateInfo =
+             VkPipelineDynamicStateCreateFlags
+        type FieldOptional "flags" VkPipelineDynamicStateCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineDynamicStateCreateInfo =
+             #{offset VkPipelineDynamicStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDynamicStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineDynamicStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineDynamicStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "dynamicStateCount" VkPipelineDynamicStateCreateInfo where
+        type FieldType "dynamicStateCount" VkPipelineDynamicStateCreateInfo
+             = Word32
+        type FieldOptional "dynamicStateCount"
+               VkPipelineDynamicStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dynamicStateCount"
+               VkPipelineDynamicStateCreateInfo
+             =
+             #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
+        type FieldIsArray "dynamicStateCount"
+               VkPipelineDynamicStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dynamicStateCount" VkPipelineDynamicStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dynamicStateCount" VkPipelineDynamicStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDynamicStates" VkPipelineDynamicStateCreateInfo where
+        type FieldType "pDynamicStates" VkPipelineDynamicStateCreateInfo =
+             Ptr VkDynamicState
+        type FieldOptional "pDynamicStates"
+               VkPipelineDynamicStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDynamicStates" VkPipelineDynamicStateCreateInfo
+             =
+             #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
+        type FieldIsArray "pDynamicStates" VkPipelineDynamicStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDynamicStates" VkPipelineDynamicStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDynamicStates" VkPipelineDynamicStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
+
+instance Show VkPipelineDynamicStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineDynamicStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "dynamicStateCount = " .
+                                  showsPrec d (getField @"dynamicStateCount" x) .
+                                    showString ", " .
+                                      showString "pDynamicStates = " .
+                                        showsPrec d (getField @"pDynamicStates" x) . showChar '}'
+
+-- | > typedef struct VkPipelineInputAssemblyStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineInputAssemblyStateCreateFlags    flags;
+--   >     VkPrimitiveTopology    topology;
+--   >     VkBool32               primitiveRestartEnable;
+--   > } VkPipelineInputAssemblyStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineInputAssemblyStateCreateInfo VkPipelineInputAssemblyStateCreateInfo registry at www.khronos.org>
+data VkPipelineInputAssemblyStateCreateInfo = VkPipelineInputAssemblyStateCreateInfo## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkPipelineInputAssemblyStateCreateInfo where
+        (VkPipelineInputAssemblyStateCreateInfo## a _) ==
+          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineInputAssemblyStateCreateInfo where
+        (VkPipelineInputAssemblyStateCreateInfo## a _) `compare`
+          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineInputAssemblyStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineInputAssemblyStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineInputAssemblyStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineInputAssemblyStateCreateInfo
+         where
+        unsafeAddr (VkPipelineInputAssemblyStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineInputAssemblyStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineInputAssemblyStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineInputAssemblyStateCreateInfo where
+        type StructFields VkPipelineInputAssemblyStateCreateInfo =
+             '["sType", "pNext", "flags", "topology", "primitiveRestartEnable"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineInputAssemblyStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineInputAssemblyStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineInputAssemblyStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineInputAssemblyStateCreateInfo where
+        type FieldType "sType" VkPipelineInputAssemblyStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineInputAssemblyStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineInputAssemblyStateCreateInfo =
+             #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineInputAssemblyStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineInputAssemblyStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineInputAssemblyStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineInputAssemblyStateCreateInfo where
+        type FieldType "pNext" VkPipelineInputAssemblyStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineInputAssemblyStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineInputAssemblyStateCreateInfo =
+             #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineInputAssemblyStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineInputAssemblyStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineInputAssemblyStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineInputAssemblyStateCreateInfo where
+        type FieldType "flags" VkPipelineInputAssemblyStateCreateInfo =
+             VkPipelineInputAssemblyStateCreateFlags
+        type FieldOptional "flags" VkPipelineInputAssemblyStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineInputAssemblyStateCreateInfo =
+             #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineInputAssemblyStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineInputAssemblyStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineInputAssemblyStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "topology" VkPipelineInputAssemblyStateCreateInfo where
+        type FieldType "topology" VkPipelineInputAssemblyStateCreateInfo =
+             VkPrimitiveTopology
+        type FieldOptional "topology"
+               VkPipelineInputAssemblyStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "topology" VkPipelineInputAssemblyStateCreateInfo
+             =
+             #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
+        type FieldIsArray "topology" VkPipelineInputAssemblyStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "topology" VkPipelineInputAssemblyStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, topology})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "topology" VkPipelineInputAssemblyStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
+
+instance {-# OVERLAPPING #-}
+         HasField "primitiveRestartEnable"
+           VkPipelineInputAssemblyStateCreateInfo
+         where
+        type FieldType "primitiveRestartEnable"
+               VkPipelineInputAssemblyStateCreateInfo
+             = VkBool32
+        type FieldOptional "primitiveRestartEnable"
+               VkPipelineInputAssemblyStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "primitiveRestartEnable"
+               VkPipelineInputAssemblyStateCreateInfo
+             =
+             #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
+        type FieldIsArray "primitiveRestartEnable"
+               VkPipelineInputAssemblyStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "primitiveRestartEnable"
+           VkPipelineInputAssemblyStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "primitiveRestartEnable"
+           VkPipelineInputAssemblyStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
+
+instance Show VkPipelineInputAssemblyStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineInputAssemblyStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "topology = " .
+                                  showsPrec d (getField @"topology" x) .
+                                    showString ", " .
+                                      showString "primitiveRestartEnable = " .
+                                        showsPrec d (getField @"primitiveRestartEnable" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkPipelineLayoutCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineLayoutCreateFlags    flags;
+--   >     uint32_t               setLayoutCount;
+--   >     const VkDescriptorSetLayout* pSetLayouts;
+--   >     uint32_t               pushConstantRangeCount;
+--   >     const VkPushConstantRange* pPushConstantRanges;
+--   > } VkPipelineLayoutCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineLayoutCreateInfo VkPipelineLayoutCreateInfo registry at www.khronos.org>
+data VkPipelineLayoutCreateInfo = VkPipelineLayoutCreateInfo## Addr##
+                                                              ByteArray##
+
+instance Eq VkPipelineLayoutCreateInfo where
+        (VkPipelineLayoutCreateInfo## a _) ==
+          x@(VkPipelineLayoutCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineLayoutCreateInfo where
+        (VkPipelineLayoutCreateInfo## a _) `compare`
+          x@(VkPipelineLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineLayoutCreateInfo where
+        sizeOf ~_ = #{size VkPipelineLayoutCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPipelineLayoutCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineLayoutCreateInfo where
+        unsafeAddr (VkPipelineLayoutCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineLayoutCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineLayoutCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineLayoutCreateInfo where
+        type StructFields VkPipelineLayoutCreateInfo =
+             '["sType", "pNext", "flags", "setLayoutCount", "pSetLayouts", -- ' closing tick for hsc2hs
+               "pushConstantRangeCount", "pPushConstantRanges"]
+        type CUnionType VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineLayoutCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineLayoutCreateInfo where
+        type FieldType "sType" VkPipelineLayoutCreateInfo = VkStructureType
+        type FieldOptional "sType" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineLayoutCreateInfo where
+        type FieldType "pNext" VkPipelineLayoutCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineLayoutCreateInfo where
+        type FieldType "flags" VkPipelineLayoutCreateInfo =
+             VkPipelineLayoutCreateFlags
+        type FieldOptional "flags" VkPipelineLayoutCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "setLayoutCount" VkPipelineLayoutCreateInfo where
+        type FieldType "setLayoutCount" VkPipelineLayoutCreateInfo = Word32
+        type FieldOptional "setLayoutCount" VkPipelineLayoutCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "setLayoutCount" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
+        type FieldIsArray "setLayoutCount" VkPipelineLayoutCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "setLayoutCount" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, setLayoutCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "setLayoutCount" VkPipelineLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSetLayouts" VkPipelineLayoutCreateInfo where
+        type FieldType "pSetLayouts" VkPipelineLayoutCreateInfo =
+             Ptr VkDescriptorSetLayout
+        type FieldOptional "pSetLayouts" VkPipelineLayoutCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSetLayouts" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
+        type FieldIsArray "pSetLayouts" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSetLayouts" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pSetLayouts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSetLayouts" VkPipelineLayoutCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
+
+instance {-# OVERLAPPING #-}
+         HasField "pushConstantRangeCount" VkPipelineLayoutCreateInfo where
+        type FieldType "pushConstantRangeCount" VkPipelineLayoutCreateInfo
+             = Word32
+        type FieldOptional "pushConstantRangeCount"
+               VkPipelineLayoutCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pushConstantRangeCount"
+               VkPipelineLayoutCreateInfo
+             =
+             #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
+        type FieldIsArray "pushConstantRangeCount"
+               VkPipelineLayoutCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pushConstantRangeCount" VkPipelineLayoutCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pushConstantRangeCount" VkPipelineLayoutCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pPushConstantRanges" VkPipelineLayoutCreateInfo where
+        type FieldType "pPushConstantRanges" VkPipelineLayoutCreateInfo =
+             Ptr VkPushConstantRange
+        type FieldOptional "pPushConstantRanges" VkPipelineLayoutCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pPushConstantRanges" VkPipelineLayoutCreateInfo =
+             #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
+        type FieldIsArray "pPushConstantRanges" VkPipelineLayoutCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pPushConstantRanges" VkPipelineLayoutCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pPushConstantRanges" VkPipelineLayoutCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
+
+instance Show VkPipelineLayoutCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineLayoutCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "setLayoutCount = " .
+                                  showsPrec d (getField @"setLayoutCount" x) .
+                                    showString ", " .
+                                      showString "pSetLayouts = " .
+                                        showsPrec d (getField @"pSetLayouts" x) .
+                                          showString ", " .
+                                            showString "pushConstantRangeCount = " .
+                                              showsPrec d (getField @"pushConstantRangeCount" x) .
+                                                showString ", " .
+                                                  showString "pPushConstantRanges = " .
+                                                    showsPrec d (getField @"pPushConstantRanges" x)
+                                                      . showChar '}'
+
+-- | > typedef struct VkPipelineMultisampleStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineMultisampleStateCreateFlags    flags;
+--   >     VkSampleCountFlagBits  rasterizationSamples;
+--   >     VkBool32               sampleShadingEnable;
+--   >     float                  minSampleShading;
+--   >     const VkSampleMask*    pSampleMask;
+--   >     VkBool32               alphaToCoverageEnable;
+--   >     VkBool32               alphaToOneEnable;
+--   > } VkPipelineMultisampleStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineMultisampleStateCreateInfo VkPipelineMultisampleStateCreateInfo registry at www.khronos.org>
+data VkPipelineMultisampleStateCreateInfo = VkPipelineMultisampleStateCreateInfo## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkPipelineMultisampleStateCreateInfo where
+        (VkPipelineMultisampleStateCreateInfo## a _) ==
+          x@(VkPipelineMultisampleStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineMultisampleStateCreateInfo where
+        (VkPipelineMultisampleStateCreateInfo## a _) `compare`
+          x@(VkPipelineMultisampleStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineMultisampleStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineMultisampleStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineMultisampleStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineMultisampleStateCreateInfo
+         where
+        unsafeAddr (VkPipelineMultisampleStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineMultisampleStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineMultisampleStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineMultisampleStateCreateInfo where
+        type StructFields VkPipelineMultisampleStateCreateInfo =
+             '["sType", "pNext", "flags", "rasterizationSamples", -- ' closing tick for hsc2hs
+               "sampleShadingEnable", "minSampleShading", "pSampleMask",
+               "alphaToCoverageEnable", "alphaToOneEnable"]
+        type CUnionType VkPipelineMultisampleStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineMultisampleStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineMultisampleStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineMultisampleStateCreateInfo where
+        type FieldType "sType" VkPipelineMultisampleStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineMultisampleStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineMultisampleStateCreateInfo =
+             #{offset VkPipelineMultisampleStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineMultisampleStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineMultisampleStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineMultisampleStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineMultisampleStateCreateInfo where
+        type FieldType "pNext" VkPipelineMultisampleStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineMultisampleStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineMultisampleStateCreateInfo =
+             #{offset VkPipelineMultisampleStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineMultisampleStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineMultisampleStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineMultisampleStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineMultisampleStateCreateInfo where
+        type FieldType "flags" VkPipelineMultisampleStateCreateInfo =
+             VkPipelineMultisampleStateCreateFlags
+        type FieldOptional "flags" VkPipelineMultisampleStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineMultisampleStateCreateInfo =
+             #{offset VkPipelineMultisampleStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineMultisampleStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineMultisampleStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineMultisampleStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "rasterizationSamples"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        type FieldType "rasterizationSamples"
+               VkPipelineMultisampleStateCreateInfo
+             = VkSampleCountFlagBits
+        type FieldOptional "rasterizationSamples"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "rasterizationSamples"
+               VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
+        type FieldIsArray "rasterizationSamples"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "rasterizationSamples"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "rasterizationSamples"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleShadingEnable" VkPipelineMultisampleStateCreateInfo
+         where
+        type FieldType "sampleShadingEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = VkBool32
+        type FieldOptional "sampleShadingEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleShadingEnable"
+               VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
+        type FieldIsArray "sampleShadingEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleShadingEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleShadingEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "minSampleShading" VkPipelineMultisampleStateCreateInfo
+         where
+        type FieldType "minSampleShading"
+               VkPipelineMultisampleStateCreateInfo
+             = #{type float}
+        type FieldOptional "minSampleShading"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minSampleShading"
+               VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
+        type FieldIsArray "minSampleShading"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minSampleShading"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minSampleShading"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSampleMask" VkPipelineMultisampleStateCreateInfo where
+        type FieldType "pSampleMask" VkPipelineMultisampleStateCreateInfo =
+             Ptr VkSampleMask
+        type FieldOptional "pSampleMask"
+               VkPipelineMultisampleStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pSampleMask" VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
+        type FieldIsArray "pSampleMask"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSampleMask" VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSampleMask" VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "alphaToCoverageEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        type FieldType "alphaToCoverageEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = VkBool32
+        type FieldOptional "alphaToCoverageEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "alphaToCoverageEnable"
+               VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
+        type FieldIsArray "alphaToCoverageEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alphaToCoverageEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alphaToCoverageEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "alphaToOneEnable" VkPipelineMultisampleStateCreateInfo
+         where
+        type FieldType "alphaToOneEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = VkBool32
+        type FieldOptional "alphaToOneEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "alphaToOneEnable"
+               VkPipelineMultisampleStateCreateInfo
+             =
+             #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
+        type FieldIsArray "alphaToOneEnable"
+               VkPipelineMultisampleStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "alphaToOneEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "alphaToOneEnable"
+           VkPipelineMultisampleStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
+
+instance Show VkPipelineMultisampleStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineMultisampleStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "rasterizationSamples = " .
+                                  showsPrec d (getField @"rasterizationSamples" x) .
+                                    showString ", " .
+                                      showString "sampleShadingEnable = " .
+                                        showsPrec d (getField @"sampleShadingEnable" x) .
+                                          showString ", " .
+                                            showString "minSampleShading = " .
+                                              showsPrec d (getField @"minSampleShading" x) .
+                                                showString ", " .
+                                                  showString "pSampleMask = " .
+                                                    showsPrec d (getField @"pSampleMask" x) .
+                                                      showString ", " .
+                                                        showString "alphaToCoverageEnable = " .
+                                                          showsPrec d
+                                                            (getField @"alphaToCoverageEnable" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "alphaToOneEnable = " .
+                                                                showsPrec d
+                                                                  (getField @"alphaToOneEnable" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                                                                      pNext;
+--   >     VkPipelineRasterizationConservativeStateCreateFlagsEXT           flags;
+--   >     VkConservativeRasterizationModeEXT                                               conservativeRasterizationMode;
+--   >     float                                                                            extraPrimitiveOverestimationSize;
+--   > } VkPipelineRasterizationConservativeStateCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationConservativeStateCreateInfoEXT VkPipelineRasterizationConservativeStateCreateInfoEXT registry at www.khronos.org>
+data VkPipelineRasterizationConservativeStateCreateInfoEXT = VkPipelineRasterizationConservativeStateCreateInfoEXT## Addr##
+                                                                                                                    ByteArray##
+
+instance Eq VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) ==
+          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _)
+          `compare`
+          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkPipelineRasterizationConservativeStateCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineRasterizationConservativeStateCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        unsafeAddr
+          (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineRasterizationConservativeStateCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineRasterizationConservativeStateCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type StructFields
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             '["sType", "pNext", "flags", "conservativeRasterizationMode", -- ' closing tick for hsc2hs
+               "extraPrimitiveOverestimationSize"]
+        type CUnionType
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = '[VkPipelineRasterizationStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type FieldType "sType"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type FieldType "pNext"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type FieldType "flags"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = VkPipelineRasterizationConservativeStateCreateFlagsEXT
+        type FieldOptional "flags"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
+        type FieldIsArray "flags"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "conservativeRasterizationMode"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type FieldType "conservativeRasterizationMode"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = VkConservativeRasterizationModeEXT
+        type FieldOptional "conservativeRasterizationMode"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "conservativeRasterizationMode"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
+        type FieldIsArray "conservativeRasterizationMode"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conservativeRasterizationMode"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conservativeRasterizationMode"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "extraPrimitiveOverestimationSize"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        type FieldType "extraPrimitiveOverestimationSize"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = #{type float}
+        type FieldOptional "extraPrimitiveOverestimationSize"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extraPrimitiveOverestimationSize"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             =
+             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
+        type FieldIsArray "extraPrimitiveOverestimationSize"
+               VkPipelineRasterizationConservativeStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "extraPrimitiveOverestimationSize"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "extraPrimitiveOverestimationSize"
+           VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
+
+instance Show VkPipelineRasterizationConservativeStateCreateInfoEXT
+         where
+        showsPrec d x
+          = showString
+              "VkPipelineRasterizationConservativeStateCreateInfoEXT {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "conservativeRasterizationMode = " .
+                                  showsPrec d (getField @"conservativeRasterizationMode" x) .
+                                    showString ", " .
+                                      showString "extraPrimitiveOverestimationSize = " .
+                                        showsPrec d (getField @"extraPrimitiveOverestimationSize" x)
+                                          . showChar '}'
+
+-- | > typedef struct VkPipelineRasterizationStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     VkPipelineRasterizationStateCreateFlags    flags;
+--   >     VkBool32               depthClampEnable;
+--   >     VkBool32               rasterizerDiscardEnable;
+--   >     VkPolygonMode          polygonMode;
+--   >     VkCullModeFlags        cullMode;
+--   >     VkFrontFace            frontFace;
+--   >     VkBool32               depthBiasEnable;
+--   >     float                  depthBiasConstantFactor;
+--   >     float                  depthBiasClamp;
+--   >     float                  depthBiasSlopeFactor;
+--   >     float                  lineWidth;
+--   > } VkPipelineRasterizationStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationStateCreateInfo VkPipelineRasterizationStateCreateInfo registry at www.khronos.org>
+data VkPipelineRasterizationStateCreateInfo = VkPipelineRasterizationStateCreateInfo## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkPipelineRasterizationStateCreateInfo where
+        (VkPipelineRasterizationStateCreateInfo## a _) ==
+          x@(VkPipelineRasterizationStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineRasterizationStateCreateInfo where
+        (VkPipelineRasterizationStateCreateInfo## a _) `compare`
+          x@(VkPipelineRasterizationStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineRasterizationStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineRasterizationStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineRasterizationStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineRasterizationStateCreateInfo
+         where
+        unsafeAddr (VkPipelineRasterizationStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineRasterizationStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineRasterizationStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineRasterizationStateCreateInfo where
+        type StructFields VkPipelineRasterizationStateCreateInfo =
+             '["sType", "pNext", "flags", "depthClampEnable", -- ' closing tick for hsc2hs
+               "rasterizerDiscardEnable", "polygonMode", "cullMode", "frontFace",
+               "depthBiasEnable", "depthBiasConstantFactor", "depthBiasClamp",
+               "depthBiasSlopeFactor", "lineWidth"]
+        type CUnionType VkPipelineRasterizationStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineRasterizationStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineRasterizationStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "sType" VkPipelineRasterizationStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineRasterizationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineRasterizationStateCreateInfo =
+             #{offset VkPipelineRasterizationStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineRasterizationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineRasterizationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineRasterizationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "pNext" VkPipelineRasterizationStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineRasterizationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineRasterizationStateCreateInfo =
+             #{offset VkPipelineRasterizationStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineRasterizationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineRasterizationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineRasterizationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "flags" VkPipelineRasterizationStateCreateInfo =
+             VkPipelineRasterizationStateCreateFlags
+        type FieldOptional "flags" VkPipelineRasterizationStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineRasterizationStateCreateInfo =
+             #{offset VkPipelineRasterizationStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineRasterizationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineRasterizationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineRasterizationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthClampEnable" VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "depthClampEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = VkBool32
+        type FieldOptional "depthClampEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthClampEnable"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
+        type FieldIsArray "depthClampEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthClampEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthClampEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "rasterizerDiscardEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "rasterizerDiscardEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = VkBool32
+        type FieldOptional "rasterizerDiscardEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "rasterizerDiscardEnable"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
+        type FieldIsArray "rasterizerDiscardEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "rasterizerDiscardEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "rasterizerDiscardEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "polygonMode" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "polygonMode" VkPipelineRasterizationStateCreateInfo
+             = VkPolygonMode
+        type FieldOptional "polygonMode"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "polygonMode"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
+        type FieldIsArray "polygonMode"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "polygonMode" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, polygonMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "polygonMode" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "cullMode" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "cullMode" VkPipelineRasterizationStateCreateInfo =
+             VkCullModeFlags
+        type FieldOptional "cullMode"
+               VkPipelineRasterizationStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "cullMode" VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
+        type FieldIsArray "cullMode" VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "cullMode" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, cullMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "cullMode" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "frontFace" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "frontFace" VkPipelineRasterizationStateCreateInfo =
+             VkFrontFace
+        type FieldOptional "frontFace"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "frontFace" VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
+        type FieldIsArray "frontFace"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "frontFace" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, frontFace})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "frontFace" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBiasEnable" VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "depthBiasEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = VkBool32
+        type FieldOptional "depthBiasEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBiasEnable"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
+        type FieldIsArray "depthBiasEnable"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBiasEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBiasEnable"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBiasConstantFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "depthBiasConstantFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = #{type float}
+        type FieldOptional "depthBiasConstantFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBiasConstantFactor"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
+        type FieldIsArray "depthBiasConstantFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBiasConstantFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBiasConstantFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBiasClamp" VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "depthBiasClamp"
+               VkPipelineRasterizationStateCreateInfo
+             = #{type float}
+        type FieldOptional "depthBiasClamp"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBiasClamp"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
+        type FieldIsArray "depthBiasClamp"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBiasClamp"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBiasClamp"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthBiasSlopeFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        type FieldType "depthBiasSlopeFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = #{type float}
+        type FieldOptional "depthBiasSlopeFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthBiasSlopeFactor"
+               VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
+        type FieldIsArray "depthBiasSlopeFactor"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthBiasSlopeFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthBiasSlopeFactor"
+           VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
+
+instance {-# OVERLAPPING #-}
+         HasField "lineWidth" VkPipelineRasterizationStateCreateInfo where
+        type FieldType "lineWidth" VkPipelineRasterizationStateCreateInfo =
+             #{type float}
+        type FieldOptional "lineWidth"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "lineWidth" VkPipelineRasterizationStateCreateInfo
+             =
+             #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
+        type FieldIsArray "lineWidth"
+               VkPipelineRasterizationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "lineWidth" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, lineWidth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "lineWidth" VkPipelineRasterizationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
+
+instance Show VkPipelineRasterizationStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineRasterizationStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "depthClampEnable = " .
+                                  showsPrec d (getField @"depthClampEnable" x) .
+                                    showString ", " .
+                                      showString "rasterizerDiscardEnable = " .
+                                        showsPrec d (getField @"rasterizerDiscardEnable" x) .
+                                          showString ", " .
+                                            showString "polygonMode = " .
+                                              showsPrec d (getField @"polygonMode" x) .
+                                                showString ", " .
+                                                  showString "cullMode = " .
+                                                    showsPrec d (getField @"cullMode" x) .
+                                                      showString ", " .
+                                                        showString "frontFace = " .
+                                                          showsPrec d (getField @"frontFace" x) .
+                                                            showString ", " .
+                                                              showString "depthBiasEnable = " .
+                                                                showsPrec d
+                                                                  (getField @"depthBiasEnable" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "depthBiasConstantFactor = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"depthBiasConstantFactor"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "depthBiasClamp = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"depthBiasClamp"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "depthBiasSlopeFactor = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"depthBiasSlopeFactor"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "lineWidth = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"lineWidth"
+                                                                                             x)
+                                                                                          .
+                                                                                          showChar
+                                                                                            '}'
+
+-- | > typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkRasterizationOrderAMD          rasterizationOrder;
+--   > } VkPipelineRasterizationStateRasterizationOrderAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineRasterizationStateRasterizationOrderAMD VkPipelineRasterizationStateRasterizationOrderAMD registry at www.khronos.org>
+data VkPipelineRasterizationStateRasterizationOrderAMD = VkPipelineRasterizationStateRasterizationOrderAMD## Addr##
+                                                                                                            ByteArray##
+
+instance Eq VkPipelineRasterizationStateRasterizationOrderAMD where
+        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) ==
+          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) `compare`
+          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        sizeOf ~_
+          = #{size VkPipelineRasterizationStateRasterizationOrderAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineRasterizationStateRasterizationOrderAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        unsafeAddr (VkPipelineRasterizationStateRasterizationOrderAMD## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineRasterizationStateRasterizationOrderAMD## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineRasterizationStateRasterizationOrderAMD##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        type StructFields VkPipelineRasterizationStateRasterizationOrderAMD
+             = '["sType", "pNext", "rasterizationOrder"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineRasterizationStateRasterizationOrderAMD =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = '[VkPipelineRasterizationStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        type FieldType "sType"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             =
+             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
+        type FieldIsArray "sType"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        type FieldType "pNext"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             =
+             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "rasterizationOrder"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        type FieldType "rasterizationOrder"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = VkRasterizationOrderAMD
+        type FieldOptional "rasterizationOrder"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "rasterizationOrder"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             =
+             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
+        type FieldIsArray "rasterizationOrder"
+               VkPipelineRasterizationStateRasterizationOrderAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "rasterizationOrder"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "rasterizationOrder"
+           VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
+
+instance Show VkPipelineRasterizationStateRasterizationOrderAMD
+         where
+        showsPrec d x
+          = showString "VkPipelineRasterizationStateRasterizationOrderAMD {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "rasterizationOrder = " .
+                            showsPrec d (getField @"rasterizationOrder" x) . showChar '}'
+
+-- | > typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBool32                         sampleLocationsEnable;
+--   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
+--   > } VkPipelineSampleLocationsStateCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineSampleLocationsStateCreateInfoEXT VkPipelineSampleLocationsStateCreateInfoEXT registry at www.khronos.org>
+data VkPipelineSampleLocationsStateCreateInfoEXT = VkPipelineSampleLocationsStateCreateInfoEXT## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkPipelineSampleLocationsStateCreateInfoEXT where
+        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) ==
+          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineSampleLocationsStateCreateInfoEXT where
+        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) `compare`
+          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineSampleLocationsStateCreateInfoEXT where
+        sizeOf ~_
+          = #{size VkPipelineSampleLocationsStateCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineSampleLocationsStateCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        unsafeAddr (VkPipelineSampleLocationsStateCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineSampleLocationsStateCreateInfoEXT## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineSampleLocationsStateCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        type StructFields VkPipelineSampleLocationsStateCreateInfoEXT =
+             '["sType", "pNext", "sampleLocationsEnable", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineSampleLocationsStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineSampleLocationsStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineSampleLocationsStateCreateInfoEXT =
+             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineSampleLocationsStateCreateInfoEXT where
+        type FieldType "sType" VkPipelineSampleLocationsStateCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             =
+             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT where
+        type FieldType "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             =
+             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsEnable"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        type FieldType "sampleLocationsEnable"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = VkBool32
+        type FieldOptional "sampleLocationsEnable"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsEnable"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             =
+             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
+        type FieldIsArray "sampleLocationsEnable"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsEnable"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsEnable"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsInfo"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        type FieldType "sampleLocationsInfo"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = VkSampleLocationsInfoEXT
+        type FieldOptional "sampleLocationsInfo"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsInfo"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             =
+             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
+        type FieldIsArray "sampleLocationsInfo"
+               VkPipelineSampleLocationsStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsInfo"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsInfo"
+           VkPipelineSampleLocationsStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
+
+instance Show VkPipelineSampleLocationsStateCreateInfoEXT where
+        showsPrec d x
+          = showString "VkPipelineSampleLocationsStateCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "sampleLocationsEnable = " .
+                            showsPrec d (getField @"sampleLocationsEnable" x) .
+                              showString ", " .
+                                showString "sampleLocationsInfo = " .
+                                  showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
+
+-- | > typedef struct VkPipelineShaderStageCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineShaderStageCreateFlags    flags;
+--   >     VkShaderStageFlagBits  stage;
+--   >     VkShaderModule         module;
+--   >     const char*            pName;
+--   >     const VkSpecializationInfo* pSpecializationInfo;
+--   > } VkPipelineShaderStageCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineShaderStageCreateInfo VkPipelineShaderStageCreateInfo registry at www.khronos.org>
+data VkPipelineShaderStageCreateInfo = VkPipelineShaderStageCreateInfo## Addr##
+                                                                        ByteArray##
+
+instance Eq VkPipelineShaderStageCreateInfo where
+        (VkPipelineShaderStageCreateInfo## a _) ==
+          x@(VkPipelineShaderStageCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineShaderStageCreateInfo where
+        (VkPipelineShaderStageCreateInfo## a _) `compare`
+          x@(VkPipelineShaderStageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineShaderStageCreateInfo where
+        sizeOf ~_ = #{size VkPipelineShaderStageCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineShaderStageCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineShaderStageCreateInfo where
+        unsafeAddr (VkPipelineShaderStageCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineShaderStageCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineShaderStageCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineShaderStageCreateInfo where
+        type StructFields VkPipelineShaderStageCreateInfo =
+             '["sType", "pNext", "flags", "stage", "module", "pName", -- ' closing tick for hsc2hs
+               "pSpecializationInfo"]
+        type CUnionType VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineShaderStageCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineShaderStageCreateInfo where
+        type FieldType "sType" VkPipelineShaderStageCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineShaderStageCreateInfo where
+        type FieldType "pNext" VkPipelineShaderStageCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineShaderStageCreateInfo where
+        type FieldType "flags" VkPipelineShaderStageCreateInfo =
+             VkPipelineShaderStageCreateFlags
+        type FieldOptional "flags" VkPipelineShaderStageCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "stage" VkPipelineShaderStageCreateInfo where
+        type FieldType "stage" VkPipelineShaderStageCreateInfo =
+             VkShaderStageFlagBits
+        type FieldOptional "stage" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stage" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, stage}
+        type FieldIsArray "stage" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stage" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, stage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stage" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, stage}
+
+instance {-# OVERLAPPING #-}
+         HasField "module" VkPipelineShaderStageCreateInfo where
+        type FieldType "module" VkPipelineShaderStageCreateInfo =
+             VkShaderModule
+        type FieldOptional "module" VkPipelineShaderStageCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "module" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, module}
+        type FieldIsArray "module" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, module}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "module" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, module})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, module}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "module" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, module}
+
+instance {-# OVERLAPPING #-}
+         HasField "pName" VkPipelineShaderStageCreateInfo where
+        type FieldType "pName" VkPipelineShaderStageCreateInfo = CString
+        type FieldOptional "pName" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pName" VkPipelineShaderStageCreateInfo =
+             #{offset VkPipelineShaderStageCreateInfo, pName}
+        type FieldIsArray "pName" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, pName}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pName" VkPipelineShaderStageCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pName})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pName}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pName" VkPipelineShaderStageCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pName}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
+         where
+        type FieldType "pSpecializationInfo"
+               VkPipelineShaderStageCreateInfo
+             = Ptr VkSpecializationInfo
+        type FieldOptional "pSpecializationInfo"
+               VkPipelineShaderStageCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pSpecializationInfo"
+               VkPipelineShaderStageCreateInfo
+             =
+             #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
+        type FieldIsArray "pSpecializationInfo"
+               VkPipelineShaderStageCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
+
+instance Show VkPipelineShaderStageCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineShaderStageCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "stage = " .
+                                  showsPrec d (getField @"stage" x) .
+                                    showString ", " .
+                                      showString "module = " .
+                                        showsPrec d (getField @"module" x) .
+                                          showString ", " .
+                                            showString "pName = " .
+                                              showsPrec d (getField @"pName" x) .
+                                                showString ", " .
+                                                  showString "pSpecializationInfo = " .
+                                                    showsPrec d (getField @"pSpecializationInfo" x)
+                                                      . showChar '}'
+
+-- | > typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkTessellationDomainOrigin    domainOrigin;
+--   > } VkPipelineTessellationDomainOriginStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfo registry at www.khronos.org>
+data VkPipelineTessellationDomainOriginStateCreateInfo = VkPipelineTessellationDomainOriginStateCreateInfo## Addr##
+                                                                                                            ByteArray##
+
+instance Eq VkPipelineTessellationDomainOriginStateCreateInfo where
+        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) ==
+          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) `compare`
+          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        sizeOf ~_
+          = #{size VkPipelineTessellationDomainOriginStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineTessellationDomainOriginStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        unsafeAddr (VkPipelineTessellationDomainOriginStateCreateInfo## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineTessellationDomainOriginStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineTessellationDomainOriginStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        type StructFields VkPipelineTessellationDomainOriginStateCreateInfo
+             = '["sType", "pNext", "domainOrigin"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineTessellationDomainOriginStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type StructExtends
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = '[VkPipelineTessellationStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        type FieldType "sType"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             =
+             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
+        type FieldIsArray "sType"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        type FieldType "pNext"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             =
+             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "domainOrigin"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        type FieldType "domainOrigin"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = VkTessellationDomainOrigin
+        type FieldOptional "domainOrigin"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "domainOrigin"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             =
+             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
+        type FieldIsArray "domainOrigin"
+               VkPipelineTessellationDomainOriginStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "domainOrigin"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "domainOrigin"
+           VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
+
+instance Show VkPipelineTessellationDomainOriginStateCreateInfo
+         where
+        showsPrec d x
+          = showString "VkPipelineTessellationDomainOriginStateCreateInfo {"
+              .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "domainOrigin = " .
+                            showsPrec d (getField @"domainOrigin" x) . showChar '}'
+
+-- | Alias for `VkPipelineTessellationDomainOriginStateCreateInfo`
+type VkPipelineTessellationDomainOriginStateCreateInfoKHR =
+     VkPipelineTessellationDomainOriginStateCreateInfo
+
+-- | > typedef struct VkPipelineTessellationStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineTessellationStateCreateFlags    flags;
+--   >     uint32_t               patchControlPoints;
+--   > } VkPipelineTessellationStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineTessellationStateCreateInfo VkPipelineTessellationStateCreateInfo registry at www.khronos.org>
+data VkPipelineTessellationStateCreateInfo = VkPipelineTessellationStateCreateInfo## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkPipelineTessellationStateCreateInfo where
+        (VkPipelineTessellationStateCreateInfo## a _) ==
+          x@(VkPipelineTessellationStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineTessellationStateCreateInfo where
+        (VkPipelineTessellationStateCreateInfo## a _) `compare`
+          x@(VkPipelineTessellationStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineTessellationStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineTessellationStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineTessellationStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineTessellationStateCreateInfo
+         where
+        unsafeAddr (VkPipelineTessellationStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineTessellationStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineTessellationStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineTessellationStateCreateInfo where
+        type StructFields VkPipelineTessellationStateCreateInfo =
+             '["sType", "pNext", "flags", "patchControlPoints"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineTessellationStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineTessellationStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineTessellationStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineTessellationStateCreateInfo where
+        type FieldType "sType" VkPipelineTessellationStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineTessellationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineTessellationStateCreateInfo =
+             #{offset VkPipelineTessellationStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineTessellationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineTessellationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineTessellationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineTessellationStateCreateInfo where
+        type FieldType "pNext" VkPipelineTessellationStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineTessellationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineTessellationStateCreateInfo =
+             #{offset VkPipelineTessellationStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineTessellationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineTessellationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineTessellationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineTessellationStateCreateInfo where
+        type FieldType "flags" VkPipelineTessellationStateCreateInfo =
+             VkPipelineTessellationStateCreateFlags
+        type FieldOptional "flags" VkPipelineTessellationStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineTessellationStateCreateInfo =
+             #{offset VkPipelineTessellationStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineTessellationStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineTessellationStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineTessellationStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "patchControlPoints" VkPipelineTessellationStateCreateInfo
+         where
+        type FieldType "patchControlPoints"
+               VkPipelineTessellationStateCreateInfo
+             = Word32
+        type FieldOptional "patchControlPoints"
+               VkPipelineTessellationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "patchControlPoints"
+               VkPipelineTessellationStateCreateInfo
+             =
+             #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
+        type FieldIsArray "patchControlPoints"
+               VkPipelineTessellationStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "patchControlPoints"
+           VkPipelineTessellationStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "patchControlPoints"
+           VkPipelineTessellationStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
+
+instance Show VkPipelineTessellationStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineTessellationStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "patchControlPoints = " .
+                                  showsPrec d (getField @"patchControlPoints" x) . showChar '}'
+
+-- | > typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                         pNext;
+--   >     uint32_t                            vertexBindingDivisorCount;
+--   >     const VkVertexInputBindingDivisorDescriptionEXT*      pVertexBindingDivisors;
+--   > } VkPipelineVertexInputDivisorStateCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineVertexInputDivisorStateCreateInfoEXT VkPipelineVertexInputDivisorStateCreateInfoEXT registry at www.khronos.org>
+data VkPipelineVertexInputDivisorStateCreateInfoEXT = VkPipelineVertexInputDivisorStateCreateInfoEXT## Addr##
+                                                                                                      ByteArray##
+
+instance Eq VkPipelineVertexInputDivisorStateCreateInfoEXT where
+        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) ==
+          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineVertexInputDivisorStateCreateInfoEXT where
+        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) `compare`
+          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        sizeOf ~_
+          = #{size VkPipelineVertexInputDivisorStateCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineVertexInputDivisorStateCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        unsafeAddr (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkPipelineVertexInputDivisorStateCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineVertexInputDivisorStateCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        type StructFields VkPipelineVertexInputDivisorStateCreateInfoEXT =
+             '["sType", "pNext", "vertexBindingDivisorCount", -- ' closing tick for hsc2hs
+               "pVertexBindingDivisors"]
+        type CUnionType VkPipelineVertexInputDivisorStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineVertexInputDivisorStateCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineVertexInputDivisorStateCreateInfoEXT =
+             '[VkPipelineVertexInputStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        type FieldType "sType"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             =
+             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        type FieldType "pNext"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             =
+             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexBindingDivisorCount"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        type FieldType "vertexBindingDivisorCount"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = Word32
+        type FieldOptional "vertexBindingDivisorCount"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "vertexBindingDivisorCount"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             =
+             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
+        type FieldIsArray "vertexBindingDivisorCount"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexBindingDivisorCount"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexBindingDivisorCount"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pVertexBindingDivisors"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        type FieldType "pVertexBindingDivisors"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = Ptr VkVertexInputBindingDivisorDescriptionEXT
+        type FieldOptional "pVertexBindingDivisors"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pVertexBindingDivisors"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             =
+             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
+        type FieldIsArray "pVertexBindingDivisors"
+               VkPipelineVertexInputDivisorStateCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pVertexBindingDivisors"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pVertexBindingDivisors"
+           VkPipelineVertexInputDivisorStateCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
+
+instance Show VkPipelineVertexInputDivisorStateCreateInfoEXT where
+        showsPrec d x
+          = showString "VkPipelineVertexInputDivisorStateCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "vertexBindingDivisorCount = " .
+                            showsPrec d (getField @"vertexBindingDivisorCount" x) .
+                              showString ", " .
+                                showString "pVertexBindingDivisors = " .
+                                  showsPrec d (getField @"pVertexBindingDivisors" x) . showChar '}'
+
+-- | > typedef struct VkPipelineVertexInputStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineVertexInputStateCreateFlags    flags;
+--   >     uint32_t               vertexBindingDescriptionCount;
+--   >     const VkVertexInputBindingDescription* pVertexBindingDescriptions;
+--   >     uint32_t               vertexAttributeDescriptionCount;
+--   >     const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
+--   > } VkPipelineVertexInputStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineVertexInputStateCreateInfo VkPipelineVertexInputStateCreateInfo registry at www.khronos.org>
+data VkPipelineVertexInputStateCreateInfo = VkPipelineVertexInputStateCreateInfo## Addr##
+                                                                                  ByteArray##
+
+instance Eq VkPipelineVertexInputStateCreateInfo where
+        (VkPipelineVertexInputStateCreateInfo## a _) ==
+          x@(VkPipelineVertexInputStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineVertexInputStateCreateInfo where
+        (VkPipelineVertexInputStateCreateInfo## a _) `compare`
+          x@(VkPipelineVertexInputStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineVertexInputStateCreateInfo where
+        sizeOf ~_
+          = #{size VkPipelineVertexInputStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineVertexInputStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineVertexInputStateCreateInfo
+         where
+        unsafeAddr (VkPipelineVertexInputStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineVertexInputStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineVertexInputStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineVertexInputStateCreateInfo where
+        type StructFields VkPipelineVertexInputStateCreateInfo =
+             '["sType", "pNext", "flags", "vertexBindingDescriptionCount", -- ' closing tick for hsc2hs
+               "pVertexBindingDescriptions", "vertexAttributeDescriptionCount",
+               "pVertexAttributeDescriptions"]
+        type CUnionType VkPipelineVertexInputStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineVertexInputStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineVertexInputStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineVertexInputStateCreateInfo where
+        type FieldType "sType" VkPipelineVertexInputStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineVertexInputStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineVertexInputStateCreateInfo =
+             #{offset VkPipelineVertexInputStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineVertexInputStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineVertexInputStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineVertexInputStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineVertexInputStateCreateInfo where
+        type FieldType "pNext" VkPipelineVertexInputStateCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkPipelineVertexInputStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineVertexInputStateCreateInfo =
+             #{offset VkPipelineVertexInputStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineVertexInputStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineVertexInputStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineVertexInputStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineVertexInputStateCreateInfo where
+        type FieldType "flags" VkPipelineVertexInputStateCreateInfo =
+             VkPipelineVertexInputStateCreateFlags
+        type FieldOptional "flags" VkPipelineVertexInputStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineVertexInputStateCreateInfo =
+             #{offset VkPipelineVertexInputStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineVertexInputStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineVertexInputStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineVertexInputStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexBindingDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        type FieldType "vertexBindingDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = Word32
+        type FieldOptional "vertexBindingDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "vertexBindingDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             =
+             #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
+        type FieldIsArray "vertexBindingDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexBindingDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexBindingDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pVertexBindingDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        type FieldType "pVertexBindingDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = Ptr VkVertexInputBindingDescription
+        type FieldOptional "pVertexBindingDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pVertexBindingDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             =
+             #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
+        type FieldIsArray "pVertexBindingDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pVertexBindingDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pVertexBindingDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
+
+instance {-# OVERLAPPING #-}
+         HasField "vertexAttributeDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        type FieldType "vertexAttributeDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = Word32
+        type FieldOptional "vertexAttributeDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "vertexAttributeDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             =
+             #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
+        type FieldIsArray "vertexAttributeDescriptionCount"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "vertexAttributeDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "vertexAttributeDescriptionCount"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pVertexAttributeDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        type FieldType "pVertexAttributeDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = Ptr VkVertexInputAttributeDescription
+        type FieldOptional "pVertexAttributeDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pVertexAttributeDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             =
+             #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
+        type FieldIsArray "pVertexAttributeDescriptions"
+               VkPipelineVertexInputStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pVertexAttributeDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pVertexAttributeDescriptions"
+           VkPipelineVertexInputStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
+
+instance Show VkPipelineVertexInputStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineVertexInputStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "vertexBindingDescriptionCount = " .
+                                  showsPrec d (getField @"vertexBindingDescriptionCount" x) .
+                                    showString ", " .
+                                      showString "pVertexBindingDescriptions = " .
+                                        showsPrec d (getField @"pVertexBindingDescriptions" x) .
+                                          showString ", " .
+                                            showString "vertexAttributeDescriptionCount = " .
+                                              showsPrec d
+                                                (getField @"vertexAttributeDescriptionCount" x)
+                                                .
+                                                showString ", " .
+                                                  showString "pVertexAttributeDescriptions = " .
+                                                    showsPrec d
+                                                      (getField @"pVertexAttributeDescriptions" x)
+                                                      . showChar '}'
+
+-- | > typedef struct VkPipelineViewportStateCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineViewportStateCreateFlags    flags;
+--   >     uint32_t               viewportCount;
+--   >     const VkViewport*      pViewports;
+--   >     uint32_t               scissorCount;
+--   >     const VkRect2D*        pScissors;
+--   > } VkPipelineViewportStateCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportStateCreateInfo VkPipelineViewportStateCreateInfo registry at www.khronos.org>
+data VkPipelineViewportStateCreateInfo = VkPipelineViewportStateCreateInfo## Addr##
+                                                                            ByteArray##
+
+instance Eq VkPipelineViewportStateCreateInfo where
+        (VkPipelineViewportStateCreateInfo## a _) ==
+          x@(VkPipelineViewportStateCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineViewportStateCreateInfo where
+        (VkPipelineViewportStateCreateInfo## a _) `compare`
+          x@(VkPipelineViewportStateCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineViewportStateCreateInfo where
+        sizeOf ~_ = #{size VkPipelineViewportStateCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineViewportStateCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPipelineViewportStateCreateInfo where
+        unsafeAddr (VkPipelineViewportStateCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineViewportStateCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineViewportStateCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineViewportStateCreateInfo where
+        type StructFields VkPipelineViewportStateCreateInfo =
+             '["sType", "pNext", "flags", "viewportCount", "pViewports", -- ' closing tick for hsc2hs
+               "scissorCount", "pScissors"]
+        type CUnionType VkPipelineViewportStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineViewportStateCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineViewportStateCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineViewportStateCreateInfo where
+        type FieldType "sType" VkPipelineViewportStateCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, sType}
+        type FieldIsArray "sType" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineViewportStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineViewportStateCreateInfo where
+        type FieldType "pNext" VkPipelineViewportStateCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, pNext}
+        type FieldIsArray "pNext" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineViewportStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineViewportStateCreateInfo where
+        type FieldType "flags" VkPipelineViewportStateCreateInfo =
+             VkPipelineViewportStateCreateFlags
+        type FieldOptional "flags" VkPipelineViewportStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, flags}
+        type FieldIsArray "flags" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineViewportStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportCount" VkPipelineViewportStateCreateInfo where
+        type FieldType "viewportCount" VkPipelineViewportStateCreateInfo =
+             Word32
+        type FieldOptional "viewportCount"
+               VkPipelineViewportStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportCount" VkPipelineViewportStateCreateInfo
+             =
+             #{offset VkPipelineViewportStateCreateInfo, viewportCount}
+        type FieldIsArray "viewportCount" VkPipelineViewportStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportCount" VkPipelineViewportStateCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, viewportCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportCount" VkPipelineViewportStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewports" VkPipelineViewportStateCreateInfo where
+        type FieldType "pViewports" VkPipelineViewportStateCreateInfo =
+             Ptr VkViewport
+        type FieldOptional "pViewports" VkPipelineViewportStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pViewports" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, pViewports}
+        type FieldIsArray "pViewports" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, pViewports}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewports" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pViewports})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pViewports}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewports" VkPipelineViewportStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pViewports}
+
+instance {-# OVERLAPPING #-}
+         HasField "scissorCount" VkPipelineViewportStateCreateInfo where
+        type FieldType "scissorCount" VkPipelineViewportStateCreateInfo =
+             Word32
+        type FieldOptional "scissorCount" VkPipelineViewportStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "scissorCount" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, scissorCount}
+        type FieldIsArray "scissorCount" VkPipelineViewportStateCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, scissorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "scissorCount" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, scissorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, scissorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "scissorCount" VkPipelineViewportStateCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, scissorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pScissors" VkPipelineViewportStateCreateInfo where
+        type FieldType "pScissors" VkPipelineViewportStateCreateInfo =
+             Ptr VkRect2D
+        type FieldOptional "pScissors" VkPipelineViewportStateCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pScissors" VkPipelineViewportStateCreateInfo =
+             #{offset VkPipelineViewportStateCreateInfo, pScissors}
+        type FieldIsArray "pScissors" VkPipelineViewportStateCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportStateCreateInfo, pScissors}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pScissors" VkPipelineViewportStateCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pScissors})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pScissors}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pScissors" VkPipelineViewportStateCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pScissors}
+
+instance Show VkPipelineViewportStateCreateInfo where
+        showsPrec d x
+          = showString "VkPipelineViewportStateCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "viewportCount = " .
+                                  showsPrec d (getField @"viewportCount" x) .
+                                    showString ", " .
+                                      showString "pViewports = " .
+                                        showsPrec d (getField @"pViewports" x) .
+                                          showString ", " .
+                                            showString "scissorCount = " .
+                                              showsPrec d (getField @"scissorCount" x) .
+                                                showString ", " .
+                                                  showString "pScissors = " .
+                                                    showsPrec d (getField @"pScissors" x) .
+                                                      showChar '}'
+
+-- | > typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
+--   >     uint32_t               viewportCount;
+--   >     const VkViewportSwizzleNV*      pViewportSwizzles;
+--   > } VkPipelineViewportSwizzleStateCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportSwizzleStateCreateInfoNV VkPipelineViewportSwizzleStateCreateInfoNV registry at www.khronos.org>
+data VkPipelineViewportSwizzleStateCreateInfoNV = VkPipelineViewportSwizzleStateCreateInfoNV## Addr##
+                                                                                              ByteArray##
+
+instance Eq VkPipelineViewportSwizzleStateCreateInfoNV where
+        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) ==
+          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineViewportSwizzleStateCreateInfoNV where
+        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) `compare`
+          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineViewportSwizzleStateCreateInfoNV where
+        sizeOf ~_
+          = #{size VkPipelineViewportSwizzleStateCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineViewportSwizzleStateCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        unsafeAddr (VkPipelineViewportSwizzleStateCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineViewportSwizzleStateCreateInfoNV## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineViewportSwizzleStateCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        type StructFields VkPipelineViewportSwizzleStateCreateInfoNV =
+             '["sType", "pNext", "flags", "viewportCount", "pViewportSwizzles"] -- ' closing tick for hsc2hs
+        type CUnionType VkPipelineViewportSwizzleStateCreateInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineViewportSwizzleStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineViewportSwizzleStateCreateInfoNV =
+             '[VkPipelineViewportStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineViewportSwizzleStateCreateInfoNV where
+        type FieldType "sType" VkPipelineViewportSwizzleStateCreateInfoNV =
+             VkStructureType
+        type FieldOptional "sType"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPipelineViewportSwizzleStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
+        type FieldIsArray "sType"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV where
+        type FieldType "pNext" VkPipelineViewportSwizzleStateCreateInfoNV =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkPipelineViewportSwizzleStateCreateInfoNV where
+        type FieldType "flags" VkPipelineViewportSwizzleStateCreateInfoNV =
+             VkPipelineViewportSwizzleStateCreateFlagsNV
+        type FieldOptional "flags"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkPipelineViewportSwizzleStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
+        type FieldIsArray "flags"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportCount" VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        type FieldType "viewportCount"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = Word32
+        type FieldOptional "viewportCount"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportCount"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
+        type FieldIsArray "viewportCount"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportCount"
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportCount"
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewportSwizzles"
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        type FieldType "pViewportSwizzles"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = Ptr VkViewportSwizzleNV
+        type FieldOptional "pViewportSwizzles"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pViewportSwizzles"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
+        type FieldIsArray "pViewportSwizzles"
+               VkPipelineViewportSwizzleStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewportSwizzles"
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewportSwizzles"
+           VkPipelineViewportSwizzleStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
+
+instance Show VkPipelineViewportSwizzleStateCreateInfoNV where
+        showsPrec d x
+          = showString "VkPipelineViewportSwizzleStateCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "viewportCount = " .
+                                  showsPrec d (getField @"viewportCount" x) .
+                                    showString ", " .
+                                      showString "pViewportSwizzles = " .
+                                        showsPrec d (getField @"pViewportSwizzles" x) . showChar '}'
+
+-- | > typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkBool32               viewportWScalingEnable;
+--   >     uint32_t               viewportCount;
+--   >     const VkViewportWScalingNV*      pViewportWScalings;
+--   > } VkPipelineViewportWScalingStateCreateInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPipelineViewportWScalingStateCreateInfoNV VkPipelineViewportWScalingStateCreateInfoNV registry at www.khronos.org>
+data VkPipelineViewportWScalingStateCreateInfoNV = VkPipelineViewportWScalingStateCreateInfoNV## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkPipelineViewportWScalingStateCreateInfoNV where
+        (VkPipelineViewportWScalingStateCreateInfoNV## a _) ==
+          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPipelineViewportWScalingStateCreateInfoNV where
+        (VkPipelineViewportWScalingStateCreateInfoNV## a _) `compare`
+          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPipelineViewportWScalingStateCreateInfoNV where
+        sizeOf ~_
+          = #{size VkPipelineViewportWScalingStateCreateInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkPipelineViewportWScalingStateCreateInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        unsafeAddr (VkPipelineViewportWScalingStateCreateInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPipelineViewportWScalingStateCreateInfoNV## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPipelineViewportWScalingStateCreateInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        type StructFields VkPipelineViewportWScalingStateCreateInfoNV =
+             '["sType", "pNext", "viewportWScalingEnable", "viewportCount", -- ' closing tick for hsc2hs
+               "pViewportWScalings"]
+        type CUnionType VkPipelineViewportWScalingStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPipelineViewportWScalingStateCreateInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkPipelineViewportWScalingStateCreateInfoNV =
+             '[VkPipelineViewportStateCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPipelineViewportWScalingStateCreateInfoNV where
+        type FieldType "sType" VkPipelineViewportWScalingStateCreateInfoNV
+             = VkStructureType
+        type FieldOptional "sType"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
+        type FieldIsArray "sType"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPipelineViewportWScalingStateCreateInfoNV where
+        type FieldType "pNext" VkPipelineViewportWScalingStateCreateInfoNV
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
+        type FieldIsArray "pNext"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportWScalingEnable"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        type FieldType "viewportWScalingEnable"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = VkBool32
+        type FieldOptional "viewportWScalingEnable"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportWScalingEnable"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
+        type FieldIsArray "viewportWScalingEnable"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportWScalingEnable"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportWScalingEnable"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "viewportCount"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        type FieldType "viewportCount"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = Word32
+        type FieldOptional "viewportCount"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "viewportCount"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
+        type FieldIsArray "viewportCount"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "viewportCount"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "viewportCount"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewportWScalings"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        type FieldType "pViewportWScalings"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = Ptr VkViewportWScalingNV
+        type FieldOptional "pViewportWScalings"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pViewportWScalings"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             =
+             #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
+        type FieldIsArray "pViewportWScalings"
+               VkPipelineViewportWScalingStateCreateInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewportWScalings"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewportWScalings"
+           VkPipelineViewportWScalingStateCreateInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
+
+instance Show VkPipelineViewportWScalingStateCreateInfoNV where
+        showsPrec d x
+          = showString "VkPipelineViewportWScalingStateCreateInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "viewportWScalingEnable = " .
+                            showsPrec d (getField @"viewportWScalingEnable" x) .
+                              showString ", " .
+                                showString "viewportCount = " .
+                                  showsPrec d (getField @"viewportCount" x) .
+                                    showString ", " .
+                                      showString "pViewportWScalings = " .
+                                        showsPrec d (getField @"pViewportWScalings" x) .
+                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformAndroidKhr.hsc
@@ -0,0 +1,1816 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
+       (VkAndroidHardwareBufferFormatPropertiesANDROID(..),
+        VkAndroidHardwareBufferPropertiesANDROID(..),
+        VkAndroidHardwareBufferUsageANDROID(..),
+        VkAndroidSurfaceCreateInfoKHR(..), VkExternalFormatANDROID(..),
+        VkImportAndroidHardwareBufferInfoANDROID(..),
+        VkMemoryGetAndroidHardwareBufferInfoANDROID(..))
+       where
+import           Foreign.Storable                              (Storable (..))
+import           GHC.Base                                      (Addr##,
+                                                                ByteArray##,
+                                                                byteArrayContents##,
+                                                                plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
+import           Graphics.Vulkan.Types.Bitmasks                (VkAndroidSurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Defines                 (AHardwareBuffer,
+                                                                ANativeWindow)
+import           Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
+import           Graphics.Vulkan.Types.Enum.Format             (VkFormat, VkFormatFeatureFlags)
+import           Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerYcbcrModelConversion,
+                                                                VkSamplerYcbcrRange)
+import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                 (VkDeviceMemory)
+import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import           Graphics.Vulkan.Types.Struct.Image            (VkImageCreateInfo,
+                                                                VkImageFormatProperties2)
+import           Graphics.Vulkan.Types.Struct.Memory           (VkMemoryAllocateInfo)
+import           Graphics.Vulkan.Types.Struct.Sampler          (VkSamplerYcbcrConversionCreateInfo)
+import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+
+-- | > typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
+--   >     VkStructureType sType;
+--   >     void*                              pNext;
+--   >     VkFormat                           format;
+--   >     uint64_t                           externalFormat;
+--   >     VkFormatFeatureFlags               formatFeatures;
+--   >     VkComponentMapping                 samplerYcbcrConversionComponents;
+--   >     VkSamplerYcbcrModelConversion      suggestedYcbcrModel;
+--   >     VkSamplerYcbcrRange                suggestedYcbcrRange;
+--   >     VkChromaLocation                   suggestedXChromaOffset;
+--   >     VkChromaLocation                   suggestedYChromaOffset;
+--   > } VkAndroidHardwareBufferFormatPropertiesANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferFormatPropertiesANDROID VkAndroidHardwareBufferFormatPropertiesANDROID registry at www.khronos.org>
+data VkAndroidHardwareBufferFormatPropertiesANDROID = VkAndroidHardwareBufferFormatPropertiesANDROID## Addr##
+                                                                                                      ByteArray##
+
+instance Eq VkAndroidHardwareBufferFormatPropertiesANDROID where
+        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) ==
+          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAndroidHardwareBufferFormatPropertiesANDROID where
+        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) `compare`
+          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        sizeOf ~_
+          = #{size VkAndroidHardwareBufferFormatPropertiesANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkAndroidHardwareBufferFormatPropertiesANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        unsafeAddr (VkAndroidHardwareBufferFormatPropertiesANDROID## a _)
+          = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkAndroidHardwareBufferFormatPropertiesANDROID## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAndroidHardwareBufferFormatPropertiesANDROID##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type StructFields VkAndroidHardwareBufferFormatPropertiesANDROID =
+             '["sType", "pNext", "format", "externalFormat", "formatFeatures", -- ' closing tick for hsc2hs
+               "samplerYcbcrConversionComponents", "suggestedYcbcrModel",
+               "suggestedYcbcrRange", "suggestedXChromaOffset",
+               "suggestedYChromaOffset"]
+        type CUnionType VkAndroidHardwareBufferFormatPropertiesANDROID =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAndroidHardwareBufferFormatPropertiesANDROID =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkAndroidHardwareBufferFormatPropertiesANDROID =
+             '[VkAndroidHardwareBufferPropertiesANDROID] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "sType"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkStructureType
+        type FieldOptional "sType"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
+        type FieldIsArray "sType"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "pNext"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
+        type FieldIsArray "pNext"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "format"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkFormat
+        type FieldOptional "format"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
+        type FieldIsArray "format"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalFormat"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "externalFormat"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = Word64
+        type FieldOptional "externalFormat"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "externalFormat"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
+        type FieldIsArray "externalFormat"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalFormat"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalFormat"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
+
+instance {-# OVERLAPPING #-}
+         HasField "formatFeatures"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "formatFeatures"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkFormatFeatureFlags
+        type FieldOptional "formatFeatures"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "formatFeatures"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
+        type FieldIsArray "formatFeatures"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "formatFeatures"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "formatFeatures"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
+
+instance {-# OVERLAPPING #-}
+         HasField "samplerYcbcrConversionComponents"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "samplerYcbcrConversionComponents"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkComponentMapping
+        type FieldOptional "samplerYcbcrConversionComponents"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "samplerYcbcrConversionComponents"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
+        type FieldIsArray "samplerYcbcrConversionComponents"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "samplerYcbcrConversionComponents"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "samplerYcbcrConversionComponents"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
+
+instance {-# OVERLAPPING #-}
+         HasField "suggestedYcbcrModel"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "suggestedYcbcrModel"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkSamplerYcbcrModelConversion
+        type FieldOptional "suggestedYcbcrModel"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "suggestedYcbcrModel"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
+        type FieldIsArray "suggestedYcbcrModel"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "suggestedYcbcrModel"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "suggestedYcbcrModel"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
+
+instance {-# OVERLAPPING #-}
+         HasField "suggestedYcbcrRange"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "suggestedYcbcrRange"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkSamplerYcbcrRange
+        type FieldOptional "suggestedYcbcrRange"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "suggestedYcbcrRange"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
+        type FieldIsArray "suggestedYcbcrRange"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "suggestedYcbcrRange"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "suggestedYcbcrRange"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "suggestedXChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "suggestedXChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkChromaLocation
+        type FieldOptional "suggestedXChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "suggestedXChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
+        type FieldIsArray "suggestedXChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "suggestedXChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "suggestedXChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "suggestedYChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        type FieldType "suggestedYChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = VkChromaLocation
+        type FieldOptional "suggestedYChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "suggestedYChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
+        type FieldIsArray "suggestedYChromaOffset"
+               VkAndroidHardwareBufferFormatPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "suggestedYChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "suggestedYChromaOffset"
+           VkAndroidHardwareBufferFormatPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
+
+instance Show VkAndroidHardwareBufferFormatPropertiesANDROID where
+        showsPrec d x
+          = showString "VkAndroidHardwareBufferFormatPropertiesANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "externalFormat = " .
+                                  showsPrec d (getField @"externalFormat" x) .
+                                    showString ", " .
+                                      showString "formatFeatures = " .
+                                        showsPrec d (getField @"formatFeatures" x) .
+                                          showString ", " .
+                                            showString "samplerYcbcrConversionComponents = " .
+                                              showsPrec d
+                                                (getField @"samplerYcbcrConversionComponents" x)
+                                                .
+                                                showString ", " .
+                                                  showString "suggestedYcbcrModel = " .
+                                                    showsPrec d (getField @"suggestedYcbcrModel" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "suggestedYcbcrRange = " .
+                                                          showsPrec d
+                                                            (getField @"suggestedYcbcrRange" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "suggestedXChromaOffset = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"suggestedXChromaOffset"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "suggestedYChromaOffset = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"suggestedYChromaOffset"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | > typedef struct VkAndroidHardwareBufferPropertiesANDROID {
+--   >     VkStructureType sType;
+--   >     void*                              pNext;
+--   >     VkDeviceSize                       allocationSize;
+--   >     uint32_t                           memoryTypeBits;
+--   > } VkAndroidHardwareBufferPropertiesANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferPropertiesANDROID VkAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
+data VkAndroidHardwareBufferPropertiesANDROID = VkAndroidHardwareBufferPropertiesANDROID## Addr##
+                                                                                          ByteArray##
+
+instance Eq VkAndroidHardwareBufferPropertiesANDROID where
+        (VkAndroidHardwareBufferPropertiesANDROID## a _) ==
+          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAndroidHardwareBufferPropertiesANDROID where
+        (VkAndroidHardwareBufferPropertiesANDROID## a _) `compare`
+          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAndroidHardwareBufferPropertiesANDROID where
+        sizeOf ~_
+          = #{size VkAndroidHardwareBufferPropertiesANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkAndroidHardwareBufferPropertiesANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAndroidHardwareBufferPropertiesANDROID
+         where
+        unsafeAddr (VkAndroidHardwareBufferPropertiesANDROID## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAndroidHardwareBufferPropertiesANDROID## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAndroidHardwareBufferPropertiesANDROID##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAndroidHardwareBufferPropertiesANDROID
+         where
+        type StructFields VkAndroidHardwareBufferPropertiesANDROID =
+             '["sType", "pNext", "allocationSize", "memoryTypeBits"] -- ' closing tick for hsc2hs
+        type CUnionType VkAndroidHardwareBufferPropertiesANDROID = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAndroidHardwareBufferPropertiesANDROID = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkAndroidHardwareBufferPropertiesANDROID = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkAndroidHardwareBufferPropertiesANDROID where
+        type FieldType "sType" VkAndroidHardwareBufferPropertiesANDROID =
+             VkStructureType
+        type FieldOptional "sType" VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkAndroidHardwareBufferPropertiesANDROID =
+             #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
+        type FieldIsArray "sType" VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkAndroidHardwareBufferPropertiesANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkAndroidHardwareBufferPropertiesANDROID where
+        type FieldType "pNext" VkAndroidHardwareBufferPropertiesANDROID =
+             Ptr Void
+        type FieldOptional "pNext" VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkAndroidHardwareBufferPropertiesANDROID =
+             #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
+        type FieldIsArray "pNext" VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkAndroidHardwareBufferPropertiesANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "allocationSize" VkAndroidHardwareBufferPropertiesANDROID
+         where
+        type FieldType "allocationSize"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = VkDeviceSize
+        type FieldOptional "allocationSize"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "allocationSize"
+               VkAndroidHardwareBufferPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
+        type FieldIsArray "allocationSize"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "allocationSize"
+           VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "allocationSize"
+           VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeBits" VkAndroidHardwareBufferPropertiesANDROID
+         where
+        type FieldType "memoryTypeBits"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = Word32
+        type FieldOptional "memoryTypeBits"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeBits"
+               VkAndroidHardwareBufferPropertiesANDROID
+             =
+             #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
+        type FieldIsArray "memoryTypeBits"
+               VkAndroidHardwareBufferPropertiesANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeBits"
+           VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeBits"
+           VkAndroidHardwareBufferPropertiesANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
+
+instance Show VkAndroidHardwareBufferPropertiesANDROID where
+        showsPrec d x
+          = showString "VkAndroidHardwareBufferPropertiesANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "allocationSize = " .
+                            showsPrec d (getField @"allocationSize" x) .
+                              showString ", " .
+                                showString "memoryTypeBits = " .
+                                  showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
+
+-- | > typedef struct VkAndroidHardwareBufferUsageANDROID {
+--   >     VkStructureType sType;
+--   >     void*                              pNext;
+--   >     uint64_t                           androidHardwareBufferUsage;
+--   > } VkAndroidHardwareBufferUsageANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidHardwareBufferUsageANDROID VkAndroidHardwareBufferUsageANDROID registry at www.khronos.org>
+data VkAndroidHardwareBufferUsageANDROID = VkAndroidHardwareBufferUsageANDROID## Addr##
+                                                                                ByteArray##
+
+instance Eq VkAndroidHardwareBufferUsageANDROID where
+        (VkAndroidHardwareBufferUsageANDROID## a _) ==
+          x@(VkAndroidHardwareBufferUsageANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAndroidHardwareBufferUsageANDROID where
+        (VkAndroidHardwareBufferUsageANDROID## a _) `compare`
+          x@(VkAndroidHardwareBufferUsageANDROID## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAndroidHardwareBufferUsageANDROID where
+        sizeOf ~_ = #{size VkAndroidHardwareBufferUsageANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkAndroidHardwareBufferUsageANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAndroidHardwareBufferUsageANDROID
+         where
+        unsafeAddr (VkAndroidHardwareBufferUsageANDROID## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAndroidHardwareBufferUsageANDROID## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAndroidHardwareBufferUsageANDROID##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAndroidHardwareBufferUsageANDROID where
+        type StructFields VkAndroidHardwareBufferUsageANDROID =
+             '["sType", "pNext", "androidHardwareBufferUsage"] -- ' closing tick for hsc2hs
+        type CUnionType VkAndroidHardwareBufferUsageANDROID = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAndroidHardwareBufferUsageANDROID = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkAndroidHardwareBufferUsageANDROID =
+             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkAndroidHardwareBufferUsageANDROID where
+        type FieldType "sType" VkAndroidHardwareBufferUsageANDROID =
+             VkStructureType
+        type FieldOptional "sType" VkAndroidHardwareBufferUsageANDROID =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkAndroidHardwareBufferUsageANDROID =
+             #{offset VkAndroidHardwareBufferUsageANDROID, sType}
+        type FieldIsArray "sType" VkAndroidHardwareBufferUsageANDROID =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferUsageANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkAndroidHardwareBufferUsageANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkAndroidHardwareBufferUsageANDROID where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkAndroidHardwareBufferUsageANDROID where
+        type FieldType "pNext" VkAndroidHardwareBufferUsageANDROID =
+             Ptr Void
+        type FieldOptional "pNext" VkAndroidHardwareBufferUsageANDROID =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkAndroidHardwareBufferUsageANDROID =
+             #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
+        type FieldIsArray "pNext" VkAndroidHardwareBufferUsageANDROID =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkAndroidHardwareBufferUsageANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkAndroidHardwareBufferUsageANDROID where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "androidHardwareBufferUsage"
+           VkAndroidHardwareBufferUsageANDROID
+         where
+        type FieldType "androidHardwareBufferUsage"
+               VkAndroidHardwareBufferUsageANDROID
+             = Word64
+        type FieldOptional "androidHardwareBufferUsage"
+               VkAndroidHardwareBufferUsageANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "androidHardwareBufferUsage"
+               VkAndroidHardwareBufferUsageANDROID
+             =
+             #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
+        type FieldIsArray "androidHardwareBufferUsage"
+               VkAndroidHardwareBufferUsageANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "androidHardwareBufferUsage"
+           VkAndroidHardwareBufferUsageANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "androidHardwareBufferUsage"
+           VkAndroidHardwareBufferUsageANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
+
+instance Show VkAndroidHardwareBufferUsageANDROID where
+        showsPrec d x
+          = showString "VkAndroidHardwareBufferUsageANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "androidHardwareBufferUsage = " .
+                            showsPrec d (getField @"androidHardwareBufferUsage" x) .
+                              showChar '}'
+
+-- | > typedef struct VkAndroidSurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                                    pNext;
+--   >     VkAndroidSurfaceCreateFlagsKHR flags;
+--   >     struct ANativeWindow*    window;
+--   > } VkAndroidSurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkAndroidSurfaceCreateInfoKHR VkAndroidSurfaceCreateInfoKHR registry at www.khronos.org>
+data VkAndroidSurfaceCreateInfoKHR = VkAndroidSurfaceCreateInfoKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkAndroidSurfaceCreateInfoKHR where
+        (VkAndroidSurfaceCreateInfoKHR## a _) ==
+          x@(VkAndroidSurfaceCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkAndroidSurfaceCreateInfoKHR where
+        (VkAndroidSurfaceCreateInfoKHR## a _) `compare`
+          x@(VkAndroidSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkAndroidSurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkAndroidSurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkAndroidSurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkAndroidSurfaceCreateInfoKHR where
+        unsafeAddr (VkAndroidSurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkAndroidSurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkAndroidSurfaceCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkAndroidSurfaceCreateInfoKHR where
+        type StructFields VkAndroidSurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "window"] -- ' closing tick for hsc2hs
+        type CUnionType VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkAndroidSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkAndroidSurfaceCreateInfoKHR where
+        type FieldType "sType" VkAndroidSurfaceCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkAndroidSurfaceCreateInfoKHR =
+             #{offset VkAndroidSurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkAndroidSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkAndroidSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkAndroidSurfaceCreateInfoKHR where
+        type FieldType "pNext" VkAndroidSurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkAndroidSurfaceCreateInfoKHR =
+             #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkAndroidSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkAndroidSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkAndroidSurfaceCreateInfoKHR where
+        type FieldType "flags" VkAndroidSurfaceCreateInfoKHR =
+             VkAndroidSurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkAndroidSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkAndroidSurfaceCreateInfoKHR =
+             #{offset VkAndroidSurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkAndroidSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkAndroidSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "window" VkAndroidSurfaceCreateInfoKHR where
+        type FieldType "window" VkAndroidSurfaceCreateInfoKHR =
+             Ptr ANativeWindow
+        type FieldOptional "window" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "window" VkAndroidSurfaceCreateInfoKHR =
+             #{offset VkAndroidSurfaceCreateInfoKHR, window}
+        type FieldIsArray "window" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkAndroidSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "window" VkAndroidSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, window})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "window" VkAndroidSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, window}
+
+instance Show VkAndroidSurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkAndroidSurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "window = " .
+                                  showsPrec d (getField @"window" x) . showChar '}'
+
+-- | > typedef struct VkExternalFormatANDROID {
+--   >     VkStructureType sType;
+--   >     void*                              pNext;
+--   >     uint64_t                           externalFormat;
+--   > } VkExternalFormatANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExternalFormatANDROID VkExternalFormatANDROID registry at www.khronos.org>
+data VkExternalFormatANDROID = VkExternalFormatANDROID## Addr##
+                                                        ByteArray##
+
+instance Eq VkExternalFormatANDROID where
+        (VkExternalFormatANDROID## a _) == x@(VkExternalFormatANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExternalFormatANDROID where
+        (VkExternalFormatANDROID## a _) `compare`
+          x@(VkExternalFormatANDROID## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExternalFormatANDROID where
+        sizeOf ~_ = #{size VkExternalFormatANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkExternalFormatANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExternalFormatANDROID where
+        unsafeAddr (VkExternalFormatANDROID## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExternalFormatANDROID## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExternalFormatANDROID## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExternalFormatANDROID where
+        type StructFields VkExternalFormatANDROID =
+             '["sType", "pNext", "externalFormat"] -- ' closing tick for hsc2hs
+        type CUnionType VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExternalFormatANDROID =
+             '[VkImageCreateInfo, VkSamplerYcbcrConversionCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExternalFormatANDROID where
+        type FieldType "sType" VkExternalFormatANDROID = VkStructureType
+        type FieldOptional "sType" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExternalFormatANDROID =
+             #{offset VkExternalFormatANDROID, sType}
+        type FieldIsArray "sType" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExternalFormatANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExternalFormatANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFormatANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExternalFormatANDROID where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFormatANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExternalFormatANDROID where
+        type FieldType "pNext" VkExternalFormatANDROID = Ptr Void
+        type FieldOptional "pNext" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExternalFormatANDROID =
+             #{offset VkExternalFormatANDROID, pNext}
+        type FieldIsArray "pNext" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkExternalFormatANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExternalFormatANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFormatANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExternalFormatANDROID where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFormatANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "externalFormat" VkExternalFormatANDROID where
+        type FieldType "externalFormat" VkExternalFormatANDROID = Word64
+        type FieldOptional "externalFormat" VkExternalFormatANDROID =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "externalFormat" VkExternalFormatANDROID =
+             #{offset VkExternalFormatANDROID, externalFormat}
+        type FieldIsArray "externalFormat" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExternalFormatANDROID, externalFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "externalFormat" VkExternalFormatANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, externalFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExternalFormatANDROID, externalFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "externalFormat" VkExternalFormatANDROID where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExternalFormatANDROID, externalFormat}
+
+instance Show VkExternalFormatANDROID where
+        showsPrec d x
+          = showString "VkExternalFormatANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "externalFormat = " .
+                            showsPrec d (getField @"externalFormat" x) . showChar '}'
+
+-- | > typedef struct VkImportAndroidHardwareBufferInfoANDROID {
+--   >     VkStructureType sType;
+--   >     const void*                        pNext;
+--   >     struct AHardwareBuffer*            buffer;
+--   > } VkImportAndroidHardwareBufferInfoANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportAndroidHardwareBufferInfoANDROID VkImportAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
+data VkImportAndroidHardwareBufferInfoANDROID = VkImportAndroidHardwareBufferInfoANDROID## Addr##
+                                                                                          ByteArray##
+
+instance Eq VkImportAndroidHardwareBufferInfoANDROID where
+        (VkImportAndroidHardwareBufferInfoANDROID## a _) ==
+          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportAndroidHardwareBufferInfoANDROID where
+        (VkImportAndroidHardwareBufferInfoANDROID## a _) `compare`
+          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportAndroidHardwareBufferInfoANDROID where
+        sizeOf ~_
+          = #{size VkImportAndroidHardwareBufferInfoANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportAndroidHardwareBufferInfoANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportAndroidHardwareBufferInfoANDROID
+         where
+        unsafeAddr (VkImportAndroidHardwareBufferInfoANDROID## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportAndroidHardwareBufferInfoANDROID## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportAndroidHardwareBufferInfoANDROID##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportAndroidHardwareBufferInfoANDROID
+         where
+        type StructFields VkImportAndroidHardwareBufferInfoANDROID =
+             '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportAndroidHardwareBufferInfoANDROID = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportAndroidHardwareBufferInfoANDROID = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportAndroidHardwareBufferInfoANDROID =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportAndroidHardwareBufferInfoANDROID where
+        type FieldType "sType" VkImportAndroidHardwareBufferInfoANDROID =
+             VkStructureType
+        type FieldOptional "sType" VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportAndroidHardwareBufferInfoANDROID =
+             #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
+        type FieldIsArray "sType" VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportAndroidHardwareBufferInfoANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportAndroidHardwareBufferInfoANDROID where
+        type FieldType "pNext" VkImportAndroidHardwareBufferInfoANDROID =
+             Ptr Void
+        type FieldOptional "pNext" VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportAndroidHardwareBufferInfoANDROID =
+             #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
+        type FieldIsArray "pNext" VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportAndroidHardwareBufferInfoANDROID where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkImportAndroidHardwareBufferInfoANDROID where
+        type FieldType "buffer" VkImportAndroidHardwareBufferInfoANDROID =
+             Ptr AHardwareBuffer
+        type FieldOptional "buffer"
+               VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkImportAndroidHardwareBufferInfoANDROID
+             =
+             #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
+        type FieldIsArray "buffer" VkImportAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkImportAndroidHardwareBufferInfoANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkImportAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
+
+instance Show VkImportAndroidHardwareBufferInfoANDROID where
+        showsPrec d x
+          = showString "VkImportAndroidHardwareBufferInfoANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "buffer = " .
+                            showsPrec d (getField @"buffer" x) . showChar '}'
+
+-- | > typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
+--   >     VkStructureType sType;
+--   >     const void*                        pNext;
+--   >     VkDeviceMemory                     memory;
+--   > } VkMemoryGetAndroidHardwareBufferInfoANDROID;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetAndroidHardwareBufferInfoANDROID VkMemoryGetAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
+data VkMemoryGetAndroidHardwareBufferInfoANDROID = VkMemoryGetAndroidHardwareBufferInfoANDROID## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) ==
+          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) `compare`
+          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        sizeOf ~_
+          = #{size VkMemoryGetAndroidHardwareBufferInfoANDROID}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryGetAndroidHardwareBufferInfoANDROID}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        unsafeAddr (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryGetAndroidHardwareBufferInfoANDROID## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryGetAndroidHardwareBufferInfoANDROID##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        type StructFields VkMemoryGetAndroidHardwareBufferInfoANDROID =
+             '["sType", "pNext", "memory"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryGetAndroidHardwareBufferInfoANDROID =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryGetAndroidHardwareBufferInfoANDROID =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryGetAndroidHardwareBufferInfoANDROID =
+             '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        type FieldType "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = VkStructureType
+        type FieldOptional "sType"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             =
+             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
+        type FieldIsArray "sType"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        type FieldType "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             =
+             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
+        type FieldIsArray "pNext"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        type FieldType "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = VkDeviceMemory
+        type FieldOptional "memory"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             =
+             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
+        type FieldIsArray "memory"
+               VkMemoryGetAndroidHardwareBufferInfoANDROID
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
+
+instance Show VkMemoryGetAndroidHardwareBufferInfoANDROID where
+        showsPrec d x
+          = showString "VkMemoryGetAndroidHardwareBufferInfoANDROID {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memory = " .
+                            showsPrec d (getField @"memory" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformIosMvk.hsc
@@ -0,0 +1,221 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformIosMvk
+       (VkIOSSurfaceCreateInfoMVK(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkIOSSurfaceCreateFlagsMVK)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkIOSSurfaceCreateInfoMVK {
+--   >     VkStructureType sType;
+--   >     const void*                                    pNext;
+--   >     VkIOSSurfaceCreateFlagsMVK     flags;
+--   >     const void*                                    pView;
+--   > } VkIOSSurfaceCreateInfoMVK;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkIOSSurfaceCreateInfoMVK VkIOSSurfaceCreateInfoMVK registry at www.khronos.org>
+data VkIOSSurfaceCreateInfoMVK = VkIOSSurfaceCreateInfoMVK## Addr##
+                                                            ByteArray##
+
+instance Eq VkIOSSurfaceCreateInfoMVK where
+        (VkIOSSurfaceCreateInfoMVK## a _) ==
+          x@(VkIOSSurfaceCreateInfoMVK## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkIOSSurfaceCreateInfoMVK where
+        (VkIOSSurfaceCreateInfoMVK## a _) `compare`
+          x@(VkIOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkIOSSurfaceCreateInfoMVK where
+        sizeOf ~_ = #{size VkIOSSurfaceCreateInfoMVK}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkIOSSurfaceCreateInfoMVK}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkIOSSurfaceCreateInfoMVK where
+        unsafeAddr (VkIOSSurfaceCreateInfoMVK## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkIOSSurfaceCreateInfoMVK## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkIOSSurfaceCreateInfoMVK## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkIOSSurfaceCreateInfoMVK where
+        type StructFields VkIOSSurfaceCreateInfoMVK =
+             '["sType", "pNext", "flags", "pView"] -- ' closing tick for hsc2hs
+        type CUnionType VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkIOSSurfaceCreateInfoMVK = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkIOSSurfaceCreateInfoMVK where
+        type FieldType "sType" VkIOSSurfaceCreateInfoMVK = VkStructureType
+        type FieldOptional "sType" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkIOSSurfaceCreateInfoMVK =
+             #{offset VkIOSSurfaceCreateInfoMVK, sType}
+        type FieldIsArray "sType" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkIOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkIOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkIOSSurfaceCreateInfoMVK where
+        type FieldType "pNext" VkIOSSurfaceCreateInfoMVK = Ptr Void
+        type FieldOptional "pNext" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkIOSSurfaceCreateInfoMVK =
+             #{offset VkIOSSurfaceCreateInfoMVK, pNext}
+        type FieldIsArray "pNext" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkIOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkIOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkIOSSurfaceCreateInfoMVK where
+        type FieldType "flags" VkIOSSurfaceCreateInfoMVK =
+             VkIOSSurfaceCreateFlagsMVK
+        type FieldOptional "flags" VkIOSSurfaceCreateInfoMVK = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkIOSSurfaceCreateInfoMVK =
+             #{offset VkIOSSurfaceCreateInfoMVK, flags}
+        type FieldIsArray "flags" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkIOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkIOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pView" VkIOSSurfaceCreateInfoMVK where
+        type FieldType "pView" VkIOSSurfaceCreateInfoMVK = Ptr Void
+        type FieldOptional "pView" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pView" VkIOSSurfaceCreateInfoMVK =
+             #{offset VkIOSSurfaceCreateInfoMVK, pView}
+        type FieldIsArray "pView" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkIOSSurfaceCreateInfoMVK, pView}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pView" VkIOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, pView})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pView}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pView" VkIOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pView}
+
+instance Show VkIOSSurfaceCreateInfoMVK where
+        showsPrec d x
+          = showString "VkIOSSurfaceCreateInfoMVK {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pView = " .
+                                  showsPrec d (getField @"pView" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMacosMvk.hsc
@@ -0,0 +1,224 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformMacosMvk
+       (VkMacOSSurfaceCreateInfoMVK(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkMacOSSurfaceCreateFlagsMVK)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkMacOSSurfaceCreateInfoMVK {
+--   >     VkStructureType sType;
+--   >     const void*                                    pNext;
+--   >     VkMacOSSurfaceCreateFlagsMVK   flags;
+--   >     const void*                                    pView;
+--   > } VkMacOSSurfaceCreateInfoMVK;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMacOSSurfaceCreateInfoMVK VkMacOSSurfaceCreateInfoMVK registry at www.khronos.org>
+data VkMacOSSurfaceCreateInfoMVK = VkMacOSSurfaceCreateInfoMVK## Addr##
+                                                                ByteArray##
+
+instance Eq VkMacOSSurfaceCreateInfoMVK where
+        (VkMacOSSurfaceCreateInfoMVK## a _) ==
+          x@(VkMacOSSurfaceCreateInfoMVK## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMacOSSurfaceCreateInfoMVK where
+        (VkMacOSSurfaceCreateInfoMVK## a _) `compare`
+          x@(VkMacOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMacOSSurfaceCreateInfoMVK where
+        sizeOf ~_ = #{size VkMacOSSurfaceCreateInfoMVK}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMacOSSurfaceCreateInfoMVK}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMacOSSurfaceCreateInfoMVK where
+        unsafeAddr (VkMacOSSurfaceCreateInfoMVK## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMacOSSurfaceCreateInfoMVK## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMacOSSurfaceCreateInfoMVK##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMacOSSurfaceCreateInfoMVK where
+        type StructFields VkMacOSSurfaceCreateInfoMVK =
+             '["sType", "pNext", "flags", "pView"] -- ' closing tick for hsc2hs
+        type CUnionType VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMacOSSurfaceCreateInfoMVK = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMacOSSurfaceCreateInfoMVK where
+        type FieldType "sType" VkMacOSSurfaceCreateInfoMVK =
+             VkStructureType
+        type FieldOptional "sType" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMacOSSurfaceCreateInfoMVK =
+             #{offset VkMacOSSurfaceCreateInfoMVK, sType}
+        type FieldIsArray "sType" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMacOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMacOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMacOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMacOSSurfaceCreateInfoMVK where
+        type FieldType "pNext" VkMacOSSurfaceCreateInfoMVK = Ptr Void
+        type FieldOptional "pNext" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMacOSSurfaceCreateInfoMVK =
+             #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
+        type FieldIsArray "pNext" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMacOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMacOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkMacOSSurfaceCreateInfoMVK where
+        type FieldType "flags" VkMacOSSurfaceCreateInfoMVK =
+             VkMacOSSurfaceCreateFlagsMVK
+        type FieldOptional "flags" VkMacOSSurfaceCreateInfoMVK = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkMacOSSurfaceCreateInfoMVK =
+             #{offset VkMacOSSurfaceCreateInfoMVK, flags}
+        type FieldIsArray "flags" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMacOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkMacOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkMacOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pView" VkMacOSSurfaceCreateInfoMVK where
+        type FieldType "pView" VkMacOSSurfaceCreateInfoMVK = Ptr Void
+        type FieldOptional "pView" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pView" VkMacOSSurfaceCreateInfoMVK =
+             #{offset VkMacOSSurfaceCreateInfoMVK, pView}
+        type FieldIsArray "pView" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMacOSSurfaceCreateInfoMVK, pView}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pView" VkMacOSSurfaceCreateInfoMVK where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, pView})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pView}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pView" VkMacOSSurfaceCreateInfoMVK where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pView}
+
+instance Show VkMacOSSurfaceCreateInfoMVK where
+        showsPrec d x
+          = showString "VkMacOSSurfaceCreateInfoMVK {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "pView = " .
+                                  showsPrec d (getField @"pView" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformMirKhr.hsc
@@ -0,0 +1,261 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformMirKhr
+       (VkMirSurfaceCreateInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkMirSurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Include            (MirConnection,
+                                                           MirSurface)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkMirSurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkMirSurfaceCreateFlagsKHR   flags;
+--   >     MirConnection*                   connection;
+--   >     MirSurface*                      mirSurface;
+--   > } VkMirSurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMirSurfaceCreateInfoKHR VkMirSurfaceCreateInfoKHR registry at www.khronos.org>
+data VkMirSurfaceCreateInfoKHR = VkMirSurfaceCreateInfoKHR## Addr##
+                                                            ByteArray##
+
+instance Eq VkMirSurfaceCreateInfoKHR where
+        (VkMirSurfaceCreateInfoKHR## a _) ==
+          x@(VkMirSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMirSurfaceCreateInfoKHR where
+        (VkMirSurfaceCreateInfoKHR## a _) `compare`
+          x@(VkMirSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMirSurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkMirSurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkMirSurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMirSurfaceCreateInfoKHR where
+        unsafeAddr (VkMirSurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMirSurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMirSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMirSurfaceCreateInfoKHR where
+        type StructFields VkMirSurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "connection", "mirSurface"] -- ' closing tick for hsc2hs
+        type CUnionType VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMirSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMirSurfaceCreateInfoKHR where
+        type FieldType "sType" VkMirSurfaceCreateInfoKHR = VkStructureType
+        type FieldOptional "sType" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMirSurfaceCreateInfoKHR =
+             #{offset VkMirSurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMirSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMirSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMirSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMirSurfaceCreateInfoKHR where
+        type FieldType "pNext" VkMirSurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMirSurfaceCreateInfoKHR =
+             #{offset VkMirSurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMirSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMirSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMirSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkMirSurfaceCreateInfoKHR where
+        type FieldType "flags" VkMirSurfaceCreateInfoKHR =
+             VkMirSurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkMirSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkMirSurfaceCreateInfoKHR =
+             #{offset VkMirSurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMirSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkMirSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkMirSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "connection" VkMirSurfaceCreateInfoKHR where
+        type FieldType "connection" VkMirSurfaceCreateInfoKHR =
+             Ptr MirConnection
+        type FieldOptional "connection" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "connection" VkMirSurfaceCreateInfoKHR =
+             #{offset VkMirSurfaceCreateInfoKHR, connection}
+        type FieldIsArray "connection" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMirSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "connection" VkMirSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, connection})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "connection" VkMirSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         HasField "mirSurface" VkMirSurfaceCreateInfoKHR where
+        type FieldType "mirSurface" VkMirSurfaceCreateInfoKHR =
+             Ptr MirSurface
+        type FieldOptional "mirSurface" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mirSurface" VkMirSurfaceCreateInfoKHR =
+             #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
+        type FieldIsArray "mirSurface" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mirSurface" VkMirSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, mirSurface})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mirSurface" VkMirSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
+
+instance Show VkMirSurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkMirSurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "connection = " .
+                                  showsPrec d (getField @"connection" x) .
+                                    showString ", " .
+                                      showString "mirSurface = " .
+                                        showsPrec d (getField @"mirSurface" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformViNn.hsc
@@ -0,0 +1,216 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformViNn
+       (VkViSurfaceCreateInfoNN(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkViSurfaceCreateFlagsNN)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkViSurfaceCreateInfoNN {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkViSurfaceCreateFlagsNN   flags;
+--   >     void*                            window;
+--   > } VkViSurfaceCreateInfoNN;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViSurfaceCreateInfoNN VkViSurfaceCreateInfoNN registry at www.khronos.org>
+data VkViSurfaceCreateInfoNN = VkViSurfaceCreateInfoNN## Addr##
+                                                        ByteArray##
+
+instance Eq VkViSurfaceCreateInfoNN where
+        (VkViSurfaceCreateInfoNN## a _) == x@(VkViSurfaceCreateInfoNN## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkViSurfaceCreateInfoNN where
+        (VkViSurfaceCreateInfoNN## a _) `compare`
+          x@(VkViSurfaceCreateInfoNN## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkViSurfaceCreateInfoNN where
+        sizeOf ~_ = #{size VkViSurfaceCreateInfoNN}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkViSurfaceCreateInfoNN}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkViSurfaceCreateInfoNN where
+        unsafeAddr (VkViSurfaceCreateInfoNN## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkViSurfaceCreateInfoNN## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkViSurfaceCreateInfoNN## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkViSurfaceCreateInfoNN where
+        type StructFields VkViSurfaceCreateInfoNN =
+             '["sType", "pNext", "flags", "window"] -- ' closing tick for hsc2hs
+        type CUnionType VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkViSurfaceCreateInfoNN = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkViSurfaceCreateInfoNN where
+        type FieldType "sType" VkViSurfaceCreateInfoNN = VkStructureType
+        type FieldOptional "sType" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkViSurfaceCreateInfoNN =
+             #{offset VkViSurfaceCreateInfoNN, sType}
+        type FieldIsArray "sType" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViSurfaceCreateInfoNN, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkViSurfaceCreateInfoNN where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkViSurfaceCreateInfoNN where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkViSurfaceCreateInfoNN where
+        type FieldType "pNext" VkViSurfaceCreateInfoNN = Ptr Void
+        type FieldOptional "pNext" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkViSurfaceCreateInfoNN =
+             #{offset VkViSurfaceCreateInfoNN, pNext}
+        type FieldIsArray "pNext" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViSurfaceCreateInfoNN, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkViSurfaceCreateInfoNN where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkViSurfaceCreateInfoNN where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkViSurfaceCreateInfoNN where
+        type FieldType "flags" VkViSurfaceCreateInfoNN =
+             VkViSurfaceCreateFlagsNN
+        type FieldOptional "flags" VkViSurfaceCreateInfoNN = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkViSurfaceCreateInfoNN =
+             #{offset VkViSurfaceCreateInfoNN, flags}
+        type FieldIsArray "flags" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViSurfaceCreateInfoNN, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkViSurfaceCreateInfoNN where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkViSurfaceCreateInfoNN where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "window" VkViSurfaceCreateInfoNN where
+        type FieldType "window" VkViSurfaceCreateInfoNN = Ptr Void
+        type FieldOptional "window" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "window" VkViSurfaceCreateInfoNN =
+             #{offset VkViSurfaceCreateInfoNN, window}
+        type FieldIsArray "window" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViSurfaceCreateInfoNN, window}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "window" VkViSurfaceCreateInfoNN where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, window})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, window}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "window" VkViSurfaceCreateInfoNN where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, window}
+
+instance Show VkViSurfaceCreateInfoNN where
+        showsPrec d x
+          = showString "VkViSurfaceCreateInfoNN {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "window = " .
+                                  showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWaylandKhr.hsc
@@ -0,0 +1,264 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
+       (VkWaylandSurfaceCreateInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkWaylandSurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Include            (WlDisplay, WlSurface)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkWaylandSurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkWaylandSurfaceCreateFlagsKHR   flags;
+--   >     struct wl_display*               display;
+--   >     struct wl_surface*               surface;
+--   > } VkWaylandSurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWaylandSurfaceCreateInfoKHR VkWaylandSurfaceCreateInfoKHR registry at www.khronos.org>
+data VkWaylandSurfaceCreateInfoKHR = VkWaylandSurfaceCreateInfoKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkWaylandSurfaceCreateInfoKHR where
+        (VkWaylandSurfaceCreateInfoKHR## a _) ==
+          x@(VkWaylandSurfaceCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkWaylandSurfaceCreateInfoKHR where
+        (VkWaylandSurfaceCreateInfoKHR## a _) `compare`
+          x@(VkWaylandSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkWaylandSurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkWaylandSurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkWaylandSurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkWaylandSurfaceCreateInfoKHR where
+        unsafeAddr (VkWaylandSurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkWaylandSurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkWaylandSurfaceCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkWaylandSurfaceCreateInfoKHR where
+        type StructFields VkWaylandSurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "display", "surface"] -- ' closing tick for hsc2hs
+        type CUnionType VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkWaylandSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkWaylandSurfaceCreateInfoKHR where
+        type FieldType "sType" VkWaylandSurfaceCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkWaylandSurfaceCreateInfoKHR =
+             #{offset VkWaylandSurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWaylandSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkWaylandSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkWaylandSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkWaylandSurfaceCreateInfoKHR where
+        type FieldType "pNext" VkWaylandSurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkWaylandSurfaceCreateInfoKHR =
+             #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkWaylandSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkWaylandSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkWaylandSurfaceCreateInfoKHR where
+        type FieldType "flags" VkWaylandSurfaceCreateInfoKHR =
+             VkWaylandSurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkWaylandSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkWaylandSurfaceCreateInfoKHR =
+             #{offset VkWaylandSurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWaylandSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkWaylandSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkWaylandSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "display" VkWaylandSurfaceCreateInfoKHR where
+        type FieldType "display" VkWaylandSurfaceCreateInfoKHR =
+             Ptr WlDisplay
+        type FieldOptional "display" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "display" VkWaylandSurfaceCreateInfoKHR =
+             #{offset VkWaylandSurfaceCreateInfoKHR, display}
+        type FieldIsArray "display" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWaylandSurfaceCreateInfoKHR, display}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "display" VkWaylandSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, display})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, display}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "display" VkWaylandSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, display}
+
+instance {-# OVERLAPPING #-}
+         HasField "surface" VkWaylandSurfaceCreateInfoKHR where
+        type FieldType "surface" VkWaylandSurfaceCreateInfoKHR =
+             Ptr WlSurface
+        type FieldOptional "surface" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "surface" VkWaylandSurfaceCreateInfoKHR =
+             #{offset VkWaylandSurfaceCreateInfoKHR, surface}
+        type FieldIsArray "surface" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWaylandSurfaceCreateInfoKHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surface" VkWaylandSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, surface})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surface" VkWaylandSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, surface}
+
+instance Show VkWaylandSurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkWaylandSurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "display = " .
+                                  showsPrec d (getField @"display" x) .
+                                    showString ", " .
+                                      showString "surface = " .
+                                        showsPrec d (getField @"surface" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformWin32Khr.hsc
@@ -0,0 +1,4433 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformWin32Khr
+       (VkD3D12FenceSubmitInfoKHR(..),
+        VkExportFenceWin32HandleInfoKHR(..),
+        VkExportMemoryWin32HandleInfoKHR(..),
+        VkExportMemoryWin32HandleInfoNV(..),
+        VkExportSemaphoreWin32HandleInfoKHR(..),
+        VkFenceGetWin32HandleInfoKHR(..),
+        VkImportFenceWin32HandleInfoKHR(..),
+        VkImportMemoryWin32HandleInfoKHR(..),
+        VkImportMemoryWin32HandleInfoNV(..),
+        VkImportSemaphoreWin32HandleInfoKHR(..),
+        VkMemoryGetWin32HandleInfoKHR(..),
+        VkMemoryWin32HandlePropertiesKHR(..),
+        VkSemaphoreGetWin32HandleInfoKHR(..),
+        VkWin32KeyedMutexAcquireReleaseInfoKHR(..),
+        VkWin32KeyedMutexAcquireReleaseInfoNV(..),
+        VkWin32SurfaceCreateInfoKHR(..))
+       where
+import           Foreign.Storable                               (Storable (..))
+import           GHC.Base                                       (Addr##,
+                                                                 ByteArray##,
+                                                                 byteArrayContents##,
+                                                                 plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks                 (VkWin32SurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.External            (VkExternalFenceHandleTypeFlagBits,
+                                                                 VkExternalMemoryHandleTypeFlagBits,
+                                                                 VkExternalMemoryHandleTypeFlagsNV,
+                                                                 VkExternalSemaphoreHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.Fence               (VkFenceImportFlags)
+import           Graphics.Vulkan.Types.Enum.SemaphoreImportFlag (VkSemaphoreImportFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType       (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                  (VkDeviceMemory,
+                                                                 VkFence,
+                                                                 VkSemaphore)
+import           Graphics.Vulkan.Types.Include                  (DWORD, HANDLE,
+                                                                 HINSTANCE,
+                                                                 HWND, LPCWSTR,
+                                                                 SECURITY_ATTRIBUTES)
+import           Graphics.Vulkan.Types.Struct.Fence             (VkFenceCreateInfo)
+import           Graphics.Vulkan.Types.Struct.Memory            (VkMemoryAllocateInfo)
+import           Graphics.Vulkan.Types.Struct.Semaphore         (VkSemaphoreCreateInfo)
+import           Graphics.Vulkan.Types.Struct.SubmitInfo        (VkSubmitInfo)
+import           System.IO.Unsafe                               (unsafeDupablePerformIO)
+
+-- | > typedef struct VkD3D12FenceSubmitInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         waitSemaphoreValuesCount;
+--   >     const uint64_t* pWaitSemaphoreValues;
+--   >     uint32_t         signalSemaphoreValuesCount;
+--   >     const uint64_t* pSignalSemaphoreValues;
+--   > } VkD3D12FenceSubmitInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkD3D12FenceSubmitInfoKHR VkD3D12FenceSubmitInfoKHR registry at www.khronos.org>
+data VkD3D12FenceSubmitInfoKHR = VkD3D12FenceSubmitInfoKHR## Addr##
+                                                            ByteArray##
+
+instance Eq VkD3D12FenceSubmitInfoKHR where
+        (VkD3D12FenceSubmitInfoKHR## a _) ==
+          x@(VkD3D12FenceSubmitInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkD3D12FenceSubmitInfoKHR where
+        (VkD3D12FenceSubmitInfoKHR## a _) `compare`
+          x@(VkD3D12FenceSubmitInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkD3D12FenceSubmitInfoKHR where
+        sizeOf ~_ = #{size VkD3D12FenceSubmitInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkD3D12FenceSubmitInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkD3D12FenceSubmitInfoKHR where
+        unsafeAddr (VkD3D12FenceSubmitInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkD3D12FenceSubmitInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkD3D12FenceSubmitInfoKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkD3D12FenceSubmitInfoKHR where
+        type StructFields VkD3D12FenceSubmitInfoKHR =
+             '["sType", "pNext", "waitSemaphoreValuesCount", -- ' closing tick for hsc2hs
+               "pWaitSemaphoreValues", "signalSemaphoreValuesCount",
+               "pSignalSemaphoreValues"]
+        type CUnionType VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkD3D12FenceSubmitInfoKHR = '[VkSubmitInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkD3D12FenceSubmitInfoKHR where
+        type FieldType "sType" VkD3D12FenceSubmitInfoKHR = VkStructureType
+        type FieldOptional "sType" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkD3D12FenceSubmitInfoKHR =
+             #{offset VkD3D12FenceSubmitInfoKHR, sType}
+        type FieldIsArray "sType" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkD3D12FenceSubmitInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkD3D12FenceSubmitInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkD3D12FenceSubmitInfoKHR where
+        type FieldType "pNext" VkD3D12FenceSubmitInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkD3D12FenceSubmitInfoKHR =
+             #{offset VkD3D12FenceSubmitInfoKHR, pNext}
+        type FieldIsArray "pNext" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkD3D12FenceSubmitInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkD3D12FenceSubmitInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR where
+        type FieldType "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
+             = Word32
+        type FieldOptional "waitSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "waitSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             =
+             #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
+        type FieldIsArray "waitSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
+        type FieldType "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
+             Ptr Word64
+        type FieldOptional "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
+             #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
+        type FieldIsArray "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
+
+instance {-# OVERLAPPING #-}
+         HasField "signalSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
+         where
+        type FieldType "signalSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             = Word32
+        type FieldOptional "signalSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "signalSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             =
+             #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
+        type FieldIsArray "signalSemaphoreValuesCount"
+               VkD3D12FenceSubmitInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "signalSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "signalSemaphoreValuesCount"
+           VkD3D12FenceSubmitInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
+        type FieldType "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
+             Ptr Word64
+        type FieldOptional "pSignalSemaphoreValues"
+               VkD3D12FenceSubmitInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+             =
+             #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
+        type FieldIsArray "pSignalSemaphoreValues"
+               VkD3D12FenceSubmitInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
+
+instance Show VkD3D12FenceSubmitInfoKHR where
+        showsPrec d x
+          = showString "VkD3D12FenceSubmitInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "waitSemaphoreValuesCount = " .
+                            showsPrec d (getField @"waitSemaphoreValuesCount" x) .
+                              showString ", " .
+                                showString "pWaitSemaphoreValues = " .
+                                  showsPrec d (getField @"pWaitSemaphoreValues" x) .
+                                    showString ", " .
+                                      showString "signalSemaphoreValuesCount = " .
+                                        showsPrec d (getField @"signalSemaphoreValuesCount" x) .
+                                          showString ", " .
+                                            showString "pSignalSemaphoreValues = " .
+                                              showsPrec d (getField @"pSignalSemaphoreValues" x) .
+                                                showChar '}'
+
+-- | > typedef struct VkExportFenceWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                                pNext;
+--   >     const SECURITY_ATTRIBUTES* pAttributes;
+--   >     DWORD                                      dwAccess;
+--   >     LPCWSTR                                    name;
+--   > } VkExportFenceWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportFenceWin32HandleInfoKHR VkExportFenceWin32HandleInfoKHR registry at www.khronos.org>
+data VkExportFenceWin32HandleInfoKHR = VkExportFenceWin32HandleInfoKHR## Addr##
+                                                                        ByteArray##
+
+instance Eq VkExportFenceWin32HandleInfoKHR where
+        (VkExportFenceWin32HandleInfoKHR## a _) ==
+          x@(VkExportFenceWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportFenceWin32HandleInfoKHR where
+        (VkExportFenceWin32HandleInfoKHR## a _) `compare`
+          x@(VkExportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportFenceWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkExportFenceWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExportFenceWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportFenceWin32HandleInfoKHR where
+        unsafeAddr (VkExportFenceWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportFenceWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportFenceWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportFenceWin32HandleInfoKHR where
+        type StructFields VkExportFenceWin32HandleInfoKHR =
+             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportFenceWin32HandleInfoKHR =
+             '[VkFenceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportFenceWin32HandleInfoKHR where
+        type FieldType "sType" VkExportFenceWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportFenceWin32HandleInfoKHR =
+             #{offset VkExportFenceWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportFenceWin32HandleInfoKHR where
+        type FieldType "pNext" VkExportFenceWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportFenceWin32HandleInfoKHR =
+             #{offset VkExportFenceWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttributes" VkExportFenceWin32HandleInfoKHR where
+        type FieldType "pAttributes" VkExportFenceWin32HandleInfoKHR =
+             Ptr SECURITY_ATTRIBUTES
+        type FieldOptional "pAttributes" VkExportFenceWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pAttributes" VkExportFenceWin32HandleInfoKHR =
+             #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
+        type FieldIsArray "pAttributes" VkExportFenceWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttributes" VkExportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, pAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttributes" VkExportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "dwAccess" VkExportFenceWin32HandleInfoKHR where
+        type FieldType "dwAccess" VkExportFenceWin32HandleInfoKHR = DWORD
+        type FieldOptional "dwAccess" VkExportFenceWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dwAccess" VkExportFenceWin32HandleInfoKHR =
+             #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
+        type FieldIsArray "dwAccess" VkExportFenceWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dwAccess" VkExportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, dwAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dwAccess" VkExportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkExportFenceWin32HandleInfoKHR where
+        type FieldType "name" VkExportFenceWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkExportFenceWin32HandleInfoKHR =
+             #{offset VkExportFenceWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportFenceWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkExportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkExportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, name}
+
+instance Show VkExportFenceWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkExportFenceWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pAttributes = " .
+                            showsPrec d (getField @"pAttributes" x) .
+                              showString ", " .
+                                showString "dwAccess = " .
+                                  showsPrec d (getField @"dwAccess" x) .
+                                    showString ", " .
+                                      showString "name = " .
+                                        showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkExportMemoryWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     const SECURITY_ATTRIBUTES* pAttributes;
+--   >     DWORD                            dwAccess;
+--   >     LPCWSTR                          name;
+--   > } VkExportMemoryWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryWin32HandleInfoKHR VkExportMemoryWin32HandleInfoKHR registry at www.khronos.org>
+data VkExportMemoryWin32HandleInfoKHR = VkExportMemoryWin32HandleInfoKHR## Addr##
+                                                                          ByteArray##
+
+instance Eq VkExportMemoryWin32HandleInfoKHR where
+        (VkExportMemoryWin32HandleInfoKHR## a _) ==
+          x@(VkExportMemoryWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportMemoryWin32HandleInfoKHR where
+        (VkExportMemoryWin32HandleInfoKHR## a _) `compare`
+          x@(VkExportMemoryWin32HandleInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportMemoryWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkExportMemoryWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExportMemoryWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoKHR where
+        unsafeAddr (VkExportMemoryWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportMemoryWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportMemoryWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportMemoryWin32HandleInfoKHR where
+        type StructFields VkExportMemoryWin32HandleInfoKHR =
+             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportMemoryWin32HandleInfoKHR =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportMemoryWin32HandleInfoKHR where
+        type FieldType "sType" VkExportMemoryWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkExportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportMemoryWin32HandleInfoKHR =
+             #{offset VkExportMemoryWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportMemoryWin32HandleInfoKHR where
+        type FieldType "pNext" VkExportMemoryWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkExportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportMemoryWin32HandleInfoKHR =
+             #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
+        type FieldType "pAttributes" VkExportMemoryWin32HandleInfoKHR =
+             Ptr SECURITY_ATTRIBUTES
+        type FieldOptional "pAttributes" VkExportMemoryWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pAttributes" VkExportMemoryWin32HandleInfoKHR =
+             #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
+        type FieldIsArray "pAttributes" VkExportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
+        type FieldType "dwAccess" VkExportMemoryWin32HandleInfoKHR = DWORD
+        type FieldOptional "dwAccess" VkExportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dwAccess" VkExportMemoryWin32HandleInfoKHR =
+             #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
+        type FieldIsArray "dwAccess" VkExportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkExportMemoryWin32HandleInfoKHR where
+        type FieldType "name" VkExportMemoryWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkExportMemoryWin32HandleInfoKHR =
+             #{offset VkExportMemoryWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkExportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkExportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, name}
+
+instance Show VkExportMemoryWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkExportMemoryWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pAttributes = " .
+                            showsPrec d (getField @"pAttributes" x) .
+                              showString ", " .
+                                showString "dwAccess = " .
+                                  showsPrec d (getField @"dwAccess" x) .
+                                    showString ", " .
+                                      showString "name = " .
+                                        showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkExportMemoryWin32HandleInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     const SECURITY_ATTRIBUTES*       pAttributes;
+--   >     DWORD                            dwAccess;
+--   > } VkExportMemoryWin32HandleInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportMemoryWin32HandleInfoNV VkExportMemoryWin32HandleInfoNV registry at www.khronos.org>
+data VkExportMemoryWin32HandleInfoNV = VkExportMemoryWin32HandleInfoNV## Addr##
+                                                                        ByteArray##
+
+instance Eq VkExportMemoryWin32HandleInfoNV where
+        (VkExportMemoryWin32HandleInfoNV## a _) ==
+          x@(VkExportMemoryWin32HandleInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportMemoryWin32HandleInfoNV where
+        (VkExportMemoryWin32HandleInfoNV## a _) `compare`
+          x@(VkExportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportMemoryWin32HandleInfoNV where
+        sizeOf ~_ = #{size VkExportMemoryWin32HandleInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExportMemoryWin32HandleInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoNV where
+        unsafeAddr (VkExportMemoryWin32HandleInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportMemoryWin32HandleInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportMemoryWin32HandleInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportMemoryWin32HandleInfoNV where
+        type StructFields VkExportMemoryWin32HandleInfoNV =
+             '["sType", "pNext", "pAttributes", "dwAccess"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportMemoryWin32HandleInfoNV =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportMemoryWin32HandleInfoNV where
+        type FieldType "sType" VkExportMemoryWin32HandleInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportMemoryWin32HandleInfoNV =
+             #{offset VkExportMemoryWin32HandleInfoNV, sType}
+        type FieldIsArray "sType" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportMemoryWin32HandleInfoNV where
+        type FieldType "pNext" VkExportMemoryWin32HandleInfoNV = Ptr Void
+        type FieldOptional "pNext" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportMemoryWin32HandleInfoNV =
+             #{offset VkExportMemoryWin32HandleInfoNV, pNext}
+        type FieldIsArray "pNext" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttributes" VkExportMemoryWin32HandleInfoNV where
+        type FieldType "pAttributes" VkExportMemoryWin32HandleInfoNV =
+             Ptr SECURITY_ATTRIBUTES
+        type FieldOptional "pAttributes" VkExportMemoryWin32HandleInfoNV =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pAttributes" VkExportMemoryWin32HandleInfoNV =
+             #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
+        type FieldIsArray "pAttributes" VkExportMemoryWin32HandleInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttributes" VkExportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, pAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttributes" VkExportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "dwAccess" VkExportMemoryWin32HandleInfoNV where
+        type FieldType "dwAccess" VkExportMemoryWin32HandleInfoNV = DWORD
+        type FieldOptional "dwAccess" VkExportMemoryWin32HandleInfoNV =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "dwAccess" VkExportMemoryWin32HandleInfoNV =
+             #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
+        type FieldIsArray "dwAccess" VkExportMemoryWin32HandleInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dwAccess" VkExportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, dwAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dwAccess" VkExportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
+
+instance Show VkExportMemoryWin32HandleInfoNV where
+        showsPrec d x
+          = showString "VkExportMemoryWin32HandleInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pAttributes = " .
+                            showsPrec d (getField @"pAttributes" x) .
+                              showString ", " .
+                                showString "dwAccess = " .
+                                  showsPrec d (getField @"dwAccess" x) . showChar '}'
+
+-- | > typedef struct VkExportSemaphoreWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     const SECURITY_ATTRIBUTES*       pAttributes;
+--   >     DWORD                            dwAccess;
+--   >     LPCWSTR                          name;
+--   > } VkExportSemaphoreWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkExportSemaphoreWin32HandleInfoKHR VkExportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
+data VkExportSemaphoreWin32HandleInfoKHR = VkExportSemaphoreWin32HandleInfoKHR## Addr##
+                                                                                ByteArray##
+
+instance Eq VkExportSemaphoreWin32HandleInfoKHR where
+        (VkExportSemaphoreWin32HandleInfoKHR## a _) ==
+          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkExportSemaphoreWin32HandleInfoKHR where
+        (VkExportSemaphoreWin32HandleInfoKHR## a _) `compare`
+          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkExportSemaphoreWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkExportSemaphoreWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkExportSemaphoreWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkExportSemaphoreWin32HandleInfoKHR
+         where
+        unsafeAddr (VkExportSemaphoreWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkExportSemaphoreWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkExportSemaphoreWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkExportSemaphoreWin32HandleInfoKHR where
+        type StructFields VkExportSemaphoreWin32HandleInfoKHR =
+             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
+        type CUnionType VkExportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkExportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkExportSemaphoreWin32HandleInfoKHR =
+             '[VkSemaphoreCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkExportSemaphoreWin32HandleInfoKHR where
+        type FieldType "sType" VkExportSemaphoreWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkExportSemaphoreWin32HandleInfoKHR =
+             #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
+        type FieldType "pNext" VkExportSemaphoreWin32HandleInfoKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkExportSemaphoreWin32HandleInfoKHR =
+             #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR where
+        type FieldType "pAttributes" VkExportSemaphoreWin32HandleInfoKHR =
+             Ptr SECURITY_ATTRIBUTES
+        type FieldOptional "pAttributes"
+               VkExportSemaphoreWin32HandleInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
+             =
+             #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
+        type FieldIsArray "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
+
+instance {-# OVERLAPPING #-}
+         HasField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
+        type FieldType "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
+             DWORD
+        type FieldOptional "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
+             #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
+        type FieldIsArray "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkExportSemaphoreWin32HandleInfoKHR where
+        type FieldType "name" VkExportSemaphoreWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkExportSemaphoreWin32HandleInfoKHR =
+             #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkExportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkExportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
+
+instance Show VkExportSemaphoreWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkExportSemaphoreWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "pAttributes = " .
+                            showsPrec d (getField @"pAttributes" x) .
+                              showString ", " .
+                                showString "dwAccess = " .
+                                  showsPrec d (getField @"dwAccess" x) .
+                                    showString ", " .
+                                      showString "name = " .
+                                        showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkFenceGetWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                            pNext;
+--   >     VkFence                                fence;
+--   >     VkExternalFenceHandleTypeFlagBits   handleType;
+--   > } VkFenceGetWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkFenceGetWin32HandleInfoKHR VkFenceGetWin32HandleInfoKHR registry at www.khronos.org>
+data VkFenceGetWin32HandleInfoKHR = VkFenceGetWin32HandleInfoKHR## Addr##
+                                                                  ByteArray##
+
+instance Eq VkFenceGetWin32HandleInfoKHR where
+        (VkFenceGetWin32HandleInfoKHR## a _) ==
+          x@(VkFenceGetWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkFenceGetWin32HandleInfoKHR where
+        (VkFenceGetWin32HandleInfoKHR## a _) `compare`
+          x@(VkFenceGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkFenceGetWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkFenceGetWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkFenceGetWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkFenceGetWin32HandleInfoKHR where
+        unsafeAddr (VkFenceGetWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkFenceGetWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkFenceGetWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkFenceGetWin32HandleInfoKHR where
+        type StructFields VkFenceGetWin32HandleInfoKHR =
+             '["sType", "pNext", "fence", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkFenceGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkFenceGetWin32HandleInfoKHR where
+        type FieldType "sType" VkFenceGetWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkFenceGetWin32HandleInfoKHR =
+             #{offset VkFenceGetWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFenceGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkFenceGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkFenceGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkFenceGetWin32HandleInfoKHR where
+        type FieldType "pNext" VkFenceGetWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkFenceGetWin32HandleInfoKHR =
+             #{offset VkFenceGetWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFenceGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkFenceGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkFenceGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "fence" VkFenceGetWin32HandleInfoKHR where
+        type FieldType "fence" VkFenceGetWin32HandleInfoKHR = VkFence
+        type FieldOptional "fence" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fence" VkFenceGetWin32HandleInfoKHR =
+             #{offset VkFenceGetWin32HandleInfoKHR, fence}
+        type FieldIsArray "fence" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFenceGetWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fence" VkFenceGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, fence})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fence" VkFenceGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkFenceGetWin32HandleInfoKHR where
+        type FieldType "handleType" VkFenceGetWin32HandleInfoKHR =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkFenceGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkFenceGetWin32HandleInfoKHR =
+             #{offset VkFenceGetWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkFenceGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkFenceGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkFenceGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkFenceGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, handleType}
+
+instance Show VkFenceGetWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkFenceGetWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "fence = " .
+                            showsPrec d (getField @"fence" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | > typedef struct VkImportFenceWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                                        pNext;
+--   >     VkFence                          fence;
+--   >     VkFenceImportFlags              flags;
+--   >     VkExternalFenceHandleTypeFlagBits  handleType;
+--   >     HANDLE                             handle;
+--   >     LPCWSTR                            name;
+--   > } VkImportFenceWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportFenceWin32HandleInfoKHR VkImportFenceWin32HandleInfoKHR registry at www.khronos.org>
+data VkImportFenceWin32HandleInfoKHR = VkImportFenceWin32HandleInfoKHR## Addr##
+                                                                        ByteArray##
+
+instance Eq VkImportFenceWin32HandleInfoKHR where
+        (VkImportFenceWin32HandleInfoKHR## a _) ==
+          x@(VkImportFenceWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportFenceWin32HandleInfoKHR where
+        (VkImportFenceWin32HandleInfoKHR## a _) `compare`
+          x@(VkImportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportFenceWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkImportFenceWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportFenceWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportFenceWin32HandleInfoKHR where
+        unsafeAddr (VkImportFenceWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportFenceWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportFenceWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportFenceWin32HandleInfoKHR where
+        type StructFields VkImportFenceWin32HandleInfoKHR =
+             '["sType", "pNext", "fence", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
+               "name"]
+        type CUnionType VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportFenceWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "sType" VkImportFenceWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "pNext" VkImportFenceWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "fence" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "fence" VkImportFenceWin32HandleInfoKHR = VkFence
+        type FieldOptional "fence" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "fence" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, fence}
+        type FieldIsArray "fence" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "fence" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, fence})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "fence" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, fence}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "flags" VkImportFenceWin32HandleInfoKHR =
+             VkFenceImportFlags
+        type FieldOptional "flags" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, flags}
+        type FieldIsArray "flags" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "handleType" VkImportFenceWin32HandleInfoKHR =
+             VkExternalFenceHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportFenceWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportFenceWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "handle" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "handle" VkImportFenceWin32HandleInfoKHR = HANDLE
+        type FieldOptional "handle" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handle" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, handle}
+        type FieldIsArray "handle" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handle" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, handle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handle" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkImportFenceWin32HandleInfoKHR where
+        type FieldType "name" VkImportFenceWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkImportFenceWin32HandleInfoKHR =
+             #{offset VkImportFenceWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportFenceWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkImportFenceWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkImportFenceWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, name}
+
+instance Show VkImportFenceWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkImportFenceWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "fence = " .
+                            showsPrec d (getField @"fence" x) .
+                              showString ", " .
+                                showString "flags = " .
+                                  showsPrec d (getField @"flags" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) .
+                                          showString ", " .
+                                            showString "handle = " .
+                                              showsPrec d (getField @"handle" x) .
+                                                showString ", " .
+                                                  showString "name = " .
+                                                    showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkImportMemoryWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   >     HANDLE           handle;
+--   >     LPCWSTR          name;
+--   > } VkImportMemoryWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryWin32HandleInfoKHR VkImportMemoryWin32HandleInfoKHR registry at www.khronos.org>
+data VkImportMemoryWin32HandleInfoKHR = VkImportMemoryWin32HandleInfoKHR## Addr##
+                                                                          ByteArray##
+
+instance Eq VkImportMemoryWin32HandleInfoKHR where
+        (VkImportMemoryWin32HandleInfoKHR## a _) ==
+          x@(VkImportMemoryWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportMemoryWin32HandleInfoKHR where
+        (VkImportMemoryWin32HandleInfoKHR## a _) `compare`
+          x@(VkImportMemoryWin32HandleInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportMemoryWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkImportMemoryWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportMemoryWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoKHR where
+        unsafeAddr (VkImportMemoryWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportMemoryWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportMemoryWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportMemoryWin32HandleInfoKHR where
+        type StructFields VkImportMemoryWin32HandleInfoKHR =
+             '["sType", "pNext", "handleType", "handle", "name"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportMemoryWin32HandleInfoKHR =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportMemoryWin32HandleInfoKHR where
+        type FieldType "sType" VkImportMemoryWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkImportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportMemoryWin32HandleInfoKHR =
+             #{offset VkImportMemoryWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportMemoryWin32HandleInfoKHR where
+        type FieldType "pNext" VkImportMemoryWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkImportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportMemoryWin32HandleInfoKHR =
+             #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportMemoryWin32HandleInfoKHR where
+        type FieldType "handleType" VkImportMemoryWin32HandleInfoKHR =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportMemoryWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportMemoryWin32HandleInfoKHR =
+             #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "handle" VkImportMemoryWin32HandleInfoKHR where
+        type FieldType "handle" VkImportMemoryWin32HandleInfoKHR = HANDLE
+        type FieldOptional "handle" VkImportMemoryWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handle" VkImportMemoryWin32HandleInfoKHR =
+             #{offset VkImportMemoryWin32HandleInfoKHR, handle}
+        type FieldIsArray "handle" VkImportMemoryWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handle" VkImportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, handle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handle" VkImportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkImportMemoryWin32HandleInfoKHR where
+        type FieldType "name" VkImportMemoryWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkImportMemoryWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkImportMemoryWin32HandleInfoKHR =
+             #{offset VkImportMemoryWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkImportMemoryWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkImportMemoryWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, name}
+
+instance Show VkImportMemoryWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkImportMemoryWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) .
+                              showString ", " .
+                                showString "handle = " .
+                                  showsPrec d (getField @"handle" x) .
+                                    showString ", " .
+                                      showString "name = " .
+                                        showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkImportMemoryWin32HandleInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkExternalMemoryHandleTypeFlagsNV handleType;
+--   >     HANDLE                           handle;
+--   > } VkImportMemoryWin32HandleInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportMemoryWin32HandleInfoNV VkImportMemoryWin32HandleInfoNV registry at www.khronos.org>
+data VkImportMemoryWin32HandleInfoNV = VkImportMemoryWin32HandleInfoNV## Addr##
+                                                                        ByteArray##
+
+instance Eq VkImportMemoryWin32HandleInfoNV where
+        (VkImportMemoryWin32HandleInfoNV## a _) ==
+          x@(VkImportMemoryWin32HandleInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportMemoryWin32HandleInfoNV where
+        (VkImportMemoryWin32HandleInfoNV## a _) `compare`
+          x@(VkImportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportMemoryWin32HandleInfoNV where
+        sizeOf ~_ = #{size VkImportMemoryWin32HandleInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportMemoryWin32HandleInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoNV where
+        unsafeAddr (VkImportMemoryWin32HandleInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportMemoryWin32HandleInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportMemoryWin32HandleInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportMemoryWin32HandleInfoNV where
+        type StructFields VkImportMemoryWin32HandleInfoNV =
+             '["sType", "pNext", "handleType", "handle"] -- ' closing tick for hsc2hs
+        type CUnionType VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportMemoryWin32HandleInfoNV =
+             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportMemoryWin32HandleInfoNV where
+        type FieldType "sType" VkImportMemoryWin32HandleInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportMemoryWin32HandleInfoNV =
+             #{offset VkImportMemoryWin32HandleInfoNV, sType}
+        type FieldIsArray "sType" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportMemoryWin32HandleInfoNV where
+        type FieldType "pNext" VkImportMemoryWin32HandleInfoNV = Ptr Void
+        type FieldOptional "pNext" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportMemoryWin32HandleInfoNV =
+             #{offset VkImportMemoryWin32HandleInfoNV, pNext}
+        type FieldIsArray "pNext" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportMemoryWin32HandleInfoNV where
+        type FieldType "handleType" VkImportMemoryWin32HandleInfoNV =
+             VkExternalMemoryHandleTypeFlagsNV
+        type FieldOptional "handleType" VkImportMemoryWin32HandleInfoNV =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportMemoryWin32HandleInfoNV =
+             #{offset VkImportMemoryWin32HandleInfoNV, handleType}
+        type FieldIsArray "handleType" VkImportMemoryWin32HandleInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoNV, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "handle" VkImportMemoryWin32HandleInfoNV where
+        type FieldType "handle" VkImportMemoryWin32HandleInfoNV = HANDLE
+        type FieldOptional "handle" VkImportMemoryWin32HandleInfoNV = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handle" VkImportMemoryWin32HandleInfoNV =
+             #{offset VkImportMemoryWin32HandleInfoNV, handle}
+        type FieldIsArray "handle" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportMemoryWin32HandleInfoNV, handle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handle" VkImportMemoryWin32HandleInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, handle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handle" VkImportMemoryWin32HandleInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handle}
+
+instance Show VkImportMemoryWin32HandleInfoNV where
+        showsPrec d x
+          = showString "VkImportMemoryWin32HandleInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "handleType = " .
+                            showsPrec d (getField @"handleType" x) .
+                              showString ", " .
+                                showString "handle = " .
+                                  showsPrec d (getField @"handle" x) . showChar '}'
+
+-- | > typedef struct VkImportSemaphoreWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSemaphore    semaphore;
+--   >     VkSemaphoreImportFlags flags;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   >     HANDLE           handle;
+--   >     LPCWSTR          name;
+--   > } VkImportSemaphoreWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkImportSemaphoreWin32HandleInfoKHR VkImportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
+data VkImportSemaphoreWin32HandleInfoKHR = VkImportSemaphoreWin32HandleInfoKHR## Addr##
+                                                                                ByteArray##
+
+instance Eq VkImportSemaphoreWin32HandleInfoKHR where
+        (VkImportSemaphoreWin32HandleInfoKHR## a _) ==
+          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkImportSemaphoreWin32HandleInfoKHR where
+        (VkImportSemaphoreWin32HandleInfoKHR## a _) `compare`
+          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkImportSemaphoreWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkImportSemaphoreWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkImportSemaphoreWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkImportSemaphoreWin32HandleInfoKHR
+         where
+        unsafeAddr (VkImportSemaphoreWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkImportSemaphoreWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkImportSemaphoreWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkImportSemaphoreWin32HandleInfoKHR where
+        type StructFields VkImportSemaphoreWin32HandleInfoKHR =
+             '["sType", "pNext", "semaphore", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
+               "name"]
+        type CUnionType VkImportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkImportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkImportSemaphoreWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "sType" VkImportSemaphoreWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "pNext" VkImportSemaphoreWin32HandleInfoKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
+             VkSemaphore
+        type FieldOptional "semaphore" VkImportSemaphoreWin32HandleInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
+        type FieldIsArray "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "flags" VkImportSemaphoreWin32HandleInfoKHR =
+             VkSemaphoreImportFlags
+        type FieldOptional "flags" VkImportSemaphoreWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
+        type FieldIsArray "flags" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "handleType" VkImportSemaphoreWin32HandleInfoKHR =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType" VkImportSemaphoreWin32HandleInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkImportSemaphoreWin32HandleInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkImportSemaphoreWin32HandleInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         HasField "handle" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "handle" VkImportSemaphoreWin32HandleInfoKHR =
+             HANDLE
+        type FieldOptional "handle" VkImportSemaphoreWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "handle" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
+        type FieldIsArray "handle" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handle" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, handle})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handle" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
+
+instance {-# OVERLAPPING #-}
+         HasField "name" VkImportSemaphoreWin32HandleInfoKHR where
+        type FieldType "name" VkImportSemaphoreWin32HandleInfoKHR = LPCWSTR
+        type FieldOptional "name" VkImportSemaphoreWin32HandleInfoKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "name" VkImportSemaphoreWin32HandleInfoKHR =
+             #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
+        type FieldIsArray "name" VkImportSemaphoreWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "name" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, name})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "name" VkImportSemaphoreWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
+
+instance Show VkImportSemaphoreWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkImportSemaphoreWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "semaphore = " .
+                            showsPrec d (getField @"semaphore" x) .
+                              showString ", " .
+                                showString "flags = " .
+                                  showsPrec d (getField @"flags" x) .
+                                    showString ", " .
+                                      showString "handleType = " .
+                                        showsPrec d (getField @"handleType" x) .
+                                          showString ", " .
+                                            showString "handle = " .
+                                              showsPrec d (getField @"handle" x) .
+                                                showString ", " .
+                                                  showString "name = " .
+                                                    showsPrec d (getField @"name" x) . showChar '}'
+
+-- | > typedef struct VkMemoryGetWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkDeviceMemory                   memory;
+--   >     VkExternalMemoryHandleTypeFlagBits handleType;
+--   > } VkMemoryGetWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryGetWin32HandleInfoKHR VkMemoryGetWin32HandleInfoKHR registry at www.khronos.org>
+data VkMemoryGetWin32HandleInfoKHR = VkMemoryGetWin32HandleInfoKHR## Addr##
+                                                                    ByteArray##
+
+instance Eq VkMemoryGetWin32HandleInfoKHR where
+        (VkMemoryGetWin32HandleInfoKHR## a _) ==
+          x@(VkMemoryGetWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryGetWin32HandleInfoKHR where
+        (VkMemoryGetWin32HandleInfoKHR## a _) `compare`
+          x@(VkMemoryGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryGetWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkMemoryGetWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryGetWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryGetWin32HandleInfoKHR where
+        unsafeAddr (VkMemoryGetWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryGetWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryGetWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryGetWin32HandleInfoKHR where
+        type StructFields VkMemoryGetWin32HandleInfoKHR =
+             '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryGetWin32HandleInfoKHR where
+        type FieldType "sType" VkMemoryGetWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryGetWin32HandleInfoKHR =
+             #{offset VkMemoryGetWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryGetWin32HandleInfoKHR where
+        type FieldType "pNext" VkMemoryGetWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryGetWin32HandleInfoKHR =
+             #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memory" VkMemoryGetWin32HandleInfoKHR where
+        type FieldType "memory" VkMemoryGetWin32HandleInfoKHR =
+             VkDeviceMemory
+        type FieldOptional "memory" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkMemoryGetWin32HandleInfoKHR =
+             #{offset VkMemoryGetWin32HandleInfoKHR, memory}
+        type FieldIsArray "memory" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetWin32HandleInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkMemoryGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkMemoryGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkMemoryGetWin32HandleInfoKHR where
+        type FieldType "handleType" VkMemoryGetWin32HandleInfoKHR =
+             VkExternalMemoryHandleTypeFlagBits
+        type FieldOptional "handleType" VkMemoryGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkMemoryGetWin32HandleInfoKHR =
+             #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkMemoryGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkMemoryGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkMemoryGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
+
+instance Show VkMemoryGetWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkMemoryGetWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memory = " .
+                            showsPrec d (getField @"memory" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | > typedef struct VkMemoryWin32HandlePropertiesKHR {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         memoryTypeBits;
+--   > } VkMemoryWin32HandlePropertiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkMemoryWin32HandlePropertiesKHR VkMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
+data VkMemoryWin32HandlePropertiesKHR = VkMemoryWin32HandlePropertiesKHR## Addr##
+                                                                          ByteArray##
+
+instance Eq VkMemoryWin32HandlePropertiesKHR where
+        (VkMemoryWin32HandlePropertiesKHR## a _) ==
+          x@(VkMemoryWin32HandlePropertiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkMemoryWin32HandlePropertiesKHR where
+        (VkMemoryWin32HandlePropertiesKHR## a _) `compare`
+          x@(VkMemoryWin32HandlePropertiesKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkMemoryWin32HandlePropertiesKHR where
+        sizeOf ~_ = #{size VkMemoryWin32HandlePropertiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkMemoryWin32HandlePropertiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkMemoryWin32HandlePropertiesKHR where
+        unsafeAddr (VkMemoryWin32HandlePropertiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkMemoryWin32HandlePropertiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkMemoryWin32HandlePropertiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkMemoryWin32HandlePropertiesKHR where
+        type StructFields VkMemoryWin32HandlePropertiesKHR =
+             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
+        type CUnionType VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkMemoryWin32HandlePropertiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkMemoryWin32HandlePropertiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkMemoryWin32HandlePropertiesKHR where
+        type FieldType "sType" VkMemoryWin32HandlePropertiesKHR =
+             VkStructureType
+        type FieldOptional "sType" VkMemoryWin32HandlePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkMemoryWin32HandlePropertiesKHR =
+             #{offset VkMemoryWin32HandlePropertiesKHR, sType}
+        type FieldIsArray "sType" VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryWin32HandlePropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkMemoryWin32HandlePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkMemoryWin32HandlePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkMemoryWin32HandlePropertiesKHR where
+        type FieldType "pNext" VkMemoryWin32HandlePropertiesKHR = Ptr Void
+        type FieldOptional "pNext" VkMemoryWin32HandlePropertiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkMemoryWin32HandlePropertiesKHR =
+             #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
+        type FieldIsArray "pNext" VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkMemoryWin32HandlePropertiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkMemoryWin32HandlePropertiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR where
+        type FieldType "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR =
+             Word32
+        type FieldOptional "memoryTypeBits"
+               VkMemoryWin32HandlePropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
+             =
+             #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
+        type FieldIsArray "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
+
+instance Show VkMemoryWin32HandlePropertiesKHR where
+        showsPrec d x
+          = showString "VkMemoryWin32HandlePropertiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryTypeBits = " .
+                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
+
+-- | > typedef struct VkSemaphoreGetWin32HandleInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSemaphore                      semaphore;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   > } VkSemaphoreGetWin32HandleInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreGetWin32HandleInfoKHR VkSemaphoreGetWin32HandleInfoKHR registry at www.khronos.org>
+data VkSemaphoreGetWin32HandleInfoKHR = VkSemaphoreGetWin32HandleInfoKHR## Addr##
+                                                                          ByteArray##
+
+instance Eq VkSemaphoreGetWin32HandleInfoKHR where
+        (VkSemaphoreGetWin32HandleInfoKHR## a _) ==
+          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSemaphoreGetWin32HandleInfoKHR where
+        (VkSemaphoreGetWin32HandleInfoKHR## a _) `compare`
+          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSemaphoreGetWin32HandleInfoKHR where
+        sizeOf ~_ = #{size VkSemaphoreGetWin32HandleInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSemaphoreGetWin32HandleInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSemaphoreGetWin32HandleInfoKHR where
+        unsafeAddr (VkSemaphoreGetWin32HandleInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSemaphoreGetWin32HandleInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSemaphoreGetWin32HandleInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSemaphoreGetWin32HandleInfoKHR where
+        type StructFields VkSemaphoreGetWin32HandleInfoKHR =
+             '["sType", "pNext", "semaphore", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSemaphoreGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSemaphoreGetWin32HandleInfoKHR where
+        type FieldType "sType" VkSemaphoreGetWin32HandleInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSemaphoreGetWin32HandleInfoKHR =
+             #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
+        type FieldIsArray "sType" VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
+        type FieldType "pNext" VkSemaphoreGetWin32HandleInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSemaphoreGetWin32HandleInfoKHR =
+             #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
+        type FieldIsArray "pNext" VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
+        type FieldType "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
+             VkSemaphore
+        type FieldOptional "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
+             #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
+        type FieldIsArray "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
+        type FieldType "handleType" VkSemaphoreGetWin32HandleInfoKHR =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkSemaphoreGetWin32HandleInfoKHR =
+             #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
+        type FieldIsArray "handleType" VkSemaphoreGetWin32HandleInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
+
+instance Show VkSemaphoreGetWin32HandleInfoKHR where
+        showsPrec d x
+          = showString "VkSemaphoreGetWin32HandleInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "semaphore = " .
+                            showsPrec d (getField @"semaphore" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
+
+-- | > typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         acquireCount;
+--   >     const VkDeviceMemory* pAcquireSyncs;
+--   >     const uint64_t* pAcquireKeys;
+--   >     const uint32_t* pAcquireTimeouts;
+--   >     uint32_t         releaseCount;
+--   >     const VkDeviceMemory* pReleaseSyncs;
+--   >     const uint64_t* pReleaseKeys;
+--   > } VkWin32KeyedMutexAcquireReleaseInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32KeyedMutexAcquireReleaseInfoKHR VkWin32KeyedMutexAcquireReleaseInfoKHR registry at www.khronos.org>
+data VkWin32KeyedMutexAcquireReleaseInfoKHR = VkWin32KeyedMutexAcquireReleaseInfoKHR## Addr##
+                                                                                      ByteArray##
+
+instance Eq VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) ==
+          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) `compare`
+          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        sizeOf ~_
+          = #{size VkWin32KeyedMutexAcquireReleaseInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkWin32KeyedMutexAcquireReleaseInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkWin32KeyedMutexAcquireReleaseInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        type StructFields VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
+               "pAcquireKeys", "pAcquireTimeouts", "releaseCount",
+               "pReleaseSyncs", "pReleaseKeys"]
+        type CUnionType VkWin32KeyedMutexAcquireReleaseInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkWin32KeyedMutexAcquireReleaseInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             '[VkSubmitInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        type FieldType "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
+        type FieldIsArray "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        type FieldType "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
+        type FieldIsArray "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Word32
+        type FieldOptional "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
+        type FieldIsArray "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Ptr VkDeviceMemory
+        type FieldOptional "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
+        type FieldIsArray "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireSyncs"
+           VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Ptr Word64
+        type FieldOptional "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
+        type FieldIsArray "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireTimeouts" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "pAcquireTimeouts"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Ptr Word32
+        type FieldOptional "pAcquireTimeouts"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireTimeouts"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
+        type FieldIsArray "pAcquireTimeouts"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireTimeouts"
+           VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireTimeouts"
+           VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
+
+instance {-# OVERLAPPING #-}
+         HasField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Word32
+        type FieldOptional "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
+        type FieldIsArray "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Ptr VkDeviceMemory
+        type FieldOptional "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
+        type FieldIsArray "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pReleaseSyncs"
+           VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         HasField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        type FieldType "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = Ptr Word64
+        type FieldOptional "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
+        type FieldIsArray "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
+
+instance Show VkWin32KeyedMutexAcquireReleaseInfoKHR where
+        showsPrec d x
+          = showString "VkWin32KeyedMutexAcquireReleaseInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "acquireCount = " .
+                            showsPrec d (getField @"acquireCount" x) .
+                              showString ", " .
+                                showString "pAcquireSyncs = " .
+                                  showsPrec d (getField @"pAcquireSyncs" x) .
+                                    showString ", " .
+                                      showString "pAcquireKeys = " .
+                                        showsPrec d (getField @"pAcquireKeys" x) .
+                                          showString ", " .
+                                            showString "pAcquireTimeouts = " .
+                                              showsPrec d (getField @"pAcquireTimeouts" x) .
+                                                showString ", " .
+                                                  showString "releaseCount = " .
+                                                    showsPrec d (getField @"releaseCount" x) .
+                                                      showString ", " .
+                                                        showString "pReleaseSyncs = " .
+                                                          showsPrec d (getField @"pReleaseSyncs" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pReleaseKeys = " .
+                                                                showsPrec d
+                                                                  (getField @"pReleaseKeys" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         acquireCount;
+--   >     const VkDeviceMemory*            pAcquireSyncs;
+--   >     const uint64_t*                  pAcquireKeys;
+--   >     const uint32_t*                  pAcquireTimeoutMilliseconds;
+--   >     uint32_t                         releaseCount;
+--   >     const VkDeviceMemory*            pReleaseSyncs;
+--   >     const uint64_t*                  pReleaseKeys;
+--   > } VkWin32KeyedMutexAcquireReleaseInfoNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32KeyedMutexAcquireReleaseInfoNV VkWin32KeyedMutexAcquireReleaseInfoNV registry at www.khronos.org>
+data VkWin32KeyedMutexAcquireReleaseInfoNV = VkWin32KeyedMutexAcquireReleaseInfoNV## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkWin32KeyedMutexAcquireReleaseInfoNV where
+        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) ==
+          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkWin32KeyedMutexAcquireReleaseInfoNV where
+        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) `compare`
+          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkWin32KeyedMutexAcquireReleaseInfoNV where
+        sizeOf ~_
+          = #{size VkWin32KeyedMutexAcquireReleaseInfoNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkWin32KeyedMutexAcquireReleaseInfoNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkWin32KeyedMutexAcquireReleaseInfoNV##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type StructFields VkWin32KeyedMutexAcquireReleaseInfoNV =
+             '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
+               "pAcquireKeys", "pAcquireTimeoutMilliseconds", "releaseCount",
+               "pReleaseSyncs", "pReleaseKeys"]
+        type CUnionType VkWin32KeyedMutexAcquireReleaseInfoNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkWin32KeyedMutexAcquireReleaseInfoNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkWin32KeyedMutexAcquireReleaseInfoNV =
+             '[VkSubmitInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             VkStructureType
+        type FieldOptional "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
+        type FieldIsArray "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             Ptr Void
+        type FieldOptional "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
+        type FieldIsArray "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Word32
+        type FieldOptional "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
+        type FieldIsArray "acquireCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        type FieldType "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Ptr VkDeviceMemory
+        type FieldOptional "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
+        type FieldIsArray "pAcquireSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Ptr Word64
+        type FieldOptional "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
+        type FieldIsArray "pAcquireKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAcquireTimeoutMilliseconds"
+           VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        type FieldType "pAcquireTimeoutMilliseconds"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Ptr Word32
+        type FieldOptional "pAcquireTimeoutMilliseconds"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAcquireTimeoutMilliseconds"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
+        type FieldIsArray "pAcquireTimeoutMilliseconds"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAcquireTimeoutMilliseconds"
+           VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAcquireTimeoutMilliseconds"
+           VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
+
+instance {-# OVERLAPPING #-}
+         HasField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Word32
+        type FieldOptional "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
+        type FieldIsArray "releaseCount"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        type FieldType "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Ptr VkDeviceMemory
+        type FieldOptional "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
+        type FieldIsArray "pReleaseSyncs"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
+
+instance {-# OVERLAPPING #-}
+         HasField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV where
+        type FieldType "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+             = Ptr Word64
+        type FieldOptional "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             =
+             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
+        type FieldIsArray "pReleaseKeys"
+               VkWin32KeyedMutexAcquireReleaseInfoNV
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
+
+instance Show VkWin32KeyedMutexAcquireReleaseInfoNV where
+        showsPrec d x
+          = showString "VkWin32KeyedMutexAcquireReleaseInfoNV {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "acquireCount = " .
+                            showsPrec d (getField @"acquireCount" x) .
+                              showString ", " .
+                                showString "pAcquireSyncs = " .
+                                  showsPrec d (getField @"pAcquireSyncs" x) .
+                                    showString ", " .
+                                      showString "pAcquireKeys = " .
+                                        showsPrec d (getField @"pAcquireKeys" x) .
+                                          showString ", " .
+                                            showString "pAcquireTimeoutMilliseconds = " .
+                                              showsPrec d
+                                                (getField @"pAcquireTimeoutMilliseconds" x)
+                                                .
+                                                showString ", " .
+                                                  showString "releaseCount = " .
+                                                    showsPrec d (getField @"releaseCount" x) .
+                                                      showString ", " .
+                                                        showString "pReleaseSyncs = " .
+                                                          showsPrec d (getField @"pReleaseSyncs" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pReleaseKeys = " .
+                                                                showsPrec d
+                                                                  (getField @"pReleaseKeys" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkWin32SurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkWin32SurfaceCreateFlagsKHR   flags;
+--   >     HINSTANCE                        hinstance;
+--   >     HWND                             hwnd;
+--   > } VkWin32SurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWin32SurfaceCreateInfoKHR VkWin32SurfaceCreateInfoKHR registry at www.khronos.org>
+data VkWin32SurfaceCreateInfoKHR = VkWin32SurfaceCreateInfoKHR## Addr##
+                                                                ByteArray##
+
+instance Eq VkWin32SurfaceCreateInfoKHR where
+        (VkWin32SurfaceCreateInfoKHR## a _) ==
+          x@(VkWin32SurfaceCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkWin32SurfaceCreateInfoKHR where
+        (VkWin32SurfaceCreateInfoKHR## a _) `compare`
+          x@(VkWin32SurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkWin32SurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkWin32SurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkWin32SurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkWin32SurfaceCreateInfoKHR where
+        unsafeAddr (VkWin32SurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkWin32SurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkWin32SurfaceCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkWin32SurfaceCreateInfoKHR where
+        type StructFields VkWin32SurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "hinstance", "hwnd"] -- ' closing tick for hsc2hs
+        type CUnionType VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkWin32SurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkWin32SurfaceCreateInfoKHR where
+        type FieldType "sType" VkWin32SurfaceCreateInfoKHR =
+             VkStructureType
+        type FieldOptional "sType" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkWin32SurfaceCreateInfoKHR =
+             #{offset VkWin32SurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32SurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkWin32SurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkWin32SurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkWin32SurfaceCreateInfoKHR where
+        type FieldType "pNext" VkWin32SurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkWin32SurfaceCreateInfoKHR =
+             #{offset VkWin32SurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32SurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkWin32SurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkWin32SurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkWin32SurfaceCreateInfoKHR where
+        type FieldType "flags" VkWin32SurfaceCreateInfoKHR =
+             VkWin32SurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkWin32SurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkWin32SurfaceCreateInfoKHR =
+             #{offset VkWin32SurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32SurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkWin32SurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkWin32SurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "hinstance" VkWin32SurfaceCreateInfoKHR where
+        type FieldType "hinstance" VkWin32SurfaceCreateInfoKHR = HINSTANCE
+        type FieldOptional "hinstance" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "hinstance" VkWin32SurfaceCreateInfoKHR =
+             #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
+        type FieldIsArray "hinstance" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "hinstance" VkWin32SurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, hinstance})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "hinstance" VkWin32SurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
+
+instance {-# OVERLAPPING #-}
+         HasField "hwnd" VkWin32SurfaceCreateInfoKHR where
+        type FieldType "hwnd" VkWin32SurfaceCreateInfoKHR = HWND
+        type FieldOptional "hwnd" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "hwnd" VkWin32SurfaceCreateInfoKHR =
+             #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
+        type FieldIsArray "hwnd" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "hwnd" VkWin32SurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, hwnd})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "hwnd" VkWin32SurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
+
+instance Show VkWin32SurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkWin32SurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "hinstance = " .
+                                  showsPrec d (getField @"hinstance" x) .
+                                    showString ", " .
+                                      showString "hwnd = " .
+                                        showsPrec d (getField @"hwnd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXcbKhr.hsc
@@ -0,0 +1,260 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformXcbKhr
+       (VkXcbSurfaceCreateInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkXcbSurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Include            (XcbConnectionT,
+                                                           XcbWindowT)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkXcbSurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkXcbSurfaceCreateFlagsKHR   flags;
+--   >     xcb_connection_t*                connection;
+--   >     xcb_window_t                     window;
+--   > } VkXcbSurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXcbSurfaceCreateInfoKHR VkXcbSurfaceCreateInfoKHR registry at www.khronos.org>
+data VkXcbSurfaceCreateInfoKHR = VkXcbSurfaceCreateInfoKHR## Addr##
+                                                            ByteArray##
+
+instance Eq VkXcbSurfaceCreateInfoKHR where
+        (VkXcbSurfaceCreateInfoKHR## a _) ==
+          x@(VkXcbSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkXcbSurfaceCreateInfoKHR where
+        (VkXcbSurfaceCreateInfoKHR## a _) `compare`
+          x@(VkXcbSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkXcbSurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkXcbSurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkXcbSurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkXcbSurfaceCreateInfoKHR where
+        unsafeAddr (VkXcbSurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkXcbSurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkXcbSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkXcbSurfaceCreateInfoKHR where
+        type StructFields VkXcbSurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "connection", "window"] -- ' closing tick for hsc2hs
+        type CUnionType VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkXcbSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkXcbSurfaceCreateInfoKHR where
+        type FieldType "sType" VkXcbSurfaceCreateInfoKHR = VkStructureType
+        type FieldOptional "sType" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkXcbSurfaceCreateInfoKHR =
+             #{offset VkXcbSurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXcbSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkXcbSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkXcbSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkXcbSurfaceCreateInfoKHR where
+        type FieldType "pNext" VkXcbSurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkXcbSurfaceCreateInfoKHR =
+             #{offset VkXcbSurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXcbSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkXcbSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkXcbSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkXcbSurfaceCreateInfoKHR where
+        type FieldType "flags" VkXcbSurfaceCreateInfoKHR =
+             VkXcbSurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkXcbSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkXcbSurfaceCreateInfoKHR =
+             #{offset VkXcbSurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXcbSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkXcbSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkXcbSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "connection" VkXcbSurfaceCreateInfoKHR where
+        type FieldType "connection" VkXcbSurfaceCreateInfoKHR =
+             Ptr XcbConnectionT
+        type FieldOptional "connection" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "connection" VkXcbSurfaceCreateInfoKHR =
+             #{offset VkXcbSurfaceCreateInfoKHR, connection}
+        type FieldIsArray "connection" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXcbSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "connection" VkXcbSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, connection})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "connection" VkXcbSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, connection}
+
+instance {-# OVERLAPPING #-}
+         HasField "window" VkXcbSurfaceCreateInfoKHR where
+        type FieldType "window" VkXcbSurfaceCreateInfoKHR = XcbWindowT
+        type FieldOptional "window" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "window" VkXcbSurfaceCreateInfoKHR =
+             #{offset VkXcbSurfaceCreateInfoKHR, window}
+        type FieldIsArray "window" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXcbSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "window" VkXcbSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, window})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "window" VkXcbSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, window}
+
+instance Show VkXcbSurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkXcbSurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "connection = " .
+                                  showsPrec d (getField @"connection" x) .
+                                    showString ", " .
+                                      showString "window = " .
+                                        showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PlatformXlibKhr.hsc
@@ -0,0 +1,259 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PlatformXlibKhr
+       (VkXlibSurfaceCreateInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkXlibSurfaceCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Include            (Display, Window)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkXlibSurfaceCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkXlibSurfaceCreateFlagsKHR   flags;
+--   >     Display*                         dpy;
+--   >     Window                           window;
+--   > } VkXlibSurfaceCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXlibSurfaceCreateInfoKHR VkXlibSurfaceCreateInfoKHR registry at www.khronos.org>
+data VkXlibSurfaceCreateInfoKHR = VkXlibSurfaceCreateInfoKHR## Addr##
+                                                              ByteArray##
+
+instance Eq VkXlibSurfaceCreateInfoKHR where
+        (VkXlibSurfaceCreateInfoKHR## a _) ==
+          x@(VkXlibSurfaceCreateInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkXlibSurfaceCreateInfoKHR where
+        (VkXlibSurfaceCreateInfoKHR## a _) `compare`
+          x@(VkXlibSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkXlibSurfaceCreateInfoKHR where
+        sizeOf ~_ = #{size VkXlibSurfaceCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkXlibSurfaceCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkXlibSurfaceCreateInfoKHR where
+        unsafeAddr (VkXlibSurfaceCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkXlibSurfaceCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkXlibSurfaceCreateInfoKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkXlibSurfaceCreateInfoKHR where
+        type StructFields VkXlibSurfaceCreateInfoKHR =
+             '["sType", "pNext", "flags", "dpy", "window"] -- ' closing tick for hsc2hs
+        type CUnionType VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkXlibSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkXlibSurfaceCreateInfoKHR where
+        type FieldType "sType" VkXlibSurfaceCreateInfoKHR = VkStructureType
+        type FieldOptional "sType" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkXlibSurfaceCreateInfoKHR =
+             #{offset VkXlibSurfaceCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXlibSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkXlibSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkXlibSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkXlibSurfaceCreateInfoKHR where
+        type FieldType "pNext" VkXlibSurfaceCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkXlibSurfaceCreateInfoKHR =
+             #{offset VkXlibSurfaceCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXlibSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkXlibSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkXlibSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkXlibSurfaceCreateInfoKHR where
+        type FieldType "flags" VkXlibSurfaceCreateInfoKHR =
+             VkXlibSurfaceCreateFlagsKHR
+        type FieldOptional "flags" VkXlibSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkXlibSurfaceCreateInfoKHR =
+             #{offset VkXlibSurfaceCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXlibSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkXlibSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkXlibSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "dpy" VkXlibSurfaceCreateInfoKHR where
+        type FieldType "dpy" VkXlibSurfaceCreateInfoKHR = Ptr Display
+        type FieldOptional "dpy" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dpy" VkXlibSurfaceCreateInfoKHR =
+             #{offset VkXlibSurfaceCreateInfoKHR, dpy}
+        type FieldIsArray "dpy" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkXlibSurfaceCreateInfoKHR, dpy}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dpy" VkXlibSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, dpy})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, dpy}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dpy" VkXlibSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, dpy}
+
+instance {-# OVERLAPPING #-}
+         HasField "window" VkXlibSurfaceCreateInfoKHR where
+        type FieldType "window" VkXlibSurfaceCreateInfoKHR = Window
+        type FieldOptional "window" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "window" VkXlibSurfaceCreateInfoKHR =
+             #{offset VkXlibSurfaceCreateInfoKHR, window}
+        type FieldIsArray "window" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkXlibSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "window" VkXlibSurfaceCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, window})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, window}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "window" VkXlibSurfaceCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, window}
+
+instance Show VkXlibSurfaceCreateInfoKHR where
+        showsPrec d x
+          = showString "VkXlibSurfaceCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "dpy = " .
+                                  showsPrec d (getField @"dpy" x) .
+                                    showString ", " .
+                                      showString "window = " .
+                                        showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Present.hsc
@@ -0,0 +1,1014 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Present
+       (VkPresentInfoKHR(..), VkPresentRegionKHR(..),
+        VkPresentRegionsKHR(..), VkPresentTimeGOOGLE(..),
+        VkPresentTimesInfoGOOGLE(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Result        (VkResult)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkSemaphore,
+                                                           VkSwapchainKHR)
+import           Graphics.Vulkan.Types.Struct.Rect        (VkRectLayerKHR)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPresentInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*  pNext;
+--   >     uint32_t         waitSemaphoreCount;
+--   >     const VkSemaphore* pWaitSemaphores;
+--   >     uint32_t                         swapchainCount;
+--   >     const VkSwapchainKHR* pSwapchains;
+--   >     const uint32_t* pImageIndices;
+--   >     VkResult* pResults;
+--   > } VkPresentInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentInfoKHR VkPresentInfoKHR registry at www.khronos.org>
+data VkPresentInfoKHR = VkPresentInfoKHR## Addr## ByteArray##
+
+instance Eq VkPresentInfoKHR where
+        (VkPresentInfoKHR## a _) == x@(VkPresentInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPresentInfoKHR where
+        (VkPresentInfoKHR## a _) `compare` x@(VkPresentInfoKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPresentInfoKHR where
+        sizeOf ~_ = #{size VkPresentInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPresentInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPresentInfoKHR where
+        unsafeAddr (VkPresentInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPresentInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPresentInfoKHR where
+        type StructFields VkPresentInfoKHR =
+             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
+               "swapchainCount", "pSwapchains", "pImageIndices", "pResults"]
+        type CUnionType VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPresentInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkPresentInfoKHR
+         where
+        type FieldType "sType" VkPresentInfoKHR = VkStructureType
+        type FieldOptional "sType" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, sType}
+        type FieldIsArray "sType" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkPresentInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-} CanWriteField "sType" VkPresentInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkPresentInfoKHR
+         where
+        type FieldType "pNext" VkPresentInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, pNext}
+        type FieldIsArray "pNext" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkPresentInfoKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-} CanWriteField "pNext" VkPresentInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "waitSemaphoreCount" VkPresentInfoKHR where
+        type FieldType "waitSemaphoreCount" VkPresentInfoKHR = Word32
+        type FieldOptional "waitSemaphoreCount" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "waitSemaphoreCount" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, waitSemaphoreCount}
+        type FieldIsArray "waitSemaphoreCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentInfoKHR, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "waitSemaphoreCount" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, waitSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "waitSemaphoreCount" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitSemaphores" VkPresentInfoKHR where
+        type FieldType "pWaitSemaphores" VkPresentInfoKHR = Ptr VkSemaphore
+        type FieldOptional "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitSemaphores" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, pWaitSemaphores}
+        type FieldIsArray "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentInfoKHR, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitSemaphores" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pWaitSemaphores})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitSemaphores" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchainCount" VkPresentInfoKHR where
+        type FieldType "swapchainCount" VkPresentInfoKHR = Word32
+        type FieldOptional "swapchainCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "swapchainCount" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, swapchainCount}
+        type FieldIsArray "swapchainCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchainCount" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, swapchainCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchainCount" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSwapchains" VkPresentInfoKHR where
+        type FieldType "pSwapchains" VkPresentInfoKHR = Ptr VkSwapchainKHR
+        type FieldOptional "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSwapchains" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, pSwapchains}
+        type FieldIsArray "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentInfoKHR, pSwapchains}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSwapchains" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pSwapchains})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, pSwapchains}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSwapchains" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, pSwapchains}
+
+instance {-# OVERLAPPING #-}
+         HasField "pImageIndices" VkPresentInfoKHR where
+        type FieldType "pImageIndices" VkPresentInfoKHR = Ptr Word32
+        type FieldOptional "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pImageIndices" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, pImageIndices}
+        type FieldIsArray "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentInfoKHR, pImageIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pImageIndices" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pImageIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, pImageIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pImageIndices" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, pImageIndices}
+
+instance {-# OVERLAPPING #-} HasField "pResults" VkPresentInfoKHR
+         where
+        type FieldType "pResults" VkPresentInfoKHR = Ptr VkResult
+        type FieldOptional "pResults" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pResults" VkPresentInfoKHR =
+             #{offset VkPresentInfoKHR, pResults}
+        type FieldIsArray "pResults" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentInfoKHR, pResults}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pResults" VkPresentInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pResults})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentInfoKHR, pResults}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pResults" VkPresentInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentInfoKHR, pResults}
+
+instance Show VkPresentInfoKHR where
+        showsPrec d x
+          = showString "VkPresentInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "waitSemaphoreCount = " .
+                            showsPrec d (getField @"waitSemaphoreCount" x) .
+                              showString ", " .
+                                showString "pWaitSemaphores = " .
+                                  showsPrec d (getField @"pWaitSemaphores" x) .
+                                    showString ", " .
+                                      showString "swapchainCount = " .
+                                        showsPrec d (getField @"swapchainCount" x) .
+                                          showString ", " .
+                                            showString "pSwapchains = " .
+                                              showsPrec d (getField @"pSwapchains" x) .
+                                                showString ", " .
+                                                  showString "pImageIndices = " .
+                                                    showsPrec d (getField @"pImageIndices" x) .
+                                                      showString ", " .
+                                                        showString "pResults = " .
+                                                          showsPrec d (getField @"pResults" x) .
+                                                            showChar '}'
+
+-- | > typedef struct VkPresentRegionKHR {
+--   >     uint32_t         rectangleCount;
+--   >     const VkRectLayerKHR*   pRectangles;
+--   > } VkPresentRegionKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentRegionKHR VkPresentRegionKHR registry at www.khronos.org>
+data VkPresentRegionKHR = VkPresentRegionKHR## Addr## ByteArray##
+
+instance Eq VkPresentRegionKHR where
+        (VkPresentRegionKHR## a _) == x@(VkPresentRegionKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPresentRegionKHR where
+        (VkPresentRegionKHR## a _) `compare` x@(VkPresentRegionKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPresentRegionKHR where
+        sizeOf ~_ = #{size VkPresentRegionKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPresentRegionKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPresentRegionKHR where
+        unsafeAddr (VkPresentRegionKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPresentRegionKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPresentRegionKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPresentRegionKHR where
+        type StructFields VkPresentRegionKHR =
+             '["rectangleCount", "pRectangles"] -- ' closing tick for hsc2hs
+        type CUnionType VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPresentRegionKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "rectangleCount" VkPresentRegionKHR where
+        type FieldType "rectangleCount" VkPresentRegionKHR = Word32
+        type FieldOptional "rectangleCount" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "rectangleCount" VkPresentRegionKHR =
+             #{offset VkPresentRegionKHR, rectangleCount}
+        type FieldIsArray "rectangleCount" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentRegionKHR, rectangleCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "rectangleCount" VkPresentRegionKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionKHR, rectangleCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionKHR, rectangleCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "rectangleCount" VkPresentRegionKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionKHR, rectangleCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pRectangles" VkPresentRegionKHR where
+        type FieldType "pRectangles" VkPresentRegionKHR =
+             Ptr VkRectLayerKHR
+        type FieldOptional "pRectangles" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pRectangles" VkPresentRegionKHR =
+             #{offset VkPresentRegionKHR, pRectangles}
+        type FieldIsArray "pRectangles" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentRegionKHR, pRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pRectangles" VkPresentRegionKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionKHR, pRectangles})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionKHR, pRectangles}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pRectangles" VkPresentRegionKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionKHR, pRectangles}
+
+instance Show VkPresentRegionKHR where
+        showsPrec d x
+          = showString "VkPresentRegionKHR {" .
+              showString "rectangleCount = " .
+                showsPrec d (getField @"rectangleCount" x) .
+                  showString ", " .
+                    showString "pRectangles = " .
+                      showsPrec d (getField @"pRectangles" x) . showChar '}'
+
+-- | > typedef struct VkPresentRegionsKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         swapchainCount;
+--   >     const VkPresentRegionKHR*   pRegions;
+--   > } VkPresentRegionsKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentRegionsKHR VkPresentRegionsKHR registry at www.khronos.org>
+data VkPresentRegionsKHR = VkPresentRegionsKHR## Addr## ByteArray##
+
+instance Eq VkPresentRegionsKHR where
+        (VkPresentRegionsKHR## a _) == x@(VkPresentRegionsKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPresentRegionsKHR where
+        (VkPresentRegionsKHR## a _) `compare` x@(VkPresentRegionsKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPresentRegionsKHR where
+        sizeOf ~_ = #{size VkPresentRegionsKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPresentRegionsKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPresentRegionsKHR where
+        unsafeAddr (VkPresentRegionsKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPresentRegionsKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPresentRegionsKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPresentRegionsKHR where
+        type StructFields VkPresentRegionsKHR =
+             '["sType", "pNext", "swapchainCount", "pRegions"] -- ' closing tick for hsc2hs
+        type CUnionType VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPresentRegionsKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkPresentRegionsKHR
+         where
+        type FieldType "sType" VkPresentRegionsKHR = VkStructureType
+        type FieldOptional "sType" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPresentRegionsKHR =
+             #{offset VkPresentRegionsKHR, sType}
+        type FieldIsArray "sType" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentRegionsKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPresentRegionsKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionsKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPresentRegionsKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionsKHR, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkPresentRegionsKHR
+         where
+        type FieldType "pNext" VkPresentRegionsKHR = Ptr Void
+        type FieldOptional "pNext" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPresentRegionsKHR =
+             #{offset VkPresentRegionsKHR, pNext}
+        type FieldIsArray "pNext" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentRegionsKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPresentRegionsKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionsKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPresentRegionsKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionsKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchainCount" VkPresentRegionsKHR where
+        type FieldType "swapchainCount" VkPresentRegionsKHR = Word32
+        type FieldOptional "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "swapchainCount" VkPresentRegionsKHR =
+             #{offset VkPresentRegionsKHR, swapchainCount}
+        type FieldIsArray "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentRegionsKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchainCount" VkPresentRegionsKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, swapchainCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionsKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchainCount" VkPresentRegionsKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionsKHR, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pRegions" VkPresentRegionsKHR where
+        type FieldType "pRegions" VkPresentRegionsKHR =
+             Ptr VkPresentRegionKHR
+        type FieldOptional "pRegions" VkPresentRegionsKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pRegions" VkPresentRegionsKHR =
+             #{offset VkPresentRegionsKHR, pRegions}
+        type FieldIsArray "pRegions" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentRegionsKHR, pRegions}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pRegions" VkPresentRegionsKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, pRegions})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentRegionsKHR, pRegions}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pRegions" VkPresentRegionsKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentRegionsKHR, pRegions}
+
+instance Show VkPresentRegionsKHR where
+        showsPrec d x
+          = showString "VkPresentRegionsKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchainCount = " .
+                            showsPrec d (getField @"swapchainCount" x) .
+                              showString ", " .
+                                showString "pRegions = " .
+                                  showsPrec d (getField @"pRegions" x) . showChar '}'
+
+-- | > typedef struct VkPresentTimeGOOGLE {
+--   >     uint32_t                         presentID;
+--   >     uint64_t                         desiredPresentTime;
+--   > } VkPresentTimeGOOGLE;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentTimeGOOGLE VkPresentTimeGOOGLE registry at www.khronos.org>
+data VkPresentTimeGOOGLE = VkPresentTimeGOOGLE## Addr## ByteArray##
+
+instance Eq VkPresentTimeGOOGLE where
+        (VkPresentTimeGOOGLE## a _) == x@(VkPresentTimeGOOGLE## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPresentTimeGOOGLE where
+        (VkPresentTimeGOOGLE## a _) `compare` x@(VkPresentTimeGOOGLE## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPresentTimeGOOGLE where
+        sizeOf ~_ = #{size VkPresentTimeGOOGLE}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPresentTimeGOOGLE}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPresentTimeGOOGLE where
+        unsafeAddr (VkPresentTimeGOOGLE## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPresentTimeGOOGLE## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPresentTimeGOOGLE## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPresentTimeGOOGLE where
+        type StructFields VkPresentTimeGOOGLE =
+             '["presentID", "desiredPresentTime"] -- ' closing tick for hsc2hs
+        type CUnionType VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPresentTimeGOOGLE = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "presentID" VkPresentTimeGOOGLE where
+        type FieldType "presentID" VkPresentTimeGOOGLE = Word32
+        type FieldOptional "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "presentID" VkPresentTimeGOOGLE =
+             #{offset VkPresentTimeGOOGLE, presentID}
+        type FieldIsArray "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentTimeGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "presentID" VkPresentTimeGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimeGOOGLE, presentID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimeGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "presentID" VkPresentTimeGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimeGOOGLE, presentID}
+
+instance {-# OVERLAPPING #-}
+         HasField "desiredPresentTime" VkPresentTimeGOOGLE where
+        type FieldType "desiredPresentTime" VkPresentTimeGOOGLE = Word64
+        type FieldOptional "desiredPresentTime" VkPresentTimeGOOGLE =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "desiredPresentTime" VkPresentTimeGOOGLE =
+             #{offset VkPresentTimeGOOGLE, desiredPresentTime}
+        type FieldIsArray "desiredPresentTime" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentTimeGOOGLE, desiredPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "desiredPresentTime" VkPresentTimeGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimeGOOGLE, desiredPresentTime})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimeGOOGLE, desiredPresentTime}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "desiredPresentTime" VkPresentTimeGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimeGOOGLE, desiredPresentTime}
+
+instance Show VkPresentTimeGOOGLE where
+        showsPrec d x
+          = showString "VkPresentTimeGOOGLE {" .
+              showString "presentID = " .
+                showsPrec d (getField @"presentID" x) .
+                  showString ", " .
+                    showString "desiredPresentTime = " .
+                      showsPrec d (getField @"desiredPresentTime" x) . showChar '}'
+
+-- | > typedef struct VkPresentTimesInfoGOOGLE {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         swapchainCount;
+--   >     const VkPresentTimeGOOGLE*   pTimes;
+--   > } VkPresentTimesInfoGOOGLE;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPresentTimesInfoGOOGLE VkPresentTimesInfoGOOGLE registry at www.khronos.org>
+data VkPresentTimesInfoGOOGLE = VkPresentTimesInfoGOOGLE## Addr##
+                                                          ByteArray##
+
+instance Eq VkPresentTimesInfoGOOGLE where
+        (VkPresentTimesInfoGOOGLE## a _) ==
+          x@(VkPresentTimesInfoGOOGLE## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPresentTimesInfoGOOGLE where
+        (VkPresentTimesInfoGOOGLE## a _) `compare`
+          x@(VkPresentTimesInfoGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPresentTimesInfoGOOGLE where
+        sizeOf ~_ = #{size VkPresentTimesInfoGOOGLE}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPresentTimesInfoGOOGLE}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPresentTimesInfoGOOGLE where
+        unsafeAddr (VkPresentTimesInfoGOOGLE## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPresentTimesInfoGOOGLE## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPresentTimesInfoGOOGLE## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPresentTimesInfoGOOGLE where
+        type StructFields VkPresentTimesInfoGOOGLE =
+             '["sType", "pNext", "swapchainCount", "pTimes"] -- ' closing tick for hsc2hs
+        type CUnionType VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPresentTimesInfoGOOGLE = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkPresentTimesInfoGOOGLE where
+        type FieldType "sType" VkPresentTimesInfoGOOGLE = VkStructureType
+        type FieldOptional "sType" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkPresentTimesInfoGOOGLE =
+             #{offset VkPresentTimesInfoGOOGLE, sType}
+        type FieldIsArray "sType" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentTimesInfoGOOGLE, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkPresentTimesInfoGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkPresentTimesInfoGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkPresentTimesInfoGOOGLE where
+        type FieldType "pNext" VkPresentTimesInfoGOOGLE = Ptr Void
+        type FieldOptional "pNext" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkPresentTimesInfoGOOGLE =
+             #{offset VkPresentTimesInfoGOOGLE, pNext}
+        type FieldIsArray "pNext" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPresentTimesInfoGOOGLE, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkPresentTimesInfoGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkPresentTimesInfoGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "swapchainCount" VkPresentTimesInfoGOOGLE where
+        type FieldType "swapchainCount" VkPresentTimesInfoGOOGLE = Word32
+        type FieldOptional "swapchainCount" VkPresentTimesInfoGOOGLE =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "swapchainCount" VkPresentTimesInfoGOOGLE =
+             #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
+        type FieldIsArray "swapchainCount" VkPresentTimesInfoGOOGLE =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "swapchainCount" VkPresentTimesInfoGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, swapchainCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "swapchainCount" VkPresentTimesInfoGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTimes" VkPresentTimesInfoGOOGLE where
+        type FieldType "pTimes" VkPresentTimesInfoGOOGLE =
+             Ptr VkPresentTimeGOOGLE
+        type FieldOptional "pTimes" VkPresentTimesInfoGOOGLE = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "pTimes" VkPresentTimesInfoGOOGLE =
+             #{offset VkPresentTimesInfoGOOGLE, pTimes}
+        type FieldIsArray "pTimes" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkPresentTimesInfoGOOGLE, pTimes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTimes" VkPresentTimesInfoGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, pTimes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, pTimes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTimes" VkPresentTimesInfoGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, pTimes}
+
+instance Show VkPresentTimesInfoGOOGLE where
+        showsPrec d x
+          = showString "VkPresentTimesInfoGOOGLE {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "swapchainCount = " .
+                            showsPrec d (getField @"swapchainCount" x) .
+                              showString ", " .
+                                showString "pTimes = " .
+                                  showsPrec d (getField @"pTimes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/ProtectedSubmitInfo.hsc
@@ -0,0 +1,182 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
+       (VkProtectedSubmitInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.SubmitInfo  (VkSubmitInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkProtectedSubmitInfo {
+--   >     VkStructureType sType;
+--   >     const void*                     pNext;
+--   >     VkBool32                        protectedSubmit;
+--   > } VkProtectedSubmitInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkProtectedSubmitInfo VkProtectedSubmitInfo registry at www.khronos.org>
+data VkProtectedSubmitInfo = VkProtectedSubmitInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkProtectedSubmitInfo where
+        (VkProtectedSubmitInfo## a _) == x@(VkProtectedSubmitInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkProtectedSubmitInfo where
+        (VkProtectedSubmitInfo## a _) `compare`
+          x@(VkProtectedSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkProtectedSubmitInfo where
+        sizeOf ~_ = #{size VkProtectedSubmitInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkProtectedSubmitInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkProtectedSubmitInfo where
+        unsafeAddr (VkProtectedSubmitInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkProtectedSubmitInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkProtectedSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkProtectedSubmitInfo where
+        type StructFields VkProtectedSubmitInfo =
+             '["sType", "pNext", "protectedSubmit"] -- ' closing tick for hsc2hs
+        type CUnionType VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkProtectedSubmitInfo = '[VkSubmitInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkProtectedSubmitInfo
+         where
+        type FieldType "sType" VkProtectedSubmitInfo = VkStructureType
+        type FieldOptional "sType" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkProtectedSubmitInfo =
+             #{offset VkProtectedSubmitInfo, sType}
+        type FieldIsArray "sType" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkProtectedSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkProtectedSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkProtectedSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkProtectedSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkProtectedSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkProtectedSubmitInfo
+         where
+        type FieldType "pNext" VkProtectedSubmitInfo = Ptr Void
+        type FieldOptional "pNext" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkProtectedSubmitInfo =
+             #{offset VkProtectedSubmitInfo, pNext}
+        type FieldIsArray "pNext" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkProtectedSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkProtectedSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkProtectedSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkProtectedSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkProtectedSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "protectedSubmit" VkProtectedSubmitInfo where
+        type FieldType "protectedSubmit" VkProtectedSubmitInfo = VkBool32
+        type FieldOptional "protectedSubmit" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "protectedSubmit" VkProtectedSubmitInfo =
+             #{offset VkProtectedSubmitInfo, protectedSubmit}
+        type FieldIsArray "protectedSubmit" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkProtectedSubmitInfo, protectedSubmit}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "protectedSubmit" VkProtectedSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, protectedSubmit})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkProtectedSubmitInfo, protectedSubmit}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "protectedSubmit" VkProtectedSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkProtectedSubmitInfo, protectedSubmit}
+
+instance Show VkProtectedSubmitInfo where
+        showsPrec d x
+          = showString "VkProtectedSubmitInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "protectedSubmit = " .
+                            showsPrec d (getField @"protectedSubmit" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/PushConstantRange.hsc
@@ -0,0 +1,179 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.PushConstantRange
+       (VkPushConstantRange(..)) where
+import           Foreign.Storable                  (Storable (..))
+import           GHC.Base                          (Addr##, ByteArray##,
+                                                    byteArrayContents##,
+                                                    plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Shader (VkShaderStageFlags)
+import           System.IO.Unsafe                  (unsafeDupablePerformIO)
+
+-- | > typedef struct VkPushConstantRange {
+--   >     VkShaderStageFlags     stageFlags;
+--   >     uint32_t               offset;
+--   >     uint32_t               size;
+--   > } VkPushConstantRange;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkPushConstantRange VkPushConstantRange registry at www.khronos.org>
+data VkPushConstantRange = VkPushConstantRange## Addr## ByteArray##
+
+instance Eq VkPushConstantRange where
+        (VkPushConstantRange## a _) == x@(VkPushConstantRange## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkPushConstantRange where
+        (VkPushConstantRange## a _) `compare` x@(VkPushConstantRange## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkPushConstantRange where
+        sizeOf ~_ = #{size VkPushConstantRange}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkPushConstantRange}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkPushConstantRange where
+        unsafeAddr (VkPushConstantRange## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkPushConstantRange## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkPushConstantRange## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkPushConstantRange where
+        type StructFields VkPushConstantRange =
+             '["stageFlags", "offset", "size"] -- ' closing tick for hsc2hs
+        type CUnionType VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkPushConstantRange = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "stageFlags" VkPushConstantRange where
+        type FieldType "stageFlags" VkPushConstantRange =
+             VkShaderStageFlags
+        type FieldOptional "stageFlags" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "stageFlags" VkPushConstantRange =
+             #{offset VkPushConstantRange, stageFlags}
+        type FieldIsArray "stageFlags" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPushConstantRange, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stageFlags" VkPushConstantRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, stageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPushConstantRange, stageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stageFlags" VkPushConstantRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPushConstantRange, stageFlags}
+
+instance {-# OVERLAPPING #-} HasField "offset" VkPushConstantRange
+         where
+        type FieldType "offset" VkPushConstantRange = Word32
+        type FieldOptional "offset" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkPushConstantRange =
+             #{offset VkPushConstantRange, offset}
+        type FieldIsArray "offset" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPushConstantRange, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkPushConstantRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPushConstantRange, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkPushConstantRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPushConstantRange, offset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkPushConstantRange
+         where
+        type FieldType "size" VkPushConstantRange = Word32
+        type FieldOptional "size" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkPushConstantRange =
+             #{offset VkPushConstantRange, size}
+        type FieldIsArray "size" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkPushConstantRange, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkPushConstantRange where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkPushConstantRange, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkPushConstantRange where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkPushConstantRange, size}
+
+instance Show VkPushConstantRange where
+        showsPrec d x
+          = showString "VkPushConstantRange {" .
+              showString "stageFlags = " .
+                showsPrec d (getField @"stageFlags" x) .
+                  showString ", " .
+                    showString "offset = " .
+                      showsPrec d (getField @"offset" x) .
+                        showString ", " .
+                          showString "size = " .
+                            showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/QueryPoolCreateInfo.hsc
@@ -0,0 +1,296 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
+       (VkQueryPoolCreateInfo(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkQueryPoolCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Query         (VkQueryPipelineStatisticFlags,
+                                                           VkQueryType)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkQueryPoolCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkQueryPoolCreateFlags flags;
+--   >     VkQueryType            queryType;
+--   >     uint32_t               queryCount;
+--   >     VkQueryPipelineStatisticFlags pipelineStatistics;
+--   > } VkQueryPoolCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueryPoolCreateInfo VkQueryPoolCreateInfo registry at www.khronos.org>
+data VkQueryPoolCreateInfo = VkQueryPoolCreateInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkQueryPoolCreateInfo where
+        (VkQueryPoolCreateInfo## a _) == x@(VkQueryPoolCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkQueryPoolCreateInfo where
+        (VkQueryPoolCreateInfo## a _) `compare`
+          x@(VkQueryPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkQueryPoolCreateInfo where
+        sizeOf ~_ = #{size VkQueryPoolCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkQueryPoolCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkQueryPoolCreateInfo where
+        unsafeAddr (VkQueryPoolCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkQueryPoolCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkQueryPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkQueryPoolCreateInfo where
+        type StructFields VkQueryPoolCreateInfo =
+             '["sType", "pNext", "flags", "queryType", "queryCount", -- ' closing tick for hsc2hs
+               "pipelineStatistics"]
+        type CUnionType VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkQueryPoolCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkQueryPoolCreateInfo
+         where
+        type FieldType "sType" VkQueryPoolCreateInfo = VkStructureType
+        type FieldOptional "sType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, sType}
+        type FieldIsArray "sType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkQueryPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkQueryPoolCreateInfo
+         where
+        type FieldType "pNext" VkQueryPoolCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, pNext}
+        type FieldIsArray "pNext" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkQueryPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkQueryPoolCreateInfo
+         where
+        type FieldType "flags" VkQueryPoolCreateInfo =
+             VkQueryPoolCreateFlags
+        type FieldOptional "flags" VkQueryPoolCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, flags}
+        type FieldIsArray "flags" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkQueryPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queryType" VkQueryPoolCreateInfo where
+        type FieldType "queryType" VkQueryPoolCreateInfo = VkQueryType
+        type FieldOptional "queryType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queryType" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, queryType}
+        type FieldIsArray "queryType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueryPoolCreateInfo, queryType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queryType" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, queryType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, queryType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queryType" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, queryType}
+
+instance {-# OVERLAPPING #-}
+         HasField "queryCount" VkQueryPoolCreateInfo where
+        type FieldType "queryCount" VkQueryPoolCreateInfo = Word32
+        type FieldOptional "queryCount" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queryCount" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, queryCount}
+        type FieldIsArray "queryCount" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueryPoolCreateInfo, queryCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queryCount" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, queryCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, queryCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queryCount" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, queryCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineStatistics" VkQueryPoolCreateInfo where
+        type FieldType "pipelineStatistics" VkQueryPoolCreateInfo =
+             VkQueryPipelineStatisticFlags
+        type FieldOptional "pipelineStatistics" VkQueryPoolCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineStatistics" VkQueryPoolCreateInfo =
+             #{offset VkQueryPoolCreateInfo, pipelineStatistics}
+        type FieldIsArray "pipelineStatistics" VkQueryPoolCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueryPoolCreateInfo, pipelineStatistics}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineStatistics" VkQueryPoolCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, pipelineStatistics})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueryPoolCreateInfo, pipelineStatistics}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineStatistics" VkQueryPoolCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueryPoolCreateInfo, pipelineStatistics}
+
+instance Show VkQueryPoolCreateInfo where
+        showsPrec d x
+          = showString "VkQueryPoolCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "queryType = " .
+                                  showsPrec d (getField @"queryType" x) .
+                                    showString ", " .
+                                      showString "queryCount = " .
+                                        showsPrec d (getField @"queryCount" x) .
+                                          showString ", " .
+                                            showString "pipelineStatistics = " .
+                                              showsPrec d (getField @"pipelineStatistics" x) .
+                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/QueueFamilyProperties.hsc
@@ -0,0 +1,407 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+       (VkQueueFamilyProperties(..), VkQueueFamilyProperties2(..),
+        VkQueueFamilyProperties2KHR)
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Queue         (VkQueueFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkQueueFamilyProperties {
+--   >     VkQueueFlags           queueFlags;
+--   >     uint32_t               queueCount;
+--   >     uint32_t               timestampValidBits;
+--   >     VkExtent3D             minImageTransferGranularity;
+--   > } VkQueueFamilyProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueueFamilyProperties VkQueueFamilyProperties registry at www.khronos.org>
+data VkQueueFamilyProperties = VkQueueFamilyProperties## Addr##
+                                                        ByteArray##
+
+instance Eq VkQueueFamilyProperties where
+        (VkQueueFamilyProperties## a _) == x@(VkQueueFamilyProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkQueueFamilyProperties where
+        (VkQueueFamilyProperties## a _) `compare`
+          x@(VkQueueFamilyProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkQueueFamilyProperties where
+        sizeOf ~_ = #{size VkQueueFamilyProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkQueueFamilyProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkQueueFamilyProperties where
+        unsafeAddr (VkQueueFamilyProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkQueueFamilyProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkQueueFamilyProperties## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkQueueFamilyProperties where
+        type StructFields VkQueueFamilyProperties =
+             '["queueFlags", "queueCount", "timestampValidBits", -- ' closing tick for hsc2hs
+               "minImageTransferGranularity"]
+        type CUnionType VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkQueueFamilyProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkQueueFamilyProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFlags" VkQueueFamilyProperties where
+        type FieldType "queueFlags" VkQueueFamilyProperties = VkQueueFlags
+        type FieldOptional "queueFlags" VkQueueFamilyProperties = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "queueFlags" VkQueueFamilyProperties =
+             #{offset VkQueueFamilyProperties, queueFlags}
+        type FieldIsArray "queueFlags" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueueFamilyProperties, queueFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFlags" VkQueueFamilyProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, queueFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties, queueFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFlags" VkQueueFamilyProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties, queueFlags}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueCount" VkQueueFamilyProperties where
+        type FieldType "queueCount" VkQueueFamilyProperties = Word32
+        type FieldOptional "queueCount" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueCount" VkQueueFamilyProperties =
+             #{offset VkQueueFamilyProperties, queueCount}
+        type FieldIsArray "queueCount" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueueFamilyProperties, queueCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueCount" VkQueueFamilyProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, queueCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties, queueCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueCount" VkQueueFamilyProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties, queueCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "timestampValidBits" VkQueueFamilyProperties where
+        type FieldType "timestampValidBits" VkQueueFamilyProperties =
+             Word32
+        type FieldOptional "timestampValidBits" VkQueueFamilyProperties =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "timestampValidBits" VkQueueFamilyProperties =
+             #{offset VkQueueFamilyProperties, timestampValidBits}
+        type FieldIsArray "timestampValidBits" VkQueueFamilyProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueueFamilyProperties, timestampValidBits}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "timestampValidBits" VkQueueFamilyProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, timestampValidBits})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties, timestampValidBits}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "timestampValidBits" VkQueueFamilyProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties, timestampValidBits}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageTransferGranularity" VkQueueFamilyProperties
+         where
+        type FieldType "minImageTransferGranularity"
+               VkQueueFamilyProperties
+             = VkExtent3D
+        type FieldOptional "minImageTransferGranularity"
+               VkQueueFamilyProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageTransferGranularity"
+               VkQueueFamilyProperties
+             =
+             #{offset VkQueueFamilyProperties, minImageTransferGranularity}
+        type FieldIsArray "minImageTransferGranularity"
+               VkQueueFamilyProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueueFamilyProperties, minImageTransferGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageTransferGranularity" VkQueueFamilyProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, minImageTransferGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties, minImageTransferGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageTransferGranularity" VkQueueFamilyProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties, minImageTransferGranularity}
+
+instance Show VkQueueFamilyProperties where
+        showsPrec d x
+          = showString "VkQueueFamilyProperties {" .
+              showString "queueFlags = " .
+                showsPrec d (getField @"queueFlags" x) .
+                  showString ", " .
+                    showString "queueCount = " .
+                      showsPrec d (getField @"queueCount" x) .
+                        showString ", " .
+                          showString "timestampValidBits = " .
+                            showsPrec d (getField @"timestampValidBits" x) .
+                              showString ", " .
+                                showString "minImageTransferGranularity = " .
+                                  showsPrec d (getField @"minImageTransferGranularity" x) .
+                                    showChar '}'
+
+-- | > typedef struct VkQueueFamilyProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkQueueFamilyProperties          queueFamilyProperties;
+--   > } VkQueueFamilyProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkQueueFamilyProperties2 VkQueueFamilyProperties2 registry at www.khronos.org>
+data VkQueueFamilyProperties2 = VkQueueFamilyProperties2## Addr##
+                                                          ByteArray##
+
+instance Eq VkQueueFamilyProperties2 where
+        (VkQueueFamilyProperties2## a _) ==
+          x@(VkQueueFamilyProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkQueueFamilyProperties2 where
+        (VkQueueFamilyProperties2## a _) `compare`
+          x@(VkQueueFamilyProperties2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkQueueFamilyProperties2 where
+        sizeOf ~_ = #{size VkQueueFamilyProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkQueueFamilyProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkQueueFamilyProperties2 where
+        unsafeAddr (VkQueueFamilyProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkQueueFamilyProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkQueueFamilyProperties2## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkQueueFamilyProperties2 where
+        type StructFields VkQueueFamilyProperties2 =
+             '["sType", "pNext", "queueFamilyProperties"] -- ' closing tick for hsc2hs
+        type CUnionType VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkQueueFamilyProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkQueueFamilyProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkQueueFamilyProperties2 where
+        type FieldType "sType" VkQueueFamilyProperties2 = VkStructureType
+        type FieldOptional "sType" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkQueueFamilyProperties2 =
+             #{offset VkQueueFamilyProperties2, sType}
+        type FieldIsArray "sType" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkQueueFamilyProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkQueueFamilyProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkQueueFamilyProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkQueueFamilyProperties2 where
+        type FieldType "pNext" VkQueueFamilyProperties2 = Ptr Void
+        type FieldOptional "pNext" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkQueueFamilyProperties2 =
+             #{offset VkQueueFamilyProperties2, pNext}
+        type FieldIsArray "pNext" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkQueueFamilyProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkQueueFamilyProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkQueueFamilyProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyProperties" VkQueueFamilyProperties2 where
+        type FieldType "queueFamilyProperties" VkQueueFamilyProperties2 =
+             VkQueueFamilyProperties
+        type FieldOptional "queueFamilyProperties" VkQueueFamilyProperties2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyProperties" VkQueueFamilyProperties2 =
+             #{offset VkQueueFamilyProperties2, queueFamilyProperties}
+        type FieldIsArray "queueFamilyProperties" VkQueueFamilyProperties2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkQueueFamilyProperties2, queueFamilyProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyProperties" VkQueueFamilyProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, queueFamilyProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkQueueFamilyProperties2, queueFamilyProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyProperties" VkQueueFamilyProperties2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkQueueFamilyProperties2, queueFamilyProperties}
+
+instance Show VkQueueFamilyProperties2 where
+        showsPrec d x
+          = showString "VkQueueFamilyProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "queueFamilyProperties = " .
+                            showsPrec d (getField @"queueFamilyProperties" x) . showChar '}'
+
+-- | Alias for `VkQueueFamilyProperties2`
+type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Rect.hsc
@@ -0,0 +1,288 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Rect
+       (VkRect2D(..), VkRectLayerKHR(..)) where
+import           Foreign.Storable                    (Storable (..))
+import           GHC.Base                            (Addr##, ByteArray##,
+                                                      byteArrayContents##,
+                                                      plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Struct.Extent (VkExtent2D)
+import           Graphics.Vulkan.Types.Struct.Offset (VkOffset2D)
+import           System.IO.Unsafe                    (unsafeDupablePerformIO)
+
+-- | > typedef struct VkRect2D {
+--   >     VkOffset2D     offset;
+--   >     VkExtent2D     extent;
+--   > } VkRect2D;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRect2D VkRect2D registry at www.khronos.org>
+data VkRect2D = VkRect2D## Addr## ByteArray##
+
+instance Eq VkRect2D where
+        (VkRect2D## a _) == x@(VkRect2D## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRect2D where
+        (VkRect2D## a _) `compare` x@(VkRect2D## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRect2D where
+        sizeOf ~_ = #{size VkRect2D}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkRect2D}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRect2D where
+        unsafeAddr (VkRect2D## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRect2D## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRect2D## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRect2D where
+        type StructFields VkRect2D = '["offset", "extent"] -- ' closing tick for hsc2hs
+        type CUnionType VkRect2D = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRect2D = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRect2D = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "offset" VkRect2D where
+        type FieldType "offset" VkRect2D = VkOffset2D
+        type FieldOptional "offset" VkRect2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkRect2D =
+             #{offset VkRect2D, offset}
+        type FieldIsArray "offset" VkRect2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRect2D, offset}
+
+instance {-# OVERLAPPING #-} CanReadField "offset" VkRect2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRect2D, offset})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkRect2D, offset}
+
+instance {-# OVERLAPPING #-} CanWriteField "offset" VkRect2D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkRect2D, offset}
+
+instance {-# OVERLAPPING #-} HasField "extent" VkRect2D where
+        type FieldType "extent" VkRect2D = VkExtent2D
+        type FieldOptional "extent" VkRect2D = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkRect2D =
+             #{offset VkRect2D, extent}
+        type FieldIsArray "extent" VkRect2D = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRect2D, extent}
+
+instance {-# OVERLAPPING #-} CanReadField "extent" VkRect2D where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRect2D, extent})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkRect2D, extent}
+
+instance {-# OVERLAPPING #-} CanWriteField "extent" VkRect2D where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkRect2D, extent}
+
+instance Show VkRect2D where
+        showsPrec d x
+          = showString "VkRect2D {" .
+              showString "offset = " .
+                showsPrec d (getField @"offset" x) .
+                  showString ", " .
+                    showString "extent = " .
+                      showsPrec d (getField @"extent" x) . showChar '}'
+
+-- | > typedef struct VkRectLayerKHR {
+--   >     VkOffset2D                       offset;
+--   >     VkExtent2D                       extent;
+--   >     uint32_t                         layer;
+--   > } VkRectLayerKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRectLayerKHR VkRectLayerKHR registry at www.khronos.org>
+data VkRectLayerKHR = VkRectLayerKHR## Addr## ByteArray##
+
+instance Eq VkRectLayerKHR where
+        (VkRectLayerKHR## a _) == x@(VkRectLayerKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRectLayerKHR where
+        (VkRectLayerKHR## a _) `compare` x@(VkRectLayerKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRectLayerKHR where
+        sizeOf ~_ = #{size VkRectLayerKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkRectLayerKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRectLayerKHR where
+        unsafeAddr (VkRectLayerKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRectLayerKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRectLayerKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRectLayerKHR where
+        type StructFields VkRectLayerKHR = '["offset", "extent", "layer"] -- ' closing tick for hsc2hs
+        type CUnionType VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRectLayerKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "offset" VkRectLayerKHR where
+        type FieldType "offset" VkRectLayerKHR = VkOffset2D
+        type FieldOptional "offset" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkRectLayerKHR =
+             #{offset VkRectLayerKHR, offset}
+        type FieldIsArray "offset" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRectLayerKHR, offset}
+
+instance {-# OVERLAPPING #-} CanReadField "offset" VkRectLayerKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRectLayerKHR, offset}
+
+instance {-# OVERLAPPING #-} CanWriteField "offset" VkRectLayerKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRectLayerKHR, offset}
+
+instance {-# OVERLAPPING #-} HasField "extent" VkRectLayerKHR where
+        type FieldType "extent" VkRectLayerKHR = VkExtent2D
+        type FieldOptional "extent" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkRectLayerKHR =
+             #{offset VkRectLayerKHR, extent}
+        type FieldIsArray "extent" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRectLayerKHR, extent}
+
+instance {-# OVERLAPPING #-} CanReadField "extent" VkRectLayerKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, extent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRectLayerKHR, extent}
+
+instance {-# OVERLAPPING #-} CanWriteField "extent" VkRectLayerKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRectLayerKHR, extent}
+
+instance {-# OVERLAPPING #-} HasField "layer" VkRectLayerKHR where
+        type FieldType "layer" VkRectLayerKHR = Word32
+        type FieldOptional "layer" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "layer" VkRectLayerKHR =
+             #{offset VkRectLayerKHR, layer}
+        type FieldIsArray "layer" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRectLayerKHR, layer}
+
+instance {-# OVERLAPPING #-} CanReadField "layer" VkRectLayerKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, layer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRectLayerKHR, layer}
+
+instance {-# OVERLAPPING #-} CanWriteField "layer" VkRectLayerKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRectLayerKHR, layer}
+
+instance Show VkRectLayerKHR where
+        showsPrec d x
+          = showString "VkRectLayerKHR {" .
+              showString "offset = " .
+                showsPrec d (getField @"offset" x) .
+                  showString ", " .
+                    showString "extent = " .
+                      showsPrec d (getField @"extent" x) .
+                        showString ", " .
+                          showString "layer = " .
+                            showsPrec d (getField @"layer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/RefreshCycleDurationGOOGLE.hsc
@@ -0,0 +1,116 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
+       (VkRefreshCycleDurationGOOGLE(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkRefreshCycleDurationGOOGLE {
+--   >     uint64_t                         refreshDuration;
+--   > } VkRefreshCycleDurationGOOGLE;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRefreshCycleDurationGOOGLE VkRefreshCycleDurationGOOGLE registry at www.khronos.org>
+data VkRefreshCycleDurationGOOGLE = VkRefreshCycleDurationGOOGLE## Addr##
+                                                                  ByteArray##
+
+instance Eq VkRefreshCycleDurationGOOGLE where
+        (VkRefreshCycleDurationGOOGLE## a _) ==
+          x@(VkRefreshCycleDurationGOOGLE## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRefreshCycleDurationGOOGLE where
+        (VkRefreshCycleDurationGOOGLE## a _) `compare`
+          x@(VkRefreshCycleDurationGOOGLE## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRefreshCycleDurationGOOGLE where
+        sizeOf ~_ = #{size VkRefreshCycleDurationGOOGLE}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkRefreshCycleDurationGOOGLE}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRefreshCycleDurationGOOGLE where
+        unsafeAddr (VkRefreshCycleDurationGOOGLE## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRefreshCycleDurationGOOGLE## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRefreshCycleDurationGOOGLE##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRefreshCycleDurationGOOGLE where
+        type StructFields VkRefreshCycleDurationGOOGLE =
+             '["refreshDuration"] -- ' closing tick for hsc2hs
+        type CUnionType VkRefreshCycleDurationGOOGLE = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRefreshCycleDurationGOOGLE = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRefreshCycleDurationGOOGLE = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "refreshDuration" VkRefreshCycleDurationGOOGLE where
+        type FieldType "refreshDuration" VkRefreshCycleDurationGOOGLE =
+             Word64
+        type FieldOptional "refreshDuration" VkRefreshCycleDurationGOOGLE =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "refreshDuration" VkRefreshCycleDurationGOOGLE =
+             #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
+        type FieldIsArray "refreshDuration" VkRefreshCycleDurationGOOGLE =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "refreshDuration" VkRefreshCycleDurationGOOGLE where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRefreshCycleDurationGOOGLE, refreshDuration})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "refreshDuration" VkRefreshCycleDurationGOOGLE where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
+
+instance Show VkRefreshCycleDurationGOOGLE where
+        showsPrec d x
+          = showString "VkRefreshCycleDurationGOOGLE {" .
+              showString "refreshDuration = " .
+                showsPrec d (getField @"refreshDuration" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc b/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc
@@ -0,0 +1,1734 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.RenderPass
+       (VkRenderPassBeginInfo(..), VkRenderPassCreateInfo(..),
+        VkRenderPassInputAttachmentAspectCreateInfo(..),
+        VkRenderPassInputAttachmentAspectCreateInfoKHR,
+        VkRenderPassMultiviewCreateInfo(..),
+        VkRenderPassMultiviewCreateInfoKHR,
+        VkRenderPassSampleLocationsBeginInfoEXT(..))
+       where
+import           Foreign.Storable                                            (Storable (..))
+import           GHC.Base                                                    (Addr##,
+                                                                              ByteArray##,
+                                                                              byteArrayContents##,
+                                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks                              (VkRenderPassCreateFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                               (VkFramebuffer,
+                                                                              VkRenderPass)
+import           Graphics.Vulkan.Types.Struct.Attachment                     (VkAttachmentDescription,
+                                                                              VkAttachmentSampleLocationsEXT)
+import           Graphics.Vulkan.Types.Struct.Clear                          (VkClearValue)
+import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference (VkInputAttachmentAspectReference)
+import           Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
+import           Graphics.Vulkan.Types.Struct.Subpass                        (VkSubpassDependency,
+                                                                              VkSubpassDescription,
+                                                                              VkSubpassSampleLocationsEXT)
+import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkRenderPassBeginInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkRenderPass           renderPass;
+--   >     VkFramebuffer          framebuffer;
+--   >     VkRect2D               renderArea;
+--   >     uint32_t               clearValueCount;
+--   >     const VkClearValue*    pClearValues;
+--   > } VkRenderPassBeginInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassBeginInfo VkRenderPassBeginInfo registry at www.khronos.org>
+data VkRenderPassBeginInfo = VkRenderPassBeginInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkRenderPassBeginInfo where
+        (VkRenderPassBeginInfo## a _) == x@(VkRenderPassBeginInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRenderPassBeginInfo where
+        (VkRenderPassBeginInfo## a _) `compare`
+          x@(VkRenderPassBeginInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRenderPassBeginInfo where
+        sizeOf ~_ = #{size VkRenderPassBeginInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkRenderPassBeginInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRenderPassBeginInfo where
+        unsafeAddr (VkRenderPassBeginInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRenderPassBeginInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRenderPassBeginInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRenderPassBeginInfo where
+        type StructFields VkRenderPassBeginInfo =
+             '["sType", "pNext", "renderPass", "framebuffer", "renderArea", -- ' closing tick for hsc2hs
+               "clearValueCount", "pClearValues"]
+        type CUnionType VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRenderPassBeginInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkRenderPassBeginInfo
+         where
+        type FieldType "sType" VkRenderPassBeginInfo = VkStructureType
+        type FieldOptional "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, sType}
+        type FieldIsArray "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkRenderPassBeginInfo
+         where
+        type FieldType "pNext" VkRenderPassBeginInfo = Ptr Void
+        type FieldOptional "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, pNext}
+        type FieldIsArray "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "renderPass" VkRenderPassBeginInfo where
+        type FieldType "renderPass" VkRenderPassBeginInfo = VkRenderPass
+        type FieldOptional "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "renderPass" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, renderPass}
+        type FieldIsArray "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassBeginInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "renderPass" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, renderPass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "renderPass" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, renderPass}
+
+instance {-# OVERLAPPING #-}
+         HasField "framebuffer" VkRenderPassBeginInfo where
+        type FieldType "framebuffer" VkRenderPassBeginInfo = VkFramebuffer
+        type FieldOptional "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "framebuffer" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, framebuffer}
+        type FieldIsArray "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassBeginInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "framebuffer" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, framebuffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "framebuffer" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, framebuffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "renderArea" VkRenderPassBeginInfo where
+        type FieldType "renderArea" VkRenderPassBeginInfo = VkRect2D
+        type FieldOptional "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "renderArea" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, renderArea}
+        type FieldIsArray "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassBeginInfo, renderArea}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "renderArea" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, renderArea})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, renderArea}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "renderArea" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, renderArea}
+
+instance {-# OVERLAPPING #-}
+         HasField "clearValueCount" VkRenderPassBeginInfo where
+        type FieldType "clearValueCount" VkRenderPassBeginInfo = Word32
+        type FieldOptional "clearValueCount" VkRenderPassBeginInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "clearValueCount" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, clearValueCount}
+        type FieldIsArray "clearValueCount" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassBeginInfo, clearValueCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "clearValueCount" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, clearValueCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, clearValueCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "clearValueCount" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, clearValueCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pClearValues" VkRenderPassBeginInfo where
+        type FieldType "pClearValues" VkRenderPassBeginInfo =
+             Ptr VkClearValue
+        type FieldOptional "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pClearValues" VkRenderPassBeginInfo =
+             #{offset VkRenderPassBeginInfo, pClearValues}
+        type FieldIsArray "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassBeginInfo, pClearValues}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pClearValues" VkRenderPassBeginInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, pClearValues})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassBeginInfo, pClearValues}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pClearValues" VkRenderPassBeginInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassBeginInfo, pClearValues}
+
+instance Show VkRenderPassBeginInfo where
+        showsPrec d x
+          = showString "VkRenderPassBeginInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "renderPass = " .
+                            showsPrec d (getField @"renderPass" x) .
+                              showString ", " .
+                                showString "framebuffer = " .
+                                  showsPrec d (getField @"framebuffer" x) .
+                                    showString ", " .
+                                      showString "renderArea = " .
+                                        showsPrec d (getField @"renderArea" x) .
+                                          showString ", " .
+                                            showString "clearValueCount = " .
+                                              showsPrec d (getField @"clearValueCount" x) .
+                                                showString ", " .
+                                                  showString "pClearValues = " .
+                                                    showsPrec d (getField @"pClearValues" x) .
+                                                      showChar '}'
+
+-- | > typedef struct VkRenderPassCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkRenderPassCreateFlags    flags;
+--   >     uint32_t   attachmentCount;
+--   >     const VkAttachmentDescription* pAttachments;
+--   >     uint32_t               subpassCount;
+--   >     const VkSubpassDescription* pSubpasses;
+--   >     uint32_t       dependencyCount;
+--   >     const VkSubpassDependency* pDependencies;
+--   > } VkRenderPassCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassCreateInfo VkRenderPassCreateInfo registry at www.khronos.org>
+data VkRenderPassCreateInfo = VkRenderPassCreateInfo## Addr##
+                                                      ByteArray##
+
+instance Eq VkRenderPassCreateInfo where
+        (VkRenderPassCreateInfo## a _) == x@(VkRenderPassCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRenderPassCreateInfo where
+        (VkRenderPassCreateInfo## a _) `compare`
+          x@(VkRenderPassCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRenderPassCreateInfo where
+        sizeOf ~_ = #{size VkRenderPassCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkRenderPassCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRenderPassCreateInfo where
+        unsafeAddr (VkRenderPassCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRenderPassCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRenderPassCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRenderPassCreateInfo where
+        type StructFields VkRenderPassCreateInfo =
+             '["sType", "pNext", "flags", "attachmentCount", "pAttachments", -- ' closing tick for hsc2hs
+               "subpassCount", "pSubpasses", "dependencyCount", "pDependencies"]
+        type CUnionType VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRenderPassCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkRenderPassCreateInfo where
+        type FieldType "sType" VkRenderPassCreateInfo = VkStructureType
+        type FieldOptional "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, sType}
+        type FieldIsArray "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRenderPassCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkRenderPassCreateInfo where
+        type FieldType "pNext" VkRenderPassCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, pNext}
+        type FieldIsArray "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRenderPassCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkRenderPassCreateInfo where
+        type FieldType "flags" VkRenderPassCreateInfo =
+             VkRenderPassCreateFlags
+        type FieldOptional "flags" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, flags}
+        type FieldIsArray "flags" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkRenderPassCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "attachmentCount" VkRenderPassCreateInfo where
+        type FieldType "attachmentCount" VkRenderPassCreateInfo = Word32
+        type FieldOptional "attachmentCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "attachmentCount" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, attachmentCount}
+        type FieldIsArray "attachmentCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachmentCount" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, attachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachmentCount" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, attachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttachments" VkRenderPassCreateInfo where
+        type FieldType "pAttachments" VkRenderPassCreateInfo =
+             Ptr VkAttachmentDescription
+        type FieldOptional "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAttachments" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, pAttachments}
+        type FieldIsArray "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttachments" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttachments" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, pAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "subpassCount" VkRenderPassCreateInfo where
+        type FieldType "subpassCount" VkRenderPassCreateInfo = Word32
+        type FieldOptional "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subpassCount" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, subpassCount}
+        type FieldIsArray "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpassCount" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, subpassCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpassCount" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSubpasses" VkRenderPassCreateInfo where
+        type FieldType "pSubpasses" VkRenderPassCreateInfo =
+             Ptr VkSubpassDescription
+        type FieldOptional "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSubpasses" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, pSubpasses}
+        type FieldIsArray "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, pSubpasses}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSubpasses" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pSubpasses})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, pSubpasses}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSubpasses" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, pSubpasses}
+
+instance {-# OVERLAPPING #-}
+         HasField "dependencyCount" VkRenderPassCreateInfo where
+        type FieldType "dependencyCount" VkRenderPassCreateInfo = Word32
+        type FieldOptional "dependencyCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dependencyCount" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, dependencyCount}
+        type FieldIsArray "dependencyCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dependencyCount" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, dependencyCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dependencyCount" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDependencies" VkRenderPassCreateInfo where
+        type FieldType "pDependencies" VkRenderPassCreateInfo =
+             Ptr VkSubpassDependency
+        type FieldOptional "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDependencies" VkRenderPassCreateInfo =
+             #{offset VkRenderPassCreateInfo, pDependencies}
+        type FieldIsArray "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassCreateInfo, pDependencies}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDependencies" VkRenderPassCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pDependencies})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassCreateInfo, pDependencies}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDependencies" VkRenderPassCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassCreateInfo, pDependencies}
+
+instance Show VkRenderPassCreateInfo where
+        showsPrec d x
+          = showString "VkRenderPassCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "attachmentCount = " .
+                                  showsPrec d (getField @"attachmentCount" x) .
+                                    showString ", " .
+                                      showString "pAttachments = " .
+                                        showsPrec d (getField @"pAttachments" x) .
+                                          showString ", " .
+                                            showString "subpassCount = " .
+                                              showsPrec d (getField @"subpassCount" x) .
+                                                showString ", " .
+                                                  showString "pSubpasses = " .
+                                                    showsPrec d (getField @"pSubpasses" x) .
+                                                      showString ", " .
+                                                        showString "dependencyCount = " .
+                                                          showsPrec d
+                                                            (getField @"dependencyCount" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pDependencies = " .
+                                                                showsPrec d
+                                                                  (getField @"pDependencies" x)
+                                                                  . showChar '}'
+
+-- | > typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                     pNext;
+--   >     uint32_t                        aspectReferenceCount;
+--   >     const VkInputAttachmentAspectReference* pAspectReferences;
+--   > } VkRenderPassInputAttachmentAspectCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfo registry at www.khronos.org>
+data VkRenderPassInputAttachmentAspectCreateInfo = VkRenderPassInputAttachmentAspectCreateInfo## Addr##
+                                                                                                ByteArray##
+
+instance Eq VkRenderPassInputAttachmentAspectCreateInfo where
+        (VkRenderPassInputAttachmentAspectCreateInfo## a _) ==
+          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRenderPassInputAttachmentAspectCreateInfo where
+        (VkRenderPassInputAttachmentAspectCreateInfo## a _) `compare`
+          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRenderPassInputAttachmentAspectCreateInfo where
+        sizeOf ~_
+          = #{size VkRenderPassInputAttachmentAspectCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkRenderPassInputAttachmentAspectCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        unsafeAddr (VkRenderPassInputAttachmentAspectCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRenderPassInputAttachmentAspectCreateInfo## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRenderPassInputAttachmentAspectCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        type StructFields VkRenderPassInputAttachmentAspectCreateInfo =
+             '["sType", "pNext", "aspectReferenceCount", "pAspectReferences"] -- ' closing tick for hsc2hs
+        type CUnionType VkRenderPassInputAttachmentAspectCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRenderPassInputAttachmentAspectCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkRenderPassInputAttachmentAspectCreateInfo =
+             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkRenderPassInputAttachmentAspectCreateInfo where
+        type FieldType "sType" VkRenderPassInputAttachmentAspectCreateInfo
+             = VkStructureType
+        type FieldOptional "sType"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             =
+             #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
+        type FieldIsArray "sType"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkRenderPassInputAttachmentAspectCreateInfo where
+        type FieldType "pNext" VkRenderPassInputAttachmentAspectCreateInfo
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             =
+             #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
+        type FieldIsArray "pNext"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectReferenceCount"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        type FieldType "aspectReferenceCount"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = Word32
+        type FieldOptional "aspectReferenceCount"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "aspectReferenceCount"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             =
+             #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
+        type FieldIsArray "aspectReferenceCount"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectReferenceCount"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectReferenceCount"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAspectReferences"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        type FieldType "pAspectReferences"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = Ptr VkInputAttachmentAspectReference
+        type FieldOptional "pAspectReferences"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAspectReferences"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             =
+             #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
+        type FieldIsArray "pAspectReferences"
+               VkRenderPassInputAttachmentAspectCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAspectReferences"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAspectReferences"
+           VkRenderPassInputAttachmentAspectCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
+
+instance Show VkRenderPassInputAttachmentAspectCreateInfo where
+        showsPrec d x
+          = showString "VkRenderPassInputAttachmentAspectCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "aspectReferenceCount = " .
+                            showsPrec d (getField @"aspectReferenceCount" x) .
+                              showString ", " .
+                                showString "pAspectReferences = " .
+                                  showsPrec d (getField @"pAspectReferences" x) . showChar '}'
+
+-- | Alias for `VkRenderPassInputAttachmentAspectCreateInfo`
+type VkRenderPassInputAttachmentAspectCreateInfoKHR =
+     VkRenderPassInputAttachmentAspectCreateInfo
+
+-- | > typedef struct VkRenderPassMultiviewCreateInfo {
+--   >     VkStructureType        sType;
+--   >     const void*            pNext;
+--   >     uint32_t               subpassCount;
+--   >     const uint32_t*     pViewMasks;
+--   >     uint32_t               dependencyCount;
+--   >     const int32_t*   pViewOffsets;
+--   >     uint32_t               correlationMaskCount;
+--   >     const uint32_t* pCorrelationMasks;
+--   > } VkRenderPassMultiviewCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfo registry at www.khronos.org>
+data VkRenderPassMultiviewCreateInfo = VkRenderPassMultiviewCreateInfo## Addr##
+                                                                        ByteArray##
+
+instance Eq VkRenderPassMultiviewCreateInfo where
+        (VkRenderPassMultiviewCreateInfo## a _) ==
+          x@(VkRenderPassMultiviewCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRenderPassMultiviewCreateInfo where
+        (VkRenderPassMultiviewCreateInfo## a _) `compare`
+          x@(VkRenderPassMultiviewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRenderPassMultiviewCreateInfo where
+        sizeOf ~_ = #{size VkRenderPassMultiviewCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkRenderPassMultiviewCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRenderPassMultiviewCreateInfo where
+        unsafeAddr (VkRenderPassMultiviewCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRenderPassMultiviewCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRenderPassMultiviewCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRenderPassMultiviewCreateInfo where
+        type StructFields VkRenderPassMultiviewCreateInfo =
+             '["sType", "pNext", "subpassCount", "pViewMasks", -- ' closing tick for hsc2hs
+               "dependencyCount", "pViewOffsets", "correlationMaskCount",
+               "pCorrelationMasks"]
+        type CUnionType VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRenderPassMultiviewCreateInfo =
+             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkRenderPassMultiviewCreateInfo where
+        type FieldType "sType" VkRenderPassMultiviewCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkRenderPassMultiviewCreateInfo =
+             #{offset VkRenderPassMultiviewCreateInfo, sType}
+        type FieldIsArray "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkRenderPassMultiviewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkRenderPassMultiviewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkRenderPassMultiviewCreateInfo where
+        type FieldType "pNext" VkRenderPassMultiviewCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkRenderPassMultiviewCreateInfo =
+             #{offset VkRenderPassMultiviewCreateInfo, pNext}
+        type FieldIsArray "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkRenderPassMultiviewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkRenderPassMultiviewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "subpassCount" VkRenderPassMultiviewCreateInfo where
+        type FieldType "subpassCount" VkRenderPassMultiviewCreateInfo =
+             Word32
+        type FieldOptional "subpassCount" VkRenderPassMultiviewCreateInfo =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "subpassCount" VkRenderPassMultiviewCreateInfo =
+             #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
+        type FieldIsArray "subpassCount" VkRenderPassMultiviewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpassCount" VkRenderPassMultiviewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, subpassCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpassCount" VkRenderPassMultiviewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewMasks" VkRenderPassMultiviewCreateInfo where
+        type FieldType "pViewMasks" VkRenderPassMultiviewCreateInfo =
+             Ptr Word32
+        type FieldOptional "pViewMasks" VkRenderPassMultiviewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pViewMasks" VkRenderPassMultiviewCreateInfo =
+             #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
+        type FieldIsArray "pViewMasks" VkRenderPassMultiviewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewMasks" VkRenderPassMultiviewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pViewMasks})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewMasks" VkRenderPassMultiviewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
+
+instance {-# OVERLAPPING #-}
+         HasField "dependencyCount" VkRenderPassMultiviewCreateInfo where
+        type FieldType "dependencyCount" VkRenderPassMultiviewCreateInfo =
+             Word32
+        type FieldOptional "dependencyCount"
+               VkRenderPassMultiviewCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dependencyCount" VkRenderPassMultiviewCreateInfo
+             =
+             #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
+        type FieldIsArray "dependencyCount" VkRenderPassMultiviewCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dependencyCount" VkRenderPassMultiviewCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, dependencyCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dependencyCount" VkRenderPassMultiviewCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
+        type FieldType "pViewOffsets" VkRenderPassMultiviewCreateInfo =
+             Ptr Int32
+        type FieldOptional "pViewOffsets" VkRenderPassMultiviewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pViewOffsets" VkRenderPassMultiviewCreateInfo =
+             #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
+        type FieldIsArray "pViewOffsets" VkRenderPassMultiviewCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
+
+instance {-# OVERLAPPING #-}
+         HasField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
+         where
+        type FieldType "correlationMaskCount"
+               VkRenderPassMultiviewCreateInfo
+             = Word32
+        type FieldOptional "correlationMaskCount"
+               VkRenderPassMultiviewCreateInfo
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "correlationMaskCount"
+               VkRenderPassMultiviewCreateInfo
+             =
+             #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
+        type FieldIsArray "correlationMaskCount"
+               VkRenderPassMultiviewCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "correlationMaskCount"
+           VkRenderPassMultiviewCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo where
+        type FieldType "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
+             = Ptr Word32
+        type FieldOptional "pCorrelationMasks"
+               VkRenderPassMultiviewCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pCorrelationMasks"
+               VkRenderPassMultiviewCreateInfo
+             =
+             #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
+        type FieldIsArray "pCorrelationMasks"
+               VkRenderPassMultiviewCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
+
+instance Show VkRenderPassMultiviewCreateInfo where
+        showsPrec d x
+          = showString "VkRenderPassMultiviewCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "subpassCount = " .
+                            showsPrec d (getField @"subpassCount" x) .
+                              showString ", " .
+                                showString "pViewMasks = " .
+                                  showsPrec d (getField @"pViewMasks" x) .
+                                    showString ", " .
+                                      showString "dependencyCount = " .
+                                        showsPrec d (getField @"dependencyCount" x) .
+                                          showString ", " .
+                                            showString "pViewOffsets = " .
+                                              showsPrec d (getField @"pViewOffsets" x) .
+                                                showString ", " .
+                                                  showString "correlationMaskCount = " .
+                                                    showsPrec d (getField @"correlationMaskCount" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pCorrelationMasks = " .
+                                                          showsPrec d
+                                                            (getField @"pCorrelationMasks" x)
+                                                            . showChar '}'
+
+-- | Alias for `VkRenderPassMultiviewCreateInfo`
+type VkRenderPassMultiviewCreateInfoKHR =
+     VkRenderPassMultiviewCreateInfo
+
+-- | > typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     uint32_t         attachmentInitialSampleLocationsCount;
+--   >     const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
+--   >     uint32_t         postSubpassSampleLocationsCount;
+--   >     const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
+--   > } VkRenderPassSampleLocationsBeginInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassSampleLocationsBeginInfoEXT VkRenderPassSampleLocationsBeginInfoEXT registry at www.khronos.org>
+data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT## Addr##
+                                                                                        ByteArray##
+
+instance Eq VkRenderPassSampleLocationsBeginInfoEXT where
+        (VkRenderPassSampleLocationsBeginInfoEXT## a _) ==
+          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkRenderPassSampleLocationsBeginInfoEXT where
+        (VkRenderPassSampleLocationsBeginInfoEXT## a _) `compare`
+          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkRenderPassSampleLocationsBeginInfoEXT where
+        sizeOf ~_
+          = #{size VkRenderPassSampleLocationsBeginInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkRenderPassSampleLocationsBeginInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        unsafeAddr (VkRenderPassSampleLocationsBeginInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkRenderPassSampleLocationsBeginInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkRenderPassSampleLocationsBeginInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        type StructFields VkRenderPassSampleLocationsBeginInfoEXT =
+             '["sType", "pNext", "attachmentInitialSampleLocationsCount", -- ' closing tick for hsc2hs
+               "pAttachmentInitialSampleLocations",
+               "postSubpassSampleLocationsCount", "pPostSubpassSampleLocations"]
+        type CUnionType VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkRenderPassSampleLocationsBeginInfoEXT =
+             '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
+        type FieldType "sType" VkRenderPassSampleLocationsBeginInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkRenderPassSampleLocationsBeginInfoEXT =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
+        type FieldIsArray "sType" VkRenderPassSampleLocationsBeginInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
+        type FieldType "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
+        type FieldIsArray "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "attachmentInitialSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        type FieldType "attachmentInitialSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = Word32
+        type FieldOptional "attachmentInitialSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "attachmentInitialSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
+        type FieldIsArray "attachmentInitialSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "attachmentInitialSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "attachmentInitialSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pAttachmentInitialSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        type FieldType "pAttachmentInitialSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = Ptr VkAttachmentSampleLocationsEXT
+        type FieldOptional "pAttachmentInitialSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pAttachmentInitialSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
+        type FieldIsArray "pAttachmentInitialSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pAttachmentInitialSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pAttachmentInitialSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         HasField "postSubpassSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        type FieldType "postSubpassSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = Word32
+        type FieldOptional "postSubpassSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "postSubpassSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
+        type FieldIsArray "postSubpassSampleLocationsCount"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "postSubpassSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "postSubpassSampleLocationsCount"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pPostSubpassSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        type FieldType "pPostSubpassSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = Ptr VkSubpassSampleLocationsEXT
+        type FieldOptional "pPostSubpassSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pPostSubpassSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             =
+             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
+        type FieldIsArray "pPostSubpassSampleLocations"
+               VkRenderPassSampleLocationsBeginInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pPostSubpassSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pPostSubpassSampleLocations"
+           VkRenderPassSampleLocationsBeginInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
+
+instance Show VkRenderPassSampleLocationsBeginInfoEXT where
+        showsPrec d x
+          = showString "VkRenderPassSampleLocationsBeginInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "attachmentInitialSampleLocationsCount = " .
+                            showsPrec d (getField @"attachmentInitialSampleLocationsCount" x) .
+                              showString ", " .
+                                showString "pAttachmentInitialSampleLocations = " .
+                                  showsPrec d (getField @"pAttachmentInitialSampleLocations" x) .
+                                    showString ", " .
+                                      showString "postSubpassSampleLocationsCount = " .
+                                        showsPrec d (getField @"postSubpassSampleLocationsCount" x)
+                                          .
+                                          showString ", " .
+                                            showString "pPostSubpassSampleLocations = " .
+                                              showsPrec d
+                                                (getField @"pPostSubpassSampleLocations" x)
+                                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SampleLocation.hsc
@@ -0,0 +1,437 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.SampleLocation
+       (VkSampleLocationEXT(..), VkSampleLocationsInfoEXT(..)) where
+import           Foreign.Storable                            (Storable (..))
+import           GHC.Base                                    (Addr##, ByteArray##,
+                                                              byteArrayContents##,
+                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.SampleCountFlags (VkSampleCountFlagBits)
+import           Graphics.Vulkan.Types.Enum.StructureType    (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Extent         (VkExtent2D)
+import           Graphics.Vulkan.Types.Struct.Image          (VkImageMemoryBarrier)
+import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSampleLocationEXT {
+--   >     float                            x;
+--   >     float                            y;
+--   > } VkSampleLocationEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationEXT VkSampleLocationEXT registry at www.khronos.org>
+data VkSampleLocationEXT = VkSampleLocationEXT## Addr## ByteArray##
+
+instance Eq VkSampleLocationEXT where
+        (VkSampleLocationEXT## a _) == x@(VkSampleLocationEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSampleLocationEXT where
+        (VkSampleLocationEXT## a _) `compare` x@(VkSampleLocationEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSampleLocationEXT where
+        sizeOf ~_ = #{size VkSampleLocationEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSampleLocationEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSampleLocationEXT where
+        unsafeAddr (VkSampleLocationEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSampleLocationEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSampleLocationEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSampleLocationEXT where
+        type StructFields VkSampleLocationEXT = '["x", "y"] -- ' closing tick for hsc2hs
+        type CUnionType VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSampleLocationEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkSampleLocationEXT where
+        type FieldType "x" VkSampleLocationEXT = #{type float}
+        type FieldOptional "x" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkSampleLocationEXT =
+             #{offset VkSampleLocationEXT, x}
+        type FieldIsArray "x" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSampleLocationEXT, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkSampleLocationEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationEXT, x})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationEXT, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkSampleLocationEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationEXT, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkSampleLocationEXT where
+        type FieldType "y" VkSampleLocationEXT = #{type float}
+        type FieldOptional "y" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkSampleLocationEXT =
+             #{offset VkSampleLocationEXT, y}
+        type FieldIsArray "y" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSampleLocationEXT, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkSampleLocationEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationEXT, y})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationEXT, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkSampleLocationEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationEXT, y}
+
+instance Show VkSampleLocationEXT where
+        showsPrec d x
+          = showString "VkSampleLocationEXT {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
+
+-- | > typedef struct VkSampleLocationsInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSampleCountFlagBits            sampleLocationsPerPixel;
+--   >     VkExtent2D                       sampleLocationGridSize;
+--   >     uint32_t                         sampleLocationsCount;
+--   >     const VkSampleLocationEXT* pSampleLocations;
+--   > } VkSampleLocationsInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSampleLocationsInfoEXT VkSampleLocationsInfoEXT registry at www.khronos.org>
+data VkSampleLocationsInfoEXT = VkSampleLocationsInfoEXT## Addr##
+                                                          ByteArray##
+
+instance Eq VkSampleLocationsInfoEXT where
+        (VkSampleLocationsInfoEXT## a _) ==
+          x@(VkSampleLocationsInfoEXT## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSampleLocationsInfoEXT where
+        (VkSampleLocationsInfoEXT## a _) `compare`
+          x@(VkSampleLocationsInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSampleLocationsInfoEXT where
+        sizeOf ~_ = #{size VkSampleLocationsInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSampleLocationsInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSampleLocationsInfoEXT where
+        unsafeAddr (VkSampleLocationsInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSampleLocationsInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSampleLocationsInfoEXT## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSampleLocationsInfoEXT where
+        type StructFields VkSampleLocationsInfoEXT =
+             '["sType", "pNext", "sampleLocationsPerPixel", -- ' closing tick for hsc2hs
+               "sampleLocationGridSize", "sampleLocationsCount",
+               "pSampleLocations"]
+        type CUnionType VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSampleLocationsInfoEXT =
+             '[VkImageMemoryBarrier] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSampleLocationsInfoEXT where
+        type FieldType "sType" VkSampleLocationsInfoEXT = VkStructureType
+        type FieldOptional "sType" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSampleLocationsInfoEXT =
+             #{offset VkSampleLocationsInfoEXT, sType}
+        type FieldIsArray "sType" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSampleLocationsInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSampleLocationsInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSampleLocationsInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSampleLocationsInfoEXT where
+        type FieldType "pNext" VkSampleLocationsInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSampleLocationsInfoEXT =
+             #{offset VkSampleLocationsInfoEXT, pNext}
+        type FieldIsArray "pNext" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSampleLocationsInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSampleLocationsInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSampleLocationsInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT where
+        type FieldType "sampleLocationsPerPixel" VkSampleLocationsInfoEXT =
+             VkSampleCountFlagBits
+        type FieldOptional "sampleLocationsPerPixel"
+               VkSampleLocationsInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
+             =
+             #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
+        type FieldIsArray "sampleLocationsPerPixel"
+               VkSampleLocationsInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationGridSize" VkSampleLocationsInfoEXT where
+        type FieldType "sampleLocationGridSize" VkSampleLocationsInfoEXT =
+             VkExtent2D
+        type FieldOptional "sampleLocationGridSize"
+               VkSampleLocationsInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationGridSize" VkSampleLocationsInfoEXT
+             =
+             #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
+        type FieldIsArray "sampleLocationGridSize" VkSampleLocationsInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationGridSize" VkSampleLocationsInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationGridSize" VkSampleLocationsInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsCount" VkSampleLocationsInfoEXT where
+        type FieldType "sampleLocationsCount" VkSampleLocationsInfoEXT =
+             Word32
+        type FieldOptional "sampleLocationsCount" VkSampleLocationsInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsCount" VkSampleLocationsInfoEXT =
+             #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
+        type FieldIsArray "sampleLocationsCount" VkSampleLocationsInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsCount" VkSampleLocationsInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationsCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsCount" VkSampleLocationsInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSampleLocations" VkSampleLocationsInfoEXT where
+        type FieldType "pSampleLocations" VkSampleLocationsInfoEXT =
+             Ptr VkSampleLocationEXT
+        type FieldOptional "pSampleLocations" VkSampleLocationsInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSampleLocations" VkSampleLocationsInfoEXT =
+             #{offset VkSampleLocationsInfoEXT, pSampleLocations}
+        type FieldIsArray "pSampleLocations" VkSampleLocationsInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSampleLocationsInfoEXT, pSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSampleLocations" VkSampleLocationsInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, pSampleLocations})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSampleLocationsInfoEXT, pSampleLocations}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSampleLocations" VkSampleLocationsInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, pSampleLocations}
+
+instance Show VkSampleLocationsInfoEXT where
+        showsPrec d x
+          = showString "VkSampleLocationsInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "sampleLocationsPerPixel = " .
+                            showsPrec d (getField @"sampleLocationsPerPixel" x) .
+                              showString ", " .
+                                showString "sampleLocationGridSize = " .
+                                  showsPrec d (getField @"sampleLocationGridSize" x) .
+                                    showString ", " .
+                                      showString "sampleLocationsCount = " .
+                                        showsPrec d (getField @"sampleLocationsCount" x) .
+                                          showString ", " .
+                                            showString "pSampleLocations = " .
+                                              showsPrec d (getField @"pSampleLocations" x) .
+                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Sampler.hsc
@@ -0,0 +1,1888 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Sampler
+       (VkSamplerCreateInfo(..), VkSamplerReductionModeCreateInfoEXT(..),
+        VkSamplerYcbcrConversionCreateInfo(..),
+        VkSamplerYcbcrConversionCreateInfoKHR,
+        VkSamplerYcbcrConversionImageFormatProperties(..),
+        VkSamplerYcbcrConversionImageFormatPropertiesKHR,
+        VkSamplerYcbcrConversionInfo(..), VkSamplerYcbcrConversionInfoKHR)
+       where
+import           Foreign.Storable                              (Storable (..))
+import           GHC.Base                                      (Addr##,
+                                                                ByteArray##,
+                                                                byteArrayContents##,
+                                                                plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes               (VkBool32)
+import           Graphics.Vulkan.Types.Bitmasks                (VkSamplerCreateFlags)
+import           Graphics.Vulkan.Types.Enum.BorderColor        (VkBorderColor)
+import           Graphics.Vulkan.Types.Enum.ChromaLocation     (VkChromaLocation)
+import           Graphics.Vulkan.Types.Enum.CompareOp          (VkCompareOp)
+import           Graphics.Vulkan.Types.Enum.Filter             (VkFilter)
+import           Graphics.Vulkan.Types.Enum.Format             (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Sampler            (VkSamplerAddressMode,
+                                                                VkSamplerMipmapMode,
+                                                                VkSamplerReductionModeEXT,
+                                                                VkSamplerYcbcrModelConversion,
+                                                                VkSamplerYcbcrRange)
+import           Graphics.Vulkan.Types.Enum.StructureType      (VkStructureType)
+import           Graphics.Vulkan.Types.Handles                 (VkSamplerYcbcrConversion)
+import           Graphics.Vulkan.Types.Struct.ComponentMapping (VkComponentMapping)
+import           Graphics.Vulkan.Types.Struct.Image            (VkImageFormatProperties2,
+                                                                VkImageViewCreateInfo)
+import           System.IO.Unsafe                              (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSamplerCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkSamplerCreateFlags   flags;
+--   >     VkFilter               magFilter;
+--   >     VkFilter               minFilter;
+--   >     VkSamplerMipmapMode    mipmapMode;
+--   >     VkSamplerAddressMode   addressModeU;
+--   >     VkSamplerAddressMode   addressModeV;
+--   >     VkSamplerAddressMode   addressModeW;
+--   >     float                  mipLodBias;
+--   >     VkBool32               anisotropyEnable;
+--   >     float                  maxAnisotropy;
+--   >     VkBool32               compareEnable;
+--   >     VkCompareOp            compareOp;
+--   >     float                  minLod;
+--   >     float                  maxLod;
+--   >     VkBorderColor          borderColor;
+--   >     VkBool32               unnormalizedCoordinates;
+--   > } VkSamplerCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerCreateInfo VkSamplerCreateInfo registry at www.khronos.org>
+data VkSamplerCreateInfo = VkSamplerCreateInfo## Addr## ByteArray##
+
+instance Eq VkSamplerCreateInfo where
+        (VkSamplerCreateInfo## a _) == x@(VkSamplerCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSamplerCreateInfo where
+        (VkSamplerCreateInfo## a _) `compare` x@(VkSamplerCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSamplerCreateInfo where
+        sizeOf ~_ = #{size VkSamplerCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSamplerCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSamplerCreateInfo where
+        unsafeAddr (VkSamplerCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSamplerCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSamplerCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSamplerCreateInfo where
+        type StructFields VkSamplerCreateInfo =
+             '["sType", "pNext", "flags", "magFilter", "minFilter", -- ' closing tick for hsc2hs
+               "mipmapMode", "addressModeU", "addressModeV", "addressModeW",
+               "mipLodBias", "anisotropyEnable", "maxAnisotropy", "compareEnable",
+               "compareOp", "minLod", "maxLod", "borderColor",
+               "unnormalizedCoordinates"]
+        type CUnionType VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSamplerCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkSamplerCreateInfo
+         where
+        type FieldType "sType" VkSamplerCreateInfo = VkStructureType
+        type FieldOptional "sType" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, sType}
+        type FieldIsArray "sType" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkSamplerCreateInfo
+         where
+        type FieldType "pNext" VkSamplerCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, pNext}
+        type FieldIsArray "pNext" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkSamplerCreateInfo
+         where
+        type FieldType "flags" VkSamplerCreateInfo = VkSamplerCreateFlags
+        type FieldOptional "flags" VkSamplerCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, flags}
+        type FieldIsArray "flags" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "magFilter" VkSamplerCreateInfo where
+        type FieldType "magFilter" VkSamplerCreateInfo = VkFilter
+        type FieldOptional "magFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "magFilter" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, magFilter}
+        type FieldIsArray "magFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, magFilter}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "magFilter" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, magFilter})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, magFilter}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "magFilter" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, magFilter}
+
+instance {-# OVERLAPPING #-}
+         HasField "minFilter" VkSamplerCreateInfo where
+        type FieldType "minFilter" VkSamplerCreateInfo = VkFilter
+        type FieldOptional "minFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minFilter" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, minFilter}
+        type FieldIsArray "minFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, minFilter}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minFilter" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, minFilter})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, minFilter}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minFilter" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, minFilter}
+
+instance {-# OVERLAPPING #-}
+         HasField "mipmapMode" VkSamplerCreateInfo where
+        type FieldType "mipmapMode" VkSamplerCreateInfo =
+             VkSamplerMipmapMode
+        type FieldOptional "mipmapMode" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipmapMode" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, mipmapMode}
+        type FieldIsArray "mipmapMode" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, mipmapMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipmapMode" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, mipmapMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, mipmapMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipmapMode" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, mipmapMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "addressModeU" VkSamplerCreateInfo where
+        type FieldType "addressModeU" VkSamplerCreateInfo =
+             VkSamplerAddressMode
+        type FieldOptional "addressModeU" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "addressModeU" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, addressModeU}
+        type FieldIsArray "addressModeU" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, addressModeU}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "addressModeU" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeU})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeU}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "addressModeU" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeU}
+
+instance {-# OVERLAPPING #-}
+         HasField "addressModeV" VkSamplerCreateInfo where
+        type FieldType "addressModeV" VkSamplerCreateInfo =
+             VkSamplerAddressMode
+        type FieldOptional "addressModeV" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "addressModeV" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, addressModeV}
+        type FieldIsArray "addressModeV" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, addressModeV}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "addressModeV" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeV})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeV}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "addressModeV" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeV}
+
+instance {-# OVERLAPPING #-}
+         HasField "addressModeW" VkSamplerCreateInfo where
+        type FieldType "addressModeW" VkSamplerCreateInfo =
+             VkSamplerAddressMode
+        type FieldOptional "addressModeW" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "addressModeW" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, addressModeW}
+        type FieldIsArray "addressModeW" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, addressModeW}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "addressModeW" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeW})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeW}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "addressModeW" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeW}
+
+instance {-# OVERLAPPING #-}
+         HasField "mipLodBias" VkSamplerCreateInfo where
+        type FieldType "mipLodBias" VkSamplerCreateInfo =
+             #{type float}
+        type FieldOptional "mipLodBias" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "mipLodBias" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, mipLodBias}
+        type FieldIsArray "mipLodBias" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, mipLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mipLodBias" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, mipLodBias})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, mipLodBias}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mipLodBias" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, mipLodBias}
+
+instance {-# OVERLAPPING #-}
+         HasField "anisotropyEnable" VkSamplerCreateInfo where
+        type FieldType "anisotropyEnable" VkSamplerCreateInfo = VkBool32
+        type FieldOptional "anisotropyEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "anisotropyEnable" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, anisotropyEnable}
+        type FieldIsArray "anisotropyEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, anisotropyEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "anisotropyEnable" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, anisotropyEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, anisotropyEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "anisotropyEnable" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, anisotropyEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxAnisotropy" VkSamplerCreateInfo where
+        type FieldType "maxAnisotropy" VkSamplerCreateInfo =
+             #{type float}
+        type FieldOptional "maxAnisotropy" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxAnisotropy" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, maxAnisotropy}
+        type FieldIsArray "maxAnisotropy" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, maxAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxAnisotropy" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, maxAnisotropy})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, maxAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxAnisotropy" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, maxAnisotropy}
+
+instance {-# OVERLAPPING #-}
+         HasField "compareEnable" VkSamplerCreateInfo where
+        type FieldType "compareEnable" VkSamplerCreateInfo = VkBool32
+        type FieldOptional "compareEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compareEnable" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, compareEnable}
+        type FieldIsArray "compareEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, compareEnable}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compareEnable" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, compareEnable})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, compareEnable}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compareEnable" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, compareEnable}
+
+instance {-# OVERLAPPING #-}
+         HasField "compareOp" VkSamplerCreateInfo where
+        type FieldType "compareOp" VkSamplerCreateInfo = VkCompareOp
+        type FieldOptional "compareOp" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compareOp" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, compareOp}
+        type FieldIsArray "compareOp" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, compareOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compareOp" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, compareOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, compareOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compareOp" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, compareOp}
+
+instance {-# OVERLAPPING #-} HasField "minLod" VkSamplerCreateInfo
+         where
+        type FieldType "minLod" VkSamplerCreateInfo =
+             #{type float}
+        type FieldOptional "minLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minLod" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, minLod}
+        type FieldIsArray "minLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, minLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minLod" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, minLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, minLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minLod" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, minLod}
+
+instance {-# OVERLAPPING #-} HasField "maxLod" VkSamplerCreateInfo
+         where
+        type FieldType "maxLod" VkSamplerCreateInfo =
+             #{type float}
+        type FieldOptional "maxLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxLod" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, maxLod}
+        type FieldIsArray "maxLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSamplerCreateInfo, maxLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxLod" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, maxLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, maxLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxLod" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, maxLod}
+
+instance {-# OVERLAPPING #-}
+         HasField "borderColor" VkSamplerCreateInfo where
+        type FieldType "borderColor" VkSamplerCreateInfo = VkBorderColor
+        type FieldOptional "borderColor" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "borderColor" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, borderColor}
+        type FieldIsArray "borderColor" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, borderColor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "borderColor" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, borderColor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, borderColor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "borderColor" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, borderColor}
+
+instance {-# OVERLAPPING #-}
+         HasField "unnormalizedCoordinates" VkSamplerCreateInfo where
+        type FieldType "unnormalizedCoordinates" VkSamplerCreateInfo =
+             VkBool32
+        type FieldOptional "unnormalizedCoordinates" VkSamplerCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "unnormalizedCoordinates" VkSamplerCreateInfo =
+             #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
+        type FieldIsArray "unnormalizedCoordinates" VkSamplerCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "unnormalizedCoordinates" VkSamplerCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, unnormalizedCoordinates})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "unnormalizedCoordinates" VkSamplerCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
+
+instance Show VkSamplerCreateInfo where
+        showsPrec d x
+          = showString "VkSamplerCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "magFilter = " .
+                                  showsPrec d (getField @"magFilter" x) .
+                                    showString ", " .
+                                      showString "minFilter = " .
+                                        showsPrec d (getField @"minFilter" x) .
+                                          showString ", " .
+                                            showString "mipmapMode = " .
+                                              showsPrec d (getField @"mipmapMode" x) .
+                                                showString ", " .
+                                                  showString "addressModeU = " .
+                                                    showsPrec d (getField @"addressModeU" x) .
+                                                      showString ", " .
+                                                        showString "addressModeV = " .
+                                                          showsPrec d (getField @"addressModeV" x) .
+                                                            showString ", " .
+                                                              showString "addressModeW = " .
+                                                                showsPrec d
+                                                                  (getField @"addressModeW" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "mipLodBias = " .
+                                                                      showsPrec d
+                                                                        (getField @"mipLodBias" x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "anisotropyEnable = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"anisotropyEnable"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "maxAnisotropy = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"maxAnisotropy"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "compareEnable = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"compareEnable"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "compareOp = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"compareOp"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "minLod = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"minLod"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "maxLod = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"maxLod"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "borderColor = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"borderColor"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "unnormalizedCoordinates = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"unnormalizedCoordinates"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showChar
+                                                                                                                          '}'
+
+-- | > typedef struct VkSamplerReductionModeCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkSamplerReductionModeEXT reductionMode;
+--   > } VkSamplerReductionModeCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerReductionModeCreateInfoEXT VkSamplerReductionModeCreateInfoEXT registry at www.khronos.org>
+data VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfoEXT## Addr##
+                                                                                ByteArray##
+
+instance Eq VkSamplerReductionModeCreateInfoEXT where
+        (VkSamplerReductionModeCreateInfoEXT## a _) ==
+          x@(VkSamplerReductionModeCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSamplerReductionModeCreateInfoEXT where
+        (VkSamplerReductionModeCreateInfoEXT## a _) `compare`
+          x@(VkSamplerReductionModeCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSamplerReductionModeCreateInfoEXT where
+        sizeOf ~_ = #{size VkSamplerReductionModeCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSamplerReductionModeCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSamplerReductionModeCreateInfoEXT
+         where
+        unsafeAddr (VkSamplerReductionModeCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSamplerReductionModeCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSamplerReductionModeCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSamplerReductionModeCreateInfoEXT where
+        type StructFields VkSamplerReductionModeCreateInfoEXT =
+             '["sType", "pNext", "reductionMode"] -- ' closing tick for hsc2hs
+        type CUnionType VkSamplerReductionModeCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSamplerReductionModeCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSamplerReductionModeCreateInfoEXT =
+             '[VkSamplerCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSamplerReductionModeCreateInfoEXT where
+        type FieldType "sType" VkSamplerReductionModeCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkSamplerReductionModeCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSamplerReductionModeCreateInfoEXT =
+             #{offset VkSamplerReductionModeCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkSamplerReductionModeCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerReductionModeCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSamplerReductionModeCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSamplerReductionModeCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSamplerReductionModeCreateInfoEXT where
+        type FieldType "pNext" VkSamplerReductionModeCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext" VkSamplerReductionModeCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSamplerReductionModeCreateInfoEXT =
+             #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkSamplerReductionModeCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSamplerReductionModeCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSamplerReductionModeCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "reductionMode" VkSamplerReductionModeCreateInfoEXT where
+        type FieldType "reductionMode" VkSamplerReductionModeCreateInfoEXT
+             = VkSamplerReductionModeEXT
+        type FieldOptional "reductionMode"
+               VkSamplerReductionModeCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "reductionMode"
+               VkSamplerReductionModeCreateInfoEXT
+             =
+             #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
+        type FieldIsArray "reductionMode"
+               VkSamplerReductionModeCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "reductionMode" VkSamplerReductionModeCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "reductionMode" VkSamplerReductionModeCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
+
+instance Show VkSamplerReductionModeCreateInfoEXT where
+        showsPrec d x
+          = showString "VkSamplerReductionModeCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "reductionMode = " .
+                            showsPrec d (getField @"reductionMode" x) . showChar '}'
+
+-- | > typedef struct VkSamplerYcbcrConversionCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkFormat                         format;
+--   >     VkSamplerYcbcrModelConversion ycbcrModel;
+--   >     VkSamplerYcbcrRange           ycbcrRange;
+--   >     VkComponentMapping               components;
+--   >     VkChromaLocation              xChromaOffset;
+--   >     VkChromaLocation              yChromaOffset;
+--   >     VkFilter                         chromaFilter;
+--   >     VkBool32                         forceExplicitReconstruction;
+--   > } VkSamplerYcbcrConversionCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfo registry at www.khronos.org>
+data VkSamplerYcbcrConversionCreateInfo = VkSamplerYcbcrConversionCreateInfo## Addr##
+                                                                              ByteArray##
+
+instance Eq VkSamplerYcbcrConversionCreateInfo where
+        (VkSamplerYcbcrConversionCreateInfo## a _) ==
+          x@(VkSamplerYcbcrConversionCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSamplerYcbcrConversionCreateInfo where
+        (VkSamplerYcbcrConversionCreateInfo## a _) `compare`
+          x@(VkSamplerYcbcrConversionCreateInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSamplerYcbcrConversionCreateInfo where
+        sizeOf ~_ = #{size VkSamplerYcbcrConversionCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSamplerYcbcrConversionCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSamplerYcbcrConversionCreateInfo where
+        unsafeAddr (VkSamplerYcbcrConversionCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSamplerYcbcrConversionCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSamplerYcbcrConversionCreateInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSamplerYcbcrConversionCreateInfo where
+        type StructFields VkSamplerYcbcrConversionCreateInfo =
+             '["sType", "pNext", "format", "ycbcrModel", "ycbcrRange", -- ' closing tick for hsc2hs
+               "components", "xChromaOffset", "yChromaOffset", "chromaFilter",
+               "forceExplicitReconstruction"]
+        type CUnionType VkSamplerYcbcrConversionCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSamplerYcbcrConversionCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSamplerYcbcrConversionCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "sType" VkSamplerYcbcrConversionCreateInfo =
+             VkStructureType
+        type FieldOptional "sType" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, sType}
+        type FieldIsArray "sType" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "pNext" VkSamplerYcbcrConversionCreateInfo =
+             Ptr Void
+        type FieldOptional "pNext" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
+        type FieldIsArray "pNext" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "format" VkSamplerYcbcrConversionCreateInfo =
+             VkFormat
+        type FieldOptional "format" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, format}
+        type FieldIsArray "format" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
+             VkSamplerYcbcrModelConversion
+        type FieldOptional "ycbcrModel" VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
+        type FieldIsArray "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
+
+instance {-# OVERLAPPING #-}
+         HasField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
+             VkSamplerYcbcrRange
+        type FieldOptional "ycbcrRange" VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
+        type FieldIsArray "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
+
+instance {-# OVERLAPPING #-}
+         HasField "components" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "components" VkSamplerYcbcrConversionCreateInfo =
+             VkComponentMapping
+        type FieldOptional "components" VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "components" VkSamplerYcbcrConversionCreateInfo =
+             #{offset VkSamplerYcbcrConversionCreateInfo, components}
+        type FieldIsArray "components" VkSamplerYcbcrConversionCreateInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "components" VkSamplerYcbcrConversionCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, components})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "components" VkSamplerYcbcrConversionCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, components}
+
+instance {-# OVERLAPPING #-}
+         HasField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "xChromaOffset" VkSamplerYcbcrConversionCreateInfo =
+             VkChromaLocation
+        type FieldOptional "xChromaOffset"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
+             =
+             #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
+        type FieldIsArray "xChromaOffset"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "yChromaOffset" VkSamplerYcbcrConversionCreateInfo =
+             VkChromaLocation
+        type FieldOptional "yChromaOffset"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
+             =
+             #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
+        type FieldIsArray "yChromaOffset"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "chromaFilter" VkSamplerYcbcrConversionCreateInfo where
+        type FieldType "chromaFilter" VkSamplerYcbcrConversionCreateInfo =
+             VkFilter
+        type FieldOptional "chromaFilter"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "chromaFilter" VkSamplerYcbcrConversionCreateInfo
+             =
+             #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
+        type FieldIsArray "chromaFilter" VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "chromaFilter" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "chromaFilter" VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
+
+instance {-# OVERLAPPING #-}
+         HasField "forceExplicitReconstruction"
+           VkSamplerYcbcrConversionCreateInfo
+         where
+        type FieldType "forceExplicitReconstruction"
+               VkSamplerYcbcrConversionCreateInfo
+             = VkBool32
+        type FieldOptional "forceExplicitReconstruction"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "forceExplicitReconstruction"
+               VkSamplerYcbcrConversionCreateInfo
+             =
+             #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
+        type FieldIsArray "forceExplicitReconstruction"
+               VkSamplerYcbcrConversionCreateInfo
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "forceExplicitReconstruction"
+           VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "forceExplicitReconstruction"
+           VkSamplerYcbcrConversionCreateInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
+
+instance Show VkSamplerYcbcrConversionCreateInfo where
+        showsPrec d x
+          = showString "VkSamplerYcbcrConversionCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "ycbcrModel = " .
+                                  showsPrec d (getField @"ycbcrModel" x) .
+                                    showString ", " .
+                                      showString "ycbcrRange = " .
+                                        showsPrec d (getField @"ycbcrRange" x) .
+                                          showString ", " .
+                                            showString "components = " .
+                                              showsPrec d (getField @"components" x) .
+                                                showString ", " .
+                                                  showString "xChromaOffset = " .
+                                                    showsPrec d (getField @"xChromaOffset" x) .
+                                                      showString ", " .
+                                                        showString "yChromaOffset = " .
+                                                          showsPrec d (getField @"yChromaOffset" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "chromaFilter = " .
+                                                                showsPrec d
+                                                                  (getField @"chromaFilter" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "forceExplicitReconstruction = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"forceExplicitReconstruction"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | Alias for `VkSamplerYcbcrConversionCreateInfo`
+type VkSamplerYcbcrConversionCreateInfoKHR =
+     VkSamplerYcbcrConversionCreateInfo
+
+-- | > typedef struct VkSamplerYcbcrConversionImageFormatProperties {
+--   >     VkStructureType sType;
+--   >     void*      pNext;
+--   >     uint32_t                         combinedImageSamplerDescriptorCount;
+--   > } VkSamplerYcbcrConversionImageFormatProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatProperties registry at www.khronos.org>
+data VkSamplerYcbcrConversionImageFormatProperties = VkSamplerYcbcrConversionImageFormatProperties## Addr##
+                                                                                                    ByteArray##
+
+instance Eq VkSamplerYcbcrConversionImageFormatProperties where
+        (VkSamplerYcbcrConversionImageFormatProperties## a _) ==
+          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSamplerYcbcrConversionImageFormatProperties where
+        (VkSamplerYcbcrConversionImageFormatProperties## a _) `compare`
+          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSamplerYcbcrConversionImageFormatProperties
+         where
+        sizeOf ~_
+          = #{size VkSamplerYcbcrConversionImageFormatProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSamplerYcbcrConversionImageFormatProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkSamplerYcbcrConversionImageFormatProperties
+         where
+        unsafeAddr (VkSamplerYcbcrConversionImageFormatProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray
+          (VkSamplerYcbcrConversionImageFormatProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSamplerYcbcrConversionImageFormatProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal
+           VkSamplerYcbcrConversionImageFormatProperties
+         where
+        type StructFields VkSamplerYcbcrConversionImageFormatProperties =
+             '["sType", "pNext", "combinedImageSamplerDescriptorCount"] -- ' closing tick for hsc2hs
+        type CUnionType VkSamplerYcbcrConversionImageFormatProperties =
+             'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSamplerYcbcrConversionImageFormatProperties =
+             'True -- ' closing tick for hsc2hs
+        type StructExtends VkSamplerYcbcrConversionImageFormatProperties =
+             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        type FieldType "sType"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = VkStructureType
+        type FieldOptional "sType"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType"
+               VkSamplerYcbcrConversionImageFormatProperties
+             =
+             #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
+        type FieldIsArray "sType"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        type FieldType "pNext"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = Ptr Void
+        type FieldOptional "pNext"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext"
+               VkSamplerYcbcrConversionImageFormatProperties
+             =
+             #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
+        type FieldIsArray "pNext"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "combinedImageSamplerDescriptorCount"
+           VkSamplerYcbcrConversionImageFormatProperties
+         where
+        type FieldType "combinedImageSamplerDescriptorCount"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = Word32
+        type FieldOptional "combinedImageSamplerDescriptorCount"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "combinedImageSamplerDescriptorCount"
+               VkSamplerYcbcrConversionImageFormatProperties
+             =
+             #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
+        type FieldIsArray "combinedImageSamplerDescriptorCount"
+               VkSamplerYcbcrConversionImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "combinedImageSamplerDescriptorCount"
+           VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "combinedImageSamplerDescriptorCount"
+           VkSamplerYcbcrConversionImageFormatProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
+
+instance Show VkSamplerYcbcrConversionImageFormatProperties where
+        showsPrec d x
+          = showString "VkSamplerYcbcrConversionImageFormatProperties {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "combinedImageSamplerDescriptorCount = " .
+                            showsPrec d (getField @"combinedImageSamplerDescriptorCount" x) .
+                              showChar '}'
+
+-- | Alias for `VkSamplerYcbcrConversionImageFormatProperties`
+type VkSamplerYcbcrConversionImageFormatPropertiesKHR =
+     VkSamplerYcbcrConversionImageFormatProperties
+
+-- | > typedef struct VkSamplerYcbcrConversionInfo {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSamplerYcbcrConversion      conversion;
+--   > } VkSamplerYcbcrConversionInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfo registry at www.khronos.org>
+data VkSamplerYcbcrConversionInfo = VkSamplerYcbcrConversionInfo## Addr##
+                                                                  ByteArray##
+
+instance Eq VkSamplerYcbcrConversionInfo where
+        (VkSamplerYcbcrConversionInfo## a _) ==
+          x@(VkSamplerYcbcrConversionInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSamplerYcbcrConversionInfo where
+        (VkSamplerYcbcrConversionInfo## a _) `compare`
+          x@(VkSamplerYcbcrConversionInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSamplerYcbcrConversionInfo where
+        sizeOf ~_ = #{size VkSamplerYcbcrConversionInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSamplerYcbcrConversionInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSamplerYcbcrConversionInfo where
+        unsafeAddr (VkSamplerYcbcrConversionInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSamplerYcbcrConversionInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSamplerYcbcrConversionInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSamplerYcbcrConversionInfo where
+        type StructFields VkSamplerYcbcrConversionInfo =
+             '["sType", "pNext", "conversion"] -- ' closing tick for hsc2hs
+        type CUnionType VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSamplerYcbcrConversionInfo =
+             '[VkSamplerCreateInfo, VkImageViewCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSamplerYcbcrConversionInfo where
+        type FieldType "sType" VkSamplerYcbcrConversionInfo =
+             VkStructureType
+        type FieldOptional "sType" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSamplerYcbcrConversionInfo =
+             #{offset VkSamplerYcbcrConversionInfo, sType}
+        type FieldIsArray "sType" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSamplerYcbcrConversionInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSamplerYcbcrConversionInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSamplerYcbcrConversionInfo where
+        type FieldType "pNext" VkSamplerYcbcrConversionInfo = Ptr Void
+        type FieldOptional "pNext" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSamplerYcbcrConversionInfo =
+             #{offset VkSamplerYcbcrConversionInfo, pNext}
+        type FieldIsArray "pNext" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSamplerYcbcrConversionInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSamplerYcbcrConversionInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "conversion" VkSamplerYcbcrConversionInfo where
+        type FieldType "conversion" VkSamplerYcbcrConversionInfo =
+             VkSamplerYcbcrConversion
+        type FieldOptional "conversion" VkSamplerYcbcrConversionInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "conversion" VkSamplerYcbcrConversionInfo =
+             #{offset VkSamplerYcbcrConversionInfo, conversion}
+        type FieldIsArray "conversion" VkSamplerYcbcrConversionInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSamplerYcbcrConversionInfo, conversion}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "conversion" VkSamplerYcbcrConversionInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, conversion})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, conversion}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "conversion" VkSamplerYcbcrConversionInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, conversion}
+
+instance Show VkSamplerYcbcrConversionInfo where
+        showsPrec d x
+          = showString "VkSamplerYcbcrConversionInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "conversion = " .
+                            showsPrec d (getField @"conversion" x) . showChar '}'
+
+-- | Alias for `VkSamplerYcbcrConversionInfo`
+type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Semaphore.hsc
@@ -0,0 +1,381 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Semaphore
+       (VkSemaphoreCreateInfo(..), VkSemaphoreGetFdInfoKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkSemaphoreCreateFlags)
+import           Graphics.Vulkan.Types.Enum.External      (VkExternalSemaphoreHandleTypeFlagBits)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkSemaphore)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSemaphoreCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkSemaphoreCreateFlags flags;
+--   > } VkSemaphoreCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreCreateInfo VkSemaphoreCreateInfo registry at www.khronos.org>
+data VkSemaphoreCreateInfo = VkSemaphoreCreateInfo## Addr##
+                                                    ByteArray##
+
+instance Eq VkSemaphoreCreateInfo where
+        (VkSemaphoreCreateInfo## a _) == x@(VkSemaphoreCreateInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSemaphoreCreateInfo where
+        (VkSemaphoreCreateInfo## a _) `compare`
+          x@(VkSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSemaphoreCreateInfo where
+        sizeOf ~_ = #{size VkSemaphoreCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSemaphoreCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSemaphoreCreateInfo where
+        unsafeAddr (VkSemaphoreCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSemaphoreCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSemaphoreCreateInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSemaphoreCreateInfo where
+        type StructFields VkSemaphoreCreateInfo =
+             '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSemaphoreCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkSemaphoreCreateInfo
+         where
+        type FieldType "sType" VkSemaphoreCreateInfo = VkStructureType
+        type FieldOptional "sType" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSemaphoreCreateInfo =
+             #{offset VkSemaphoreCreateInfo, sType}
+        type FieldIsArray "sType" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreCreateInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkSemaphoreCreateInfo
+         where
+        type FieldType "pNext" VkSemaphoreCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSemaphoreCreateInfo =
+             #{offset VkSemaphoreCreateInfo, pNext}
+        type FieldIsArray "pNext" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkSemaphoreCreateInfo
+         where
+        type FieldType "flags" VkSemaphoreCreateInfo =
+             VkSemaphoreCreateFlags
+        type FieldOptional "flags" VkSemaphoreCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSemaphoreCreateInfo =
+             #{offset VkSemaphoreCreateInfo, flags}
+        type FieldIsArray "flags" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSemaphoreCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSemaphoreCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSemaphoreCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreCreateInfo, flags}
+
+instance Show VkSemaphoreCreateInfo where
+        showsPrec d x
+          = showString "VkSemaphoreCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkSemaphoreGetFdInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSemaphore                      semaphore;
+--   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
+--   > } VkSemaphoreGetFdInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSemaphoreGetFdInfoKHR VkSemaphoreGetFdInfoKHR registry at www.khronos.org>
+data VkSemaphoreGetFdInfoKHR = VkSemaphoreGetFdInfoKHR## Addr##
+                                                        ByteArray##
+
+instance Eq VkSemaphoreGetFdInfoKHR where
+        (VkSemaphoreGetFdInfoKHR## a _) == x@(VkSemaphoreGetFdInfoKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSemaphoreGetFdInfoKHR where
+        (VkSemaphoreGetFdInfoKHR## a _) `compare`
+          x@(VkSemaphoreGetFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSemaphoreGetFdInfoKHR where
+        sizeOf ~_ = #{size VkSemaphoreGetFdInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSemaphoreGetFdInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSemaphoreGetFdInfoKHR where
+        unsafeAddr (VkSemaphoreGetFdInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSemaphoreGetFdInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSemaphoreGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSemaphoreGetFdInfoKHR where
+        type StructFields VkSemaphoreGetFdInfoKHR =
+             '["sType", "pNext", "semaphore", "handleType"] -- ' closing tick for hsc2hs
+        type CUnionType VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSemaphoreGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSemaphoreGetFdInfoKHR where
+        type FieldType "sType" VkSemaphoreGetFdInfoKHR = VkStructureType
+        type FieldOptional "sType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSemaphoreGetFdInfoKHR =
+             #{offset VkSemaphoreGetFdInfoKHR, sType}
+        type FieldIsArray "sType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSemaphoreGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSemaphoreGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSemaphoreGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSemaphoreGetFdInfoKHR where
+        type FieldType "pNext" VkSemaphoreGetFdInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSemaphoreGetFdInfoKHR =
+             #{offset VkSemaphoreGetFdInfoKHR, pNext}
+        type FieldIsArray "pNext" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSemaphoreGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSemaphoreGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSemaphoreGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "semaphore" VkSemaphoreGetFdInfoKHR where
+        type FieldType "semaphore" VkSemaphoreGetFdInfoKHR = VkSemaphore
+        type FieldOptional "semaphore" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "semaphore" VkSemaphoreGetFdInfoKHR =
+             #{offset VkSemaphoreGetFdInfoKHR, semaphore}
+        type FieldIsArray "semaphore" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "semaphore" VkSemaphoreGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, semaphore})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "semaphore" VkSemaphoreGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, semaphore}
+
+instance {-# OVERLAPPING #-}
+         HasField "handleType" VkSemaphoreGetFdInfoKHR where
+        type FieldType "handleType" VkSemaphoreGetFdInfoKHR =
+             VkExternalSemaphoreHandleTypeFlagBits
+        type FieldOptional "handleType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "handleType" VkSemaphoreGetFdInfoKHR =
+             #{offset VkSemaphoreGetFdInfoKHR, handleType}
+        type FieldIsArray "handleType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSemaphoreGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "handleType" VkSemaphoreGetFdInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, handleType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, handleType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "handleType" VkSemaphoreGetFdInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, handleType}
+
+instance Show VkSemaphoreGetFdInfoKHR where
+        showsPrec d x
+          = showString "VkSemaphoreGetFdInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "semaphore = " .
+                            showsPrec d (getField @"semaphore" x) .
+                              showString ", " .
+                                showString "handleType = " .
+                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc
@@ -0,0 +1,1134 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PatternSynonyms       #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+{-# LANGUAGE UndecidableInstances  #-}
+module Graphics.Vulkan.Types.Struct.Shader
+       (VkShaderModuleCreateInfo(..),
+        VkShaderModuleValidationCacheCreateInfoEXT(..),
+        VkShaderResourceUsageAMD(..), VkShaderStatisticsInfoAMD(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           Proxy##,
+                                                           byteArrayContents##,
+                                                           plusAddr##, proxy##)
+import           GHC.TypeLits                             (KnownNat, natVal') -- ' closing tick for hsc2hs
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks           (VkShaderModuleCreateFlags)
+import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkValidationCacheEXT)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkShaderModuleCreateInfo {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkShaderModuleCreateFlags flags;
+--   >     size_t                 codeSize;
+--   >     const uint32_t*            pCode;
+--   > } VkShaderModuleCreateInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderModuleCreateInfo VkShaderModuleCreateInfo registry at www.khronos.org>
+data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo## Addr##
+                                                          ByteArray##
+
+instance Eq VkShaderModuleCreateInfo where
+        (VkShaderModuleCreateInfo## a _) ==
+          x@(VkShaderModuleCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkShaderModuleCreateInfo where
+        (VkShaderModuleCreateInfo## a _) `compare`
+          x@(VkShaderModuleCreateInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkShaderModuleCreateInfo where
+        sizeOf ~_ = #{size VkShaderModuleCreateInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkShaderModuleCreateInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkShaderModuleCreateInfo where
+        unsafeAddr (VkShaderModuleCreateInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkShaderModuleCreateInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkShaderModuleCreateInfo## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkShaderModuleCreateInfo where
+        type StructFields VkShaderModuleCreateInfo =
+             '["sType", "pNext", "flags", "codeSize", "pCode"] -- ' closing tick for hsc2hs
+        type CUnionType VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkShaderModuleCreateInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkShaderModuleCreateInfo where
+        type FieldType "sType" VkShaderModuleCreateInfo = VkStructureType
+        type FieldOptional "sType" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkShaderModuleCreateInfo =
+             #{offset VkShaderModuleCreateInfo, sType}
+        type FieldIsArray "sType" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkShaderModuleCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkShaderModuleCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkShaderModuleCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleCreateInfo, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkShaderModuleCreateInfo where
+        type FieldType "pNext" VkShaderModuleCreateInfo = Ptr Void
+        type FieldOptional "pNext" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkShaderModuleCreateInfo =
+             #{offset VkShaderModuleCreateInfo, pNext}
+        type FieldIsArray "pNext" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkShaderModuleCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkShaderModuleCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkShaderModuleCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleCreateInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkShaderModuleCreateInfo where
+        type FieldType "flags" VkShaderModuleCreateInfo =
+             VkShaderModuleCreateFlags
+        type FieldOptional "flags" VkShaderModuleCreateInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkShaderModuleCreateInfo =
+             #{offset VkShaderModuleCreateInfo, flags}
+        type FieldIsArray "flags" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkShaderModuleCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkShaderModuleCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkShaderModuleCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleCreateInfo, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "codeSize" VkShaderModuleCreateInfo where
+        type FieldType "codeSize" VkShaderModuleCreateInfo = CSize
+        type FieldOptional "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "codeSize" VkShaderModuleCreateInfo =
+             #{offset VkShaderModuleCreateInfo, codeSize}
+        type FieldIsArray "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderModuleCreateInfo, codeSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "codeSize" VkShaderModuleCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, codeSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleCreateInfo, codeSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "codeSize" VkShaderModuleCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleCreateInfo, codeSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCode" VkShaderModuleCreateInfo where
+        type FieldType "pCode" VkShaderModuleCreateInfo = Ptr Word32
+        type FieldOptional "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pCode" VkShaderModuleCreateInfo =
+             #{offset VkShaderModuleCreateInfo, pCode}
+        type FieldIsArray "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkShaderModuleCreateInfo, pCode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCode" VkShaderModuleCreateInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, pCode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleCreateInfo, pCode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCode" VkShaderModuleCreateInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleCreateInfo, pCode}
+
+instance Show VkShaderModuleCreateInfo where
+        showsPrec d x
+          = showString "VkShaderModuleCreateInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "codeSize = " .
+                                  showsPrec d (getField @"codeSize" x) .
+                                    showString ", " .
+                                      showString "pCode = " .
+                                        showsPrec d (getField @"pCode" x) . showChar '}'
+
+-- | > typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkValidationCacheEXT    validationCache;
+--   > } VkShaderModuleValidationCacheCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderModuleValidationCacheCreateInfoEXT VkShaderModuleValidationCacheCreateInfoEXT registry at www.khronos.org>
+data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT## Addr##
+                                                                                              ByteArray##
+
+instance Eq VkShaderModuleValidationCacheCreateInfoEXT where
+        (VkShaderModuleValidationCacheCreateInfoEXT## a _) ==
+          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkShaderModuleValidationCacheCreateInfoEXT where
+        (VkShaderModuleValidationCacheCreateInfoEXT## a _) `compare`
+          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkShaderModuleValidationCacheCreateInfoEXT where
+        sizeOf ~_
+          = #{size VkShaderModuleValidationCacheCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkShaderModuleValidationCacheCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        unsafeAddr (VkShaderModuleValidationCacheCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkShaderModuleValidationCacheCreateInfoEXT## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkShaderModuleValidationCacheCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        type StructFields VkShaderModuleValidationCacheCreateInfoEXT =
+             '["sType", "pNext", "validationCache"] -- ' closing tick for hsc2hs
+        type CUnionType VkShaderModuleValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkShaderModuleValidationCacheCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkShaderModuleValidationCacheCreateInfoEXT =
+             '[VkShaderModuleCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkShaderModuleValidationCacheCreateInfoEXT where
+        type FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkShaderModuleValidationCacheCreateInfoEXT
+             =
+             #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
+        type FieldIsArray "sType"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkShaderModuleValidationCacheCreateInfoEXT where
+        type FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pNext"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkShaderModuleValidationCacheCreateInfoEXT
+             =
+             #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
+        type FieldIsArray "pNext"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "validationCache"
+           VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        type FieldType "validationCache"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = VkValidationCacheEXT
+        type FieldOptional "validationCache"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "validationCache"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             =
+             #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
+        type FieldIsArray "validationCache"
+               VkShaderModuleValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "validationCache"
+           VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "validationCache"
+           VkShaderModuleValidationCacheCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
+
+instance Show VkShaderModuleValidationCacheCreateInfoEXT where
+        showsPrec d x
+          = showString "VkShaderModuleValidationCacheCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "validationCache = " .
+                            showsPrec d (getField @"validationCache" x) . showChar '}'
+
+-- | > typedef struct VkShaderResourceUsageAMD {
+--   >     uint32_t numUsedVgprs;
+--   >     uint32_t numUsedSgprs;
+--   >     uint32_t ldsSizePerLocalWorkGroup;
+--   >     size_t ldsUsageSizeInBytes;
+--   >     size_t scratchMemUsageInBytes;
+--   > } VkShaderResourceUsageAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderResourceUsageAMD VkShaderResourceUsageAMD registry at www.khronos.org>
+data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD## Addr##
+                                                          ByteArray##
+
+instance Eq VkShaderResourceUsageAMD where
+        (VkShaderResourceUsageAMD## a _) ==
+          x@(VkShaderResourceUsageAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkShaderResourceUsageAMD where
+        (VkShaderResourceUsageAMD## a _) `compare`
+          x@(VkShaderResourceUsageAMD## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkShaderResourceUsageAMD where
+        sizeOf ~_ = #{size VkShaderResourceUsageAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkShaderResourceUsageAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkShaderResourceUsageAMD where
+        unsafeAddr (VkShaderResourceUsageAMD## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkShaderResourceUsageAMD## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkShaderResourceUsageAMD## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkShaderResourceUsageAMD where
+        type StructFields VkShaderResourceUsageAMD =
+             '["numUsedVgprs", "numUsedSgprs", "ldsSizePerLocalWorkGroup", -- ' closing tick for hsc2hs
+               "ldsUsageSizeInBytes", "scratchMemUsageInBytes"]
+        type CUnionType VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkShaderResourceUsageAMD = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkShaderResourceUsageAMD = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "numUsedVgprs" VkShaderResourceUsageAMD where
+        type FieldType "numUsedVgprs" VkShaderResourceUsageAMD = Word32
+        type FieldOptional "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "numUsedVgprs" VkShaderResourceUsageAMD =
+             #{offset VkShaderResourceUsageAMD, numUsedVgprs}
+        type FieldIsArray "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderResourceUsageAMD, numUsedVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numUsedVgprs" VkShaderResourceUsageAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, numUsedVgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderResourceUsageAMD, numUsedVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numUsedVgprs" VkShaderResourceUsageAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderResourceUsageAMD, numUsedVgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "numUsedSgprs" VkShaderResourceUsageAMD where
+        type FieldType "numUsedSgprs" VkShaderResourceUsageAMD = Word32
+        type FieldOptional "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "numUsedSgprs" VkShaderResourceUsageAMD =
+             #{offset VkShaderResourceUsageAMD, numUsedSgprs}
+        type FieldIsArray "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderResourceUsageAMD, numUsedSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numUsedSgprs" VkShaderResourceUsageAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, numUsedSgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderResourceUsageAMD, numUsedSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numUsedSgprs" VkShaderResourceUsageAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderResourceUsageAMD, numUsedSgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD where
+        type FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
+             = Word32
+        type FieldOptional "ldsSizePerLocalWorkGroup"
+               VkShaderResourceUsageAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "ldsSizePerLocalWorkGroup"
+               VkShaderResourceUsageAMD
+             =
+             #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
+        type FieldIsArray "ldsSizePerLocalWorkGroup"
+               VkShaderResourceUsageAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
+
+instance {-# OVERLAPPING #-}
+         HasField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
+        type FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
+             CSize
+        type FieldOptional "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
+             #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
+        type FieldIsArray "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
+
+instance {-# OVERLAPPING #-}
+         HasField "scratchMemUsageInBytes" VkShaderResourceUsageAMD where
+        type FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD =
+             CSize
+        type FieldOptional "scratchMemUsageInBytes"
+               VkShaderResourceUsageAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "scratchMemUsageInBytes" VkShaderResourceUsageAMD
+             =
+             #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
+        type FieldIsArray "scratchMemUsageInBytes" VkShaderResourceUsageAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
+
+instance Show VkShaderResourceUsageAMD where
+        showsPrec d x
+          = showString "VkShaderResourceUsageAMD {" .
+              showString "numUsedVgprs = " .
+                showsPrec d (getField @"numUsedVgprs" x) .
+                  showString ", " .
+                    showString "numUsedSgprs = " .
+                      showsPrec d (getField @"numUsedSgprs" x) .
+                        showString ", " .
+                          showString "ldsSizePerLocalWorkGroup = " .
+                            showsPrec d (getField @"ldsSizePerLocalWorkGroup" x) .
+                              showString ", " .
+                                showString "ldsUsageSizeInBytes = " .
+                                  showsPrec d (getField @"ldsUsageSizeInBytes" x) .
+                                    showString ", " .
+                                      showString "scratchMemUsageInBytes = " .
+                                        showsPrec d (getField @"scratchMemUsageInBytes" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkShaderStatisticsInfoAMD {
+--   >     VkShaderStageFlags shaderStageMask;
+--   >     VkShaderResourceUsageAMD resourceUsage;
+--   >     uint32_t numPhysicalVgprs;
+--   >     uint32_t numPhysicalSgprs;
+--   >     uint32_t numAvailableVgprs;
+--   >     uint32_t numAvailableSgprs;
+--   >     uint32_t computeWorkGroupSize[3];
+--   > } VkShaderStatisticsInfoAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderStatisticsInfoAMD VkShaderStatisticsInfoAMD registry at www.khronos.org>
+data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD## Addr##
+                                                            ByteArray##
+
+instance Eq VkShaderStatisticsInfoAMD where
+        (VkShaderStatisticsInfoAMD## a _) ==
+          x@(VkShaderStatisticsInfoAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkShaderStatisticsInfoAMD where
+        (VkShaderStatisticsInfoAMD## a _) `compare`
+          x@(VkShaderStatisticsInfoAMD## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkShaderStatisticsInfoAMD where
+        sizeOf ~_ = #{size VkShaderStatisticsInfoAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkShaderStatisticsInfoAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkShaderStatisticsInfoAMD where
+        unsafeAddr (VkShaderStatisticsInfoAMD## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkShaderStatisticsInfoAMD## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkShaderStatisticsInfoAMD## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkShaderStatisticsInfoAMD where
+        type StructFields VkShaderStatisticsInfoAMD =
+             '["shaderStageMask", "resourceUsage", "numPhysicalVgprs", -- ' closing tick for hsc2hs
+               "numPhysicalSgprs", "numAvailableVgprs", "numAvailableSgprs",
+               "computeWorkGroupSize"]
+        type CUnionType VkShaderStatisticsInfoAMD = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkShaderStatisticsInfoAMD = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkShaderStatisticsInfoAMD = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "shaderStageMask" VkShaderStatisticsInfoAMD where
+        type FieldType "shaderStageMask" VkShaderStatisticsInfoAMD =
+             VkShaderStageFlags
+        type FieldOptional "shaderStageMask" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "shaderStageMask" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
+        type FieldIsArray "shaderStageMask" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "shaderStageMask" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, shaderStageMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "shaderStageMask" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "resourceUsage" VkShaderStatisticsInfoAMD where
+        type FieldType "resourceUsage" VkShaderStatisticsInfoAMD =
+             VkShaderResourceUsageAMD
+        type FieldOptional "resourceUsage" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "resourceUsage" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, resourceUsage}
+        type FieldIsArray "resourceUsage" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, resourceUsage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "resourceUsage" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, resourceUsage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, resourceUsage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "resourceUsage" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, resourceUsage}
+
+instance {-# OVERLAPPING #-}
+         HasField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
+        type FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
+             Word32
+        type FieldOptional "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
+        type FieldIsArray "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
+        type FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
+             Word32
+        type FieldOptional "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
+        type FieldIsArray "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
+        type FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD =
+             Word32
+        type FieldOptional "numAvailableVgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "numAvailableVgprs" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
+        type FieldIsArray "numAvailableVgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
+        type FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD =
+             Word32
+        type FieldOptional "numAvailableSgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "numAvailableSgprs" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
+        type FieldIsArray "numAvailableSgprs" VkShaderStatisticsInfoAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
+
+instance {-# OVERLAPPING #-}
+         HasField "computeWorkGroupSize" VkShaderStatisticsInfoAMD where
+        type FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
+             Word32
+        type FieldOptional "computeWorkGroupSize" VkShaderStatisticsInfoAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
+             #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
+        type FieldIsArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD
+             = 'True -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "computeWorkGroupSize" idx
+            VkShaderStatisticsInfoAMD) =>
+         CanReadFieldArray "computeWorkGroupSize" idx
+           VkShaderStatisticsInfoAMD
+         where
+        {-# SPECIALISE instance
+                       CanReadFieldArray "computeWorkGroupSize" 0
+                         VkShaderStatisticsInfoAMD
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "computeWorkGroupSize" 1
+                         VkShaderStatisticsInfoAMD
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanReadFieldArray "computeWorkGroupSize" 2
+                         VkShaderStatisticsInfoAMD
+                       #-}
+        type FieldArrayLength "computeWorkGroupSize"
+               VkShaderStatisticsInfoAMD
+             = 3
+
+        {-# INLINE fieldArrayLength #-}
+        fieldArrayLength = 3
+
+        {-# INLINE getFieldArray #-}
+        getFieldArray = f
+          where {-# NOINLINE f #-}
+                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
+                off
+                  = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
+                      +
+                      sizeOf (undefined :: Word32) *
+                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
+
+        {-# INLINE readFieldArray #-}
+        readFieldArray p
+          = peekByteOff p
+              (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         (KnownNat idx,
+          IndexInBounds "computeWorkGroupSize" idx
+            VkShaderStatisticsInfoAMD) =>
+         CanWriteFieldArray "computeWorkGroupSize" idx
+           VkShaderStatisticsInfoAMD
+         where
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "computeWorkGroupSize" 0
+                         VkShaderStatisticsInfoAMD
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "computeWorkGroupSize" 1
+                         VkShaderStatisticsInfoAMD
+                       #-}
+
+        {-# SPECIALISE instance
+                       CanWriteFieldArray "computeWorkGroupSize" 2
+                         VkShaderStatisticsInfoAMD
+                       #-}
+
+        {-# INLINE writeFieldArray #-}
+        writeFieldArray p
+          = pokeByteOff p
+              (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
+                 +
+                 sizeOf (undefined :: Word32) *
+                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
+
+instance Show VkShaderStatisticsInfoAMD where
+        showsPrec d x
+          = showString "VkShaderStatisticsInfoAMD {" .
+              showString "shaderStageMask = " .
+                showsPrec d (getField @"shaderStageMask" x) .
+                  showString ", " .
+                    showString "resourceUsage = " .
+                      showsPrec d (getField @"resourceUsage" x) .
+                        showString ", " .
+                          showString "numPhysicalVgprs = " .
+                            showsPrec d (getField @"numPhysicalVgprs" x) .
+                              showString ", " .
+                                showString "numPhysicalSgprs = " .
+                                  showsPrec d (getField @"numPhysicalSgprs" x) .
+                                    showString ", " .
+                                      showString "numAvailableVgprs = " .
+                                        showsPrec d (getField @"numAvailableVgprs" x) .
+                                          showString ", " .
+                                            showString "numAvailableSgprs = " .
+                                              showsPrec d (getField @"numAvailableSgprs" x) .
+                                                showString ", " .
+                                                  (showString "computeWorkGroupSize = [" .
+                                                     showsPrec d
+                                                       (let s = sizeOf
+                                                                  (undefined ::
+                                                                     FieldType
+                                                                       "computeWorkGroupSize"
+                                                                       VkShaderStatisticsInfoAMD)
+                                                            o = fieldOffset @"computeWorkGroupSize"
+                                                                  @VkShaderStatisticsInfoAMD
+                                                            f i
+                                                              = peekByteOff (unsafePtr x) i ::
+                                                                  IO
+                                                                    (FieldType
+                                                                       "computeWorkGroupSize"
+                                                                       VkShaderStatisticsInfoAMD)
+                                                          in
+                                                          unsafeDupablePerformIO . mapM f $
+                                                            map (\ i -> o + i * s) [0 .. 3 - 1])
+                                                       . showChar ']')
+                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SharedPresentSurfaceCapabilitiesKHR.hsc
@@ -0,0 +1,213 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
+       (VkSharedPresentSurfaceCapabilitiesKHR(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Image         (VkImageUsageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Surface     (VkSurfaceCapabilities2KHR)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkImageUsageFlags sharedPresentSupportedUsageFlags;
+--   > } VkSharedPresentSurfaceCapabilitiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSharedPresentSurfaceCapabilitiesKHR VkSharedPresentSurfaceCapabilitiesKHR registry at www.khronos.org>
+data VkSharedPresentSurfaceCapabilitiesKHR = VkSharedPresentSurfaceCapabilitiesKHR## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkSharedPresentSurfaceCapabilitiesKHR where
+        (VkSharedPresentSurfaceCapabilitiesKHR## a _) ==
+          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSharedPresentSurfaceCapabilitiesKHR where
+        (VkSharedPresentSurfaceCapabilitiesKHR## a _) `compare`
+          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSharedPresentSurfaceCapabilitiesKHR where
+        sizeOf ~_
+          = #{size VkSharedPresentSurfaceCapabilitiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSharedPresentSurfaceCapabilitiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSharedPresentSurfaceCapabilitiesKHR
+         where
+        unsafeAddr (VkSharedPresentSurfaceCapabilitiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSharedPresentSurfaceCapabilitiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSharedPresentSurfaceCapabilitiesKHR##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSharedPresentSurfaceCapabilitiesKHR where
+        type StructFields VkSharedPresentSurfaceCapabilitiesKHR =
+             '["sType", "pNext", "sharedPresentSupportedUsageFlags"] -- ' closing tick for hsc2hs
+        type CUnionType VkSharedPresentSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSharedPresentSurfaceCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSharedPresentSurfaceCapabilitiesKHR =
+             '[VkSurfaceCapabilities2KHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
+        type FieldType "sType" VkSharedPresentSurfaceCapabilitiesKHR =
+             VkStructureType
+        type FieldOptional "sType" VkSharedPresentSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSharedPresentSurfaceCapabilitiesKHR =
+             #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
+        type FieldIsArray "sType" VkSharedPresentSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
+        type FieldType "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
+             Ptr Void
+        type FieldOptional "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
+             #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
+        type FieldIsArray "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "sharedPresentSupportedUsageFlags"
+           VkSharedPresentSurfaceCapabilitiesKHR
+         where
+        type FieldType "sharedPresentSupportedUsageFlags"
+               VkSharedPresentSurfaceCapabilitiesKHR
+             = VkImageUsageFlags
+        type FieldOptional "sharedPresentSupportedUsageFlags"
+               VkSharedPresentSurfaceCapabilitiesKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "sharedPresentSupportedUsageFlags"
+               VkSharedPresentSurfaceCapabilitiesKHR
+             =
+             #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
+        type FieldIsArray "sharedPresentSupportedUsageFlags"
+               VkSharedPresentSurfaceCapabilitiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sharedPresentSupportedUsageFlags"
+           VkSharedPresentSurfaceCapabilitiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sharedPresentSupportedUsageFlags"
+           VkSharedPresentSurfaceCapabilitiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
+
+instance Show VkSharedPresentSurfaceCapabilitiesKHR where
+        showsPrec d x
+          = showString "VkSharedPresentSurfaceCapabilitiesKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "sharedPresentSupportedUsageFlags = " .
+                            showsPrec d (getField @"sharedPresentSupportedUsageFlags" x) .
+                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Sparse.hsc
@@ -0,0 +1,1875 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Sparse
+       (VkSparseBufferMemoryBindInfo(..),
+        VkSparseImageFormatProperties(..),
+        VkSparseImageFormatProperties2(..),
+        VkSparseImageFormatProperties2KHR, VkSparseImageMemoryBind(..),
+        VkSparseImageMemoryBindInfo(..),
+        VkSparseImageMemoryRequirements(..),
+        VkSparseImageMemoryRequirements2(..),
+        VkSparseImageMemoryRequirements2KHR,
+        VkSparseImageOpaqueMemoryBindInfo(..), VkSparseMemoryBind(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkDeviceSize)
+import           Graphics.Vulkan.Types.Enum.Image         (VkImageAspectFlags)
+import           Graphics.Vulkan.Types.Enum.Sparse        (VkSparseImageFormatFlags,
+                                                           VkSparseMemoryBindFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBuffer,
+                                                           VkDeviceMemory,
+                                                           VkImage)
+import           Graphics.Vulkan.Types.Struct.Extent      (VkExtent3D)
+import           Graphics.Vulkan.Types.Struct.Image       (VkImageSubresource)
+import           Graphics.Vulkan.Types.Struct.Offset      (VkOffset3D)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSparseBufferMemoryBindInfo {
+--   >     VkBuffer buffer;
+--   >     uint32_t               bindCount;
+--   >     const VkSparseMemoryBind* pBinds;
+--   > } VkSparseBufferMemoryBindInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseBufferMemoryBindInfo VkSparseBufferMemoryBindInfo registry at www.khronos.org>
+data VkSparseBufferMemoryBindInfo = VkSparseBufferMemoryBindInfo## Addr##
+                                                                  ByteArray##
+
+instance Eq VkSparseBufferMemoryBindInfo where
+        (VkSparseBufferMemoryBindInfo## a _) ==
+          x@(VkSparseBufferMemoryBindInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseBufferMemoryBindInfo where
+        (VkSparseBufferMemoryBindInfo## a _) `compare`
+          x@(VkSparseBufferMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseBufferMemoryBindInfo where
+        sizeOf ~_ = #{size VkSparseBufferMemoryBindInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseBufferMemoryBindInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseBufferMemoryBindInfo where
+        unsafeAddr (VkSparseBufferMemoryBindInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseBufferMemoryBindInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseBufferMemoryBindInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseBufferMemoryBindInfo where
+        type StructFields VkSparseBufferMemoryBindInfo =
+             '["buffer", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSparseBufferMemoryBindInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "buffer" VkSparseBufferMemoryBindInfo where
+        type FieldType "buffer" VkSparseBufferMemoryBindInfo = VkBuffer
+        type FieldOptional "buffer" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "buffer" VkSparseBufferMemoryBindInfo =
+             #{offset VkSparseBufferMemoryBindInfo, buffer}
+        type FieldIsArray "buffer" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseBufferMemoryBindInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "buffer" VkSparseBufferMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, buffer})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "buffer" VkSparseBufferMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, buffer}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindCount" VkSparseBufferMemoryBindInfo where
+        type FieldType "bindCount" VkSparseBufferMemoryBindInfo = Word32
+        type FieldOptional "bindCount" VkSparseBufferMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "bindCount" VkSparseBufferMemoryBindInfo =
+             #{offset VkSparseBufferMemoryBindInfo, bindCount}
+        type FieldIsArray "bindCount" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseBufferMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindCount" VkSparseBufferMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, bindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindCount" VkSparseBufferMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBinds" VkSparseBufferMemoryBindInfo where
+        type FieldType "pBinds" VkSparseBufferMemoryBindInfo =
+             Ptr VkSparseMemoryBind
+        type FieldOptional "pBinds" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBinds" VkSparseBufferMemoryBindInfo =
+             #{offset VkSparseBufferMemoryBindInfo, pBinds}
+        type FieldIsArray "pBinds" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseBufferMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBinds" VkSparseBufferMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, pBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBinds" VkSparseBufferMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, pBinds}
+
+instance Show VkSparseBufferMemoryBindInfo where
+        showsPrec d x
+          = showString "VkSparseBufferMemoryBindInfo {" .
+              showString "buffer = " .
+                showsPrec d (getField @"buffer" x) .
+                  showString ", " .
+                    showString "bindCount = " .
+                      showsPrec d (getField @"bindCount" x) .
+                        showString ", " .
+                          showString "pBinds = " .
+                            showsPrec d (getField @"pBinds" x) . showChar '}'
+
+-- | > typedef struct VkSparseImageFormatProperties {
+--   >     VkImageAspectFlags     aspectMask;
+--   >     VkExtent3D             imageGranularity;
+--   >     VkSparseImageFormatFlags flags;
+--   > } VkSparseImageFormatProperties;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageFormatProperties VkSparseImageFormatProperties registry at www.khronos.org>
+data VkSparseImageFormatProperties = VkSparseImageFormatProperties## Addr##
+                                                                    ByteArray##
+
+instance Eq VkSparseImageFormatProperties where
+        (VkSparseImageFormatProperties## a _) ==
+          x@(VkSparseImageFormatProperties## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageFormatProperties where
+        (VkSparseImageFormatProperties## a _) `compare`
+          x@(VkSparseImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageFormatProperties where
+        sizeOf ~_ = #{size VkSparseImageFormatProperties}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseImageFormatProperties}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageFormatProperties where
+        unsafeAddr (VkSparseImageFormatProperties## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageFormatProperties## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageFormatProperties##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageFormatProperties where
+        type StructFields VkSparseImageFormatProperties =
+             '["aspectMask", "imageGranularity", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseImageFormatProperties = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageFormatProperties = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageFormatProperties = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "aspectMask" VkSparseImageFormatProperties where
+        type FieldType "aspectMask" VkSparseImageFormatProperties =
+             VkImageAspectFlags
+        type FieldOptional "aspectMask" VkSparseImageFormatProperties =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "aspectMask" VkSparseImageFormatProperties =
+             #{offset VkSparseImageFormatProperties, aspectMask}
+        type FieldIsArray "aspectMask" VkSparseImageFormatProperties =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "aspectMask" VkSparseImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, aspectMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "aspectMask" VkSparseImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties, aspectMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageGranularity" VkSparseImageFormatProperties where
+        type FieldType "imageGranularity" VkSparseImageFormatProperties =
+             VkExtent3D
+        type FieldOptional "imageGranularity" VkSparseImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageGranularity" VkSparseImageFormatProperties =
+             #{offset VkSparseImageFormatProperties, imageGranularity}
+        type FieldIsArray "imageGranularity" VkSparseImageFormatProperties
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties, imageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageGranularity" VkSparseImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, imageGranularity})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties, imageGranularity}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageGranularity" VkSparseImageFormatProperties
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties, imageGranularity}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkSparseImageFormatProperties where
+        type FieldType "flags" VkSparseImageFormatProperties =
+             VkSparseImageFormatFlags
+        type FieldOptional "flags" VkSparseImageFormatProperties = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSparseImageFormatProperties =
+             #{offset VkSparseImageFormatProperties, flags}
+        type FieldIsArray "flags" VkSparseImageFormatProperties = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSparseImageFormatProperties where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSparseImageFormatProperties where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties, flags}
+
+instance Show VkSparseImageFormatProperties where
+        showsPrec d x
+          = showString "VkSparseImageFormatProperties {" .
+              showString "aspectMask = " .
+                showsPrec d (getField @"aspectMask" x) .
+                  showString ", " .
+                    showString "imageGranularity = " .
+                      showsPrec d (getField @"imageGranularity" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkSparseImageFormatProperties2 {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkSparseImageFormatProperties    properties;
+--   > } VkSparseImageFormatProperties2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageFormatProperties2 VkSparseImageFormatProperties2 registry at www.khronos.org>
+data VkSparseImageFormatProperties2 = VkSparseImageFormatProperties2## Addr##
+                                                                      ByteArray##
+
+instance Eq VkSparseImageFormatProperties2 where
+        (VkSparseImageFormatProperties2## a _) ==
+          x@(VkSparseImageFormatProperties2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageFormatProperties2 where
+        (VkSparseImageFormatProperties2## a _) `compare`
+          x@(VkSparseImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageFormatProperties2 where
+        sizeOf ~_ = #{size VkSparseImageFormatProperties2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseImageFormatProperties2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageFormatProperties2 where
+        unsafeAddr (VkSparseImageFormatProperties2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageFormatProperties2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageFormatProperties2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageFormatProperties2 where
+        type StructFields VkSparseImageFormatProperties2 =
+             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageFormatProperties2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageFormatProperties2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSparseImageFormatProperties2 where
+        type FieldType "sType" VkSparseImageFormatProperties2 =
+             VkStructureType
+        type FieldOptional "sType" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSparseImageFormatProperties2 =
+             #{offset VkSparseImageFormatProperties2, sType}
+        type FieldIsArray "sType" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSparseImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSparseImageFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSparseImageFormatProperties2 where
+        type FieldType "pNext" VkSparseImageFormatProperties2 = Ptr Void
+        type FieldOptional "pNext" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSparseImageFormatProperties2 =
+             #{offset VkSparseImageFormatProperties2, pNext}
+        type FieldIsArray "pNext" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSparseImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSparseImageFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "properties" VkSparseImageFormatProperties2 where
+        type FieldType "properties" VkSparseImageFormatProperties2 =
+             VkSparseImageFormatProperties
+        type FieldOptional "properties" VkSparseImageFormatProperties2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "properties" VkSparseImageFormatProperties2 =
+             #{offset VkSparseImageFormatProperties2, properties}
+        type FieldIsArray "properties" VkSparseImageFormatProperties2 =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageFormatProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "properties" VkSparseImageFormatProperties2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, properties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageFormatProperties2, properties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "properties" VkSparseImageFormatProperties2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageFormatProperties2, properties}
+
+instance Show VkSparseImageFormatProperties2 where
+        showsPrec d x
+          = showString "VkSparseImageFormatProperties2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "properties = " .
+                            showsPrec d (getField @"properties" x) . showChar '}'
+
+-- | Alias for `VkSparseImageFormatProperties2`
+type VkSparseImageFormatProperties2KHR =
+     VkSparseImageFormatProperties2
+
+-- | > typedef struct VkSparseImageMemoryBind {
+--   >     VkImageSubresource     subresource;
+--   >     VkOffset3D             offset;
+--   >     VkExtent3D             extent;
+--   >     VkDeviceMemory         memory;
+--   >     VkDeviceSize           memoryOffset;
+--   >     VkSparseMemoryBindFlagsflags;
+--   > } VkSparseImageMemoryBind;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryBind VkSparseImageMemoryBind registry at www.khronos.org>
+data VkSparseImageMemoryBind = VkSparseImageMemoryBind## Addr##
+                                                        ByteArray##
+
+instance Eq VkSparseImageMemoryBind where
+        (VkSparseImageMemoryBind## a _) == x@(VkSparseImageMemoryBind## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageMemoryBind where
+        (VkSparseImageMemoryBind## a _) `compare`
+          x@(VkSparseImageMemoryBind## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageMemoryBind where
+        sizeOf ~_ = #{size VkSparseImageMemoryBind}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSparseImageMemoryBind}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageMemoryBind where
+        unsafeAddr (VkSparseImageMemoryBind## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageMemoryBind## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageMemoryBind## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageMemoryBind where
+        type StructFields VkSparseImageMemoryBind =
+             '["subresource", "offset", "extent", "memory", "memoryOffset", -- ' closing tick for hsc2hs
+               "flags"]
+        type CUnionType VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageMemoryBind = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "subresource" VkSparseImageMemoryBind where
+        type FieldType "subresource" VkSparseImageMemoryBind =
+             VkImageSubresource
+        type FieldOptional "subresource" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "subresource" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, subresource}
+        type FieldIsArray "subresource" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryBind, subresource}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subresource" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, subresource})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, subresource}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subresource" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, subresource}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkSparseImageMemoryBind where
+        type FieldType "offset" VkSparseImageMemoryBind = VkOffset3D
+        type FieldOptional "offset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, offset}
+        type FieldIsArray "offset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseImageMemoryBind, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, offset}
+
+instance {-# OVERLAPPING #-}
+         HasField "extent" VkSparseImageMemoryBind where
+        type FieldType "extent" VkSparseImageMemoryBind = VkExtent3D
+        type FieldOptional "extent" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "extent" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, extent}
+        type FieldIsArray "extent" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseImageMemoryBind, extent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "extent" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, extent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, extent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "extent" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, extent}
+
+instance {-# OVERLAPPING #-}
+         HasField "memory" VkSparseImageMemoryBind where
+        type FieldType "memory" VkSparseImageMemoryBind = VkDeviceMemory
+        type FieldOptional "memory" VkSparseImageMemoryBind = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, memory}
+        type FieldIsArray "memory" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseImageMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryOffset" VkSparseImageMemoryBind where
+        type FieldType "memoryOffset" VkSparseImageMemoryBind =
+             VkDeviceSize
+        type FieldOptional "memoryOffset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryOffset" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, memoryOffset}
+        type FieldIsArray "memoryOffset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryOffset" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, memoryOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryOffset" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkSparseImageMemoryBind where
+        type FieldType "flags" VkSparseImageMemoryBind =
+             VkSparseMemoryBindFlags
+        type FieldOptional "flags" VkSparseImageMemoryBind = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSparseImageMemoryBind =
+             #{offset VkSparseImageMemoryBind, flags}
+        type FieldIsArray "flags" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseImageMemoryBind, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSparseImageMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBind, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSparseImageMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBind, flags}
+
+instance Show VkSparseImageMemoryBind where
+        showsPrec d x
+          = showString "VkSparseImageMemoryBind {" .
+              showString "subresource = " .
+                showsPrec d (getField @"subresource" x) .
+                  showString ", " .
+                    showString "offset = " .
+                      showsPrec d (getField @"offset" x) .
+                        showString ", " .
+                          showString "extent = " .
+                            showsPrec d (getField @"extent" x) .
+                              showString ", " .
+                                showString "memory = " .
+                                  showsPrec d (getField @"memory" x) .
+                                    showString ", " .
+                                      showString "memoryOffset = " .
+                                        showsPrec d (getField @"memoryOffset" x) .
+                                          showString ", " .
+                                            showString "flags = " .
+                                              showsPrec d (getField @"flags" x) . showChar '}'
+
+-- | > typedef struct VkSparseImageMemoryBindInfo {
+--   >     VkImage image;
+--   >     uint32_t               bindCount;
+--   >     const VkSparseImageMemoryBind* pBinds;
+--   > } VkSparseImageMemoryBindInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryBindInfo VkSparseImageMemoryBindInfo registry at www.khronos.org>
+data VkSparseImageMemoryBindInfo = VkSparseImageMemoryBindInfo## Addr##
+                                                                ByteArray##
+
+instance Eq VkSparseImageMemoryBindInfo where
+        (VkSparseImageMemoryBindInfo## a _) ==
+          x@(VkSparseImageMemoryBindInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageMemoryBindInfo where
+        (VkSparseImageMemoryBindInfo## a _) `compare`
+          x@(VkSparseImageMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageMemoryBindInfo where
+        sizeOf ~_ = #{size VkSparseImageMemoryBindInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSparseImageMemoryBindInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageMemoryBindInfo where
+        unsafeAddr (VkSparseImageMemoryBindInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageMemoryBindInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageMemoryBindInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageMemoryBindInfo where
+        type StructFields VkSparseImageMemoryBindInfo =
+             '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageMemoryBindInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkSparseImageMemoryBindInfo where
+        type FieldType "image" VkSparseImageMemoryBindInfo = VkImage
+        type FieldOptional "image" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkSparseImageMemoryBindInfo =
+             #{offset VkSparseImageMemoryBindInfo, image}
+        type FieldIsArray "image" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkSparseImageMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkSparseImageMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindCount" VkSparseImageMemoryBindInfo where
+        type FieldType "bindCount" VkSparseImageMemoryBindInfo = Word32
+        type FieldOptional "bindCount" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "bindCount" VkSparseImageMemoryBindInfo =
+             #{offset VkSparseImageMemoryBindInfo, bindCount}
+        type FieldIsArray "bindCount" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindCount" VkSparseImageMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, bindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindCount" VkSparseImageMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBinds" VkSparseImageMemoryBindInfo where
+        type FieldType "pBinds" VkSparseImageMemoryBindInfo =
+             Ptr VkSparseImageMemoryBind
+        type FieldOptional "pBinds" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBinds" VkSparseImageMemoryBindInfo =
+             #{offset VkSparseImageMemoryBindInfo, pBinds}
+        type FieldIsArray "pBinds" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBinds" VkSparseImageMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, pBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBinds" VkSparseImageMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, pBinds}
+
+instance Show VkSparseImageMemoryBindInfo where
+        showsPrec d x
+          = showString "VkSparseImageMemoryBindInfo {" .
+              showString "image = " .
+                showsPrec d (getField @"image" x) .
+                  showString ", " .
+                    showString "bindCount = " .
+                      showsPrec d (getField @"bindCount" x) .
+                        showString ", " .
+                          showString "pBinds = " .
+                            showsPrec d (getField @"pBinds" x) . showChar '}'
+
+-- | > typedef struct VkSparseImageMemoryRequirements {
+--   >     VkSparseImageFormatProperties formatProperties;
+--   >     uint32_t               imageMipTailFirstLod;
+--   >     VkDeviceSize           imageMipTailSize;
+--   >     VkDeviceSize           imageMipTailOffset;
+--   >     VkDeviceSize           imageMipTailStride;
+--   > } VkSparseImageMemoryRequirements;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryRequirements VkSparseImageMemoryRequirements registry at www.khronos.org>
+data VkSparseImageMemoryRequirements = VkSparseImageMemoryRequirements## Addr##
+                                                                        ByteArray##
+
+instance Eq VkSparseImageMemoryRequirements where
+        (VkSparseImageMemoryRequirements## a _) ==
+          x@(VkSparseImageMemoryRequirements## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageMemoryRequirements where
+        (VkSparseImageMemoryRequirements## a _) `compare`
+          x@(VkSparseImageMemoryRequirements## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageMemoryRequirements where
+        sizeOf ~_ = #{size VkSparseImageMemoryRequirements}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseImageMemoryRequirements}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageMemoryRequirements where
+        unsafeAddr (VkSparseImageMemoryRequirements## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageMemoryRequirements## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageMemoryRequirements##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageMemoryRequirements where
+        type StructFields VkSparseImageMemoryRequirements =
+             '["formatProperties", "imageMipTailFirstLod", "imageMipTailSize", -- ' closing tick for hsc2hs
+               "imageMipTailOffset", "imageMipTailStride"]
+        type CUnionType VkSparseImageMemoryRequirements = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageMemoryRequirements = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageMemoryRequirements = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "formatProperties" VkSparseImageMemoryRequirements where
+        type FieldType "formatProperties" VkSparseImageMemoryRequirements =
+             VkSparseImageFormatProperties
+        type FieldOptional "formatProperties"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "formatProperties" VkSparseImageMemoryRequirements
+             =
+             #{offset VkSparseImageMemoryRequirements, formatProperties}
+        type FieldIsArray "formatProperties"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements, formatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "formatProperties" VkSparseImageMemoryRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, formatProperties})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements, formatProperties}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "formatProperties" VkSparseImageMemoryRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, formatProperties}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageMipTailFirstLod" VkSparseImageMemoryRequirements
+         where
+        type FieldType "imageMipTailFirstLod"
+               VkSparseImageMemoryRequirements
+             = Word32
+        type FieldOptional "imageMipTailFirstLod"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageMipTailFirstLod"
+               VkSparseImageMemoryRequirements
+             =
+             #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
+        type FieldIsArray "imageMipTailFirstLod"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageMipTailFirstLod" VkSparseImageMemoryRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageMipTailFirstLod"
+           VkSparseImageMemoryRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageMipTailSize" VkSparseImageMemoryRequirements where
+        type FieldType "imageMipTailSize" VkSparseImageMemoryRequirements =
+             VkDeviceSize
+        type FieldOptional "imageMipTailSize"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageMipTailSize" VkSparseImageMemoryRequirements
+             =
+             #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
+        type FieldIsArray "imageMipTailSize"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageMipTailSize" VkSparseImageMemoryRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageMipTailSize" VkSparseImageMemoryRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageMipTailOffset" VkSparseImageMemoryRequirements where
+        type FieldType "imageMipTailOffset" VkSparseImageMemoryRequirements
+             = VkDeviceSize
+        type FieldOptional "imageMipTailOffset"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageMipTailOffset"
+               VkSparseImageMemoryRequirements
+             =
+             #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
+        type FieldIsArray "imageMipTailOffset"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageMipTailOffset" VkSparseImageMemoryRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageMipTailOffset" VkSparseImageMemoryRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageMipTailStride" VkSparseImageMemoryRequirements where
+        type FieldType "imageMipTailStride" VkSparseImageMemoryRequirements
+             = VkDeviceSize
+        type FieldOptional "imageMipTailStride"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageMipTailStride"
+               VkSparseImageMemoryRequirements
+             =
+             #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
+        type FieldIsArray "imageMipTailStride"
+               VkSparseImageMemoryRequirements
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageMipTailStride" VkSparseImageMemoryRequirements
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailStride})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageMipTailStride" VkSparseImageMemoryRequirements
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
+
+instance Show VkSparseImageMemoryRequirements where
+        showsPrec d x
+          = showString "VkSparseImageMemoryRequirements {" .
+              showString "formatProperties = " .
+                showsPrec d (getField @"formatProperties" x) .
+                  showString ", " .
+                    showString "imageMipTailFirstLod = " .
+                      showsPrec d (getField @"imageMipTailFirstLod" x) .
+                        showString ", " .
+                          showString "imageMipTailSize = " .
+                            showsPrec d (getField @"imageMipTailSize" x) .
+                              showString ", " .
+                                showString "imageMipTailOffset = " .
+                                  showsPrec d (getField @"imageMipTailOffset" x) .
+                                    showString ", " .
+                                      showString "imageMipTailStride = " .
+                                        showsPrec d (getField @"imageMipTailStride" x) .
+                                          showChar '}'
+
+-- | > typedef struct VkSparseImageMemoryRequirements2 {
+--   >     VkStructureType sType;
+--   >     void*                                       pNext;
+--   >     VkSparseImageMemoryRequirements                                      memoryRequirements;
+--   > } VkSparseImageMemoryRequirements2;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2 registry at www.khronos.org>
+data VkSparseImageMemoryRequirements2 = VkSparseImageMemoryRequirements2## Addr##
+                                                                          ByteArray##
+
+instance Eq VkSparseImageMemoryRequirements2 where
+        (VkSparseImageMemoryRequirements2## a _) ==
+          x@(VkSparseImageMemoryRequirements2## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageMemoryRequirements2 where
+        (VkSparseImageMemoryRequirements2## a _) `compare`
+          x@(VkSparseImageMemoryRequirements2## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageMemoryRequirements2 where
+        sizeOf ~_ = #{size VkSparseImageMemoryRequirements2}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseImageMemoryRequirements2}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageMemoryRequirements2 where
+        unsafeAddr (VkSparseImageMemoryRequirements2## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageMemoryRequirements2## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageMemoryRequirements2##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageMemoryRequirements2 where
+        type StructFields VkSparseImageMemoryRequirements2 =
+             '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageMemoryRequirements2 = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageMemoryRequirements2 = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSparseImageMemoryRequirements2 where
+        type FieldType "sType" VkSparseImageMemoryRequirements2 =
+             VkStructureType
+        type FieldOptional "sType" VkSparseImageMemoryRequirements2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSparseImageMemoryRequirements2 =
+             #{offset VkSparseImageMemoryRequirements2, sType}
+        type FieldIsArray "sType" VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSparseImageMemoryRequirements2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSparseImageMemoryRequirements2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSparseImageMemoryRequirements2 where
+        type FieldType "pNext" VkSparseImageMemoryRequirements2 = Ptr Void
+        type FieldOptional "pNext" VkSparseImageMemoryRequirements2 =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSparseImageMemoryRequirements2 =
+             #{offset VkSparseImageMemoryRequirements2, pNext}
+        type FieldIsArray "pNext" VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSparseImageMemoryRequirements2 where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSparseImageMemoryRequirements2 where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryRequirements" VkSparseImageMemoryRequirements2
+         where
+        type FieldType "memoryRequirements"
+               VkSparseImageMemoryRequirements2
+             = VkSparseImageMemoryRequirements
+        type FieldOptional "memoryRequirements"
+               VkSparseImageMemoryRequirements2
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryRequirements"
+               VkSparseImageMemoryRequirements2
+             =
+             #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
+        type FieldIsArray "memoryRequirements"
+               VkSparseImageMemoryRequirements2
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryRequirements" VkSparseImageMemoryRequirements2
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, memoryRequirements})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryRequirements" VkSparseImageMemoryRequirements2
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
+
+instance Show VkSparseImageMemoryRequirements2 where
+        showsPrec d x
+          = showString "VkSparseImageMemoryRequirements2 {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "memoryRequirements = " .
+                            showsPrec d (getField @"memoryRequirements" x) . showChar '}'
+
+-- | Alias for `VkSparseImageMemoryRequirements2`
+type VkSparseImageMemoryRequirements2KHR =
+     VkSparseImageMemoryRequirements2
+
+-- | > typedef struct VkSparseImageOpaqueMemoryBindInfo {
+--   >     VkImage image;
+--   >     uint32_t               bindCount;
+--   >     const VkSparseMemoryBind* pBinds;
+--   > } VkSparseImageOpaqueMemoryBindInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseImageOpaqueMemoryBindInfo VkSparseImageOpaqueMemoryBindInfo registry at www.khronos.org>
+data VkSparseImageOpaqueMemoryBindInfo = VkSparseImageOpaqueMemoryBindInfo## Addr##
+                                                                            ByteArray##
+
+instance Eq VkSparseImageOpaqueMemoryBindInfo where
+        (VkSparseImageOpaqueMemoryBindInfo## a _) ==
+          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseImageOpaqueMemoryBindInfo where
+        (VkSparseImageOpaqueMemoryBindInfo## a _) `compare`
+          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseImageOpaqueMemoryBindInfo where
+        sizeOf ~_ = #{size VkSparseImageOpaqueMemoryBindInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSparseImageOpaqueMemoryBindInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseImageOpaqueMemoryBindInfo where
+        unsafeAddr (VkSparseImageOpaqueMemoryBindInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseImageOpaqueMemoryBindInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseImageOpaqueMemoryBindInfo##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseImageOpaqueMemoryBindInfo where
+        type StructFields VkSparseImageOpaqueMemoryBindInfo =
+             '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseImageOpaqueMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseImageOpaqueMemoryBindInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSparseImageOpaqueMemoryBindInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "image" VkSparseImageOpaqueMemoryBindInfo where
+        type FieldType "image" VkSparseImageOpaqueMemoryBindInfo = VkImage
+        type FieldOptional "image" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "image" VkSparseImageOpaqueMemoryBindInfo =
+             #{offset VkSparseImageOpaqueMemoryBindInfo, image}
+        type FieldIsArray "image" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageOpaqueMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "image" VkSparseImageOpaqueMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, image})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "image" VkSparseImageOpaqueMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, image}
+
+instance {-# OVERLAPPING #-}
+         HasField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
+        type FieldType "bindCount" VkSparseImageOpaqueMemoryBindInfo =
+             Word32
+        type FieldOptional "bindCount" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "bindCount" VkSparseImageOpaqueMemoryBindInfo =
+             #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
+        type FieldIsArray "bindCount" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
+        type FieldType "pBinds" VkSparseImageOpaqueMemoryBindInfo =
+             Ptr VkSparseMemoryBind
+        type FieldOptional "pBinds" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBinds" VkSparseImageOpaqueMemoryBindInfo =
+             #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
+        type FieldIsArray "pBinds" VkSparseImageOpaqueMemoryBindInfo =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
+
+instance Show VkSparseImageOpaqueMemoryBindInfo where
+        showsPrec d x
+          = showString "VkSparseImageOpaqueMemoryBindInfo {" .
+              showString "image = " .
+                showsPrec d (getField @"image" x) .
+                  showString ", " .
+                    showString "bindCount = " .
+                      showsPrec d (getField @"bindCount" x) .
+                        showString ", " .
+                          showString "pBinds = " .
+                            showsPrec d (getField @"pBinds" x) . showChar '}'
+
+-- | > typedef struct VkSparseMemoryBind {
+--   >     VkDeviceSize           resourceOffset;
+--   >     VkDeviceSize           size;
+--   >     VkDeviceMemory         memory;
+--   >     VkDeviceSize           memoryOffset;
+--   >     VkSparseMemoryBindFlagsflags;
+--   > } VkSparseMemoryBind;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSparseMemoryBind VkSparseMemoryBind registry at www.khronos.org>
+data VkSparseMemoryBind = VkSparseMemoryBind## Addr## ByteArray##
+
+instance Eq VkSparseMemoryBind where
+        (VkSparseMemoryBind## a _) == x@(VkSparseMemoryBind## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSparseMemoryBind where
+        (VkSparseMemoryBind## a _) `compare` x@(VkSparseMemoryBind## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSparseMemoryBind where
+        sizeOf ~_ = #{size VkSparseMemoryBind}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSparseMemoryBind}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSparseMemoryBind where
+        unsafeAddr (VkSparseMemoryBind## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSparseMemoryBind## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSparseMemoryBind## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSparseMemoryBind where
+        type StructFields VkSparseMemoryBind =
+             '["resourceOffset", "size", "memory", "memoryOffset", "flags"] -- ' closing tick for hsc2hs
+        type CUnionType VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSparseMemoryBind = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "resourceOffset" VkSparseMemoryBind where
+        type FieldType "resourceOffset" VkSparseMemoryBind = VkDeviceSize
+        type FieldOptional "resourceOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "resourceOffset" VkSparseMemoryBind =
+             #{offset VkSparseMemoryBind, resourceOffset}
+        type FieldIsArray "resourceOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseMemoryBind, resourceOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "resourceOffset" VkSparseMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, resourceOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseMemoryBind, resourceOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "resourceOffset" VkSparseMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseMemoryBind, resourceOffset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkSparseMemoryBind
+         where
+        type FieldType "size" VkSparseMemoryBind = VkDeviceSize
+        type FieldOptional "size" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkSparseMemoryBind =
+             #{offset VkSparseMemoryBind, size}
+        type FieldIsArray "size" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseMemoryBind, size}
+
+instance {-# OVERLAPPING #-} CanReadField "size" VkSparseMemoryBind
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseMemoryBind, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkSparseMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseMemoryBind, size}
+
+instance {-# OVERLAPPING #-} HasField "memory" VkSparseMemoryBind
+         where
+        type FieldType "memory" VkSparseMemoryBind = VkDeviceMemory
+        type FieldOptional "memory" VkSparseMemoryBind = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "memory" VkSparseMemoryBind =
+             #{offset VkSparseMemoryBind, memory}
+        type FieldIsArray "memory" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memory" VkSparseMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, memory})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memory" VkSparseMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseMemoryBind, memory}
+
+instance {-# OVERLAPPING #-}
+         HasField "memoryOffset" VkSparseMemoryBind where
+        type FieldType "memoryOffset" VkSparseMemoryBind = VkDeviceSize
+        type FieldOptional "memoryOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "memoryOffset" VkSparseMemoryBind =
+             #{offset VkSparseMemoryBind, memoryOffset}
+        type FieldIsArray "memoryOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSparseMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "memoryOffset" VkSparseMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, memoryOffset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "memoryOffset" VkSparseMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseMemoryBind, memoryOffset}
+
+instance {-# OVERLAPPING #-} HasField "flags" VkSparseMemoryBind
+         where
+        type FieldType "flags" VkSparseMemoryBind = VkSparseMemoryBindFlags
+        type FieldOptional "flags" VkSparseMemoryBind = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSparseMemoryBind =
+             #{offset VkSparseMemoryBind, flags}
+        type FieldIsArray "flags" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSparseMemoryBind, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSparseMemoryBind where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSparseMemoryBind, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSparseMemoryBind where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSparseMemoryBind, flags}
+
+instance Show VkSparseMemoryBind where
+        showsPrec d x
+          = showString "VkSparseMemoryBind {" .
+              showString "resourceOffset = " .
+                showsPrec d (getField @"resourceOffset" x) .
+                  showString ", " .
+                    showString "size = " .
+                      showsPrec d (getField @"size" x) .
+                        showString ", " .
+                          showString "memory = " .
+                            showsPrec d (getField @"memory" x) .
+                              showString ", " .
+                                showString "memoryOffset = " .
+                                  showsPrec d (getField @"memoryOffset" x) .
+                                    showString ", " .
+                                      showString "flags = " .
+                                        showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Specialization.hsc
@@ -0,0 +1,378 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Specialization
+       (VkSpecializationInfo(..), VkSpecializationMapEntry(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSpecializationInfo {
+--   >     uint32_t               mapEntryCount;
+--   >     const VkSpecializationMapEntry* pMapEntries;
+--   >     size_t                 dataSize;
+--   >     const void*            pData;
+--   > } VkSpecializationInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSpecializationInfo VkSpecializationInfo registry at www.khronos.org>
+data VkSpecializationInfo = VkSpecializationInfo## Addr## ByteArray##
+
+instance Eq VkSpecializationInfo where
+        (VkSpecializationInfo## a _) == x@(VkSpecializationInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSpecializationInfo where
+        (VkSpecializationInfo## a _) `compare` x@(VkSpecializationInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSpecializationInfo where
+        sizeOf ~_ = #{size VkSpecializationInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSpecializationInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSpecializationInfo where
+        unsafeAddr (VkSpecializationInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSpecializationInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSpecializationInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSpecializationInfo where
+        type StructFields VkSpecializationInfo =
+             '["mapEntryCount", "pMapEntries", "dataSize", "pData"] -- ' closing tick for hsc2hs
+        type CUnionType VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSpecializationInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "mapEntryCount" VkSpecializationInfo where
+        type FieldType "mapEntryCount" VkSpecializationInfo = Word32
+        type FieldOptional "mapEntryCount" VkSpecializationInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "mapEntryCount" VkSpecializationInfo =
+             #{offset VkSpecializationInfo, mapEntryCount}
+        type FieldIsArray "mapEntryCount" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSpecializationInfo, mapEntryCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "mapEntryCount" VkSpecializationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, mapEntryCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationInfo, mapEntryCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "mapEntryCount" VkSpecializationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationInfo, mapEntryCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pMapEntries" VkSpecializationInfo where
+        type FieldType "pMapEntries" VkSpecializationInfo =
+             Ptr VkSpecializationMapEntry
+        type FieldOptional "pMapEntries" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pMapEntries" VkSpecializationInfo =
+             #{offset VkSpecializationInfo, pMapEntries}
+        type FieldIsArray "pMapEntries" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSpecializationInfo, pMapEntries}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pMapEntries" VkSpecializationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, pMapEntries})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationInfo, pMapEntries}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pMapEntries" VkSpecializationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationInfo, pMapEntries}
+
+instance {-# OVERLAPPING #-}
+         HasField "dataSize" VkSpecializationInfo where
+        type FieldType "dataSize" VkSpecializationInfo = CSize
+        type FieldOptional "dataSize" VkSpecializationInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dataSize" VkSpecializationInfo =
+             #{offset VkSpecializationInfo, dataSize}
+        type FieldIsArray "dataSize" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSpecializationInfo, dataSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dataSize" VkSpecializationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, dataSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationInfo, dataSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dataSize" VkSpecializationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationInfo, dataSize}
+
+instance {-# OVERLAPPING #-} HasField "pData" VkSpecializationInfo
+         where
+        type FieldType "pData" VkSpecializationInfo = Ptr Void
+        type FieldOptional "pData" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pData" VkSpecializationInfo =
+             #{offset VkSpecializationInfo, pData}
+        type FieldIsArray "pData" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSpecializationInfo, pData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pData" VkSpecializationInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, pData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationInfo, pData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pData" VkSpecializationInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationInfo, pData}
+
+instance Show VkSpecializationInfo where
+        showsPrec d x
+          = showString "VkSpecializationInfo {" .
+              showString "mapEntryCount = " .
+                showsPrec d (getField @"mapEntryCount" x) .
+                  showString ", " .
+                    showString "pMapEntries = " .
+                      showsPrec d (getField @"pMapEntries" x) .
+                        showString ", " .
+                          showString "dataSize = " .
+                            showsPrec d (getField @"dataSize" x) .
+                              showString ", " .
+                                showString "pData = " .
+                                  showsPrec d (getField @"pData" x) . showChar '}'
+
+-- | > typedef struct VkSpecializationMapEntry {
+--   >     uint32_t               constantID;
+--   >     uint32_t               offset;
+--   >     size_t                 size;
+--   > } VkSpecializationMapEntry;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSpecializationMapEntry VkSpecializationMapEntry registry at www.khronos.org>
+data VkSpecializationMapEntry = VkSpecializationMapEntry## Addr##
+                                                          ByteArray##
+
+instance Eq VkSpecializationMapEntry where
+        (VkSpecializationMapEntry## a _) ==
+          x@(VkSpecializationMapEntry## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSpecializationMapEntry where
+        (VkSpecializationMapEntry## a _) `compare`
+          x@(VkSpecializationMapEntry## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSpecializationMapEntry where
+        sizeOf ~_ = #{size VkSpecializationMapEntry}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSpecializationMapEntry}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSpecializationMapEntry where
+        unsafeAddr (VkSpecializationMapEntry## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSpecializationMapEntry## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSpecializationMapEntry## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSpecializationMapEntry where
+        type StructFields VkSpecializationMapEntry =
+             '["constantID", "offset", "size"] -- ' closing tick for hsc2hs
+        type CUnionType VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSpecializationMapEntry = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "constantID" VkSpecializationMapEntry where
+        type FieldType "constantID" VkSpecializationMapEntry = Word32
+        type FieldOptional "constantID" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "constantID" VkSpecializationMapEntry =
+             #{offset VkSpecializationMapEntry, constantID}
+        type FieldIsArray "constantID" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSpecializationMapEntry, constantID}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "constantID" VkSpecializationMapEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, constantID})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationMapEntry, constantID}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "constantID" VkSpecializationMapEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationMapEntry, constantID}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkSpecializationMapEntry where
+        type FieldType "offset" VkSpecializationMapEntry = Word32
+        type FieldOptional "offset" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkSpecializationMapEntry =
+             #{offset VkSpecializationMapEntry, offset}
+        type FieldIsArray "offset" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSpecializationMapEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkSpecializationMapEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationMapEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkSpecializationMapEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationMapEntry, offset}
+
+instance {-# OVERLAPPING #-}
+         HasField "size" VkSpecializationMapEntry where
+        type FieldType "size" VkSpecializationMapEntry = CSize
+        type FieldOptional "size" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkSpecializationMapEntry =
+             #{offset VkSpecializationMapEntry, size}
+        type FieldIsArray "size" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSpecializationMapEntry, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkSpecializationMapEntry where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSpecializationMapEntry, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkSpecializationMapEntry where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSpecializationMapEntry, size}
+
+instance Show VkSpecializationMapEntry where
+        showsPrec d x
+          = showString "VkSpecializationMapEntry {" .
+              showString "constantID = " .
+                showsPrec d (getField @"constantID" x) .
+                  showString ", " .
+                    showString "offset = " .
+                      showsPrec d (getField @"offset" x) .
+                        showString ", " .
+                          showString "size = " .
+                            showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc b/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/StencilOpState.hsc
@@ -0,0 +1,321 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.StencilOpState
+       (VkStencilOpState(..)) where
+import           Foreign.Storable                     (Storable (..))
+import           GHC.Base                             (Addr##, ByteArray##,
+                                                       byteArrayContents##,
+                                                       plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.CompareOp (VkCompareOp)
+import           Graphics.Vulkan.Types.Enum.Stencil   (VkStencilOp)
+import           System.IO.Unsafe                     (unsafeDupablePerformIO)
+
+-- | > typedef struct VkStencilOpState {
+--   >     VkStencilOp            failOp;
+--   >     VkStencilOp            passOp;
+--   >     VkStencilOp            depthFailOp;
+--   >     VkCompareOp            compareOp;
+--   >     uint32_t               compareMask;
+--   >     uint32_t               writeMask;
+--   >     uint32_t               reference;
+--   > } VkStencilOpState;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkStencilOpState VkStencilOpState registry at www.khronos.org>
+data VkStencilOpState = VkStencilOpState## Addr## ByteArray##
+
+instance Eq VkStencilOpState where
+        (VkStencilOpState## a _) == x@(VkStencilOpState## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkStencilOpState where
+        (VkStencilOpState## a _) `compare` x@(VkStencilOpState## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkStencilOpState where
+        sizeOf ~_ = #{size VkStencilOpState}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkStencilOpState}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkStencilOpState where
+        unsafeAddr (VkStencilOpState## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkStencilOpState## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkStencilOpState## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkStencilOpState where
+        type StructFields VkStencilOpState =
+             '["failOp", "passOp", "depthFailOp", "compareOp", "compareMask", -- ' closing tick for hsc2hs
+               "writeMask", "reference"]
+        type CUnionType VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkStencilOpState = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "failOp" VkStencilOpState
+         where
+        type FieldType "failOp" VkStencilOpState = VkStencilOp
+        type FieldOptional "failOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "failOp" VkStencilOpState =
+             #{offset VkStencilOpState, failOp}
+        type FieldIsArray "failOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, failOp}
+
+instance {-# OVERLAPPING #-} CanReadField "failOp" VkStencilOpState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, failOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, failOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "failOp" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, failOp}
+
+instance {-# OVERLAPPING #-} HasField "passOp" VkStencilOpState
+         where
+        type FieldType "passOp" VkStencilOpState = VkStencilOp
+        type FieldOptional "passOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "passOp" VkStencilOpState =
+             #{offset VkStencilOpState, passOp}
+        type FieldIsArray "passOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, passOp}
+
+instance {-# OVERLAPPING #-} CanReadField "passOp" VkStencilOpState
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, passOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, passOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "passOp" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, passOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthFailOp" VkStencilOpState where
+        type FieldType "depthFailOp" VkStencilOpState = VkStencilOp
+        type FieldOptional "depthFailOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthFailOp" VkStencilOpState =
+             #{offset VkStencilOpState, depthFailOp}
+        type FieldIsArray "depthFailOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, depthFailOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthFailOp" VkStencilOpState where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, depthFailOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, depthFailOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthFailOp" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, depthFailOp}
+
+instance {-# OVERLAPPING #-} HasField "compareOp" VkStencilOpState
+         where
+        type FieldType "compareOp" VkStencilOpState = VkCompareOp
+        type FieldOptional "compareOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compareOp" VkStencilOpState =
+             #{offset VkStencilOpState, compareOp}
+        type FieldIsArray "compareOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, compareOp}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compareOp" VkStencilOpState where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, compareOp})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, compareOp}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compareOp" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, compareOp}
+
+instance {-# OVERLAPPING #-}
+         HasField "compareMask" VkStencilOpState where
+        type FieldType "compareMask" VkStencilOpState = Word32
+        type FieldOptional "compareMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "compareMask" VkStencilOpState =
+             #{offset VkStencilOpState, compareMask}
+        type FieldIsArray "compareMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, compareMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compareMask" VkStencilOpState where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, compareMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, compareMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compareMask" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, compareMask}
+
+instance {-# OVERLAPPING #-} HasField "writeMask" VkStencilOpState
+         where
+        type FieldType "writeMask" VkStencilOpState = Word32
+        type FieldOptional "writeMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "writeMask" VkStencilOpState =
+             #{offset VkStencilOpState, writeMask}
+        type FieldIsArray "writeMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, writeMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "writeMask" VkStencilOpState where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, writeMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, writeMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "writeMask" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, writeMask}
+
+instance {-# OVERLAPPING #-} HasField "reference" VkStencilOpState
+         where
+        type FieldType "reference" VkStencilOpState = Word32
+        type FieldOptional "reference" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "reference" VkStencilOpState =
+             #{offset VkStencilOpState, reference}
+        type FieldIsArray "reference" VkStencilOpState = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkStencilOpState, reference}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "reference" VkStencilOpState where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, reference})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkStencilOpState, reference}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "reference" VkStencilOpState where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkStencilOpState, reference}
+
+instance Show VkStencilOpState where
+        showsPrec d x
+          = showString "VkStencilOpState {" .
+              showString "failOp = " .
+                showsPrec d (getField @"failOp" x) .
+                  showString ", " .
+                    showString "passOp = " .
+                      showsPrec d (getField @"passOp" x) .
+                        showString ", " .
+                          showString "depthFailOp = " .
+                            showsPrec d (getField @"depthFailOp" x) .
+                              showString ", " .
+                                showString "compareOp = " .
+                                  showsPrec d (getField @"compareOp" x) .
+                                    showString ", " .
+                                      showString "compareMask = " .
+                                        showsPrec d (getField @"compareMask" x) .
+                                          showString ", " .
+                                            showString "writeMask = " .
+                                              showsPrec d (getField @"writeMask" x) .
+                                                showString ", " .
+                                                  showString "reference = " .
+                                                    showsPrec d (getField @"reference" x) .
+                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SubmitInfo.hsc
@@ -0,0 +1,399 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.SubmitInfo (VkSubmitInfo(..))
+       where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Pipeline      (VkPipelineStageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkCommandBuffer,
+                                                           VkSemaphore)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSubmitInfo {
+--   >     VkStructureType sType;
+--   >     const void* pNext;
+--   >     uint32_t       waitSemaphoreCount;
+--   >     const VkSemaphore*     pWaitSemaphores;
+--   >     const VkPipelineStageFlags*           pWaitDstStageMask;
+--   >     uint32_t       commandBufferCount;
+--   >     const VkCommandBuffer*     pCommandBuffers;
+--   >     uint32_t       signalSemaphoreCount;
+--   >     const VkSemaphore*     pSignalSemaphores;
+--   > } VkSubmitInfo;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubmitInfo VkSubmitInfo registry at www.khronos.org>
+data VkSubmitInfo = VkSubmitInfo## Addr## ByteArray##
+
+instance Eq VkSubmitInfo where
+        (VkSubmitInfo## a _) == x@(VkSubmitInfo## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSubmitInfo where
+        (VkSubmitInfo## a _) `compare` x@(VkSubmitInfo## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSubmitInfo where
+        sizeOf ~_ = #{size VkSubmitInfo}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSubmitInfo}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSubmitInfo where
+        unsafeAddr (VkSubmitInfo## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSubmitInfo## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSubmitInfo where
+        type StructFields VkSubmitInfo =
+             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
+               "pWaitDstStageMask", "commandBufferCount", "pCommandBuffers",
+               "signalSemaphoreCount", "pSignalSemaphores"]
+        type CUnionType VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSubmitInfo = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkSubmitInfo where
+        type FieldType "sType" VkSubmitInfo = VkStructureType
+        type FieldOptional "sType" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSubmitInfo =
+             #{offset VkSubmitInfo, sType}
+        type FieldIsArray "sType" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-} CanReadField "sType" VkSubmitInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-} CanWriteField "sType" VkSubmitInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkSubmitInfo where
+        type FieldType "pNext" VkSubmitInfo = Ptr Void
+        type FieldOptional "pNext" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSubmitInfo =
+             #{offset VkSubmitInfo, pNext}
+        type FieldIsArray "pNext" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanReadField "pNext" VkSubmitInfo
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-} CanWriteField "pNext" VkSubmitInfo
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "waitSemaphoreCount" VkSubmitInfo where
+        type FieldType "waitSemaphoreCount" VkSubmitInfo = Word32
+        type FieldOptional "waitSemaphoreCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "waitSemaphoreCount" VkSubmitInfo =
+             #{offset VkSubmitInfo, waitSemaphoreCount}
+        type FieldIsArray "waitSemaphoreCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "waitSemaphoreCount" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, waitSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "waitSemaphoreCount" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, waitSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitSemaphores" VkSubmitInfo where
+        type FieldType "pWaitSemaphores" VkSubmitInfo = Ptr VkSemaphore
+        type FieldOptional "pWaitSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitSemaphores" VkSubmitInfo =
+             #{offset VkSubmitInfo, pWaitSemaphores}
+        type FieldIsArray "pWaitSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitSemaphores" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pWaitSemaphores})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitSemaphores" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, pWaitSemaphores}
+
+instance {-# OVERLAPPING #-}
+         HasField "pWaitDstStageMask" VkSubmitInfo where
+        type FieldType "pWaitDstStageMask" VkSubmitInfo =
+             Ptr VkPipelineStageFlags
+        type FieldOptional "pWaitDstStageMask" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pWaitDstStageMask" VkSubmitInfo =
+             #{offset VkSubmitInfo, pWaitDstStageMask}
+        type FieldIsArray "pWaitDstStageMask" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, pWaitDstStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pWaitDstStageMask" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pWaitDstStageMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, pWaitDstStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pWaitDstStageMask" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, pWaitDstStageMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "commandBufferCount" VkSubmitInfo where
+        type FieldType "commandBufferCount" VkSubmitInfo = Word32
+        type FieldOptional "commandBufferCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "commandBufferCount" VkSubmitInfo =
+             #{offset VkSubmitInfo, commandBufferCount}
+        type FieldIsArray "commandBufferCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "commandBufferCount" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, commandBufferCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "commandBufferCount" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, commandBufferCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pCommandBuffers" VkSubmitInfo where
+        type FieldType "pCommandBuffers" VkSubmitInfo = Ptr VkCommandBuffer
+        type FieldOptional "pCommandBuffers" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pCommandBuffers" VkSubmitInfo =
+             #{offset VkSubmitInfo, pCommandBuffers}
+        type FieldIsArray "pCommandBuffers" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, pCommandBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pCommandBuffers" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pCommandBuffers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, pCommandBuffers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pCommandBuffers" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, pCommandBuffers}
+
+instance {-# OVERLAPPING #-}
+         HasField "signalSemaphoreCount" VkSubmitInfo where
+        type FieldType "signalSemaphoreCount" VkSubmitInfo = Word32
+        type FieldOptional "signalSemaphoreCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "signalSemaphoreCount" VkSubmitInfo =
+             #{offset VkSubmitInfo, signalSemaphoreCount}
+        type FieldIsArray "signalSemaphoreCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "signalSemaphoreCount" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, signalSemaphoreCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "signalSemaphoreCount" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, signalSemaphoreCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pSignalSemaphores" VkSubmitInfo where
+        type FieldType "pSignalSemaphores" VkSubmitInfo = Ptr VkSemaphore
+        type FieldOptional "pSignalSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pSignalSemaphores" VkSubmitInfo =
+             #{offset VkSubmitInfo, pSignalSemaphores}
+        type FieldIsArray "pSignalSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubmitInfo, pSignalSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pSignalSemaphores" VkSubmitInfo where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pSignalSemaphores})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubmitInfo, pSignalSemaphores}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pSignalSemaphores" VkSubmitInfo where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubmitInfo, pSignalSemaphores}
+
+instance Show VkSubmitInfo where
+        showsPrec d x
+          = showString "VkSubmitInfo {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "waitSemaphoreCount = " .
+                            showsPrec d (getField @"waitSemaphoreCount" x) .
+                              showString ", " .
+                                showString "pWaitSemaphores = " .
+                                  showsPrec d (getField @"pWaitSemaphores" x) .
+                                    showString ", " .
+                                      showString "pWaitDstStageMask = " .
+                                        showsPrec d (getField @"pWaitDstStageMask" x) .
+                                          showString ", " .
+                                            showString "commandBufferCount = " .
+                                              showsPrec d (getField @"commandBufferCount" x) .
+                                                showString ", " .
+                                                  showString "pCommandBuffers = " .
+                                                    showsPrec d (getField @"pCommandBuffers" x) .
+                                                      showString ", " .
+                                                        showString "signalSemaphoreCount = " .
+                                                          showsPrec d
+                                                            (getField @"signalSemaphoreCount" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "pSignalSemaphores = " .
+                                                                showsPrec d
+                                                                  (getField @"pSignalSemaphores" x)
+                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Subpass.hsc
@@ -0,0 +1,929 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Subpass
+       (VkSubpassDependency(..), VkSubpassDescription(..),
+        VkSubpassSampleLocationsEXT(..))
+       where
+import           Foreign.Storable                            (Storable (..))
+import           GHC.Base                                    (Addr##, ByteArray##,
+                                                              byteArrayContents##,
+                                                              plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.AccessFlags      (VkAccessFlags)
+import           Graphics.Vulkan.Types.Enum.DependencyFlags  (VkDependencyFlags)
+import           Graphics.Vulkan.Types.Enum.Pipeline         (VkPipelineBindPoint,
+                                                              VkPipelineStageFlags)
+import           Graphics.Vulkan.Types.Enum.Subpass          (VkSubpassDescriptionFlags)
+import           Graphics.Vulkan.Types.Struct.Attachment     (VkAttachmentReference)
+import           Graphics.Vulkan.Types.Struct.SampleLocation (VkSampleLocationsInfoEXT)
+import           System.IO.Unsafe                            (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSubpassDependency {
+--   >     uint32_t               srcSubpass;
+--   >     uint32_t               dstSubpass;
+--   >     VkPipelineStageFlags   srcStageMask;
+--   >     VkPipelineStageFlags   dstStageMask;
+--   >     VkAccessFlags          srcAccessMask;
+--   >     VkAccessFlags          dstAccessMask;
+--   >     VkDependencyFlags      dependencyFlags;
+--   > } VkSubpassDependency;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassDependency VkSubpassDependency registry at www.khronos.org>
+data VkSubpassDependency = VkSubpassDependency## Addr## ByteArray##
+
+instance Eq VkSubpassDependency where
+        (VkSubpassDependency## a _) == x@(VkSubpassDependency## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSubpassDependency where
+        (VkSubpassDependency## a _) `compare` x@(VkSubpassDependency## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSubpassDependency where
+        sizeOf ~_ = #{size VkSubpassDependency}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSubpassDependency}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSubpassDependency where
+        unsafeAddr (VkSubpassDependency## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSubpassDependency## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSubpassDependency## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSubpassDependency where
+        type StructFields VkSubpassDependency =
+             '["srcSubpass", "dstSubpass", "srcStageMask", "dstStageMask", -- ' closing tick for hsc2hs
+               "srcAccessMask", "dstAccessMask", "dependencyFlags"]
+        type CUnionType VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSubpassDependency = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "srcSubpass" VkSubpassDependency where
+        type FieldType "srcSubpass" VkSubpassDependency = Word32
+        type FieldOptional "srcSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcSubpass" VkSubpassDependency =
+             #{offset VkSubpassDependency, srcSubpass}
+        type FieldIsArray "srcSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubpassDependency, srcSubpass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcSubpass" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcSubpass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, srcSubpass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcSubpass" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, srcSubpass}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstSubpass" VkSubpassDependency where
+        type FieldType "dstSubpass" VkSubpassDependency = Word32
+        type FieldOptional "dstSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSubpass" VkSubpassDependency =
+             #{offset VkSubpassDependency, dstSubpass}
+        type FieldIsArray "dstSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubpassDependency, dstSubpass}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSubpass" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstSubpass})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, dstSubpass}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSubpass" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, dstSubpass}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcStageMask" VkSubpassDependency where
+        type FieldType "srcStageMask" VkSubpassDependency =
+             VkPipelineStageFlags
+        type FieldOptional "srcStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "srcStageMask" VkSubpassDependency =
+             #{offset VkSubpassDependency, srcStageMask}
+        type FieldIsArray "srcStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDependency, srcStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcStageMask" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcStageMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, srcStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcStageMask" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, srcStageMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstStageMask" VkSubpassDependency where
+        type FieldType "dstStageMask" VkSubpassDependency =
+             VkPipelineStageFlags
+        type FieldOptional "dstStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstStageMask" VkSubpassDependency =
+             #{offset VkSubpassDependency, dstStageMask}
+        type FieldIsArray "dstStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDependency, dstStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstStageMask" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstStageMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, dstStageMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstStageMask" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, dstStageMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "srcAccessMask" VkSubpassDependency where
+        type FieldType "srcAccessMask" VkSubpassDependency = VkAccessFlags
+        type FieldOptional "srcAccessMask" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "srcAccessMask" VkSubpassDependency =
+             #{offset VkSubpassDependency, srcAccessMask}
+        type FieldIsArray "srcAccessMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDependency, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "srcAccessMask" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "srcAccessMask" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, srcAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstAccessMask" VkSubpassDependency where
+        type FieldType "dstAccessMask" VkSubpassDependency = VkAccessFlags
+        type FieldOptional "dstAccessMask" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dstAccessMask" VkSubpassDependency =
+             #{offset VkSubpassDependency, dstAccessMask}
+        type FieldIsArray "dstAccessMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDependency, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstAccessMask" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstAccessMask})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstAccessMask" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, dstAccessMask}
+
+instance {-# OVERLAPPING #-}
+         HasField "dependencyFlags" VkSubpassDependency where
+        type FieldType "dependencyFlags" VkSubpassDependency =
+             VkDependencyFlags
+        type FieldOptional "dependencyFlags" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "dependencyFlags" VkSubpassDependency =
+             #{offset VkSubpassDependency, dependencyFlags}
+        type FieldIsArray "dependencyFlags" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDependency, dependencyFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dependencyFlags" VkSubpassDependency where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dependencyFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDependency, dependencyFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dependencyFlags" VkSubpassDependency where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDependency, dependencyFlags}
+
+instance Show VkSubpassDependency where
+        showsPrec d x
+          = showString "VkSubpassDependency {" .
+              showString "srcSubpass = " .
+                showsPrec d (getField @"srcSubpass" x) .
+                  showString ", " .
+                    showString "dstSubpass = " .
+                      showsPrec d (getField @"dstSubpass" x) .
+                        showString ", " .
+                          showString "srcStageMask = " .
+                            showsPrec d (getField @"srcStageMask" x) .
+                              showString ", " .
+                                showString "dstStageMask = " .
+                                  showsPrec d (getField @"dstStageMask" x) .
+                                    showString ", " .
+                                      showString "srcAccessMask = " .
+                                        showsPrec d (getField @"srcAccessMask" x) .
+                                          showString ", " .
+                                            showString "dstAccessMask = " .
+                                              showsPrec d (getField @"dstAccessMask" x) .
+                                                showString ", " .
+                                                  showString "dependencyFlags = " .
+                                                    showsPrec d (getField @"dependencyFlags" x) .
+                                                      showChar '}'
+
+-- | > typedef struct VkSubpassDescription {
+--   >     VkSubpassDescriptionFlags flags;
+--   >     VkPipelineBindPoint    pipelineBindPoint;
+--   >     uint32_t               inputAttachmentCount;
+--   >     const VkAttachmentReference* pInputAttachments;
+--   >     uint32_t               colorAttachmentCount;
+--   >     const VkAttachmentReference* pColorAttachments;
+--   >     const VkAttachmentReference* pResolveAttachments;
+--   >     const VkAttachmentReference* pDepthStencilAttachment;
+--   >     uint32_t               preserveAttachmentCount;
+--   >     const uint32_t* pPreserveAttachments;
+--   > } VkSubpassDescription;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassDescription VkSubpassDescription registry at www.khronos.org>
+data VkSubpassDescription = VkSubpassDescription## Addr## ByteArray##
+
+instance Eq VkSubpassDescription where
+        (VkSubpassDescription## a _) == x@(VkSubpassDescription## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSubpassDescription where
+        (VkSubpassDescription## a _) `compare` x@(VkSubpassDescription## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSubpassDescription where
+        sizeOf ~_ = #{size VkSubpassDescription}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSubpassDescription}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSubpassDescription where
+        unsafeAddr (VkSubpassDescription## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSubpassDescription## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSubpassDescription## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSubpassDescription where
+        type StructFields VkSubpassDescription =
+             '["flags", "pipelineBindPoint", "inputAttachmentCount", -- ' closing tick for hsc2hs
+               "pInputAttachments", "colorAttachmentCount", "pColorAttachments",
+               "pResolveAttachments", "pDepthStencilAttachment",
+               "preserveAttachmentCount", "pPreserveAttachments"]
+        type CUnionType VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSubpassDescription = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "flags" VkSubpassDescription
+         where
+        type FieldType "flags" VkSubpassDescription =
+             VkSubpassDescriptionFlags
+        type FieldOptional "flags" VkSubpassDescription = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSubpassDescription =
+             #{offset VkSubpassDescription, flags}
+        type FieldIsArray "flags" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubpassDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "pipelineBindPoint" VkSubpassDescription where
+        type FieldType "pipelineBindPoint" VkSubpassDescription =
+             VkPipelineBindPoint
+        type FieldOptional "pipelineBindPoint" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pipelineBindPoint" VkSubpassDescription =
+             #{offset VkSubpassDescription, pipelineBindPoint}
+        type FieldIsArray "pipelineBindPoint" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pipelineBindPoint" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pipelineBindPoint})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pipelineBindPoint" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pipelineBindPoint}
+
+instance {-# OVERLAPPING #-}
+         HasField "inputAttachmentCount" VkSubpassDescription where
+        type FieldType "inputAttachmentCount" VkSubpassDescription = Word32
+        type FieldOptional "inputAttachmentCount" VkSubpassDescription =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "inputAttachmentCount" VkSubpassDescription =
+             #{offset VkSubpassDescription, inputAttachmentCount}
+        type FieldIsArray "inputAttachmentCount" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, inputAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "inputAttachmentCount" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, inputAttachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, inputAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "inputAttachmentCount" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, inputAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pInputAttachments" VkSubpassDescription where
+        type FieldType "pInputAttachments" VkSubpassDescription =
+             Ptr VkAttachmentReference
+        type FieldOptional "pInputAttachments" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pInputAttachments" VkSubpassDescription =
+             #{offset VkSubpassDescription, pInputAttachments}
+        type FieldIsArray "pInputAttachments" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pInputAttachments" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pInputAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pInputAttachments" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pInputAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "colorAttachmentCount" VkSubpassDescription where
+        type FieldType "colorAttachmentCount" VkSubpassDescription = Word32
+        type FieldOptional "colorAttachmentCount" VkSubpassDescription =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "colorAttachmentCount" VkSubpassDescription =
+             #{offset VkSubpassDescription, colorAttachmentCount}
+        type FieldIsArray "colorAttachmentCount" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, colorAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "colorAttachmentCount" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, colorAttachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, colorAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "colorAttachmentCount" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, colorAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pColorAttachments" VkSubpassDescription where
+        type FieldType "pColorAttachments" VkSubpassDescription =
+             Ptr VkAttachmentReference
+        type FieldOptional "pColorAttachments" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pColorAttachments" VkSubpassDescription =
+             #{offset VkSubpassDescription, pColorAttachments}
+        type FieldIsArray "pColorAttachments" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pColorAttachments" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pColorAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pColorAttachments" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pColorAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "pResolveAttachments" VkSubpassDescription where
+        type FieldType "pResolveAttachments" VkSubpassDescription =
+             Ptr VkAttachmentReference
+        type FieldOptional "pResolveAttachments" VkSubpassDescription =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pResolveAttachments" VkSubpassDescription =
+             #{offset VkSubpassDescription, pResolveAttachments}
+        type FieldIsArray "pResolveAttachments" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pResolveAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pResolveAttachments" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pResolveAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pResolveAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pResolveAttachments" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pResolveAttachments}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDepthStencilAttachment" VkSubpassDescription where
+        type FieldType "pDepthStencilAttachment" VkSubpassDescription =
+             Ptr VkAttachmentReference
+        type FieldOptional "pDepthStencilAttachment" VkSubpassDescription =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "pDepthStencilAttachment" VkSubpassDescription =
+             #{offset VkSubpassDescription, pDepthStencilAttachment}
+        type FieldIsArray "pDepthStencilAttachment" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pDepthStencilAttachment}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDepthStencilAttachment" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pDepthStencilAttachment})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pDepthStencilAttachment}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDepthStencilAttachment" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pDepthStencilAttachment}
+
+instance {-# OVERLAPPING #-}
+         HasField "preserveAttachmentCount" VkSubpassDescription where
+        type FieldType "preserveAttachmentCount" VkSubpassDescription =
+             Word32
+        type FieldOptional "preserveAttachmentCount" VkSubpassDescription =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "preserveAttachmentCount" VkSubpassDescription =
+             #{offset VkSubpassDescription, preserveAttachmentCount}
+        type FieldIsArray "preserveAttachmentCount" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, preserveAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "preserveAttachmentCount" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, preserveAttachmentCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, preserveAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "preserveAttachmentCount" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, preserveAttachmentCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pPreserveAttachments" VkSubpassDescription where
+        type FieldType "pPreserveAttachments" VkSubpassDescription =
+             Ptr Word32
+        type FieldOptional "pPreserveAttachments" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pPreserveAttachments" VkSubpassDescription =
+             #{offset VkSubpassDescription, pPreserveAttachments}
+        type FieldIsArray "pPreserveAttachments" VkSubpassDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassDescription, pPreserveAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pPreserveAttachments" VkSubpassDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pPreserveAttachments})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassDescription, pPreserveAttachments}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pPreserveAttachments" VkSubpassDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassDescription, pPreserveAttachments}
+
+instance Show VkSubpassDescription where
+        showsPrec d x
+          = showString "VkSubpassDescription {" .
+              showString "flags = " .
+                showsPrec d (getField @"flags" x) .
+                  showString ", " .
+                    showString "pipelineBindPoint = " .
+                      showsPrec d (getField @"pipelineBindPoint" x) .
+                        showString ", " .
+                          showString "inputAttachmentCount = " .
+                            showsPrec d (getField @"inputAttachmentCount" x) .
+                              showString ", " .
+                                showString "pInputAttachments = " .
+                                  showsPrec d (getField @"pInputAttachments" x) .
+                                    showString ", " .
+                                      showString "colorAttachmentCount = " .
+                                        showsPrec d (getField @"colorAttachmentCount" x) .
+                                          showString ", " .
+                                            showString "pColorAttachments = " .
+                                              showsPrec d (getField @"pColorAttachments" x) .
+                                                showString ", " .
+                                                  showString "pResolveAttachments = " .
+                                                    showsPrec d (getField @"pResolveAttachments" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "pDepthStencilAttachment = " .
+                                                          showsPrec d
+                                                            (getField @"pDepthStencilAttachment" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "preserveAttachmentCount = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"preserveAttachmentCount"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "pPreserveAttachments = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"pPreserveAttachments"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | > typedef struct VkSubpassSampleLocationsEXT {
+--   >     uint32_t                         subpassIndex;
+--   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
+--   > } VkSubpassSampleLocationsEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubpassSampleLocationsEXT VkSubpassSampleLocationsEXT registry at www.khronos.org>
+data VkSubpassSampleLocationsEXT = VkSubpassSampleLocationsEXT## Addr##
+                                                                ByteArray##
+
+instance Eq VkSubpassSampleLocationsEXT where
+        (VkSubpassSampleLocationsEXT## a _) ==
+          x@(VkSubpassSampleLocationsEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSubpassSampleLocationsEXT where
+        (VkSubpassSampleLocationsEXT## a _) `compare`
+          x@(VkSubpassSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSubpassSampleLocationsEXT where
+        sizeOf ~_ = #{size VkSubpassSampleLocationsEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSubpassSampleLocationsEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSubpassSampleLocationsEXT where
+        unsafeAddr (VkSubpassSampleLocationsEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSubpassSampleLocationsEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSubpassSampleLocationsEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSubpassSampleLocationsEXT where
+        type StructFields VkSubpassSampleLocationsEXT =
+             '["subpassIndex", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
+        type CUnionType VkSubpassSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSubpassSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSubpassSampleLocationsEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "subpassIndex" VkSubpassSampleLocationsEXT where
+        type FieldType "subpassIndex" VkSubpassSampleLocationsEXT = Word32
+        type FieldOptional "subpassIndex" VkSubpassSampleLocationsEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "subpassIndex" VkSubpassSampleLocationsEXT =
+             #{offset VkSubpassSampleLocationsEXT, subpassIndex}
+        type FieldIsArray "subpassIndex" VkSubpassSampleLocationsEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassSampleLocationsEXT, subpassIndex}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "subpassIndex" VkSubpassSampleLocationsEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassSampleLocationsEXT, subpassIndex})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassSampleLocationsEXT, subpassIndex}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "subpassIndex" VkSubpassSampleLocationsEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassSampleLocationsEXT, subpassIndex}
+
+instance {-# OVERLAPPING #-}
+         HasField "sampleLocationsInfo" VkSubpassSampleLocationsEXT where
+        type FieldType "sampleLocationsInfo" VkSubpassSampleLocationsEXT =
+             VkSampleLocationsInfoEXT
+        type FieldOptional "sampleLocationsInfo"
+               VkSubpassSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sampleLocationsInfo" VkSubpassSampleLocationsEXT
+             =
+             #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
+        type FieldIsArray "sampleLocationsInfo" VkSubpassSampleLocationsEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sampleLocationsInfo" VkSubpassSampleLocationsEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sampleLocationsInfo" VkSubpassSampleLocationsEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
+
+instance Show VkSubpassSampleLocationsEXT where
+        showsPrec d x
+          = showString "VkSubpassSampleLocationsEXT {" .
+              showString "subpassIndex = " .
+                showsPrec d (getField @"subpassIndex" x) .
+                  showString ", " .
+                    showString "sampleLocationsInfo = " .
+                      showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SubresourceLayout.hsc
@@ -0,0 +1,248 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.SubresourceLayout
+       (VkSubresourceLayout(..)) where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSubresourceLayout {
+--   >     VkDeviceSize           offset;
+--   >     VkDeviceSize           size;
+--   >     VkDeviceSize           rowPitch;
+--   >     VkDeviceSize           arrayPitch;
+--   >     VkDeviceSize           depthPitch;
+--   > } VkSubresourceLayout;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSubresourceLayout VkSubresourceLayout registry at www.khronos.org>
+data VkSubresourceLayout = VkSubresourceLayout## Addr## ByteArray##
+
+instance Eq VkSubresourceLayout where
+        (VkSubresourceLayout## a _) == x@(VkSubresourceLayout## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSubresourceLayout where
+        (VkSubresourceLayout## a _) `compare` x@(VkSubresourceLayout## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSubresourceLayout where
+        sizeOf ~_ = #{size VkSubresourceLayout}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSubresourceLayout}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSubresourceLayout where
+        unsafeAddr (VkSubresourceLayout## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSubresourceLayout## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSubresourceLayout## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSubresourceLayout where
+        type StructFields VkSubresourceLayout =
+             '["offset", "size", "rowPitch", "arrayPitch", "depthPitch"] -- ' closing tick for hsc2hs
+        type CUnionType VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSubresourceLayout = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSubresourceLayout = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "offset" VkSubresourceLayout
+         where
+        type FieldType "offset" VkSubresourceLayout = VkDeviceSize
+        type FieldOptional "offset" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkSubresourceLayout =
+             #{offset VkSubresourceLayout, offset}
+        type FieldIsArray "offset" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubresourceLayout, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkSubresourceLayout where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubresourceLayout, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkSubresourceLayout where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubresourceLayout, offset}
+
+instance {-# OVERLAPPING #-} HasField "size" VkSubresourceLayout
+         where
+        type FieldType "size" VkSubresourceLayout = VkDeviceSize
+        type FieldOptional "size" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "size" VkSubresourceLayout =
+             #{offset VkSubresourceLayout, size}
+        type FieldIsArray "size" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubresourceLayout, size}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "size" VkSubresourceLayout where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, size})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubresourceLayout, size}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "size" VkSubresourceLayout where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubresourceLayout, size}
+
+instance {-# OVERLAPPING #-}
+         HasField "rowPitch" VkSubresourceLayout where
+        type FieldType "rowPitch" VkSubresourceLayout = VkDeviceSize
+        type FieldOptional "rowPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "rowPitch" VkSubresourceLayout =
+             #{offset VkSubresourceLayout, rowPitch}
+        type FieldIsArray "rowPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubresourceLayout, rowPitch}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "rowPitch" VkSubresourceLayout where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, rowPitch})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubresourceLayout, rowPitch}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "rowPitch" VkSubresourceLayout where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubresourceLayout, rowPitch}
+
+instance {-# OVERLAPPING #-}
+         HasField "arrayPitch" VkSubresourceLayout where
+        type FieldType "arrayPitch" VkSubresourceLayout = VkDeviceSize
+        type FieldOptional "arrayPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "arrayPitch" VkSubresourceLayout =
+             #{offset VkSubresourceLayout, arrayPitch}
+        type FieldIsArray "arrayPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubresourceLayout, arrayPitch}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "arrayPitch" VkSubresourceLayout where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, arrayPitch})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubresourceLayout, arrayPitch}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "arrayPitch" VkSubresourceLayout where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubresourceLayout, arrayPitch}
+
+instance {-# OVERLAPPING #-}
+         HasField "depthPitch" VkSubresourceLayout where
+        type FieldType "depthPitch" VkSubresourceLayout = VkDeviceSize
+        type FieldOptional "depthPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "depthPitch" VkSubresourceLayout =
+             #{offset VkSubresourceLayout, depthPitch}
+        type FieldIsArray "depthPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSubresourceLayout, depthPitch}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "depthPitch" VkSubresourceLayout where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, depthPitch})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSubresourceLayout, depthPitch}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "depthPitch" VkSubresourceLayout where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSubresourceLayout, depthPitch}
+
+instance Show VkSubresourceLayout where
+        showsPrec d x
+          = showString "VkSubresourceLayout {" .
+              showString "offset = " .
+                showsPrec d (getField @"offset" x) .
+                  showString ", " .
+                    showString "size = " .
+                      showsPrec d (getField @"size" x) .
+                        showString ", " .
+                          showString "rowPitch = " .
+                            showsPrec d (getField @"rowPitch" x) .
+                              showString ", " .
+                                showString "arrayPitch = " .
+                                  showsPrec d (getField @"arrayPitch" x) .
+                                    showString ", " .
+                                      showString "depthPitch = " .
+                                        showsPrec d (getField @"depthPitch" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Surface.hsc
@@ -0,0 +1,1548 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Surface
+       (VkSurfaceCapabilities2EXT(..), VkSurfaceCapabilities2KHR(..),
+        VkSurfaceCapabilitiesKHR(..), VkSurfaceFormat2KHR(..),
+        VkSurfaceFormatKHR(..))
+       where
+import           Foreign.Storable                                  (Storable (..))
+import           GHC.Base                                          (Addr##,
+                                                                    ByteArray##,
+                                                                    byteArrayContents##,
+                                                                    plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Color                  (VkColorSpaceKHR)
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR (VkCompositeAlphaFlagsKHR)
+import           Graphics.Vulkan.Types.Enum.Format                 (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Image                  (VkImageUsageFlags)
+import           Graphics.Vulkan.Types.Enum.StructureType          (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.Surface                (VkSurfaceCounterFlagsEXT,
+                                                                    VkSurfaceTransformFlagBitsKHR,
+                                                                    VkSurfaceTransformFlagsKHR)
+import           Graphics.Vulkan.Types.Struct.Extent               (VkExtent2D)
+import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSurfaceCapabilities2EXT {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     uint32_t                         minImageCount;
+--   >     uint32_t                         maxImageCount;
+--   >     VkExtent2D                       currentExtent;
+--   >     VkExtent2D                       minImageExtent;
+--   >     VkExtent2D                       maxImageExtent;
+--   >     uint32_t                         maxImageArrayLayers;
+--   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
+--   >     VkSurfaceTransformFlagBitsKHR    currentTransform;
+--   >     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
+--   >     VkImageUsageFlags                supportedUsageFlags;
+--   >     VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
+--   > } VkSurfaceCapabilities2EXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilities2EXT VkSurfaceCapabilities2EXT registry at www.khronos.org>
+data VkSurfaceCapabilities2EXT = VkSurfaceCapabilities2EXT## Addr##
+                                                            ByteArray##
+
+instance Eq VkSurfaceCapabilities2EXT where
+        (VkSurfaceCapabilities2EXT## a _) ==
+          x@(VkSurfaceCapabilities2EXT## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSurfaceCapabilities2EXT where
+        (VkSurfaceCapabilities2EXT## a _) `compare`
+          x@(VkSurfaceCapabilities2EXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSurfaceCapabilities2EXT where
+        sizeOf ~_ = #{size VkSurfaceCapabilities2EXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSurfaceCapabilities2EXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSurfaceCapabilities2EXT where
+        unsafeAddr (VkSurfaceCapabilities2EXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSurfaceCapabilities2EXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSurfaceCapabilities2EXT## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSurfaceCapabilities2EXT where
+        type StructFields VkSurfaceCapabilities2EXT =
+             '["sType", "pNext", "minImageCount", "maxImageCount", -- ' closing tick for hsc2hs
+               "currentExtent", "minImageExtent", "maxImageExtent",
+               "maxImageArrayLayers", "supportedTransforms", "currentTransform",
+               "supportedCompositeAlpha", "supportedUsageFlags",
+               "supportedSurfaceCounters"]
+        type CUnionType VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSurfaceCapabilities2EXT = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSurfaceCapabilities2EXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSurfaceCapabilities2EXT where
+        type FieldType "sType" VkSurfaceCapabilities2EXT = VkStructureType
+        type FieldOptional "sType" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, sType}
+        type FieldIsArray "sType" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSurfaceCapabilities2EXT where
+        type FieldType "pNext" VkSurfaceCapabilities2EXT = Ptr Void
+        type FieldOptional "pNext" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, pNext}
+        type FieldIsArray "pNext" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageCount" VkSurfaceCapabilities2EXT where
+        type FieldType "minImageCount" VkSurfaceCapabilities2EXT = Word32
+        type FieldOptional "minImageCount" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageCount" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, minImageCount}
+        type FieldIsArray "minImageCount" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageCount" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, minImageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageCount" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageCount" VkSurfaceCapabilities2EXT where
+        type FieldType "maxImageCount" VkSurfaceCapabilities2EXT = Word32
+        type FieldOptional "maxImageCount" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageCount" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, maxImageCount}
+        type FieldIsArray "maxImageCount" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageCount" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageCount" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "currentExtent" VkSurfaceCapabilities2EXT where
+        type FieldType "currentExtent" VkSurfaceCapabilities2EXT =
+             VkExtent2D
+        type FieldOptional "currentExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentExtent" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, currentExtent}
+        type FieldIsArray "currentExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentExtent" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, currentExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentExtent" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageExtent" VkSurfaceCapabilities2EXT where
+        type FieldType "minImageExtent" VkSurfaceCapabilities2EXT =
+             VkExtent2D
+        type FieldOptional "minImageExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageExtent" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, minImageExtent}
+        type FieldIsArray "minImageExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageExtent" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, minImageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageExtent" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageExtent" VkSurfaceCapabilities2EXT where
+        type FieldType "maxImageExtent" VkSurfaceCapabilities2EXT =
+             VkExtent2D
+        type FieldOptional "maxImageExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageExtent" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
+        type FieldIsArray "maxImageExtent" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageExtent" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageExtent" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
+        type FieldType "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
+             Word32
+        type FieldOptional "maxImageArrayLayers" VkSurfaceCapabilities2EXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
+        type FieldIsArray "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedTransforms" VkSurfaceCapabilities2EXT where
+        type FieldType "supportedTransforms" VkSurfaceCapabilities2EXT =
+             VkSurfaceTransformFlagsKHR
+        type FieldOptional "supportedTransforms" VkSurfaceCapabilities2EXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedTransforms" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
+        type FieldIsArray "supportedTransforms" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedTransforms" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedTransforms})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedTransforms" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         HasField "currentTransform" VkSurfaceCapabilities2EXT where
+        type FieldType "currentTransform" VkSurfaceCapabilities2EXT =
+             VkSurfaceTransformFlagBitsKHR
+        type FieldOptional "currentTransform" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentTransform" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, currentTransform}
+        type FieldIsArray "currentTransform" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentTransform" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, currentTransform})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentTransform" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT where
+        type FieldType "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
+             = VkCompositeAlphaFlagsKHR
+        type FieldOptional "supportedCompositeAlpha"
+               VkSurfaceCapabilities2EXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedCompositeAlpha"
+               VkSurfaceCapabilities2EXT
+             =
+             #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
+        type FieldIsArray "supportedCompositeAlpha"
+               VkSurfaceCapabilities2EXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
+        type FieldType "supportedUsageFlags" VkSurfaceCapabilities2EXT =
+             VkImageUsageFlags
+        type FieldOptional "supportedUsageFlags" VkSurfaceCapabilities2EXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedUsageFlags" VkSurfaceCapabilities2EXT =
+             #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
+        type FieldIsArray "supportedUsageFlags" VkSurfaceCapabilities2EXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT where
+        type FieldType "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
+             = VkSurfaceCounterFlagsEXT
+        type FieldOptional "supportedSurfaceCounters"
+               VkSurfaceCapabilities2EXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedSurfaceCounters"
+               VkSurfaceCapabilities2EXT
+             =
+             #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
+        type FieldIsArray "supportedSurfaceCounters"
+               VkSurfaceCapabilities2EXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
+
+instance Show VkSurfaceCapabilities2EXT where
+        showsPrec d x
+          = showString "VkSurfaceCapabilities2EXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "minImageCount = " .
+                            showsPrec d (getField @"minImageCount" x) .
+                              showString ", " .
+                                showString "maxImageCount = " .
+                                  showsPrec d (getField @"maxImageCount" x) .
+                                    showString ", " .
+                                      showString "currentExtent = " .
+                                        showsPrec d (getField @"currentExtent" x) .
+                                          showString ", " .
+                                            showString "minImageExtent = " .
+                                              showsPrec d (getField @"minImageExtent" x) .
+                                                showString ", " .
+                                                  showString "maxImageExtent = " .
+                                                    showsPrec d (getField @"maxImageExtent" x) .
+                                                      showString ", " .
+                                                        showString "maxImageArrayLayers = " .
+                                                          showsPrec d
+                                                            (getField @"maxImageArrayLayers" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString "supportedTransforms = " .
+                                                                showsPrec d
+                                                                  (getField @"supportedTransforms"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "currentTransform = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"currentTransform"
+                                                                           x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "supportedCompositeAlpha = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"supportedCompositeAlpha"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "supportedUsageFlags = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"supportedUsageFlags"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "supportedSurfaceCounters = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"supportedSurfaceCounters"
+                                                                                             x)
+                                                                                          .
+                                                                                          showChar
+                                                                                            '}'
+
+-- | > typedef struct VkSurfaceCapabilities2KHR {
+--   >     VkStructureType sType;
+--   >     void*   pNext;
+--   >     VkSurfaceCapabilitiesKHR surfaceCapabilities;
+--   > } VkSurfaceCapabilities2KHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilities2KHR VkSurfaceCapabilities2KHR registry at www.khronos.org>
+data VkSurfaceCapabilities2KHR = VkSurfaceCapabilities2KHR## Addr##
+                                                            ByteArray##
+
+instance Eq VkSurfaceCapabilities2KHR where
+        (VkSurfaceCapabilities2KHR## a _) ==
+          x@(VkSurfaceCapabilities2KHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSurfaceCapabilities2KHR where
+        (VkSurfaceCapabilities2KHR## a _) `compare`
+          x@(VkSurfaceCapabilities2KHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSurfaceCapabilities2KHR where
+        sizeOf ~_ = #{size VkSurfaceCapabilities2KHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSurfaceCapabilities2KHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSurfaceCapabilities2KHR where
+        unsafeAddr (VkSurfaceCapabilities2KHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSurfaceCapabilities2KHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSurfaceCapabilities2KHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSurfaceCapabilities2KHR where
+        type StructFields VkSurfaceCapabilities2KHR =
+             '["sType", "pNext", "surfaceCapabilities"] -- ' closing tick for hsc2hs
+        type CUnionType VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSurfaceCapabilities2KHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSurfaceCapabilities2KHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSurfaceCapabilities2KHR where
+        type FieldType "sType" VkSurfaceCapabilities2KHR = VkStructureType
+        type FieldOptional "sType" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSurfaceCapabilities2KHR =
+             #{offset VkSurfaceCapabilities2KHR, sType}
+        type FieldIsArray "sType" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSurfaceCapabilities2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSurfaceCapabilities2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSurfaceCapabilities2KHR where
+        type FieldType "pNext" VkSurfaceCapabilities2KHR = Ptr Void
+        type FieldOptional "pNext" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSurfaceCapabilities2KHR =
+             #{offset VkSurfaceCapabilities2KHR, pNext}
+        type FieldIsArray "pNext" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSurfaceCapabilities2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSurfaceCapabilities2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
+        type FieldType "surfaceCapabilities" VkSurfaceCapabilities2KHR =
+             VkSurfaceCapabilitiesKHR
+        type FieldOptional "surfaceCapabilities" VkSurfaceCapabilities2KHR
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "surfaceCapabilities" VkSurfaceCapabilities2KHR =
+             #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
+        type FieldIsArray "surfaceCapabilities" VkSurfaceCapabilities2KHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
+
+instance Show VkSurfaceCapabilities2KHR where
+        showsPrec d x
+          = showString "VkSurfaceCapabilities2KHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "surfaceCapabilities = " .
+                            showsPrec d (getField @"surfaceCapabilities" x) . showChar '}'
+
+-- | > typedef struct VkSurfaceCapabilitiesKHR {
+--   >     uint32_t                         minImageCount;
+--   >     uint32_t                         maxImageCount;
+--   >     VkExtent2D                       currentExtent;
+--   >     VkExtent2D                       minImageExtent;
+--   >     VkExtent2D                       maxImageExtent;
+--   >     uint32_t                         maxImageArrayLayers;
+--   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
+--   >     VkSurfaceTransformFlagBitsKHR    currentTransform;
+--   >     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
+--   >     VkImageUsageFlags                supportedUsageFlags;
+--   > } VkSurfaceCapabilitiesKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceCapabilitiesKHR VkSurfaceCapabilitiesKHR registry at www.khronos.org>
+data VkSurfaceCapabilitiesKHR = VkSurfaceCapabilitiesKHR## Addr##
+                                                          ByteArray##
+
+instance Eq VkSurfaceCapabilitiesKHR where
+        (VkSurfaceCapabilitiesKHR## a _) ==
+          x@(VkSurfaceCapabilitiesKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSurfaceCapabilitiesKHR where
+        (VkSurfaceCapabilitiesKHR## a _) `compare`
+          x@(VkSurfaceCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSurfaceCapabilitiesKHR where
+        sizeOf ~_ = #{size VkSurfaceCapabilitiesKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSurfaceCapabilitiesKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSurfaceCapabilitiesKHR where
+        unsafeAddr (VkSurfaceCapabilitiesKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSurfaceCapabilitiesKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSurfaceCapabilitiesKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSurfaceCapabilitiesKHR where
+        type StructFields VkSurfaceCapabilitiesKHR =
+             '["minImageCount", "maxImageCount", "currentExtent", -- ' closing tick for hsc2hs
+               "minImageExtent", "maxImageExtent", "maxImageArrayLayers",
+               "supportedTransforms", "currentTransform",
+               "supportedCompositeAlpha", "supportedUsageFlags"]
+        type CUnionType VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSurfaceCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSurfaceCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageCount" VkSurfaceCapabilitiesKHR where
+        type FieldType "minImageCount" VkSurfaceCapabilitiesKHR = Word32
+        type FieldOptional "minImageCount" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageCount" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, minImageCount}
+        type FieldIsArray "minImageCount" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageCount" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, minImageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageCount" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageCount" VkSurfaceCapabilitiesKHR where
+        type FieldType "maxImageCount" VkSurfaceCapabilitiesKHR = Word32
+        type FieldOptional "maxImageCount" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageCount" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
+        type FieldIsArray "maxImageCount" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageCount" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageCount" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "currentExtent" VkSurfaceCapabilitiesKHR where
+        type FieldType "currentExtent" VkSurfaceCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "currentExtent" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentExtent" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, currentExtent}
+        type FieldIsArray "currentExtent" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentExtent" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, currentExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentExtent" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, currentExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageExtent" VkSurfaceCapabilitiesKHR where
+        type FieldType "minImageExtent" VkSurfaceCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "minImageExtent" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageExtent" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
+        type FieldIsArray "minImageExtent" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageExtent" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, minImageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageExtent" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageExtent" VkSurfaceCapabilitiesKHR where
+        type FieldType "maxImageExtent" VkSurfaceCapabilitiesKHR =
+             VkExtent2D
+        type FieldOptional "maxImageExtent" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageExtent" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
+        type FieldIsArray "maxImageExtent" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageExtent" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageExtent" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
+        type FieldType "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
+             Word32
+        type FieldOptional "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
+        type FieldIsArray "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedTransforms" VkSurfaceCapabilitiesKHR where
+        type FieldType "supportedTransforms" VkSurfaceCapabilitiesKHR =
+             VkSurfaceTransformFlagsKHR
+        type FieldOptional "supportedTransforms" VkSurfaceCapabilitiesKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedTransforms" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
+        type FieldIsArray "supportedTransforms" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedTransforms" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedTransforms})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedTransforms" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
+
+instance {-# OVERLAPPING #-}
+         HasField "currentTransform" VkSurfaceCapabilitiesKHR where
+        type FieldType "currentTransform" VkSurfaceCapabilitiesKHR =
+             VkSurfaceTransformFlagBitsKHR
+        type FieldOptional "currentTransform" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "currentTransform" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, currentTransform}
+        type FieldIsArray "currentTransform" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "currentTransform" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, currentTransform})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "currentTransform" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, currentTransform}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR where
+        type FieldType "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR =
+             VkCompositeAlphaFlagsKHR
+        type FieldOptional "supportedCompositeAlpha"
+               VkSurfaceCapabilitiesKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
+             =
+             #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
+        type FieldIsArray "supportedCompositeAlpha"
+               VkSurfaceCapabilitiesKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
+        type FieldType "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
+             VkImageUsageFlags
+        type FieldOptional "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
+             'True -- ' closing tick for hsc2hs
+        type FieldOffset "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
+             #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
+        type FieldIsArray "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
+
+instance Show VkSurfaceCapabilitiesKHR where
+        showsPrec d x
+          = showString "VkSurfaceCapabilitiesKHR {" .
+              showString "minImageCount = " .
+                showsPrec d (getField @"minImageCount" x) .
+                  showString ", " .
+                    showString "maxImageCount = " .
+                      showsPrec d (getField @"maxImageCount" x) .
+                        showString ", " .
+                          showString "currentExtent = " .
+                            showsPrec d (getField @"currentExtent" x) .
+                              showString ", " .
+                                showString "minImageExtent = " .
+                                  showsPrec d (getField @"minImageExtent" x) .
+                                    showString ", " .
+                                      showString "maxImageExtent = " .
+                                        showsPrec d (getField @"maxImageExtent" x) .
+                                          showString ", " .
+                                            showString "maxImageArrayLayers = " .
+                                              showsPrec d (getField @"maxImageArrayLayers" x) .
+                                                showString ", " .
+                                                  showString "supportedTransforms = " .
+                                                    showsPrec d (getField @"supportedTransforms" x)
+                                                      .
+                                                      showString ", " .
+                                                        showString "currentTransform = " .
+                                                          showsPrec d
+                                                            (getField @"currentTransform" x)
+                                                            .
+                                                            showString ", " .
+                                                              showString
+                                                                "supportedCompositeAlpha = "
+                                                                .
+                                                                showsPrec d
+                                                                  (getField
+                                                                     @"supportedCompositeAlpha"
+                                                                     x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString
+                                                                      "supportedUsageFlags = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"supportedUsageFlags"
+                                                                           x)
+                                                                        . showChar '}'
+
+-- | > typedef struct VkSurfaceFormat2KHR {
+--   >     VkStructureType sType;
+--   >     void* pNext;
+--   >     VkSurfaceFormatKHR surfaceFormat;
+--   > } VkSurfaceFormat2KHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceFormat2KHR VkSurfaceFormat2KHR registry at www.khronos.org>
+data VkSurfaceFormat2KHR = VkSurfaceFormat2KHR## Addr## ByteArray##
+
+instance Eq VkSurfaceFormat2KHR where
+        (VkSurfaceFormat2KHR## a _) == x@(VkSurfaceFormat2KHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSurfaceFormat2KHR where
+        (VkSurfaceFormat2KHR## a _) `compare` x@(VkSurfaceFormat2KHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSurfaceFormat2KHR where
+        sizeOf ~_ = #{size VkSurfaceFormat2KHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSurfaceFormat2KHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSurfaceFormat2KHR where
+        unsafeAddr (VkSurfaceFormat2KHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSurfaceFormat2KHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSurfaceFormat2KHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSurfaceFormat2KHR where
+        type StructFields VkSurfaceFormat2KHR =
+             '["sType", "pNext", "surfaceFormat"] -- ' closing tick for hsc2hs
+        type CUnionType VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSurfaceFormat2KHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSurfaceFormat2KHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkSurfaceFormat2KHR
+         where
+        type FieldType "sType" VkSurfaceFormat2KHR = VkStructureType
+        type FieldOptional "sType" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSurfaceFormat2KHR =
+             #{offset VkSurfaceFormat2KHR, sType}
+        type FieldIsArray "sType" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSurfaceFormat2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSurfaceFormat2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceFormat2KHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSurfaceFormat2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceFormat2KHR, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkSurfaceFormat2KHR
+         where
+        type FieldType "pNext" VkSurfaceFormat2KHR = Ptr Void
+        type FieldOptional "pNext" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSurfaceFormat2KHR =
+             #{offset VkSurfaceFormat2KHR, pNext}
+        type FieldIsArray "pNext" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSurfaceFormat2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSurfaceFormat2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceFormat2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSurfaceFormat2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceFormat2KHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "surfaceFormat" VkSurfaceFormat2KHR where
+        type FieldType "surfaceFormat" VkSurfaceFormat2KHR =
+             VkSurfaceFormatKHR
+        type FieldOptional "surfaceFormat" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "surfaceFormat" VkSurfaceFormat2KHR =
+             #{offset VkSurfaceFormat2KHR, surfaceFormat}
+        type FieldIsArray "surfaceFormat" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSurfaceFormat2KHR, surfaceFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surfaceFormat" VkSurfaceFormat2KHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, surfaceFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceFormat2KHR, surfaceFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surfaceFormat" VkSurfaceFormat2KHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceFormat2KHR, surfaceFormat}
+
+instance Show VkSurfaceFormat2KHR where
+        showsPrec d x
+          = showString "VkSurfaceFormat2KHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "surfaceFormat = " .
+                            showsPrec d (getField @"surfaceFormat" x) . showChar '}'
+
+-- | > typedef struct VkSurfaceFormatKHR {
+--   >     VkFormat                         format;
+--   >     VkColorSpaceKHR                  colorSpace;
+--   > } VkSurfaceFormatKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSurfaceFormatKHR VkSurfaceFormatKHR registry at www.khronos.org>
+data VkSurfaceFormatKHR = VkSurfaceFormatKHR## Addr## ByteArray##
+
+instance Eq VkSurfaceFormatKHR where
+        (VkSurfaceFormatKHR## a _) == x@(VkSurfaceFormatKHR## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSurfaceFormatKHR where
+        (VkSurfaceFormatKHR## a _) `compare` x@(VkSurfaceFormatKHR## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSurfaceFormatKHR where
+        sizeOf ~_ = #{size VkSurfaceFormatKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSurfaceFormatKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSurfaceFormatKHR where
+        unsafeAddr (VkSurfaceFormatKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSurfaceFormatKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSurfaceFormatKHR## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSurfaceFormatKHR where
+        type StructFields VkSurfaceFormatKHR = '["format", "colorSpace"] -- ' closing tick for hsc2hs
+        type CUnionType VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSurfaceFormatKHR = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkSurfaceFormatKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "format" VkSurfaceFormatKHR
+         where
+        type FieldType "format" VkSurfaceFormatKHR = VkFormat
+        type FieldOptional "format" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkSurfaceFormatKHR =
+             #{offset VkSurfaceFormatKHR, format}
+        type FieldIsArray "format" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSurfaceFormatKHR, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkSurfaceFormatKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormatKHR, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceFormatKHR, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkSurfaceFormatKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceFormatKHR, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "colorSpace" VkSurfaceFormatKHR where
+        type FieldType "colorSpace" VkSurfaceFormatKHR = VkColorSpaceKHR
+        type FieldOptional "colorSpace" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "colorSpace" VkSurfaceFormatKHR =
+             #{offset VkSurfaceFormatKHR, colorSpace}
+        type FieldIsArray "colorSpace" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSurfaceFormatKHR, colorSpace}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "colorSpace" VkSurfaceFormatKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormatKHR, colorSpace})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSurfaceFormatKHR, colorSpace}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "colorSpace" VkSurfaceFormatKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSurfaceFormatKHR, colorSpace}
+
+instance Show VkSurfaceFormatKHR where
+        showsPrec d x
+          = showString "VkSurfaceFormatKHR {" .
+              showString "format = " .
+                showsPrec d (getField @"format" x) .
+                  showString ", " .
+                    showString "colorSpace = " .
+                      showsPrec d (getField @"colorSpace" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc b/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/SwapchainC.hsc
@@ -0,0 +1,1009 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.SwapchainC
+       (VkSwapchainCounterCreateInfoEXT(..), VkSwapchainCreateInfoKHR(..))
+       where
+import           Foreign.Storable                                   (Storable (..))
+import           GHC.Base                                           (Addr##,
+                                                                     ByteArray##,
+                                                                     byteArrayContents##,
+                                                                     plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes                    (VkBool32)
+import           Graphics.Vulkan.Types.Enum.Color                   (VkColorSpaceKHR)
+import           Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR  (VkCompositeAlphaFlagBitsKHR)
+import           Graphics.Vulkan.Types.Enum.Format                  (VkFormat)
+import           Graphics.Vulkan.Types.Enum.Image                   (VkImageUsageFlags)
+import           Graphics.Vulkan.Types.Enum.PresentModeKHR          (VkPresentModeKHR)
+import           Graphics.Vulkan.Types.Enum.SharingMode             (VkSharingMode)
+import           Graphics.Vulkan.Types.Enum.StructureType           (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.Surface                 (VkSurfaceCounterFlagsEXT,
+                                                                     VkSurfaceTransformFlagBitsKHR)
+import           Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR (VkSwapchainCreateFlagsKHR)
+import           Graphics.Vulkan.Types.Handles                      (VkSurfaceKHR,
+                                                                     VkSwapchainKHR)
+import           Graphics.Vulkan.Types.Struct.Extent                (VkExtent2D)
+import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
+
+-- | > typedef struct VkSwapchainCounterCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSurfaceCounterFlagsEXT         surfaceCounters;
+--   > } VkSwapchainCounterCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSwapchainCounterCreateInfoEXT VkSwapchainCounterCreateInfoEXT registry at www.khronos.org>
+data VkSwapchainCounterCreateInfoEXT = VkSwapchainCounterCreateInfoEXT## Addr##
+                                                                        ByteArray##
+
+instance Eq VkSwapchainCounterCreateInfoEXT where
+        (VkSwapchainCounterCreateInfoEXT## a _) ==
+          x@(VkSwapchainCounterCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSwapchainCounterCreateInfoEXT where
+        (VkSwapchainCounterCreateInfoEXT## a _) `compare`
+          x@(VkSwapchainCounterCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSwapchainCounterCreateInfoEXT where
+        sizeOf ~_ = #{size VkSwapchainCounterCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkSwapchainCounterCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSwapchainCounterCreateInfoEXT where
+        unsafeAddr (VkSwapchainCounterCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSwapchainCounterCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSwapchainCounterCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSwapchainCounterCreateInfoEXT where
+        type StructFields VkSwapchainCounterCreateInfoEXT =
+             '["sType", "pNext", "surfaceCounters"] -- ' closing tick for hsc2hs
+        type CUnionType VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSwapchainCounterCreateInfoEXT =
+             '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSwapchainCounterCreateInfoEXT where
+        type FieldType "sType" VkSwapchainCounterCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSwapchainCounterCreateInfoEXT =
+             #{offset VkSwapchainCounterCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCounterCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSwapchainCounterCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSwapchainCounterCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSwapchainCounterCreateInfoEXT where
+        type FieldType "pNext" VkSwapchainCounterCreateInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSwapchainCounterCreateInfoEXT =
+             #{offset VkSwapchainCounterCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCounterCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSwapchainCounterCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSwapchainCounterCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "surfaceCounters" VkSwapchainCounterCreateInfoEXT where
+        type FieldType "surfaceCounters" VkSwapchainCounterCreateInfoEXT =
+             VkSurfaceCounterFlagsEXT
+        type FieldOptional "surfaceCounters"
+               VkSwapchainCounterCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "surfaceCounters" VkSwapchainCounterCreateInfoEXT
+             =
+             #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
+        type FieldIsArray "surfaceCounters" VkSwapchainCounterCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
+
+instance Show VkSwapchainCounterCreateInfoEXT where
+        showsPrec d x
+          = showString "VkSwapchainCounterCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "surfaceCounters = " .
+                            showsPrec d (getField @"surfaceCounters" x) . showChar '}'
+
+-- | > typedef struct VkSwapchainCreateInfoKHR {
+--   >     VkStructureType sType;
+--   >     const void*                      pNext;
+--   >     VkSwapchainCreateFlagsKHR        flags;
+--   >     VkSurfaceKHR                     surface;
+--   >     uint32_t                         minImageCount;
+--   >     VkFormat                         imageFormat;
+--   >     VkColorSpaceKHR                  imageColorSpace;
+--   >     VkExtent2D                       imageExtent;
+--   >     uint32_t                         imageArrayLayers;
+--   >     VkImageUsageFlags                imageUsage;
+--   >     VkSharingMode                    imageSharingMode;
+--   >     uint32_t         queueFamilyIndexCount;
+--   >     const uint32_t*                  pQueueFamilyIndices;
+--   >     VkSurfaceTransformFlagBitsKHR    preTransform;
+--   >     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
+--   >     VkPresentModeKHR                 presentMode;
+--   >     VkBool32                         clipped;
+--   >     VkSwapchainKHR   oldSwapchain;
+--   > } VkSwapchainCreateInfoKHR;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkSwapchainCreateInfoKHR VkSwapchainCreateInfoKHR registry at www.khronos.org>
+data VkSwapchainCreateInfoKHR = VkSwapchainCreateInfoKHR## Addr##
+                                                          ByteArray##
+
+instance Eq VkSwapchainCreateInfoKHR where
+        (VkSwapchainCreateInfoKHR## a _) ==
+          x@(VkSwapchainCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkSwapchainCreateInfoKHR where
+        (VkSwapchainCreateInfoKHR## a _) `compare`
+          x@(VkSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkSwapchainCreateInfoKHR where
+        sizeOf ~_ = #{size VkSwapchainCreateInfoKHR}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkSwapchainCreateInfoKHR}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkSwapchainCreateInfoKHR where
+        unsafeAddr (VkSwapchainCreateInfoKHR## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkSwapchainCreateInfoKHR## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkSwapchainCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkSwapchainCreateInfoKHR where
+        type StructFields VkSwapchainCreateInfoKHR =
+             '["sType", "pNext", "flags", "surface", "minImageCount", -- ' closing tick for hsc2hs
+               "imageFormat", "imageColorSpace", "imageExtent",
+               "imageArrayLayers", "imageUsage", "imageSharingMode",
+               "queueFamilyIndexCount", "pQueueFamilyIndices", "preTransform",
+               "compositeAlpha", "presentMode", "clipped", "oldSwapchain"]
+        type CUnionType VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkSwapchainCreateInfoKHR = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkSwapchainCreateInfoKHR where
+        type FieldType "sType" VkSwapchainCreateInfoKHR = VkStructureType
+        type FieldOptional "sType" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, sType}
+        type FieldIsArray "sType" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkSwapchainCreateInfoKHR where
+        type FieldType "pNext" VkSwapchainCreateInfoKHR = Ptr Void
+        type FieldOptional "pNext" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, pNext}
+        type FieldIsArray "pNext" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkSwapchainCreateInfoKHR where
+        type FieldType "flags" VkSwapchainCreateInfoKHR =
+             VkSwapchainCreateFlagsKHR
+        type FieldOptional "flags" VkSwapchainCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, flags}
+        type FieldIsArray "flags" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkSwapchainCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "surface" VkSwapchainCreateInfoKHR where
+        type FieldType "surface" VkSwapchainCreateInfoKHR = VkSurfaceKHR
+        type FieldOptional "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "surface" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, surface}
+        type FieldIsArray "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "surface" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, surface})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, surface}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "surface" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, surface}
+
+instance {-# OVERLAPPING #-}
+         HasField "minImageCount" VkSwapchainCreateInfoKHR where
+        type FieldType "minImageCount" VkSwapchainCreateInfoKHR = Word32
+        type FieldOptional "minImageCount" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "minImageCount" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, minImageCount}
+        type FieldIsArray "minImageCount" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "minImageCount" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, minImageCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "minImageCount" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, minImageCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageFormat" VkSwapchainCreateInfoKHR where
+        type FieldType "imageFormat" VkSwapchainCreateInfoKHR = VkFormat
+        type FieldOptional "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageFormat" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageFormat}
+        type FieldIsArray "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageFormat}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageFormat" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageFormat})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageFormat}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageFormat" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageFormat}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageColorSpace" VkSwapchainCreateInfoKHR where
+        type FieldType "imageColorSpace" VkSwapchainCreateInfoKHR =
+             VkColorSpaceKHR
+        type FieldOptional "imageColorSpace" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageColorSpace" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
+        type FieldIsArray "imageColorSpace" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageColorSpace" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageColorSpace})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageColorSpace" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageExtent" VkSwapchainCreateInfoKHR where
+        type FieldType "imageExtent" VkSwapchainCreateInfoKHR = VkExtent2D
+        type FieldOptional "imageExtent" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageExtent" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageExtent}
+        type FieldIsArray "imageExtent" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageExtent" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageExtent})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageExtent" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageExtent}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageArrayLayers" VkSwapchainCreateInfoKHR where
+        type FieldType "imageArrayLayers" VkSwapchainCreateInfoKHR = Word32
+        type FieldOptional "imageArrayLayers" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageArrayLayers" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
+        type FieldIsArray "imageArrayLayers" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageArrayLayers" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageArrayLayers})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageArrayLayers" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageUsage" VkSwapchainCreateInfoKHR where
+        type FieldType "imageUsage" VkSwapchainCreateInfoKHR =
+             VkImageUsageFlags
+        type FieldOptional "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageUsage" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageUsage}
+        type FieldIsArray "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageUsage}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageUsage" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageUsage})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageUsage}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageUsage" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageUsage}
+
+instance {-# OVERLAPPING #-}
+         HasField "imageSharingMode" VkSwapchainCreateInfoKHR where
+        type FieldType "imageSharingMode" VkSwapchainCreateInfoKHR =
+             VkSharingMode
+        type FieldOptional "imageSharingMode" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "imageSharingMode" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
+        type FieldIsArray "imageSharingMode" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "imageSharingMode" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageSharingMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "imageSharingMode" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
+        type FieldType "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
+             Word32
+        type FieldOptional "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
+        type FieldIsArray "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
+        type FieldType "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
+             Ptr Word32
+        type FieldOptional "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
+        type FieldIsArray "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
+
+instance {-# OVERLAPPING #-}
+         HasField "preTransform" VkSwapchainCreateInfoKHR where
+        type FieldType "preTransform" VkSwapchainCreateInfoKHR =
+             VkSurfaceTransformFlagBitsKHR
+        type FieldOptional "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "preTransform" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, preTransform}
+        type FieldIsArray "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, preTransform}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "preTransform" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, preTransform})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, preTransform}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "preTransform" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, preTransform}
+
+instance {-# OVERLAPPING #-}
+         HasField "compositeAlpha" VkSwapchainCreateInfoKHR where
+        type FieldType "compositeAlpha" VkSwapchainCreateInfoKHR =
+             VkCompositeAlphaFlagBitsKHR
+        type FieldOptional "compositeAlpha" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "compositeAlpha" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
+        type FieldIsArray "compositeAlpha" VkSwapchainCreateInfoKHR =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "compositeAlpha" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, compositeAlpha})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "compositeAlpha" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
+
+instance {-# OVERLAPPING #-}
+         HasField "presentMode" VkSwapchainCreateInfoKHR where
+        type FieldType "presentMode" VkSwapchainCreateInfoKHR =
+             VkPresentModeKHR
+        type FieldOptional "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "presentMode" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, presentMode}
+        type FieldIsArray "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, presentMode}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "presentMode" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, presentMode})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, presentMode}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "presentMode" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, presentMode}
+
+instance {-# OVERLAPPING #-}
+         HasField "clipped" VkSwapchainCreateInfoKHR where
+        type FieldType "clipped" VkSwapchainCreateInfoKHR = VkBool32
+        type FieldOptional "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "clipped" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, clipped}
+        type FieldIsArray "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, clipped}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "clipped" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, clipped})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, clipped}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "clipped" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, clipped}
+
+instance {-# OVERLAPPING #-}
+         HasField "oldSwapchain" VkSwapchainCreateInfoKHR where
+        type FieldType "oldSwapchain" VkSwapchainCreateInfoKHR =
+             VkSwapchainKHR
+        type FieldOptional "oldSwapchain" VkSwapchainCreateInfoKHR = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "oldSwapchain" VkSwapchainCreateInfoKHR =
+             #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
+        type FieldIsArray "oldSwapchain" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "oldSwapchain" VkSwapchainCreateInfoKHR where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, oldSwapchain})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "oldSwapchain" VkSwapchainCreateInfoKHR where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
+
+instance Show VkSwapchainCreateInfoKHR where
+        showsPrec d x
+          = showString "VkSwapchainCreateInfoKHR {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "surface = " .
+                                  showsPrec d (getField @"surface" x) .
+                                    showString ", " .
+                                      showString "minImageCount = " .
+                                        showsPrec d (getField @"minImageCount" x) .
+                                          showString ", " .
+                                            showString "imageFormat = " .
+                                              showsPrec d (getField @"imageFormat" x) .
+                                                showString ", " .
+                                                  showString "imageColorSpace = " .
+                                                    showsPrec d (getField @"imageColorSpace" x) .
+                                                      showString ", " .
+                                                        showString "imageExtent = " .
+                                                          showsPrec d (getField @"imageExtent" x) .
+                                                            showString ", " .
+                                                              showString "imageArrayLayers = " .
+                                                                showsPrec d
+                                                                  (getField @"imageArrayLayers" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "imageUsage = " .
+                                                                      showsPrec d
+                                                                        (getField @"imageUsage" x)
+                                                                        .
+                                                                        showString ", " .
+                                                                          showString
+                                                                            "imageSharingMode = "
+                                                                            .
+                                                                            showsPrec d
+                                                                              (getField
+                                                                                 @"imageSharingMode"
+                                                                                 x)
+                                                                              .
+                                                                              showString ", " .
+                                                                                showString
+                                                                                  "queueFamilyIndexCount = "
+                                                                                  .
+                                                                                  showsPrec d
+                                                                                    (getField
+                                                                                       @"queueFamilyIndexCount"
+                                                                                       x)
+                                                                                    .
+                                                                                    showString ", "
+                                                                                      .
+                                                                                      showString
+                                                                                        "pQueueFamilyIndices = "
+                                                                                        .
+                                                                                        showsPrec d
+                                                                                          (getField
+                                                                                             @"pQueueFamilyIndices"
+                                                                                             x)
+                                                                                          .
+                                                                                          showString
+                                                                                            ", "
+                                                                                            .
+                                                                                            showString
+                                                                                              "preTransform = "
+                                                                                              .
+                                                                                              showsPrec
+                                                                                                d
+                                                                                                (getField
+                                                                                                   @"preTransform"
+                                                                                                   x)
+                                                                                                .
+                                                                                                showString
+                                                                                                  ", "
+                                                                                                  .
+                                                                                                  showString
+                                                                                                    "compositeAlpha = "
+                                                                                                    .
+                                                                                                    showsPrec
+                                                                                                      d
+                                                                                                      (getField
+                                                                                                         @"compositeAlpha"
+                                                                                                         x)
+                                                                                                      .
+                                                                                                      showString
+                                                                                                        ", "
+                                                                                                        .
+                                                                                                        showString
+                                                                                                          "presentMode = "
+                                                                                                          .
+                                                                                                          showsPrec
+                                                                                                            d
+                                                                                                            (getField
+                                                                                                               @"presentMode"
+                                                                                                               x)
+                                                                                                            .
+                                                                                                            showString
+                                                                                                              ", "
+                                                                                                              .
+                                                                                                              showString
+                                                                                                                "clipped = "
+                                                                                                                .
+                                                                                                                showsPrec
+                                                                                                                  d
+                                                                                                                  (getField
+                                                                                                                     @"clipped"
+                                                                                                                     x)
+                                                                                                                  .
+                                                                                                                  showString
+                                                                                                                    ", "
+                                                                                                                    .
+                                                                                                                    showString
+                                                                                                                      "oldSwapchain = "
+                                                                                                                      .
+                                                                                                                      showsPrec
+                                                                                                                        d
+                                                                                                                        (getField
+                                                                                                                           @"oldSwapchain"
+                                                                                                                           x)
+                                                                                                                        .
+                                                                                                                        showChar
+                                                                                                                          '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/TextureLODGatherFormatPropertiesAMD.hsc
@@ -0,0 +1,213 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
+       (VkTextureLODGatherFormatPropertiesAMD(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.BaseTypes          (VkBool32)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Struct.Image       (VkImageFormatProperties2)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkTextureLODGatherFormatPropertiesAMD {
+--   >     VkStructureType sType;
+--   >     void*                            pNext;
+--   >     VkBool32                         supportsTextureGatherLODBiasAMD;
+--   > } VkTextureLODGatherFormatPropertiesAMD;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkTextureLODGatherFormatPropertiesAMD VkTextureLODGatherFormatPropertiesAMD registry at www.khronos.org>
+data VkTextureLODGatherFormatPropertiesAMD = VkTextureLODGatherFormatPropertiesAMD## Addr##
+                                                                                    ByteArray##
+
+instance Eq VkTextureLODGatherFormatPropertiesAMD where
+        (VkTextureLODGatherFormatPropertiesAMD## a _) ==
+          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkTextureLODGatherFormatPropertiesAMD where
+        (VkTextureLODGatherFormatPropertiesAMD## a _) `compare`
+          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkTextureLODGatherFormatPropertiesAMD where
+        sizeOf ~_
+          = #{size VkTextureLODGatherFormatPropertiesAMD}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkTextureLODGatherFormatPropertiesAMD}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkTextureLODGatherFormatPropertiesAMD
+         where
+        unsafeAddr (VkTextureLODGatherFormatPropertiesAMD## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkTextureLODGatherFormatPropertiesAMD## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkTextureLODGatherFormatPropertiesAMD##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkTextureLODGatherFormatPropertiesAMD where
+        type StructFields VkTextureLODGatherFormatPropertiesAMD =
+             '["sType", "pNext", "supportsTextureGatherLODBiasAMD"] -- ' closing tick for hsc2hs
+        type CUnionType VkTextureLODGatherFormatPropertiesAMD = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkTextureLODGatherFormatPropertiesAMD = 'True -- ' closing tick for hsc2hs
+        type StructExtends VkTextureLODGatherFormatPropertiesAMD =
+             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkTextureLODGatherFormatPropertiesAMD where
+        type FieldType "sType" VkTextureLODGatherFormatPropertiesAMD =
+             VkStructureType
+        type FieldOptional "sType" VkTextureLODGatherFormatPropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkTextureLODGatherFormatPropertiesAMD =
+             #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
+        type FieldIsArray "sType" VkTextureLODGatherFormatPropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkTextureLODGatherFormatPropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkTextureLODGatherFormatPropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkTextureLODGatherFormatPropertiesAMD where
+        type FieldType "pNext" VkTextureLODGatherFormatPropertiesAMD =
+             Ptr Void
+        type FieldOptional "pNext" VkTextureLODGatherFormatPropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkTextureLODGatherFormatPropertiesAMD =
+             #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
+        type FieldIsArray "pNext" VkTextureLODGatherFormatPropertiesAMD =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkTextureLODGatherFormatPropertiesAMD where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkTextureLODGatherFormatPropertiesAMD where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "supportsTextureGatherLODBiasAMD"
+           VkTextureLODGatherFormatPropertiesAMD
+         where
+        type FieldType "supportsTextureGatherLODBiasAMD"
+               VkTextureLODGatherFormatPropertiesAMD
+             = VkBool32
+        type FieldOptional "supportsTextureGatherLODBiasAMD"
+               VkTextureLODGatherFormatPropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "supportsTextureGatherLODBiasAMD"
+               VkTextureLODGatherFormatPropertiesAMD
+             =
+             #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
+        type FieldIsArray "supportsTextureGatherLODBiasAMD"
+               VkTextureLODGatherFormatPropertiesAMD
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "supportsTextureGatherLODBiasAMD"
+           VkTextureLODGatherFormatPropertiesAMD
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "supportsTextureGatherLODBiasAMD"
+           VkTextureLODGatherFormatPropertiesAMD
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
+
+instance Show VkTextureLODGatherFormatPropertiesAMD where
+        showsPrec d x
+          = showString "VkTextureLODGatherFormatPropertiesAMD {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "supportsTextureGatherLODBiasAMD = " .
+                            showsPrec d (getField @"supportsTextureGatherLODBiasAMD" x) .
+                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Validation.hsc
@@ -0,0 +1,483 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Validation
+       (VkValidationCacheCreateInfoEXT(..), VkValidationFlagsEXT(..))
+       where
+import           Foreign.Storable                                (Storable (..))
+import           GHC.Base                                        (Addr##,
+                                                                  ByteArray##,
+                                                                  byteArrayContents##,
+                                                                  plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Bitmasks                  (VkValidationCacheCreateFlagsEXT)
+import           Graphics.Vulkan.Types.Enum.StructureType        (VkStructureType)
+import           Graphics.Vulkan.Types.Enum.ValidationC          (VkValidationCheckEXT)
+import           Graphics.Vulkan.Types.Struct.InstanceCreateInfo (VkInstanceCreateInfo)
+import           System.IO.Unsafe                                (unsafeDupablePerformIO)
+
+-- | > typedef struct VkValidationCacheCreateInfoEXT {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkValidationCacheCreateFlagsEXT    flags;
+--   >     size_t                 initialDataSize;
+--   >     const void*            pInitialData;
+--   > } VkValidationCacheCreateInfoEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationCacheCreateInfoEXT VkValidationCacheCreateInfoEXT registry at www.khronos.org>
+data VkValidationCacheCreateInfoEXT = VkValidationCacheCreateInfoEXT## Addr##
+                                                                      ByteArray##
+
+instance Eq VkValidationCacheCreateInfoEXT where
+        (VkValidationCacheCreateInfoEXT## a _) ==
+          x@(VkValidationCacheCreateInfoEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkValidationCacheCreateInfoEXT where
+        (VkValidationCacheCreateInfoEXT## a _) `compare`
+          x@(VkValidationCacheCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkValidationCacheCreateInfoEXT where
+        sizeOf ~_ = #{size VkValidationCacheCreateInfoEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkValidationCacheCreateInfoEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkValidationCacheCreateInfoEXT where
+        unsafeAddr (VkValidationCacheCreateInfoEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkValidationCacheCreateInfoEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkValidationCacheCreateInfoEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkValidationCacheCreateInfoEXT where
+        type StructFields VkValidationCacheCreateInfoEXT =
+             '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
+        type CUnionType VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkValidationCacheCreateInfoEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "sType" VkValidationCacheCreateInfoEXT where
+        type FieldType "sType" VkValidationCacheCreateInfoEXT =
+             VkStructureType
+        type FieldOptional "sType" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkValidationCacheCreateInfoEXT =
+             #{offset VkValidationCacheCreateInfoEXT, sType}
+        type FieldIsArray "sType" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkValidationCacheCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkValidationCacheCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pNext" VkValidationCacheCreateInfoEXT where
+        type FieldType "pNext" VkValidationCacheCreateInfoEXT = Ptr Void
+        type FieldOptional "pNext" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkValidationCacheCreateInfoEXT =
+             #{offset VkValidationCacheCreateInfoEXT, pNext}
+        type FieldIsArray "pNext" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkValidationCacheCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkValidationCacheCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "flags" VkValidationCacheCreateInfoEXT where
+        type FieldType "flags" VkValidationCacheCreateInfoEXT =
+             VkValidationCacheCreateFlagsEXT
+        type FieldOptional "flags" VkValidationCacheCreateInfoEXT = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "flags" VkValidationCacheCreateInfoEXT =
+             #{offset VkValidationCacheCreateInfoEXT, flags}
+        type FieldIsArray "flags" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationCacheCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "flags" VkValidationCacheCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, flags})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "flags" VkValidationCacheCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, flags}
+
+instance {-# OVERLAPPING #-}
+         HasField "initialDataSize" VkValidationCacheCreateInfoEXT where
+        type FieldType "initialDataSize" VkValidationCacheCreateInfoEXT =
+             CSize
+        type FieldOptional "initialDataSize" VkValidationCacheCreateInfoEXT
+             = 'True -- ' closing tick for hsc2hs
+        type FieldOffset "initialDataSize" VkValidationCacheCreateInfoEXT =
+             #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
+        type FieldIsArray "initialDataSize" VkValidationCacheCreateInfoEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = True
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "initialDataSize" VkValidationCacheCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, initialDataSize})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "initialDataSize" VkValidationCacheCreateInfoEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
+
+instance {-# OVERLAPPING #-}
+         HasField "pInitialData" VkValidationCacheCreateInfoEXT where
+        type FieldType "pInitialData" VkValidationCacheCreateInfoEXT =
+             Ptr Void
+        type FieldOptional "pInitialData" VkValidationCacheCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "pInitialData" VkValidationCacheCreateInfoEXT =
+             #{offset VkValidationCacheCreateInfoEXT, pInitialData}
+        type FieldIsArray "pInitialData" VkValidationCacheCreateInfoEXT =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationCacheCreateInfoEXT, pInitialData}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pInitialData" VkValidationCacheCreateInfoEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, pInitialData})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, pInitialData}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pInitialData" VkValidationCacheCreateInfoEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, pInitialData}
+
+instance Show VkValidationCacheCreateInfoEXT where
+        showsPrec d x
+          = showString "VkValidationCacheCreateInfoEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "flags = " .
+                            showsPrec d (getField @"flags" x) .
+                              showString ", " .
+                                showString "initialDataSize = " .
+                                  showsPrec d (getField @"initialDataSize" x) .
+                                    showString ", " .
+                                      showString "pInitialData = " .
+                                        showsPrec d (getField @"pInitialData" x) . showChar '}'
+
+-- | > typedef struct VkValidationFlagsEXT {
+--   >     VkStructureType                  sType;
+--   >     const void*                      pNext;
+--   >     uint32_t                         disabledValidationCheckCount;
+--   >     VkValidationCheckEXT* pDisabledValidationChecks;
+--   > } VkValidationFlagsEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkValidationFlagsEXT VkValidationFlagsEXT registry at www.khronos.org>
+data VkValidationFlagsEXT = VkValidationFlagsEXT## Addr## ByteArray##
+
+instance Eq VkValidationFlagsEXT where
+        (VkValidationFlagsEXT## a _) == x@(VkValidationFlagsEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkValidationFlagsEXT where
+        (VkValidationFlagsEXT## a _) `compare` x@(VkValidationFlagsEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkValidationFlagsEXT where
+        sizeOf ~_ = #{size VkValidationFlagsEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkValidationFlagsEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkValidationFlagsEXT where
+        unsafeAddr (VkValidationFlagsEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkValidationFlagsEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkValidationFlagsEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkValidationFlagsEXT where
+        type StructFields VkValidationFlagsEXT =
+             '["sType", "pNext", "disabledValidationCheckCount", -- ' closing tick for hsc2hs
+               "pDisabledValidationChecks"]
+        type CUnionType VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkValidationFlagsEXT = '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkValidationFlagsEXT
+         where
+        type FieldType "sType" VkValidationFlagsEXT = VkStructureType
+        type FieldOptional "sType" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkValidationFlagsEXT =
+             #{offset VkValidationFlagsEXT, sType}
+        type FieldIsArray "sType" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkValidationFlagsEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkValidationFlagsEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationFlagsEXT, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkValidationFlagsEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationFlagsEXT, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkValidationFlagsEXT
+         where
+        type FieldType "pNext" VkValidationFlagsEXT = Ptr Void
+        type FieldOptional "pNext" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkValidationFlagsEXT =
+             #{offset VkValidationFlagsEXT, pNext}
+        type FieldIsArray "pNext" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkValidationFlagsEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkValidationFlagsEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationFlagsEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkValidationFlagsEXT where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationFlagsEXT, pNext}
+
+instance {-# OVERLAPPING #-}
+         HasField "disabledValidationCheckCount" VkValidationFlagsEXT where
+        type FieldType "disabledValidationCheckCount" VkValidationFlagsEXT
+             = Word32
+        type FieldOptional "disabledValidationCheckCount"
+               VkValidationFlagsEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "disabledValidationCheckCount"
+               VkValidationFlagsEXT
+             =
+             #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
+        type FieldIsArray "disabledValidationCheckCount"
+               VkValidationFlagsEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "disabledValidationCheckCount" VkValidationFlagsEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, disabledValidationCheckCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "disabledValidationCheckCount" VkValidationFlagsEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "pDisabledValidationChecks" VkValidationFlagsEXT where
+        type FieldType "pDisabledValidationChecks" VkValidationFlagsEXT =
+             Ptr VkValidationCheckEXT
+        type FieldOptional "pDisabledValidationChecks" VkValidationFlagsEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pDisabledValidationChecks" VkValidationFlagsEXT =
+             #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
+        type FieldIsArray "pDisabledValidationChecks" VkValidationFlagsEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pDisabledValidationChecks" VkValidationFlagsEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, pDisabledValidationChecks})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pDisabledValidationChecks" VkValidationFlagsEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
+
+instance Show VkValidationFlagsEXT where
+        showsPrec d x
+          = showString "VkValidationFlagsEXT {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "disabledValidationCheckCount = " .
+                            showsPrec d (getField @"disabledValidationCheckCount" x) .
+                              showString ", " .
+                                showString "pDisabledValidationChecks = " .
+                                  showsPrec d (getField @"pDisabledValidationChecks" x) .
+                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/VertexInput.hsc
@@ -0,0 +1,566 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.VertexInput
+       (VkVertexInputAttributeDescription(..),
+        VkVertexInputBindingDescription(..),
+        VkVertexInputBindingDivisorDescriptionEXT(..))
+       where
+import           Foreign.Storable                           (Storable (..))
+import           GHC.Base                                   (Addr##, ByteArray##,
+                                                             byteArrayContents##,
+                                                             plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Format          (VkFormat)
+import           Graphics.Vulkan.Types.Enum.VertexInputRate (VkVertexInputRate)
+import           System.IO.Unsafe                           (unsafeDupablePerformIO)
+
+-- | > typedef struct VkVertexInputAttributeDescription {
+--   >     uint32_t               location;
+--   >     uint32_t               binding;
+--   >     VkFormat               format;
+--   >     uint32_t               offset;
+--   > } VkVertexInputAttributeDescription;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputAttributeDescription VkVertexInputAttributeDescription registry at www.khronos.org>
+data VkVertexInputAttributeDescription = VkVertexInputAttributeDescription## Addr##
+                                                                            ByteArray##
+
+instance Eq VkVertexInputAttributeDescription where
+        (VkVertexInputAttributeDescription## a _) ==
+          x@(VkVertexInputAttributeDescription## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkVertexInputAttributeDescription where
+        (VkVertexInputAttributeDescription## a _) `compare`
+          x@(VkVertexInputAttributeDescription## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkVertexInputAttributeDescription where
+        sizeOf ~_ = #{size VkVertexInputAttributeDescription}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkVertexInputAttributeDescription}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkVertexInputAttributeDescription where
+        unsafeAddr (VkVertexInputAttributeDescription## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkVertexInputAttributeDescription## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkVertexInputAttributeDescription##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkVertexInputAttributeDescription where
+        type StructFields VkVertexInputAttributeDescription =
+             '["location", "binding", "format", "offset"] -- ' closing tick for hsc2hs
+        type CUnionType VkVertexInputAttributeDescription = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkVertexInputAttributeDescription = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkVertexInputAttributeDescription = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "location" VkVertexInputAttributeDescription where
+        type FieldType "location" VkVertexInputAttributeDescription =
+             Word32
+        type FieldOptional "location" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "location" VkVertexInputAttributeDescription =
+             #{offset VkVertexInputAttributeDescription, location}
+        type FieldIsArray "location" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputAttributeDescription, location}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "location" VkVertexInputAttributeDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, location})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputAttributeDescription, location}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "location" VkVertexInputAttributeDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputAttributeDescription, location}
+
+instance {-# OVERLAPPING #-}
+         HasField "binding" VkVertexInputAttributeDescription where
+        type FieldType "binding" VkVertexInputAttributeDescription = Word32
+        type FieldOptional "binding" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "binding" VkVertexInputAttributeDescription =
+             #{offset VkVertexInputAttributeDescription, binding}
+        type FieldIsArray "binding" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputAttributeDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "binding" VkVertexInputAttributeDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, binding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputAttributeDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "binding" VkVertexInputAttributeDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputAttributeDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         HasField "format" VkVertexInputAttributeDescription where
+        type FieldType "format" VkVertexInputAttributeDescription =
+             VkFormat
+        type FieldOptional "format" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "format" VkVertexInputAttributeDescription =
+             #{offset VkVertexInputAttributeDescription, format}
+        type FieldIsArray "format" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputAttributeDescription, format}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "format" VkVertexInputAttributeDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, format})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputAttributeDescription, format}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "format" VkVertexInputAttributeDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputAttributeDescription, format}
+
+instance {-# OVERLAPPING #-}
+         HasField "offset" VkVertexInputAttributeDescription where
+        type FieldType "offset" VkVertexInputAttributeDescription = Word32
+        type FieldOptional "offset" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "offset" VkVertexInputAttributeDescription =
+             #{offset VkVertexInputAttributeDescription, offset}
+        type FieldIsArray "offset" VkVertexInputAttributeDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputAttributeDescription, offset}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "offset" VkVertexInputAttributeDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, offset})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputAttributeDescription, offset}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "offset" VkVertexInputAttributeDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputAttributeDescription, offset}
+
+instance Show VkVertexInputAttributeDescription where
+        showsPrec d x
+          = showString "VkVertexInputAttributeDescription {" .
+              showString "location = " .
+                showsPrec d (getField @"location" x) .
+                  showString ", " .
+                    showString "binding = " .
+                      showsPrec d (getField @"binding" x) .
+                        showString ", " .
+                          showString "format = " .
+                            showsPrec d (getField @"format" x) .
+                              showString ", " .
+                                showString "offset = " .
+                                  showsPrec d (getField @"offset" x) . showChar '}'
+
+-- | > typedef struct VkVertexInputBindingDescription {
+--   >     uint32_t               binding;
+--   >     uint32_t               stride;
+--   >     VkVertexInputRate      inputRate;
+--   > } VkVertexInputBindingDescription;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputBindingDescription VkVertexInputBindingDescription registry at www.khronos.org>
+data VkVertexInputBindingDescription = VkVertexInputBindingDescription## Addr##
+                                                                        ByteArray##
+
+instance Eq VkVertexInputBindingDescription where
+        (VkVertexInputBindingDescription## a _) ==
+          x@(VkVertexInputBindingDescription## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkVertexInputBindingDescription where
+        (VkVertexInputBindingDescription## a _) `compare`
+          x@(VkVertexInputBindingDescription## b _) = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkVertexInputBindingDescription where
+        sizeOf ~_ = #{size VkVertexInputBindingDescription}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkVertexInputBindingDescription}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkVertexInputBindingDescription where
+        unsafeAddr (VkVertexInputBindingDescription## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkVertexInputBindingDescription## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkVertexInputBindingDescription##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkVertexInputBindingDescription where
+        type StructFields VkVertexInputBindingDescription =
+             '["binding", "stride", "inputRate"] -- ' closing tick for hsc2hs
+        type CUnionType VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkVertexInputBindingDescription = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "binding" VkVertexInputBindingDescription where
+        type FieldType "binding" VkVertexInputBindingDescription = Word32
+        type FieldOptional "binding" VkVertexInputBindingDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "binding" VkVertexInputBindingDescription =
+             #{offset VkVertexInputBindingDescription, binding}
+        type FieldIsArray "binding" VkVertexInputBindingDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputBindingDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "binding" VkVertexInputBindingDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, binding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputBindingDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "binding" VkVertexInputBindingDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputBindingDescription, binding}
+
+instance {-# OVERLAPPING #-}
+         HasField "stride" VkVertexInputBindingDescription where
+        type FieldType "stride" VkVertexInputBindingDescription = Word32
+        type FieldOptional "stride" VkVertexInputBindingDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "stride" VkVertexInputBindingDescription =
+             #{offset VkVertexInputBindingDescription, stride}
+        type FieldIsArray "stride" VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputBindingDescription, stride}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "stride" VkVertexInputBindingDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, stride})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputBindingDescription, stride}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "stride" VkVertexInputBindingDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputBindingDescription, stride}
+
+instance {-# OVERLAPPING #-}
+         HasField "inputRate" VkVertexInputBindingDescription where
+        type FieldType "inputRate" VkVertexInputBindingDescription =
+             VkVertexInputRate
+        type FieldOptional "inputRate" VkVertexInputBindingDescription =
+             'False -- ' closing tick for hsc2hs
+        type FieldOffset "inputRate" VkVertexInputBindingDescription =
+             #{offset VkVertexInputBindingDescription, inputRate}
+        type FieldIsArray "inputRate" VkVertexInputBindingDescription =
+             'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputBindingDescription, inputRate}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "inputRate" VkVertexInputBindingDescription where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, inputRate})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputBindingDescription, inputRate}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "inputRate" VkVertexInputBindingDescription where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputBindingDescription, inputRate}
+
+instance Show VkVertexInputBindingDescription where
+        showsPrec d x
+          = showString "VkVertexInputBindingDescription {" .
+              showString "binding = " .
+                showsPrec d (getField @"binding" x) .
+                  showString ", " .
+                    showString "stride = " .
+                      showsPrec d (getField @"stride" x) .
+                        showString ", " .
+                          showString "inputRate = " .
+                            showsPrec d (getField @"inputRate" x) . showChar '}'
+
+-- | > typedef struct VkVertexInputBindingDivisorDescriptionEXT {
+--   >     uint32_t          binding;
+--   >     uint32_t          divisor;
+--   > } VkVertexInputBindingDivisorDescriptionEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkVertexInputBindingDivisorDescriptionEXT VkVertexInputBindingDivisorDescriptionEXT registry at www.khronos.org>
+data VkVertexInputBindingDivisorDescriptionEXT = VkVertexInputBindingDivisorDescriptionEXT## Addr##
+                                                                                            ByteArray##
+
+instance Eq VkVertexInputBindingDivisorDescriptionEXT where
+        (VkVertexInputBindingDivisorDescriptionEXT## a _) ==
+          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkVertexInputBindingDivisorDescriptionEXT where
+        (VkVertexInputBindingDivisorDescriptionEXT## a _) `compare`
+          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkVertexInputBindingDivisorDescriptionEXT where
+        sizeOf ~_
+          = #{size VkVertexInputBindingDivisorDescriptionEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_
+          = #{alignment VkVertexInputBindingDivisorDescriptionEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim
+           VkVertexInputBindingDivisorDescriptionEXT
+         where
+        unsafeAddr (VkVertexInputBindingDivisorDescriptionEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkVertexInputBindingDivisorDescriptionEXT## _ b)
+          = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkVertexInputBindingDivisorDescriptionEXT##
+              (plusAddr## (byteArrayContents## b) off)
+              b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkVertexInputBindingDivisorDescriptionEXT
+         where
+        type StructFields VkVertexInputBindingDivisorDescriptionEXT =
+             '["binding", "divisor"] -- ' closing tick for hsc2hs
+        type CUnionType VkVertexInputBindingDivisorDescriptionEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkVertexInputBindingDivisorDescriptionEXT =
+             'False -- ' closing tick for hsc2hs
+        type StructExtends VkVertexInputBindingDivisorDescriptionEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-}
+         HasField "binding" VkVertexInputBindingDivisorDescriptionEXT where
+        type FieldType "binding" VkVertexInputBindingDivisorDescriptionEXT
+             = Word32
+        type FieldOptional "binding"
+               VkVertexInputBindingDivisorDescriptionEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "binding"
+               VkVertexInputBindingDivisorDescriptionEXT
+             =
+             #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
+        type FieldIsArray "binding"
+               VkVertexInputBindingDivisorDescriptionEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "binding" VkVertexInputBindingDivisorDescriptionEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDivisorDescriptionEXT, binding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "binding" VkVertexInputBindingDivisorDescriptionEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
+
+instance {-# OVERLAPPING #-}
+         HasField "divisor" VkVertexInputBindingDivisorDescriptionEXT where
+        type FieldType "divisor" VkVertexInputBindingDivisorDescriptionEXT
+             = Word32
+        type FieldOptional "divisor"
+               VkVertexInputBindingDivisorDescriptionEXT
+             = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "divisor"
+               VkVertexInputBindingDivisorDescriptionEXT
+             =
+             #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
+        type FieldIsArray "divisor"
+               VkVertexInputBindingDivisorDescriptionEXT
+             = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "divisor" VkVertexInputBindingDivisorDescriptionEXT
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "divisor" VkVertexInputBindingDivisorDescriptionEXT
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
+
+instance Show VkVertexInputBindingDivisorDescriptionEXT where
+        showsPrec d x
+          = showString "VkVertexInputBindingDivisorDescriptionEXT {" .
+              showString "binding = " .
+                showsPrec d (getField @"binding" x) .
+                  showString ", " .
+                    showString "divisor = " .
+                      showsPrec d (getField @"divisor" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc b/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/Viewport.hsc
@@ -0,0 +1,583 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.Viewport
+       (VkViewport(..), VkViewportSwizzleNV(..), VkViewportWScalingNV(..))
+       where
+import           Foreign.Storable                                       (Storable (..))
+import           GHC.Base                                               (Addr##, ByteArray##,
+                                                                         byteArrayContents##,
+                                                                         plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV (VkViewportCoordinateSwizzleNV)
+import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
+
+-- | > typedef struct VkViewport {
+--   >     float          x;
+--   >     float          y;
+--   >     float          width;
+--   >     float          height;
+--   >     float          minDepth;
+--   >     float          maxDepth;
+--   > } VkViewport;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewport VkViewport registry at www.khronos.org>
+data VkViewport = VkViewport## Addr## ByteArray##
+
+instance Eq VkViewport where
+        (VkViewport## a _) == x@(VkViewport## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkViewport where
+        (VkViewport## a _) `compare` x@(VkViewport## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkViewport where
+        sizeOf ~_ = #{size VkViewport}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkViewport}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkViewport where
+        unsafeAddr (VkViewport## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkViewport## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkViewport## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkViewport where
+        type StructFields VkViewport =
+             '["x", "y", "width", "height", "minDepth", "maxDepth"] -- ' closing tick for hsc2hs
+        type CUnionType VkViewport = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkViewport = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkViewport = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkViewport where
+        type FieldType "x" VkViewport = #{type float}
+        type FieldOptional "x" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkViewport =
+             #{offset VkViewport, x}
+        type FieldIsArray "x" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkViewport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, x})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkViewport, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkViewport where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkViewport, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkViewport where
+        type FieldType "y" VkViewport = #{type float}
+        type FieldOptional "y" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkViewport =
+             #{offset VkViewport, y}
+        type FieldIsArray "y" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkViewport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, y})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkViewport, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkViewport where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkViewport, y}
+
+instance {-# OVERLAPPING #-} HasField "width" VkViewport where
+        type FieldType "width" VkViewport = #{type float}
+        type FieldOptional "width" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "width" VkViewport =
+             #{offset VkViewport, width}
+        type FieldIsArray "width" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, width}
+
+instance {-# OVERLAPPING #-} CanReadField "width" VkViewport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, width})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkViewport, width}
+
+instance {-# OVERLAPPING #-} CanWriteField "width" VkViewport where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewport, width}
+
+instance {-# OVERLAPPING #-} HasField "height" VkViewport where
+        type FieldType "height" VkViewport = #{type float}
+        type FieldOptional "height" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "height" VkViewport =
+             #{offset VkViewport, height}
+        type FieldIsArray "height" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, height}
+
+instance {-# OVERLAPPING #-} CanReadField "height" VkViewport where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, height})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewport, height}
+
+instance {-# OVERLAPPING #-} CanWriteField "height" VkViewport
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewport, height}
+
+instance {-# OVERLAPPING #-} HasField "minDepth" VkViewport where
+        type FieldType "minDepth" VkViewport = #{type float}
+        type FieldOptional "minDepth" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "minDepth" VkViewport =
+             #{offset VkViewport, minDepth}
+        type FieldIsArray "minDepth" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, minDepth}
+
+instance {-# OVERLAPPING #-} CanReadField "minDepth" VkViewport
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, minDepth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewport, minDepth}
+
+instance {-# OVERLAPPING #-} CanWriteField "minDepth" VkViewport
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewport, minDepth}
+
+instance {-# OVERLAPPING #-} HasField "maxDepth" VkViewport where
+        type FieldType "maxDepth" VkViewport = #{type float}
+        type FieldOptional "maxDepth" VkViewport = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "maxDepth" VkViewport =
+             #{offset VkViewport, maxDepth}
+        type FieldIsArray "maxDepth" VkViewport = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewport, maxDepth}
+
+instance {-# OVERLAPPING #-} CanReadField "maxDepth" VkViewport
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewport, maxDepth})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewport, maxDepth}
+
+instance {-# OVERLAPPING #-} CanWriteField "maxDepth" VkViewport
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewport, maxDepth}
+
+instance Show VkViewport where
+        showsPrec d x
+          = showString "VkViewport {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " .
+                      showsPrec d (getField @"y" x) .
+                        showString ", " .
+                          showString "width = " .
+                            showsPrec d (getField @"width" x) .
+                              showString ", " .
+                                showString "height = " .
+                                  showsPrec d (getField @"height" x) .
+                                    showString ", " .
+                                      showString "minDepth = " .
+                                        showsPrec d (getField @"minDepth" x) .
+                                          showString ", " .
+                                            showString "maxDepth = " .
+                                              showsPrec d (getField @"maxDepth" x) . showChar '}'
+
+-- | > typedef struct VkViewportSwizzleNV {
+--   >     VkViewportCoordinateSwizzleNV          x;
+--   >     VkViewportCoordinateSwizzleNV          y;
+--   >     VkViewportCoordinateSwizzleNV          z;
+--   >     VkViewportCoordinateSwizzleNV          w;
+--   > } VkViewportSwizzleNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportSwizzleNV VkViewportSwizzleNV registry at www.khronos.org>
+data VkViewportSwizzleNV = VkViewportSwizzleNV## Addr## ByteArray##
+
+instance Eq VkViewportSwizzleNV where
+        (VkViewportSwizzleNV## a _) == x@(VkViewportSwizzleNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkViewportSwizzleNV where
+        (VkViewportSwizzleNV## a _) `compare` x@(VkViewportSwizzleNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkViewportSwizzleNV where
+        sizeOf ~_ = #{size VkViewportSwizzleNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkViewportSwizzleNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkViewportSwizzleNV where
+        unsafeAddr (VkViewportSwizzleNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkViewportSwizzleNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkViewportSwizzleNV## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkViewportSwizzleNV where
+        type StructFields VkViewportSwizzleNV = '["x", "y", "z", "w"] -- ' closing tick for hsc2hs
+        type CUnionType VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkViewportSwizzleNV = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkViewportSwizzleNV where
+        type FieldType "x" VkViewportSwizzleNV =
+             VkViewportCoordinateSwizzleNV
+        type FieldOptional "x" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkViewportSwizzleNV =
+             #{offset VkViewportSwizzleNV, x}
+        type FieldIsArray "x" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportSwizzleNV, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkViewportSwizzleNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, x})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportSwizzleNV, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkViewportSwizzleNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportSwizzleNV, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkViewportSwizzleNV where
+        type FieldType "y" VkViewportSwizzleNV =
+             VkViewportCoordinateSwizzleNV
+        type FieldOptional "y" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkViewportSwizzleNV =
+             #{offset VkViewportSwizzleNV, y}
+        type FieldIsArray "y" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportSwizzleNV, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkViewportSwizzleNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, y})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportSwizzleNV, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkViewportSwizzleNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportSwizzleNV, y}
+
+instance {-# OVERLAPPING #-} HasField "z" VkViewportSwizzleNV where
+        type FieldType "z" VkViewportSwizzleNV =
+             VkViewportCoordinateSwizzleNV
+        type FieldOptional "z" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "z" VkViewportSwizzleNV =
+             #{offset VkViewportSwizzleNV, z}
+        type FieldIsArray "z" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportSwizzleNV, z}
+
+instance {-# OVERLAPPING #-} CanReadField "z" VkViewportSwizzleNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, z})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportSwizzleNV, z}
+
+instance {-# OVERLAPPING #-} CanWriteField "z" VkViewportSwizzleNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportSwizzleNV, z}
+
+instance {-# OVERLAPPING #-} HasField "w" VkViewportSwizzleNV where
+        type FieldType "w" VkViewportSwizzleNV =
+             VkViewportCoordinateSwizzleNV
+        type FieldOptional "w" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "w" VkViewportSwizzleNV =
+             #{offset VkViewportSwizzleNV, w}
+        type FieldIsArray "w" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportSwizzleNV, w}
+
+instance {-# OVERLAPPING #-} CanReadField "w" VkViewportSwizzleNV
+         where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, w})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportSwizzleNV, w}
+
+instance {-# OVERLAPPING #-} CanWriteField "w" VkViewportSwizzleNV
+         where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportSwizzleNV, w}
+
+instance Show VkViewportSwizzleNV where
+        showsPrec d x
+          = showString "VkViewportSwizzleNV {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " .
+                      showsPrec d (getField @"y" x) .
+                        showString ", " .
+                          showString "z = " .
+                            showsPrec d (getField @"z" x) .
+                              showString ", " .
+                                showString "w = " . showsPrec d (getField @"w" x) . showChar '}'
+
+-- | > typedef struct VkViewportWScalingNV {
+--   >     float          xcoeff;
+--   >     float          ycoeff;
+--   > } VkViewportWScalingNV;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkViewportWScalingNV VkViewportWScalingNV registry at www.khronos.org>
+data VkViewportWScalingNV = VkViewportWScalingNV## Addr## ByteArray##
+
+instance Eq VkViewportWScalingNV where
+        (VkViewportWScalingNV## a _) == x@(VkViewportWScalingNV## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkViewportWScalingNV where
+        (VkViewportWScalingNV## a _) `compare` x@(VkViewportWScalingNV## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkViewportWScalingNV where
+        sizeOf ~_ = #{size VkViewportWScalingNV}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkViewportWScalingNV}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkViewportWScalingNV where
+        unsafeAddr (VkViewportWScalingNV## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkViewportWScalingNV## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkViewportWScalingNV## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkViewportWScalingNV where
+        type StructFields VkViewportWScalingNV = '["xcoeff", "ycoeff"] -- ' closing tick for hsc2hs
+        type CUnionType VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkViewportWScalingNV = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "xcoeff" VkViewportWScalingNV
+         where
+        type FieldType "xcoeff" VkViewportWScalingNV =
+             #{type float}
+        type FieldOptional "xcoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "xcoeff" VkViewportWScalingNV =
+             #{offset VkViewportWScalingNV, xcoeff}
+        type FieldIsArray "xcoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportWScalingNV, xcoeff}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "xcoeff" VkViewportWScalingNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportWScalingNV, xcoeff})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportWScalingNV, xcoeff}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "xcoeff" VkViewportWScalingNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportWScalingNV, xcoeff}
+
+instance {-# OVERLAPPING #-} HasField "ycoeff" VkViewportWScalingNV
+         where
+        type FieldType "ycoeff" VkViewportWScalingNV =
+             #{type float}
+        type FieldOptional "ycoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "ycoeff" VkViewportWScalingNV =
+             #{offset VkViewportWScalingNV, ycoeff}
+        type FieldIsArray "ycoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkViewportWScalingNV, ycoeff}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "ycoeff" VkViewportWScalingNV where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkViewportWScalingNV, ycoeff})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkViewportWScalingNV, ycoeff}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "ycoeff" VkViewportWScalingNV where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkViewportWScalingNV, ycoeff}
+
+instance Show VkViewportWScalingNV where
+        showsPrec d x
+          = showString "VkViewportWScalingNV {" .
+              showString "xcoeff = " .
+                showsPrec d (getField @"xcoeff" x) .
+                  showString ", " .
+                    showString "ycoeff = " .
+                      showsPrec d (getField @"ycoeff" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAcquireNextImageInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAcquireNextImageInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAcquireNextImageInfoKHR.hsc
+++ /dev/null
@@ -1,331 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR
-       (VkAcquireNextImageInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkFence,
-                                                             VkSemaphore,
-                                                             VkSwapchainKHR)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkAcquireNextImageInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSwapchainKHR swapchain;
---   >     uint64_t                         timeout;
---   >     VkSemaphore semaphore;
---   >     VkFence fence;
---   >     uint32_t                         deviceMask;
---   > } VkAcquireNextImageInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAcquireNextImageInfoKHR.html VkAcquireNextImageInfoKHR registry at www.khronos.org>
-data VkAcquireNextImageInfoKHR = VkAcquireNextImageInfoKHR## Addr##
-                                                            ByteArray##
-
-instance Eq VkAcquireNextImageInfoKHR where
-        (VkAcquireNextImageInfoKHR## a _) ==
-          x@(VkAcquireNextImageInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAcquireNextImageInfoKHR where
-        (VkAcquireNextImageInfoKHR## a _) `compare`
-          x@(VkAcquireNextImageInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAcquireNextImageInfoKHR where
-        sizeOf ~_ = #{size VkAcquireNextImageInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkAcquireNextImageInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAcquireNextImageInfoKHR where
-        unsafeAddr (VkAcquireNextImageInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAcquireNextImageInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAcquireNextImageInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAcquireNextImageInfoKHR where
-        type StructFields VkAcquireNextImageInfoKHR =
-             '["sType", "pNext", "swapchain", "timeout", "semaphore", "fence", -- ' closing tick for hsc2hs
-               "deviceMask"]
-        type CUnionType VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAcquireNextImageInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkAcquireNextImageInfoKHR where
-        type FieldType "sType" VkAcquireNextImageInfoKHR = VkStructureType
-        type FieldOptional "sType" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, sType}
-        type FieldIsArray "sType" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkAcquireNextImageInfoKHR where
-        type FieldType "pNext" VkAcquireNextImageInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, pNext}
-        type FieldIsArray "pNext" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchain" VkAcquireNextImageInfoKHR where
-        type FieldType "swapchain" VkAcquireNextImageInfoKHR =
-             VkSwapchainKHR
-        type FieldOptional "swapchain" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "swapchain" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, swapchain}
-        type FieldIsArray "swapchain" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchain" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, swapchain})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchain" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         HasField "timeout" VkAcquireNextImageInfoKHR where
-        type FieldType "timeout" VkAcquireNextImageInfoKHR = Word64
-        type FieldOptional "timeout" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "timeout" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, timeout}
-        type FieldIsArray "timeout" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, timeout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timeout" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, timeout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, timeout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timeout" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, timeout}
-
-instance {-# OVERLAPPING #-}
-         HasField "semaphore" VkAcquireNextImageInfoKHR where
-        type FieldType "semaphore" VkAcquireNextImageInfoKHR = VkSemaphore
-        type FieldOptional "semaphore" VkAcquireNextImageInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "semaphore" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, semaphore}
-        type FieldIsArray "semaphore" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "semaphore" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, semaphore})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "semaphore" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         HasField "fence" VkAcquireNextImageInfoKHR where
-        type FieldType "fence" VkAcquireNextImageInfoKHR = VkFence
-        type FieldOptional "fence" VkAcquireNextImageInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "fence" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, fence}
-        type FieldIsArray "fence" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fence" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, fence})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fence" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceMask" VkAcquireNextImageInfoKHR where
-        type FieldType "deviceMask" VkAcquireNextImageInfoKHR = Word32
-        type FieldOptional "deviceMask" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceMask" VkAcquireNextImageInfoKHR =
-             #{offset VkAcquireNextImageInfoKHR, deviceMask}
-        type FieldIsArray "deviceMask" VkAcquireNextImageInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAcquireNextImageInfoKHR, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceMask" VkAcquireNextImageInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAcquireNextImageInfoKHR, deviceMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAcquireNextImageInfoKHR, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceMask" VkAcquireNextImageInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAcquireNextImageInfoKHR, deviceMask}
-
-instance Show VkAcquireNextImageInfoKHR where
-        showsPrec d x
-          = showString "VkAcquireNextImageInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchain = " .
-                            showsPrec d (getField @"swapchain" x) .
-                              showString ", " .
-                                showString "timeout = " .
-                                  showsPrec d (getField @"timeout" x) .
-                                    showString ", " .
-                                      showString "semaphore = " .
-                                        showsPrec d (getField @"semaphore" x) .
-                                          showString ", " .
-                                            showString "fence = " .
-                                              showsPrec d (getField @"fence" x) .
-                                                showString ", " .
-                                                  showString "deviceMask = " .
-                                                    showsPrec d (getField @"deviceMask" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAllocationCallbacks.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAllocationCallbacks.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAllocationCallbacks.hsc
+++ /dev/null
@@ -1,299 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-       (VkAllocationCallbacks(..)) where
-import           Foreign.Storable                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Funcpointers (PFN_vkAllocationFunction,
-                                                     PFN_vkFreeFunction,
-                                                     PFN_vkInternalAllocationNotification,
-                                                     PFN_vkInternalFreeNotification,
-                                                     PFN_vkReallocationFunction)
-import           System.IO.Unsafe                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkAllocationCallbacks {
---   >     void*           pUserData;
---   >     PFN_vkAllocationFunction   pfnAllocation;
---   >     PFN_vkReallocationFunction pfnReallocation;
---   >     PFN_vkFreeFunction    pfnFree;
---   >     PFN_vkInternalAllocationNotification pfnInternalAllocation;
---   >     PFN_vkInternalFreeNotification pfnInternalFree;
---   > } VkAllocationCallbacks;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAllocationCallbacks.html VkAllocationCallbacks registry at www.khronos.org>
-data VkAllocationCallbacks = VkAllocationCallbacks## Addr##
-                                                    ByteArray##
-
-instance Eq VkAllocationCallbacks where
-        (VkAllocationCallbacks## a _) == x@(VkAllocationCallbacks## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAllocationCallbacks where
-        (VkAllocationCallbacks## a _) `compare`
-          x@(VkAllocationCallbacks## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAllocationCallbacks where
-        sizeOf ~_ = #{size VkAllocationCallbacks}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkAllocationCallbacks}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAllocationCallbacks where
-        unsafeAddr (VkAllocationCallbacks## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAllocationCallbacks## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAllocationCallbacks## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAllocationCallbacks where
-        type StructFields VkAllocationCallbacks =
-             '["pUserData", "pfnAllocation", "pfnReallocation", "pfnFree", -- ' closing tick for hsc2hs
-               "pfnInternalAllocation", "pfnInternalFree"]
-        type CUnionType VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAllocationCallbacks = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "pUserData" VkAllocationCallbacks where
-        type FieldType "pUserData" VkAllocationCallbacks = Ptr Void
-        type FieldOptional "pUserData" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pUserData" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pUserData}
-        type FieldIsArray "pUserData" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAllocationCallbacks, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pUserData" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pUserData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pUserData" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pUserData}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnAllocation" VkAllocationCallbacks where
-        type FieldType "pfnAllocation" VkAllocationCallbacks =
-             PFN_vkAllocationFunction
-        type FieldOptional "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pfnAllocation" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pfnAllocation}
-        type FieldIsArray "pfnAllocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAllocationCallbacks, pfnAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnAllocation" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pfnAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnAllocation" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pfnAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnReallocation" VkAllocationCallbacks where
-        type FieldType "pfnReallocation" VkAllocationCallbacks =
-             PFN_vkReallocationFunction
-        type FieldOptional "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pfnReallocation" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pfnReallocation}
-        type FieldIsArray "pfnReallocation" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAllocationCallbacks, pfnReallocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnReallocation" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnReallocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pfnReallocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnReallocation" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pfnReallocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnFree" VkAllocationCallbacks where
-        type FieldType "pfnFree" VkAllocationCallbacks = PFN_vkFreeFunction
-        type FieldOptional "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pfnFree" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pfnFree}
-        type FieldIsArray "pfnFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkAllocationCallbacks, pfnFree}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnFree" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnFree})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pfnFree}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnFree" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pfnFree}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnInternalAllocation" VkAllocationCallbacks where
-        type FieldType "pfnInternalAllocation" VkAllocationCallbacks =
-             PFN_vkInternalAllocationNotification
-        type FieldOptional "pfnInternalAllocation" VkAllocationCallbacks =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pfnInternalAllocation" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pfnInternalAllocation}
-        type FieldIsArray "pfnInternalAllocation" VkAllocationCallbacks =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAllocationCallbacks, pfnInternalAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnInternalAllocation" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnInternalAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pfnInternalAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnInternalAllocation" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pfnInternalAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnInternalFree" VkAllocationCallbacks where
-        type FieldType "pfnInternalFree" VkAllocationCallbacks =
-             PFN_vkInternalFreeNotification
-        type FieldOptional "pfnInternalFree" VkAllocationCallbacks = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pfnInternalFree" VkAllocationCallbacks =
-             #{offset VkAllocationCallbacks, pfnInternalFree}
-        type FieldIsArray "pfnInternalFree" VkAllocationCallbacks = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAllocationCallbacks, pfnInternalFree}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnInternalFree" VkAllocationCallbacks where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAllocationCallbacks, pfnInternalFree})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAllocationCallbacks, pfnInternalFree}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnInternalFree" VkAllocationCallbacks where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAllocationCallbacks, pfnInternalFree}
-
-instance Show VkAllocationCallbacks where
-        showsPrec d x
-          = showString "VkAllocationCallbacks {" .
-              showString "pUserData = " .
-                showsPrec d (getField @"pUserData" x) .
-                  showString ", " .
-                    showString "pfnAllocation = " .
-                      showsPrec d (getField @"pfnAllocation" x) .
-                        showString ", " .
-                          showString "pfnReallocation = " .
-                            showsPrec d (getField @"pfnReallocation" x) .
-                              showString ", " .
-                                showString "pfnFree = " .
-                                  showsPrec d (getField @"pfnFree" x) .
-                                    showString ", " .
-                                      showString "pfnInternalAllocation = " .
-                                        showsPrec d (getField @"pfnInternalAllocation" x) .
-                                          showString ", " .
-                                            showString "pfnInternalFree = " .
-                                              showsPrec d (getField @"pfnInternalFree" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferFormatPropertiesANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferFormatPropertiesANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferFormatPropertiesANDROID.hsc
+++ /dev/null
@@ -1,619 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferFormatPropertiesANDROID
-       (VkAndroidHardwareBufferFormatPropertiesANDROID(..)) where
-import           Foreign.Storable
-                                                                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkChromaLocation
-                                                                                        (VkChromaLocation)
-import           Graphics.Vulkan.Types.Enum.VkFormat
-                                                                                        (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-                                                                                        (VkFormatFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-                                                                                        (VkSamplerYcbcrModelConversion)
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-                                                                                        (VkSamplerYcbcrRange)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                        (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferPropertiesANDROID
-                                                                                        (VkAndroidHardwareBufferPropertiesANDROID)
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping
-                                                                                        (VkComponentMapping)
-import           System.IO.Unsafe
-                                                                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
---   >     VkStructureType sType;
---   >     void*                              pNext;
---   >     VkFormat                           format;
---   >     uint64_t                           externalFormat;
---   >     VkFormatFeatureFlags               formatFeatures;
---   >     VkComponentMapping                 samplerYcbcrConversionComponents;
---   >     VkSamplerYcbcrModelConversion      suggestedYcbcrModel;
---   >     VkSamplerYcbcrRange                suggestedYcbcrRange;
---   >     VkChromaLocation                   suggestedXChromaOffset;
---   >     VkChromaLocation                   suggestedYChromaOffset;
---   > } VkAndroidHardwareBufferFormatPropertiesANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAndroidHardwareBufferFormatPropertiesANDROID.html VkAndroidHardwareBufferFormatPropertiesANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferFormatPropertiesANDROID = VkAndroidHardwareBufferFormatPropertiesANDROID## Addr##
-                                                                                                      ByteArray##
-
-instance Eq VkAndroidHardwareBufferFormatPropertiesANDROID where
-        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) ==
-          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAndroidHardwareBufferFormatPropertiesANDROID where
-        (VkAndroidHardwareBufferFormatPropertiesANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferFormatPropertiesANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        sizeOf ~_
-          = #{size VkAndroidHardwareBufferFormatPropertiesANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkAndroidHardwareBufferFormatPropertiesANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferFormatPropertiesANDROID## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkAndroidHardwareBufferFormatPropertiesANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferFormatPropertiesANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type StructFields VkAndroidHardwareBufferFormatPropertiesANDROID =
-             '["sType", "pNext", "format", "externalFormat", "formatFeatures", -- ' closing tick for hsc2hs
-               "samplerYcbcrConversionComponents", "suggestedYcbcrModel",
-               "suggestedYcbcrRange", "suggestedXChromaOffset",
-               "suggestedYChromaOffset"]
-        type CUnionType VkAndroidHardwareBufferFormatPropertiesANDROID =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAndroidHardwareBufferFormatPropertiesANDROID =
-             'True -- ' closing tick for hsc2hs
-        type StructExtends VkAndroidHardwareBufferFormatPropertiesANDROID =
-             '[VkAndroidHardwareBufferPropertiesANDROID] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "sType"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkStructureType
-        type FieldOptional "sType"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
-        type FieldIsArray "sType"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "pNext"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
-        type FieldIsArray "pNext"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "format"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkFormat
-        type FieldOptional "format"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
-        type FieldIsArray "format"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalFormat"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "externalFormat"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = Word64
-        type FieldOptional "externalFormat"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "externalFormat"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
-        type FieldIsArray "externalFormat"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalFormat"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalFormat"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, externalFormat}
-
-instance {-# OVERLAPPING #-}
-         HasField "formatFeatures"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "formatFeatures"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkFormatFeatureFlags
-        type FieldOptional "formatFeatures"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "formatFeatures"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
-        type FieldIsArray "formatFeatures"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "formatFeatures"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "formatFeatures"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, formatFeatures}
-
-instance {-# OVERLAPPING #-}
-         HasField "samplerYcbcrConversionComponents"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "samplerYcbcrConversionComponents"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkComponentMapping
-        type FieldOptional "samplerYcbcrConversionComponents"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samplerYcbcrConversionComponents"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
-        type FieldIsArray "samplerYcbcrConversionComponents"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samplerYcbcrConversionComponents"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samplerYcbcrConversionComponents"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, samplerYcbcrConversionComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "suggestedYcbcrModel"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "suggestedYcbcrModel"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkSamplerYcbcrModelConversion
-        type FieldOptional "suggestedYcbcrModel"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "suggestedYcbcrModel"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
-        type FieldIsArray "suggestedYcbcrModel"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "suggestedYcbcrModel"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "suggestedYcbcrModel"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrModel}
-
-instance {-# OVERLAPPING #-}
-         HasField "suggestedYcbcrRange"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "suggestedYcbcrRange"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkSamplerYcbcrRange
-        type FieldOptional "suggestedYcbcrRange"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "suggestedYcbcrRange"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
-        type FieldIsArray "suggestedYcbcrRange"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "suggestedYcbcrRange"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "suggestedYcbcrRange"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYcbcrRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "suggestedXChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "suggestedXChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkChromaLocation
-        type FieldOptional "suggestedXChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "suggestedXChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
-        type FieldIsArray "suggestedXChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "suggestedXChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "suggestedXChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedXChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "suggestedYChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        type FieldType "suggestedYChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = VkChromaLocation
-        type FieldOptional "suggestedYChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "suggestedYChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
-        type FieldIsArray "suggestedYChromaOffset"
-               VkAndroidHardwareBufferFormatPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "suggestedYChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "suggestedYChromaOffset"
-           VkAndroidHardwareBufferFormatPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferFormatPropertiesANDROID, suggestedYChromaOffset}
-
-instance Show VkAndroidHardwareBufferFormatPropertiesANDROID where
-        showsPrec d x
-          = showString "VkAndroidHardwareBufferFormatPropertiesANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "externalFormat = " .
-                                  showsPrec d (getField @"externalFormat" x) .
-                                    showString ", " .
-                                      showString "formatFeatures = " .
-                                        showsPrec d (getField @"formatFeatures" x) .
-                                          showString ", " .
-                                            showString "samplerYcbcrConversionComponents = " .
-                                              showsPrec d
-                                                (getField @"samplerYcbcrConversionComponents" x)
-                                                .
-                                                showString ", " .
-                                                  showString "suggestedYcbcrModel = " .
-                                                    showsPrec d (getField @"suggestedYcbcrModel" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "suggestedYcbcrRange = " .
-                                                          showsPrec d
-                                                            (getField @"suggestedYcbcrRange" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "suggestedXChromaOffset = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"suggestedXChromaOffset"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "suggestedYChromaOffset = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"suggestedYChromaOffset"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferPropertiesANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferPropertiesANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferPropertiesANDROID.hsc
+++ /dev/null
@@ -1,259 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferPropertiesANDROID
-       (VkAndroidHardwareBufferPropertiesANDROID(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkAndroidHardwareBufferPropertiesANDROID {
---   >     VkStructureType sType;
---   >     void*                              pNext;
---   >     VkDeviceSize                       allocationSize;
---   >     uint32_t                           memoryTypeBits;
---   > } VkAndroidHardwareBufferPropertiesANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAndroidHardwareBufferPropertiesANDROID.html VkAndroidHardwareBufferPropertiesANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferPropertiesANDROID = VkAndroidHardwareBufferPropertiesANDROID## Addr##
-                                                                                          ByteArray##
-
-instance Eq VkAndroidHardwareBufferPropertiesANDROID where
-        (VkAndroidHardwareBufferPropertiesANDROID## a _) ==
-          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAndroidHardwareBufferPropertiesANDROID where
-        (VkAndroidHardwareBufferPropertiesANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferPropertiesANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAndroidHardwareBufferPropertiesANDROID where
-        sizeOf ~_
-          = #{size VkAndroidHardwareBufferPropertiesANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkAndroidHardwareBufferPropertiesANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAndroidHardwareBufferPropertiesANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferPropertiesANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidHardwareBufferPropertiesANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferPropertiesANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAndroidHardwareBufferPropertiesANDROID
-         where
-        type StructFields VkAndroidHardwareBufferPropertiesANDROID =
-             '["sType", "pNext", "allocationSize", "memoryTypeBits"] -- ' closing tick for hsc2hs
-        type CUnionType VkAndroidHardwareBufferPropertiesANDROID = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAndroidHardwareBufferPropertiesANDROID = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkAndroidHardwareBufferPropertiesANDROID = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkAndroidHardwareBufferPropertiesANDROID where
-        type FieldType "sType" VkAndroidHardwareBufferPropertiesANDROID =
-             VkStructureType
-        type FieldOptional "sType" VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkAndroidHardwareBufferPropertiesANDROID =
-             #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
-        type FieldIsArray "sType" VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkAndroidHardwareBufferPropertiesANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkAndroidHardwareBufferPropertiesANDROID where
-        type FieldType "pNext" VkAndroidHardwareBufferPropertiesANDROID =
-             Ptr Void
-        type FieldOptional "pNext" VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkAndroidHardwareBufferPropertiesANDROID =
-             #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
-        type FieldIsArray "pNext" VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkAndroidHardwareBufferPropertiesANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "allocationSize" VkAndroidHardwareBufferPropertiesANDROID
-         where
-        type FieldType "allocationSize"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = VkDeviceSize
-        type FieldOptional "allocationSize"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "allocationSize"
-               VkAndroidHardwareBufferPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
-        type FieldIsArray "allocationSize"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "allocationSize"
-           VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "allocationSize"
-           VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeBits" VkAndroidHardwareBufferPropertiesANDROID
-         where
-        type FieldType "memoryTypeBits"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = Word32
-        type FieldOptional "memoryTypeBits"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeBits"
-               VkAndroidHardwareBufferPropertiesANDROID
-             =
-             #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
-        type FieldIsArray "memoryTypeBits"
-               VkAndroidHardwareBufferPropertiesANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeBits"
-           VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeBits"
-           VkAndroidHardwareBufferPropertiesANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferPropertiesANDROID, memoryTypeBits}
-
-instance Show VkAndroidHardwareBufferPropertiesANDROID where
-        showsPrec d x
-          = showString "VkAndroidHardwareBufferPropertiesANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "allocationSize = " .
-                            showsPrec d (getField @"allocationSize" x) .
-                              showString ", " .
-                                showString "memoryTypeBits = " .
-                                  showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferUsageANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferUsageANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidHardwareBufferUsageANDROID.hsc
+++ /dev/null
@@ -1,209 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferUsageANDROID
-       (VkAndroidHardwareBufferUsageANDROID(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2 (VkImageFormatProperties2)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkAndroidHardwareBufferUsageANDROID {
---   >     VkStructureType sType;
---   >     void*                              pNext;
---   >     uint64_t                           androidHardwareBufferUsage;
---   > } VkAndroidHardwareBufferUsageANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAndroidHardwareBufferUsageANDROID.html VkAndroidHardwareBufferUsageANDROID registry at www.khronos.org>
-data VkAndroidHardwareBufferUsageANDROID = VkAndroidHardwareBufferUsageANDROID## Addr##
-                                                                                ByteArray##
-
-instance Eq VkAndroidHardwareBufferUsageANDROID where
-        (VkAndroidHardwareBufferUsageANDROID## a _) ==
-          x@(VkAndroidHardwareBufferUsageANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAndroidHardwareBufferUsageANDROID where
-        (VkAndroidHardwareBufferUsageANDROID## a _) `compare`
-          x@(VkAndroidHardwareBufferUsageANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAndroidHardwareBufferUsageANDROID where
-        sizeOf ~_ = #{size VkAndroidHardwareBufferUsageANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkAndroidHardwareBufferUsageANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAndroidHardwareBufferUsageANDROID
-         where
-        unsafeAddr (VkAndroidHardwareBufferUsageANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidHardwareBufferUsageANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidHardwareBufferUsageANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAndroidHardwareBufferUsageANDROID where
-        type StructFields VkAndroidHardwareBufferUsageANDROID =
-             '["sType", "pNext", "androidHardwareBufferUsage"] -- ' closing tick for hsc2hs
-        type CUnionType VkAndroidHardwareBufferUsageANDROID = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAndroidHardwareBufferUsageANDROID = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkAndroidHardwareBufferUsageANDROID =
-             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkAndroidHardwareBufferUsageANDROID where
-        type FieldType "sType" VkAndroidHardwareBufferUsageANDROID =
-             VkStructureType
-        type FieldOptional "sType" VkAndroidHardwareBufferUsageANDROID =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkAndroidHardwareBufferUsageANDROID =
-             #{offset VkAndroidHardwareBufferUsageANDROID, sType}
-        type FieldIsArray "sType" VkAndroidHardwareBufferUsageANDROID =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferUsageANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkAndroidHardwareBufferUsageANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkAndroidHardwareBufferUsageANDROID where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkAndroidHardwareBufferUsageANDROID where
-        type FieldType "pNext" VkAndroidHardwareBufferUsageANDROID =
-             Ptr Void
-        type FieldOptional "pNext" VkAndroidHardwareBufferUsageANDROID =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkAndroidHardwareBufferUsageANDROID =
-             #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
-        type FieldIsArray "pNext" VkAndroidHardwareBufferUsageANDROID =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkAndroidHardwareBufferUsageANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkAndroidHardwareBufferUsageANDROID where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "androidHardwareBufferUsage"
-           VkAndroidHardwareBufferUsageANDROID
-         where
-        type FieldType "androidHardwareBufferUsage"
-               VkAndroidHardwareBufferUsageANDROID
-             = Word64
-        type FieldOptional "androidHardwareBufferUsage"
-               VkAndroidHardwareBufferUsageANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "androidHardwareBufferUsage"
-               VkAndroidHardwareBufferUsageANDROID
-             =
-             #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
-        type FieldIsArray "androidHardwareBufferUsage"
-               VkAndroidHardwareBufferUsageANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "androidHardwareBufferUsage"
-           VkAndroidHardwareBufferUsageANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "androidHardwareBufferUsage"
-           VkAndroidHardwareBufferUsageANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidHardwareBufferUsageANDROID, androidHardwareBufferUsage}
-
-instance Show VkAndroidHardwareBufferUsageANDROID where
-        showsPrec d x
-          = showString "VkAndroidHardwareBufferUsageANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "androidHardwareBufferUsage = " .
-                            showsPrec d (getField @"androidHardwareBufferUsage" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidSurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidSurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAndroidSurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,225 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAndroidSurfaceCreateInfoKHR
-       (VkAndroidSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkAndroidSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Defines              (ANativeWindow)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkAndroidSurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                                    pNext;
---   >     VkAndroidSurfaceCreateFlagsKHR flags;
---   >     struct ANativeWindow*    window;
---   > } VkAndroidSurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAndroidSurfaceCreateInfoKHR.html VkAndroidSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkAndroidSurfaceCreateInfoKHR = VkAndroidSurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkAndroidSurfaceCreateInfoKHR where
-        (VkAndroidSurfaceCreateInfoKHR## a _) ==
-          x@(VkAndroidSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAndroidSurfaceCreateInfoKHR where
-        (VkAndroidSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkAndroidSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAndroidSurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkAndroidSurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkAndroidSurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAndroidSurfaceCreateInfoKHR where
-        unsafeAddr (VkAndroidSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAndroidSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAndroidSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAndroidSurfaceCreateInfoKHR where
-        type StructFields VkAndroidSurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "window"] -- ' closing tick for hsc2hs
-        type CUnionType VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAndroidSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkAndroidSurfaceCreateInfoKHR where
-        type FieldType "sType" VkAndroidSurfaceCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkAndroidSurfaceCreateInfoKHR =
-             #{offset VkAndroidSurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkAndroidSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkAndroidSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkAndroidSurfaceCreateInfoKHR where
-        type FieldType "pNext" VkAndroidSurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkAndroidSurfaceCreateInfoKHR =
-             #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkAndroidSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkAndroidSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkAndroidSurfaceCreateInfoKHR where
-        type FieldType "flags" VkAndroidSurfaceCreateInfoKHR =
-             VkAndroidSurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkAndroidSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkAndroidSurfaceCreateInfoKHR =
-             #{offset VkAndroidSurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkAndroidSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkAndroidSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "window" VkAndroidSurfaceCreateInfoKHR where
-        type FieldType "window" VkAndroidSurfaceCreateInfoKHR =
-             Ptr ANativeWindow
-        type FieldOptional "window" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "window" VkAndroidSurfaceCreateInfoKHR =
-             #{offset VkAndroidSurfaceCreateInfoKHR, window}
-        type FieldIsArray "window" VkAndroidSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAndroidSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "window" VkAndroidSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAndroidSurfaceCreateInfoKHR, window})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "window" VkAndroidSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAndroidSurfaceCreateInfoKHR, window}
-
-instance Show VkAndroidSurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkAndroidSurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "window = " .
-                                  showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkApplicationInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkApplicationInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkApplicationInfo.hsc
+++ /dev/null
@@ -1,321 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkApplicationInfo
-       (VkApplicationInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkApplicationInfo {
---   >     VkStructureType sType;
---   >     const void*     pNext;
---   >     const char*     pApplicationName;
---   >     uint32_t        applicationVersion;
---   >     const char*     pEngineName;
---   >     uint32_t        engineVersion;
---   >     uint32_t        apiVersion;
---   > } VkApplicationInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkApplicationInfo.html VkApplicationInfo registry at www.khronos.org>
-data VkApplicationInfo = VkApplicationInfo## Addr## ByteArray##
-
-instance Eq VkApplicationInfo where
-        (VkApplicationInfo## a _) == x@(VkApplicationInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkApplicationInfo where
-        (VkApplicationInfo## a _) `compare` x@(VkApplicationInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkApplicationInfo where
-        sizeOf ~_ = #{size VkApplicationInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkApplicationInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkApplicationInfo where
-        unsafeAddr (VkApplicationInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkApplicationInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkApplicationInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkApplicationInfo where
-        type StructFields VkApplicationInfo =
-             '["sType", "pNext", "pApplicationName", "applicationVersion", -- ' closing tick for hsc2hs
-               "pEngineName", "engineVersion", "apiVersion"]
-        type CUnionType VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkApplicationInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkApplicationInfo
-         where
-        type FieldType "sType" VkApplicationInfo = VkStructureType
-        type FieldOptional "sType" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkApplicationInfo =
-             #{offset VkApplicationInfo, sType}
-        type FieldIsArray "sType" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkApplicationInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkApplicationInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkApplicationInfo
-         where
-        type FieldType "pNext" VkApplicationInfo = Ptr Void
-        type FieldOptional "pNext" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkApplicationInfo =
-             #{offset VkApplicationInfo, pNext}
-        type FieldIsArray "pNext" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkApplicationInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkApplicationInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pApplicationName" VkApplicationInfo where
-        type FieldType "pApplicationName" VkApplicationInfo = CString
-        type FieldOptional "pApplicationName" VkApplicationInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pApplicationName" VkApplicationInfo =
-             #{offset VkApplicationInfo, pApplicationName}
-        type FieldIsArray "pApplicationName" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkApplicationInfo, pApplicationName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pApplicationName" VkApplicationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pApplicationName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, pApplicationName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pApplicationName" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, pApplicationName}
-
-instance {-# OVERLAPPING #-}
-         HasField "applicationVersion" VkApplicationInfo where
-        type FieldType "applicationVersion" VkApplicationInfo = Word32
-        type FieldOptional "applicationVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "applicationVersion" VkApplicationInfo =
-             #{offset VkApplicationInfo, applicationVersion}
-        type FieldIsArray "applicationVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkApplicationInfo, applicationVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "applicationVersion" VkApplicationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, applicationVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, applicationVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "applicationVersion" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, applicationVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "pEngineName" VkApplicationInfo where
-        type FieldType "pEngineName" VkApplicationInfo = CString
-        type FieldOptional "pEngineName" VkApplicationInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pEngineName" VkApplicationInfo =
-             #{offset VkApplicationInfo, pEngineName}
-        type FieldIsArray "pEngineName" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkApplicationInfo, pEngineName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pEngineName" VkApplicationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, pEngineName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, pEngineName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pEngineName" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, pEngineName}
-
-instance {-# OVERLAPPING #-}
-         HasField "engineVersion" VkApplicationInfo where
-        type FieldType "engineVersion" VkApplicationInfo = Word32
-        type FieldOptional "engineVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "engineVersion" VkApplicationInfo =
-             #{offset VkApplicationInfo, engineVersion}
-        type FieldIsArray "engineVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkApplicationInfo, engineVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "engineVersion" VkApplicationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, engineVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, engineVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "engineVersion" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, engineVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "apiVersion" VkApplicationInfo where
-        type FieldType "apiVersion" VkApplicationInfo = Word32
-        type FieldOptional "apiVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "apiVersion" VkApplicationInfo =
-             #{offset VkApplicationInfo, apiVersion}
-        type FieldIsArray "apiVersion" VkApplicationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkApplicationInfo, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "apiVersion" VkApplicationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkApplicationInfo, apiVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkApplicationInfo, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "apiVersion" VkApplicationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkApplicationInfo, apiVersion}
-
-instance Show VkApplicationInfo where
-        showsPrec d x
-          = showString "VkApplicationInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pApplicationName = " .
-                            showsPrec d (getField @"pApplicationName" x) .
-                              showString ", " .
-                                showString "applicationVersion = " .
-                                  showsPrec d (getField @"applicationVersion" x) .
-                                    showString ", " .
-                                      showString "pEngineName = " .
-                                        showsPrec d (getField @"pEngineName" x) .
-                                          showString ", " .
-                                            showString "engineVersion = " .
-                                              showsPrec d (getField @"engineVersion" x) .
-                                                showString ", " .
-                                                  showString "apiVersion = " .
-                                                    showsPrec d (getField @"apiVersion" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentDescription.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentDescription.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentDescription.hsc
+++ /dev/null
@@ -1,411 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAttachmentDescription
-       (VkAttachmentDescription(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags (VkAttachmentDescriptionFlags)
-import           Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp           (VkAttachmentLoadOp)
-import           Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp          (VkAttachmentStoreOp)
-import           Graphics.Vulkan.Types.Enum.VkFormat                     (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageLayout                (VkImageLayout)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags           (VkSampleCountFlagBits)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkAttachmentDescription {
---   >     VkAttachmentDescriptionFlags flags;
---   >     VkFormat               format;
---   >     VkSampleCountFlagBits  samples;
---   >     VkAttachmentLoadOp     loadOp;
---   >     VkAttachmentStoreOp    storeOp;
---   >     VkAttachmentLoadOp     stencilLoadOp;
---   >     VkAttachmentStoreOp    stencilStoreOp;
---   >     VkImageLayout          initialLayout;
---   >     VkImageLayout          finalLayout;
---   > } VkAttachmentDescription;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAttachmentDescription.html VkAttachmentDescription registry at www.khronos.org>
-data VkAttachmentDescription = VkAttachmentDescription## Addr##
-                                                        ByteArray##
-
-instance Eq VkAttachmentDescription where
-        (VkAttachmentDescription## a _) == x@(VkAttachmentDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAttachmentDescription where
-        (VkAttachmentDescription## a _) `compare`
-          x@(VkAttachmentDescription## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAttachmentDescription where
-        sizeOf ~_ = #{size VkAttachmentDescription}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkAttachmentDescription}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAttachmentDescription where
-        unsafeAddr (VkAttachmentDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentDescription## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAttachmentDescription where
-        type StructFields VkAttachmentDescription =
-             '["flags", "format", "samples", "loadOp", "storeOp", -- ' closing tick for hsc2hs
-               "stencilLoadOp", "stencilStoreOp", "initialLayout", "finalLayout"]
-        type CUnionType VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAttachmentDescription = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkAttachmentDescription where
-        type FieldType "flags" VkAttachmentDescription =
-             VkAttachmentDescriptionFlags
-        type FieldOptional "flags" VkAttachmentDescription = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, flags}
-        type FieldIsArray "flags" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkAttachmentDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkAttachmentDescription where
-        type FieldType "format" VkAttachmentDescription = VkFormat
-        type FieldOptional "format" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, format}
-        type FieldIsArray "format" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkAttachmentDescription, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "samples" VkAttachmentDescription where
-        type FieldType "samples" VkAttachmentDescription =
-             VkSampleCountFlagBits
-        type FieldOptional "samples" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samples" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, samples}
-        type FieldIsArray "samples" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samples" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samples" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "loadOp" VkAttachmentDescription where
-        type FieldType "loadOp" VkAttachmentDescription =
-             VkAttachmentLoadOp
-        type FieldOptional "loadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "loadOp" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, loadOp}
-        type FieldIsArray "loadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkAttachmentDescription, loadOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "loadOp" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, loadOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, loadOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "loadOp" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, loadOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "storeOp" VkAttachmentDescription where
-        type FieldType "storeOp" VkAttachmentDescription =
-             VkAttachmentStoreOp
-        type FieldOptional "storeOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storeOp" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, storeOp}
-        type FieldIsArray "storeOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, storeOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storeOp" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, storeOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, storeOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storeOp" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, storeOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "stencilLoadOp" VkAttachmentDescription where
-        type FieldType "stencilLoadOp" VkAttachmentDescription =
-             VkAttachmentLoadOp
-        type FieldOptional "stencilLoadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stencilLoadOp" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, stencilLoadOp}
-        type FieldIsArray "stencilLoadOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, stencilLoadOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stencilLoadOp" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, stencilLoadOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, stencilLoadOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stencilLoadOp" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, stencilLoadOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "stencilStoreOp" VkAttachmentDescription where
-        type FieldType "stencilStoreOp" VkAttachmentDescription =
-             VkAttachmentStoreOp
-        type FieldOptional "stencilStoreOp" VkAttachmentDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stencilStoreOp" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, stencilStoreOp}
-        type FieldIsArray "stencilStoreOp" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, stencilStoreOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stencilStoreOp" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, stencilStoreOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, stencilStoreOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stencilStoreOp" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, stencilStoreOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "initialLayout" VkAttachmentDescription where
-        type FieldType "initialLayout" VkAttachmentDescription =
-             VkImageLayout
-        type FieldOptional "initialLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "initialLayout" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, initialLayout}
-        type FieldIsArray "initialLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, initialLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "initialLayout" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, initialLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, initialLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "initialLayout" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, initialLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "finalLayout" VkAttachmentDescription where
-        type FieldType "finalLayout" VkAttachmentDescription =
-             VkImageLayout
-        type FieldOptional "finalLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "finalLayout" VkAttachmentDescription =
-             #{offset VkAttachmentDescription, finalLayout}
-        type FieldIsArray "finalLayout" VkAttachmentDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentDescription, finalLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "finalLayout" VkAttachmentDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentDescription, finalLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentDescription, finalLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "finalLayout" VkAttachmentDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentDescription, finalLayout}
-
-instance Show VkAttachmentDescription where
-        showsPrec d x
-          = showString "VkAttachmentDescription {" .
-              showString "flags = " .
-                showsPrec d (getField @"flags" x) .
-                  showString ", " .
-                    showString "format = " .
-                      showsPrec d (getField @"format" x) .
-                        showString ", " .
-                          showString "samples = " .
-                            showsPrec d (getField @"samples" x) .
-                              showString ", " .
-                                showString "loadOp = " .
-                                  showsPrec d (getField @"loadOp" x) .
-                                    showString ", " .
-                                      showString "storeOp = " .
-                                        showsPrec d (getField @"storeOp" x) .
-                                          showString ", " .
-                                            showString "stencilLoadOp = " .
-                                              showsPrec d (getField @"stencilLoadOp" x) .
-                                                showString ", " .
-                                                  showString "stencilStoreOp = " .
-                                                    showsPrec d (getField @"stencilStoreOp" x) .
-                                                      showString ", " .
-                                                        showString "initialLayout = " .
-                                                          showsPrec d (getField @"initialLayout" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "finalLayout = " .
-                                                                showsPrec d
-                                                                  (getField @"finalLayout" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentReference.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentReference.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentReference.hsc
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAttachmentReference
-       (VkAttachmentReference(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageLayout (VkImageLayout)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkAttachmentReference {
---   >     uint32_t               attachment;
---   >     VkImageLayout          layout;
---   > } VkAttachmentReference;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAttachmentReference.html VkAttachmentReference registry at www.khronos.org>
-data VkAttachmentReference = VkAttachmentReference## Addr##
-                                                    ByteArray##
-
-instance Eq VkAttachmentReference where
-        (VkAttachmentReference## a _) == x@(VkAttachmentReference## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAttachmentReference where
-        (VkAttachmentReference## a _) `compare`
-          x@(VkAttachmentReference## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAttachmentReference where
-        sizeOf ~_ = #{size VkAttachmentReference}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkAttachmentReference}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAttachmentReference where
-        unsafeAddr (VkAttachmentReference## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentReference## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentReference## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAttachmentReference where
-        type StructFields VkAttachmentReference = '["attachment", "layout"] -- ' closing tick for hsc2hs
-        type CUnionType VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAttachmentReference = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "attachment" VkAttachmentReference where
-        type FieldType "attachment" VkAttachmentReference = Word32
-        type FieldOptional "attachment" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "attachment" VkAttachmentReference =
-             #{offset VkAttachmentReference, attachment}
-        type FieldIsArray "attachment" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentReference, attachment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachment" VkAttachmentReference where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentReference, attachment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentReference, attachment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachment" VkAttachmentReference where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentReference, attachment}
-
-instance {-# OVERLAPPING #-}
-         HasField "layout" VkAttachmentReference where
-        type FieldType "layout" VkAttachmentReference = VkImageLayout
-        type FieldOptional "layout" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layout" VkAttachmentReference =
-             #{offset VkAttachmentReference, layout}
-        type FieldIsArray "layout" VkAttachmentReference = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkAttachmentReference, layout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layout" VkAttachmentReference where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentReference, layout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentReference, layout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layout" VkAttachmentReference where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentReference, layout}
-
-instance Show VkAttachmentReference where
-        showsPrec d x
-          = showString "VkAttachmentReference {" .
-              showString "attachment = " .
-                showsPrec d (getField @"attachment" x) .
-                  showString ", " .
-                    showString "layout = " .
-                      showsPrec d (getField @"layout" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentSampleLocationsEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentSampleLocationsEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkAttachmentSampleLocationsEXT.hsc
+++ /dev/null
@@ -1,161 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkAttachmentSampleLocationsEXT
-       (VkAttachmentSampleLocationsEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT (VkSampleLocationsInfoEXT)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkAttachmentSampleLocationsEXT {
---   >     uint32_t                         attachmentIndex;
---   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
---   > } VkAttachmentSampleLocationsEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkAttachmentSampleLocationsEXT.html VkAttachmentSampleLocationsEXT registry at www.khronos.org>
-data VkAttachmentSampleLocationsEXT = VkAttachmentSampleLocationsEXT## Addr##
-                                                                      ByteArray##
-
-instance Eq VkAttachmentSampleLocationsEXT where
-        (VkAttachmentSampleLocationsEXT## a _) ==
-          x@(VkAttachmentSampleLocationsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkAttachmentSampleLocationsEXT where
-        (VkAttachmentSampleLocationsEXT## a _) `compare`
-          x@(VkAttachmentSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkAttachmentSampleLocationsEXT where
-        sizeOf ~_ = #{size VkAttachmentSampleLocationsEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkAttachmentSampleLocationsEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkAttachmentSampleLocationsEXT where
-        unsafeAddr (VkAttachmentSampleLocationsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkAttachmentSampleLocationsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkAttachmentSampleLocationsEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkAttachmentSampleLocationsEXT where
-        type StructFields VkAttachmentSampleLocationsEXT =
-             '["attachmentIndex", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
-        type CUnionType VkAttachmentSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkAttachmentSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkAttachmentSampleLocationsEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "attachmentIndex" VkAttachmentSampleLocationsEXT where
-        type FieldType "attachmentIndex" VkAttachmentSampleLocationsEXT =
-             Word32
-        type FieldOptional "attachmentIndex" VkAttachmentSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "attachmentIndex" VkAttachmentSampleLocationsEXT =
-             #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
-        type FieldIsArray "attachmentIndex" VkAttachmentSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachmentIndex" VkAttachmentSampleLocationsEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentSampleLocationsEXT, attachmentIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachmentIndex" VkAttachmentSampleLocationsEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentSampleLocationsEXT, attachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT where
-        type FieldType "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
-             = VkSampleLocationsInfoEXT
-        type FieldOptional "sampleLocationsInfo"
-               VkAttachmentSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsInfo"
-               VkAttachmentSampleLocationsEXT
-             =
-             #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
-        type FieldIsArray "sampleLocationsInfo"
-               VkAttachmentSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsInfo" VkAttachmentSampleLocationsEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkAttachmentSampleLocationsEXT, sampleLocationsInfo}
-
-instance Show VkAttachmentSampleLocationsEXT where
-        showsPrec d x
-          = showString "VkAttachmentSampleLocationsEXT {" .
-              showString "attachmentIndex = " .
-                showsPrec d (getField @"attachmentIndex" x) .
-                  showString ", " .
-                    showString "sampleLocationsInfo = " .
-                      showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfo.hsc
+++ /dev/null
@@ -1,245 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfo
-       (VkBindBufferMemoryDeviceGroupInfo(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo (VkBindBufferMemoryInfo)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindBufferMemoryDeviceGroupInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         deviceIndexCount;
---   >     const uint32_t*  pDeviceIndices;
---   > } VkBindBufferMemoryDeviceGroupInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindBufferMemoryDeviceGroupInfo.html VkBindBufferMemoryDeviceGroupInfo registry at www.khronos.org>
-data VkBindBufferMemoryDeviceGroupInfo = VkBindBufferMemoryDeviceGroupInfo## Addr##
-                                                                            ByteArray##
-
-instance Eq VkBindBufferMemoryDeviceGroupInfo where
-        (VkBindBufferMemoryDeviceGroupInfo## a _) ==
-          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindBufferMemoryDeviceGroupInfo where
-        (VkBindBufferMemoryDeviceGroupInfo## a _) `compare`
-          x@(VkBindBufferMemoryDeviceGroupInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindBufferMemoryDeviceGroupInfo where
-        sizeOf ~_ = #{size VkBindBufferMemoryDeviceGroupInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkBindBufferMemoryDeviceGroupInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindBufferMemoryDeviceGroupInfo where
-        unsafeAddr (VkBindBufferMemoryDeviceGroupInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindBufferMemoryDeviceGroupInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindBufferMemoryDeviceGroupInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindBufferMemoryDeviceGroupInfo where
-        type StructFields VkBindBufferMemoryDeviceGroupInfo =
-             '["sType", "pNext", "deviceIndexCount", "pDeviceIndices"] -- ' closing tick for hsc2hs
-        type CUnionType VkBindBufferMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindBufferMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindBufferMemoryDeviceGroupInfo =
-             '[VkBindBufferMemoryInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBindBufferMemoryDeviceGroupInfo where
-        type FieldType "sType" VkBindBufferMemoryDeviceGroupInfo =
-             VkStructureType
-        type FieldOptional "sType" VkBindBufferMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindBufferMemoryDeviceGroupInfo =
-             #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
-        type FieldIsArray "sType" VkBindBufferMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindBufferMemoryDeviceGroupInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindBufferMemoryDeviceGroupInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBindBufferMemoryDeviceGroupInfo where
-        type FieldType "pNext" VkBindBufferMemoryDeviceGroupInfo = Ptr Void
-        type FieldOptional "pNext" VkBindBufferMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindBufferMemoryDeviceGroupInfo =
-             #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
-        type FieldIsArray "pNext" VkBindBufferMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindBufferMemoryDeviceGroupInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindBufferMemoryDeviceGroupInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo where
-        type FieldType "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
-             = Word32
-        type FieldOptional "deviceIndexCount"
-               VkBindBufferMemoryDeviceGroupInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "deviceIndexCount"
-               VkBindBufferMemoryDeviceGroupInfo
-             =
-             #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
-        type FieldIsArray "deviceIndexCount"
-               VkBindBufferMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceIndexCount" VkBindBufferMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo where
-        type FieldType "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo =
-             Ptr Word32
-        type FieldOptional "pDeviceIndices"
-               VkBindBufferMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
-             =
-             #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
-        type FieldIsArray "pDeviceIndices"
-               VkBindBufferMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDeviceIndices" VkBindBufferMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance Show VkBindBufferMemoryDeviceGroupInfo where
-        showsPrec d x
-          = showString "VkBindBufferMemoryDeviceGroupInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "deviceIndexCount = " .
-                            showsPrec d (getField @"deviceIndexCount" x) .
-                              showString ", " .
-                                showString "pDeviceIndices = " .
-                                  showsPrec d (getField @"pDeviceIndices" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryDeviceGroupInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfoKHR
-       (VkBindBufferMemoryDeviceGroupInfo(..),
-        VkBindBufferMemoryDeviceGroupInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfo (VkBindBufferMemoryDeviceGroupInfo (..))
-
--- | Alias for `VkBindBufferMemoryDeviceGroupInfo`
-type VkBindBufferMemoryDeviceGroupInfoKHR =
-     VkBindBufferMemoryDeviceGroupInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfo.hsc
+++ /dev/null
@@ -1,251 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo
-       (VkBindBufferMemoryInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkBuffer,
-                                                             VkDeviceMemory)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindBufferMemoryInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBuffer                         buffer;
---   >     VkDeviceMemory                   memory;
---   >     VkDeviceSize                     memoryOffset;
---   > } VkBindBufferMemoryInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindBufferMemoryInfo.html VkBindBufferMemoryInfo registry at www.khronos.org>
-data VkBindBufferMemoryInfo = VkBindBufferMemoryInfo## Addr##
-                                                      ByteArray##
-
-instance Eq VkBindBufferMemoryInfo where
-        (VkBindBufferMemoryInfo## a _) == x@(VkBindBufferMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindBufferMemoryInfo where
-        (VkBindBufferMemoryInfo## a _) `compare`
-          x@(VkBindBufferMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindBufferMemoryInfo where
-        sizeOf ~_ = #{size VkBindBufferMemoryInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBindBufferMemoryInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindBufferMemoryInfo where
-        unsafeAddr (VkBindBufferMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindBufferMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindBufferMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindBufferMemoryInfo where
-        type StructFields VkBindBufferMemoryInfo =
-             '["sType", "pNext", "buffer", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
-        type CUnionType VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindBufferMemoryInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBindBufferMemoryInfo where
-        type FieldType "sType" VkBindBufferMemoryInfo = VkStructureType
-        type FieldOptional "sType" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindBufferMemoryInfo =
-             #{offset VkBindBufferMemoryInfo, sType}
-        type FieldIsArray "sType" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindBufferMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindBufferMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindBufferMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBindBufferMemoryInfo where
-        type FieldType "pNext" VkBindBufferMemoryInfo = Ptr Void
-        type FieldOptional "pNext" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindBufferMemoryInfo =
-             #{offset VkBindBufferMemoryInfo, pNext}
-        type FieldIsArray "pNext" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindBufferMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindBufferMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindBufferMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkBindBufferMemoryInfo where
-        type FieldType "buffer" VkBindBufferMemoryInfo = VkBuffer
-        type FieldOptional "buffer" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkBindBufferMemoryInfo =
-             #{offset VkBindBufferMemoryInfo, buffer}
-        type FieldIsArray "buffer" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindBufferMemoryInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkBindBufferMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkBindBufferMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "memory" VkBindBufferMemoryInfo where
-        type FieldType "memory" VkBindBufferMemoryInfo = VkDeviceMemory
-        type FieldOptional "memory" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkBindBufferMemoryInfo =
-             #{offset VkBindBufferMemoryInfo, memory}
-        type FieldIsArray "memory" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindBufferMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkBindBufferMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkBindBufferMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryOffset" VkBindBufferMemoryInfo where
-        type FieldType "memoryOffset" VkBindBufferMemoryInfo = VkDeviceSize
-        type FieldOptional "memoryOffset" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryOffset" VkBindBufferMemoryInfo =
-             #{offset VkBindBufferMemoryInfo, memoryOffset}
-        type FieldIsArray "memoryOffset" VkBindBufferMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindBufferMemoryInfo, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryOffset" VkBindBufferMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindBufferMemoryInfo, memoryOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindBufferMemoryInfo, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryOffset" VkBindBufferMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindBufferMemoryInfo, memoryOffset}
-
-instance Show VkBindBufferMemoryInfo where
-        showsPrec d x
-          = showString "VkBindBufferMemoryInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "buffer = " .
-                            showsPrec d (getField @"buffer" x) .
-                              showString ", " .
-                                showString "memory = " .
-                                  showsPrec d (getField @"memory" x) .
-                                    showString ", " .
-                                      showString "memoryOffset = " .
-                                        showsPrec d (getField @"memoryOffset" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindBufferMemoryInfoKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfoKHR
-       (VkBindBufferMemoryInfo(..), VkBindBufferMemoryInfoKHR) where
-import           Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo (VkBindBufferMemoryInfo (..))
-
--- | Alias for `VkBindBufferMemoryInfo`
-type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfo.hsc
+++ /dev/null
@@ -1,345 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfo
-       (VkBindImageMemoryDeviceGroupInfo(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo (VkBindImageMemoryInfo)
-import           Graphics.Vulkan.Types.Struct.VkRect2D              (VkRect2D)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindImageMemoryDeviceGroupInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         deviceIndexCount;
---   >     const uint32_t*  pDeviceIndices;
---   >     uint32_t         splitInstanceBindRegionCount;
---   >     const VkRect2D*  pSplitInstanceBindRegions;
---   > } VkBindImageMemoryDeviceGroupInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindImageMemoryDeviceGroupInfo.html VkBindImageMemoryDeviceGroupInfo registry at www.khronos.org>
-data VkBindImageMemoryDeviceGroupInfo = VkBindImageMemoryDeviceGroupInfo## Addr##
-                                                                          ByteArray##
-
-instance Eq VkBindImageMemoryDeviceGroupInfo where
-        (VkBindImageMemoryDeviceGroupInfo## a _) ==
-          x@(VkBindImageMemoryDeviceGroupInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindImageMemoryDeviceGroupInfo where
-        (VkBindImageMemoryDeviceGroupInfo## a _) `compare`
-          x@(VkBindImageMemoryDeviceGroupInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindImageMemoryDeviceGroupInfo where
-        sizeOf ~_ = #{size VkBindImageMemoryDeviceGroupInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkBindImageMemoryDeviceGroupInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindImageMemoryDeviceGroupInfo where
-        unsafeAddr (VkBindImageMemoryDeviceGroupInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemoryDeviceGroupInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemoryDeviceGroupInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindImageMemoryDeviceGroupInfo where
-        type StructFields VkBindImageMemoryDeviceGroupInfo =
-             '["sType", "pNext", "deviceIndexCount", "pDeviceIndices", -- ' closing tick for hsc2hs
-               "splitInstanceBindRegionCount", "pSplitInstanceBindRegions"]
-        type CUnionType VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindImageMemoryDeviceGroupInfo =
-             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBindImageMemoryDeviceGroupInfo where
-        type FieldType "sType" VkBindImageMemoryDeviceGroupInfo =
-             VkStructureType
-        type FieldOptional "sType" VkBindImageMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindImageMemoryDeviceGroupInfo =
-             #{offset VkBindImageMemoryDeviceGroupInfo, sType}
-        type FieldIsArray "sType" VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindImageMemoryDeviceGroupInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindImageMemoryDeviceGroupInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBindImageMemoryDeviceGroupInfo where
-        type FieldType "pNext" VkBindImageMemoryDeviceGroupInfo = Ptr Void
-        type FieldOptional "pNext" VkBindImageMemoryDeviceGroupInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindImageMemoryDeviceGroupInfo =
-             #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
-        type FieldIsArray "pNext" VkBindImageMemoryDeviceGroupInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindImageMemoryDeviceGroupInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindImageMemoryDeviceGroupInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo where
-        type FieldType "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
-             = Word32
-        type FieldOptional "deviceIndexCount"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "deviceIndexCount"
-               VkBindImageMemoryDeviceGroupInfo
-             =
-             #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
-        type FieldIsArray "deviceIndexCount"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceIndexCount" VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, deviceIndexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo where
-        type FieldType "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo =
-             Ptr Word32
-        type FieldOptional "pDeviceIndices"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
-             =
-             #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
-        type FieldIsArray "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDeviceIndices" VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         HasField "splitInstanceBindRegionCount"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        type FieldType "splitInstanceBindRegionCount"
-               VkBindImageMemoryDeviceGroupInfo
-             = Word32
-        type FieldOptional "splitInstanceBindRegionCount"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "splitInstanceBindRegionCount"
-               VkBindImageMemoryDeviceGroupInfo
-             =
-             #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
-        type FieldIsArray "splitInstanceBindRegionCount"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "splitInstanceBindRegionCount"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "splitInstanceBindRegionCount"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, splitInstanceBindRegionCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSplitInstanceBindRegions"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        type FieldType "pSplitInstanceBindRegions"
-               VkBindImageMemoryDeviceGroupInfo
-             = Ptr VkRect2D
-        type FieldOptional "pSplitInstanceBindRegions"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSplitInstanceBindRegions"
-               VkBindImageMemoryDeviceGroupInfo
-             =
-             #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
-        type FieldIsArray "pSplitInstanceBindRegions"
-               VkBindImageMemoryDeviceGroupInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSplitInstanceBindRegions"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSplitInstanceBindRegions"
-           VkBindImageMemoryDeviceGroupInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryDeviceGroupInfo, pSplitInstanceBindRegions}
-
-instance Show VkBindImageMemoryDeviceGroupInfo where
-        showsPrec d x
-          = showString "VkBindImageMemoryDeviceGroupInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "deviceIndexCount = " .
-                            showsPrec d (getField @"deviceIndexCount" x) .
-                              showString ", " .
-                                showString "pDeviceIndices = " .
-                                  showsPrec d (getField @"pDeviceIndices" x) .
-                                    showString ", " .
-                                      showString "splitInstanceBindRegionCount = " .
-                                        showsPrec d (getField @"splitInstanceBindRegionCount" x) .
-                                          showString ", " .
-                                            showString "pSplitInstanceBindRegions = " .
-                                              showsPrec d (getField @"pSplitInstanceBindRegions" x)
-                                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryDeviceGroupInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfoKHR
-       (VkBindImageMemoryDeviceGroupInfo(..),
-        VkBindImageMemoryDeviceGroupInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfo (VkBindImageMemoryDeviceGroupInfo (..))
-
--- | Alias for `VkBindImageMemoryDeviceGroupInfo`
-type VkBindImageMemoryDeviceGroupInfoKHR =
-     VkBindImageMemoryDeviceGroupInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfo.hsc
+++ /dev/null
@@ -1,251 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-       (VkBindImageMemoryInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDeviceMemory,
-                                                             VkImage)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindImageMemoryInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkImage                          image;
---   >     VkDeviceMemory                   memory;
---   >     VkDeviceSize                     memoryOffset;
---   > } VkBindImageMemoryInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindImageMemoryInfo.html VkBindImageMemoryInfo registry at www.khronos.org>
-data VkBindImageMemoryInfo = VkBindImageMemoryInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkBindImageMemoryInfo where
-        (VkBindImageMemoryInfo## a _) == x@(VkBindImageMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindImageMemoryInfo where
-        (VkBindImageMemoryInfo## a _) `compare`
-          x@(VkBindImageMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindImageMemoryInfo where
-        sizeOf ~_ = #{size VkBindImageMemoryInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBindImageMemoryInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindImageMemoryInfo where
-        unsafeAddr (VkBindImageMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemoryInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindImageMemoryInfo where
-        type StructFields VkBindImageMemoryInfo =
-             '["sType", "pNext", "image", "memory", "memoryOffset"] -- ' closing tick for hsc2hs
-        type CUnionType VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindImageMemoryInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkBindImageMemoryInfo
-         where
-        type FieldType "sType" VkBindImageMemoryInfo = VkStructureType
-        type FieldOptional "sType" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindImageMemoryInfo =
-             #{offset VkBindImageMemoryInfo, sType}
-        type FieldIsArray "sType" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindImageMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindImageMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindImageMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkBindImageMemoryInfo
-         where
-        type FieldType "pNext" VkBindImageMemoryInfo = Ptr Void
-        type FieldOptional "pNext" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindImageMemoryInfo =
-             #{offset VkBindImageMemoryInfo, pNext}
-        type FieldIsArray "pNext" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindImageMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindImageMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindImageMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "image" VkBindImageMemoryInfo
-         where
-        type FieldType "image" VkBindImageMemoryInfo = VkImage
-        type FieldOptional "image" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkBindImageMemoryInfo =
-             #{offset VkBindImageMemoryInfo, image}
-        type FieldIsArray "image" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindImageMemoryInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkBindImageMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkBindImageMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryInfo, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "memory" VkBindImageMemoryInfo where
-        type FieldType "memory" VkBindImageMemoryInfo = VkDeviceMemory
-        type FieldOptional "memory" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkBindImageMemoryInfo =
-             #{offset VkBindImageMemoryInfo, memory}
-        type FieldIsArray "memory" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindImageMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkBindImageMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkBindImageMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryInfo, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryOffset" VkBindImageMemoryInfo where
-        type FieldType "memoryOffset" VkBindImageMemoryInfo = VkDeviceSize
-        type FieldOptional "memoryOffset" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryOffset" VkBindImageMemoryInfo =
-             #{offset VkBindImageMemoryInfo, memoryOffset}
-        type FieldIsArray "memoryOffset" VkBindImageMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemoryInfo, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryOffset" VkBindImageMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemoryInfo, memoryOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemoryInfo, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryOffset" VkBindImageMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemoryInfo, memoryOffset}
-
-instance Show VkBindImageMemoryInfo where
-        showsPrec d x
-          = showString "VkBindImageMemoryInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "image = " .
-                            showsPrec d (getField @"image" x) .
-                              showString ", " .
-                                showString "memory = " .
-                                  showsPrec d (getField @"memory" x) .
-                                    showString ", " .
-                                      showString "memoryOffset = " .
-                                        showsPrec d (getField @"memoryOffset" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemoryInfoKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfoKHR
-       (VkBindImageMemoryInfo(..), VkBindImageMemoryInfoKHR) where
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo (VkBindImageMemoryInfo (..))
-
--- | Alias for `VkBindImageMemoryInfo`
-type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemorySwapchainInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemorySwapchainInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImageMemorySwapchainInfoKHR.hsc
+++ /dev/null
@@ -1,235 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR
-       (VkBindImageMemorySwapchainInfoKHR(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                      (VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo (VkBindImageMemoryInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindImageMemorySwapchainInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSwapchainKHR swapchain;
---   >     uint32_t                         imageIndex;
---   > } VkBindImageMemorySwapchainInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindImageMemorySwapchainInfoKHR.html VkBindImageMemorySwapchainInfoKHR registry at www.khronos.org>
-data VkBindImageMemorySwapchainInfoKHR = VkBindImageMemorySwapchainInfoKHR## Addr##
-                                                                            ByteArray##
-
-instance Eq VkBindImageMemorySwapchainInfoKHR where
-        (VkBindImageMemorySwapchainInfoKHR## a _) ==
-          x@(VkBindImageMemorySwapchainInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindImageMemorySwapchainInfoKHR where
-        (VkBindImageMemorySwapchainInfoKHR## a _) `compare`
-          x@(VkBindImageMemorySwapchainInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindImageMemorySwapchainInfoKHR where
-        sizeOf ~_ = #{size VkBindImageMemorySwapchainInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkBindImageMemorySwapchainInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindImageMemorySwapchainInfoKHR where
-        unsafeAddr (VkBindImageMemorySwapchainInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImageMemorySwapchainInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImageMemorySwapchainInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindImageMemorySwapchainInfoKHR where
-        type StructFields VkBindImageMemorySwapchainInfoKHR =
-             '["sType", "pNext", "swapchain", "imageIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkBindImageMemorySwapchainInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindImageMemorySwapchainInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindImageMemorySwapchainInfoKHR =
-             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBindImageMemorySwapchainInfoKHR where
-        type FieldType "sType" VkBindImageMemorySwapchainInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindImageMemorySwapchainInfoKHR =
-             #{offset VkBindImageMemorySwapchainInfoKHR, sType}
-        type FieldIsArray "sType" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemorySwapchainInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindImageMemorySwapchainInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindImageMemorySwapchainInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBindImageMemorySwapchainInfoKHR where
-        type FieldType "pNext" VkBindImageMemorySwapchainInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindImageMemorySwapchainInfoKHR =
-             #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
-        type FieldIsArray "pNext" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindImageMemorySwapchainInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindImageMemorySwapchainInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchain" VkBindImageMemorySwapchainInfoKHR where
-        type FieldType "swapchain" VkBindImageMemorySwapchainInfoKHR =
-             VkSwapchainKHR
-        type FieldOptional "swapchain" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "swapchain" VkBindImageMemorySwapchainInfoKHR =
-             #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
-        type FieldIsArray "swapchain" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchain" VkBindImageMemorySwapchainInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, swapchain})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchain" VkBindImageMemorySwapchainInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
-        type FieldType "imageIndex" VkBindImageMemorySwapchainInfoKHR =
-             Word32
-        type FieldOptional "imageIndex" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageIndex" VkBindImageMemorySwapchainInfoKHR =
-             #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
-        type FieldIsArray "imageIndex" VkBindImageMemorySwapchainInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageIndex" VkBindImageMemorySwapchainInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImageMemorySwapchainInfoKHR, imageIndex}
-
-instance Show VkBindImageMemorySwapchainInfoKHR where
-        showsPrec d x
-          = showString "VkBindImageMemorySwapchainInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchain = " .
-                            showsPrec d (getField @"swapchain" x) .
-                              showString ", " .
-                                showString "imageIndex = " .
-                                  showsPrec d (getField @"imageIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfo.hsc
+++ /dev/null
@@ -1,188 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfo
-       (VkBindImagePlaneMemoryInfo(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags      (VkImageAspectFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo (VkBindImageMemoryInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindImagePlaneMemoryInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkImageAspectFlagBits            planeAspect;
---   > } VkBindImagePlaneMemoryInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindImagePlaneMemoryInfo.html VkBindImagePlaneMemoryInfo registry at www.khronos.org>
-data VkBindImagePlaneMemoryInfo = VkBindImagePlaneMemoryInfo## Addr##
-                                                              ByteArray##
-
-instance Eq VkBindImagePlaneMemoryInfo where
-        (VkBindImagePlaneMemoryInfo## a _) ==
-          x@(VkBindImagePlaneMemoryInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindImagePlaneMemoryInfo where
-        (VkBindImagePlaneMemoryInfo## a _) `compare`
-          x@(VkBindImagePlaneMemoryInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindImagePlaneMemoryInfo where
-        sizeOf ~_ = #{size VkBindImagePlaneMemoryInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBindImagePlaneMemoryInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindImagePlaneMemoryInfo where
-        unsafeAddr (VkBindImagePlaneMemoryInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindImagePlaneMemoryInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindImagePlaneMemoryInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindImagePlaneMemoryInfo where
-        type StructFields VkBindImagePlaneMemoryInfo =
-             '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
-        type CUnionType VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindImagePlaneMemoryInfo =
-             '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBindImagePlaneMemoryInfo where
-        type FieldType "sType" VkBindImagePlaneMemoryInfo = VkStructureType
-        type FieldOptional "sType" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindImagePlaneMemoryInfo =
-             #{offset VkBindImagePlaneMemoryInfo, sType}
-        type FieldIsArray "sType" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImagePlaneMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBindImagePlaneMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBindImagePlaneMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBindImagePlaneMemoryInfo where
-        type FieldType "pNext" VkBindImagePlaneMemoryInfo = Ptr Void
-        type FieldOptional "pNext" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindImagePlaneMemoryInfo =
-             #{offset VkBindImagePlaneMemoryInfo, pNext}
-        type FieldIsArray "pNext" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImagePlaneMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBindImagePlaneMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBindImagePlaneMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "planeAspect" VkBindImagePlaneMemoryInfo where
-        type FieldType "planeAspect" VkBindImagePlaneMemoryInfo =
-             VkImageAspectFlagBits
-        type FieldOptional "planeAspect" VkBindImagePlaneMemoryInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "planeAspect" VkBindImagePlaneMemoryInfo =
-             #{offset VkBindImagePlaneMemoryInfo, planeAspect}
-        type FieldIsArray "planeAspect" VkBindImagePlaneMemoryInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindImagePlaneMemoryInfo, planeAspect}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "planeAspect" VkBindImagePlaneMemoryInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindImagePlaneMemoryInfo, planeAspect})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindImagePlaneMemoryInfo, planeAspect}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "planeAspect" VkBindImagePlaneMemoryInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindImagePlaneMemoryInfo, planeAspect}
-
-instance Show VkBindImagePlaneMemoryInfo where
-        showsPrec d x
-          = showString "VkBindImagePlaneMemoryInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "planeAspect = " .
-                            showsPrec d (getField @"planeAspect" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindImagePlaneMemoryInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfoKHR
-       (VkBindImagePlaneMemoryInfo(..), VkBindImagePlaneMemoryInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfo (VkBindImagePlaneMemoryInfo (..))
-
--- | Alias for `VkBindImagePlaneMemoryInfo`
-type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBindSparseInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBindSparseInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBindSparseInfo.hsc
+++ /dev/null
@@ -1,529 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBindSparseInfo
-       (VkBindSparseInfo(..)) where
-import           Foreign.Storable                                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                     (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                  (VkSemaphore)
-import           Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo      (VkSparseBufferMemoryBindInfo)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo       (VkSparseImageMemoryBindInfo)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo (VkSparseImageOpaqueMemoryBindInfo)
-import           System.IO.Unsafe                                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkBindSparseInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     uint32_t               waitSemaphoreCount;
---   >     const VkSemaphore*     pWaitSemaphores;
---   >     uint32_t               bufferBindCount;
---   >     const VkSparseBufferMemoryBindInfo* pBufferBinds;
---   >     uint32_t               imageOpaqueBindCount;
---   >     const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
---   >     uint32_t               imageBindCount;
---   >     const VkSparseImageMemoryBindInfo* pImageBinds;
---   >     uint32_t               signalSemaphoreCount;
---   >     const VkSemaphore*     pSignalSemaphores;
---   > } VkBindSparseInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBindSparseInfo.html VkBindSparseInfo registry at www.khronos.org>
-data VkBindSparseInfo = VkBindSparseInfo## Addr## ByteArray##
-
-instance Eq VkBindSparseInfo where
-        (VkBindSparseInfo## a _) == x@(VkBindSparseInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBindSparseInfo where
-        (VkBindSparseInfo## a _) `compare` x@(VkBindSparseInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBindSparseInfo where
-        sizeOf ~_ = #{size VkBindSparseInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBindSparseInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBindSparseInfo where
-        unsafeAddr (VkBindSparseInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBindSparseInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBindSparseInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBindSparseInfo where
-        type StructFields VkBindSparseInfo =
-             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
-               "bufferBindCount", "pBufferBinds", "imageOpaqueBindCount",
-               "pImageOpaqueBinds", "imageBindCount", "pImageBinds",
-               "signalSemaphoreCount", "pSignalSemaphores"]
-        type CUnionType VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBindSparseInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkBindSparseInfo
-         where
-        type FieldType "sType" VkBindSparseInfo = VkStructureType
-        type FieldOptional "sType" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, sType}
-        type FieldIsArray "sType" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkBindSparseInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-} CanWriteField "sType" VkBindSparseInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkBindSparseInfo
-         where
-        type FieldType "pNext" VkBindSparseInfo = Ptr Void
-        type FieldOptional "pNext" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pNext}
-        type FieldIsArray "pNext" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkBindSparseInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanWriteField "pNext" VkBindSparseInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "waitSemaphoreCount" VkBindSparseInfo where
-        type FieldType "waitSemaphoreCount" VkBindSparseInfo = Word32
-        type FieldOptional "waitSemaphoreCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "waitSemaphoreCount" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, waitSemaphoreCount}
-        type FieldIsArray "waitSemaphoreCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "waitSemaphoreCount" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, waitSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "waitSemaphoreCount" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitSemaphores" VkBindSparseInfo where
-        type FieldType "pWaitSemaphores" VkBindSparseInfo = Ptr VkSemaphore
-        type FieldOptional "pWaitSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitSemaphores" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pWaitSemaphores}
-        type FieldIsArray "pWaitSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitSemaphores" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pWaitSemaphores})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitSemaphores" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferBindCount" VkBindSparseInfo where
-        type FieldType "bufferBindCount" VkBindSparseInfo = Word32
-        type FieldOptional "bufferBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "bufferBindCount" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, bufferBindCount}
-        type FieldIsArray "bufferBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, bufferBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferBindCount" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, bufferBindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, bufferBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferBindCount" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, bufferBindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBufferBinds" VkBindSparseInfo where
-        type FieldType "pBufferBinds" VkBindSparseInfo =
-             Ptr VkSparseBufferMemoryBindInfo
-        type FieldOptional "pBufferBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBufferBinds" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pBufferBinds}
-        type FieldIsArray "pBufferBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindSparseInfo, pBufferBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBufferBinds" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pBufferBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pBufferBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBufferBinds" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pBufferBinds}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageOpaqueBindCount" VkBindSparseInfo where
-        type FieldType "imageOpaqueBindCount" VkBindSparseInfo = Word32
-        type FieldOptional "imageOpaqueBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "imageOpaqueBindCount" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, imageOpaqueBindCount}
-        type FieldIsArray "imageOpaqueBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, imageOpaqueBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageOpaqueBindCount" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, imageOpaqueBindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, imageOpaqueBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageOpaqueBindCount" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, imageOpaqueBindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pImageOpaqueBinds" VkBindSparseInfo where
-        type FieldType "pImageOpaqueBinds" VkBindSparseInfo =
-             Ptr VkSparseImageOpaqueMemoryBindInfo
-        type FieldOptional "pImageOpaqueBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pImageOpaqueBinds" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pImageOpaqueBinds}
-        type FieldIsArray "pImageOpaqueBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, pImageOpaqueBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pImageOpaqueBinds" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pImageOpaqueBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pImageOpaqueBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pImageOpaqueBinds" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pImageOpaqueBinds}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageBindCount" VkBindSparseInfo where
-        type FieldType "imageBindCount" VkBindSparseInfo = Word32
-        type FieldOptional "imageBindCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "imageBindCount" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, imageBindCount}
-        type FieldIsArray "imageBindCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, imageBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageBindCount" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, imageBindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, imageBindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageBindCount" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, imageBindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pImageBinds" VkBindSparseInfo where
-        type FieldType "pImageBinds" VkBindSparseInfo =
-             Ptr VkSparseImageMemoryBindInfo
-        type FieldOptional "pImageBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pImageBinds" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pImageBinds}
-        type FieldIsArray "pImageBinds" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBindSparseInfo, pImageBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pImageBinds" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pImageBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pImageBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pImageBinds" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pImageBinds}
-
-instance {-# OVERLAPPING #-}
-         HasField "signalSemaphoreCount" VkBindSparseInfo where
-        type FieldType "signalSemaphoreCount" VkBindSparseInfo = Word32
-        type FieldOptional "signalSemaphoreCount" VkBindSparseInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "signalSemaphoreCount" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, signalSemaphoreCount}
-        type FieldIsArray "signalSemaphoreCount" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "signalSemaphoreCount" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, signalSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "signalSemaphoreCount" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSignalSemaphores" VkBindSparseInfo where
-        type FieldType "pSignalSemaphores" VkBindSparseInfo =
-             Ptr VkSemaphore
-        type FieldOptional "pSignalSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSignalSemaphores" VkBindSparseInfo =
-             #{offset VkBindSparseInfo, pSignalSemaphores}
-        type FieldIsArray "pSignalSemaphores" VkBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBindSparseInfo, pSignalSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSignalSemaphores" VkBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBindSparseInfo, pSignalSemaphores})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBindSparseInfo, pSignalSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSignalSemaphores" VkBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBindSparseInfo, pSignalSemaphores}
-
-instance Show VkBindSparseInfo where
-        showsPrec d x
-          = showString "VkBindSparseInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "waitSemaphoreCount = " .
-                            showsPrec d (getField @"waitSemaphoreCount" x) .
-                              showString ", " .
-                                showString "pWaitSemaphores = " .
-                                  showsPrec d (getField @"pWaitSemaphores" x) .
-                                    showString ", " .
-                                      showString "bufferBindCount = " .
-                                        showsPrec d (getField @"bufferBindCount" x) .
-                                          showString ", " .
-                                            showString "pBufferBinds = " .
-                                              showsPrec d (getField @"pBufferBinds" x) .
-                                                showString ", " .
-                                                  showString "imageOpaqueBindCount = " .
-                                                    showsPrec d (getField @"imageOpaqueBindCount" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pImageOpaqueBinds = " .
-                                                          showsPrec d
-                                                            (getField @"pImageOpaqueBinds" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "imageBindCount = " .
-                                                                showsPrec d
-                                                                  (getField @"imageBindCount" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "pImageBinds = " .
-                                                                      showsPrec d
-                                                                        (getField @"pImageBinds" x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "signalSemaphoreCount = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"signalSemaphoreCount"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "pSignalSemaphores = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"pSignalSemaphores"
-                                                                                       x)
-                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCopy.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCopy.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCopy.hsc
+++ /dev/null
@@ -1,174 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferCopy (VkBufferCopy(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferCopy {
---   >     VkDeviceSize           srcOffset;
---   >     VkDeviceSize           dstOffset;
---   >     VkDeviceSize           size;
---   > } VkBufferCopy;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferCopy.html VkBufferCopy registry at www.khronos.org>
-data VkBufferCopy = VkBufferCopy## Addr## ByteArray##
-
-instance Eq VkBufferCopy where
-        (VkBufferCopy## a _) == x@(VkBufferCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferCopy where
-        (VkBufferCopy## a _) `compare` x@(VkBufferCopy## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferCopy where
-        sizeOf ~_ = #{size VkBufferCopy}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBufferCopy}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferCopy where
-        unsafeAddr (VkBufferCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferCopy where
-        type StructFields VkBufferCopy =
-             '["srcOffset", "dstOffset", "size"] -- ' closing tick for hsc2hs
-        type CUnionType VkBufferCopy = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferCopy = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferCopy = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "srcOffset" VkBufferCopy
-         where
-        type FieldType "srcOffset" VkBufferCopy = VkDeviceSize
-        type FieldOptional "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcOffset" VkBufferCopy =
-             #{offset VkBufferCopy, srcOffset}
-        type FieldIsArray "srcOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} CanReadField "srcOffset" VkBufferCopy
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, srcOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkBufferCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} HasField "dstOffset" VkBufferCopy
-         where
-        type FieldType "dstOffset" VkBufferCopy = VkDeviceSize
-        type FieldOptional "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstOffset" VkBufferCopy =
-             #{offset VkBufferCopy, dstOffset}
-        type FieldIsArray "dstOffset" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkBufferCopy
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, dstOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkBufferCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkBufferCopy where
-        type FieldType "size" VkBufferCopy = VkDeviceSize
-        type FieldOptional "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkBufferCopy =
-             #{offset VkBufferCopy, size}
-        type FieldIsArray "size" VkBufferCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCopy, size}
-
-instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCopy, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCopy, size}
-
-instance {-# OVERLAPPING #-} CanWriteField "size" VkBufferCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCopy, size}
-
-instance Show VkBufferCopy where
-        showsPrec d x
-          = showString "VkBufferCopy {" .
-              showString "srcOffset = " .
-                showsPrec d (getField @"srcOffset" x) .
-                  showString ", " .
-                    showString "dstOffset = " .
-                      showsPrec d (getField @"dstOffset" x) .
-                        showString ", " .
-                          showString "size = " .
-                            showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferCreateInfo.hsc
+++ /dev/null
@@ -1,366 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferCreateInfo
-       (VkBufferCreateInfo(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags (VkBufferCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags  (VkBufferUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkSharingMode       (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkBufferCreateFlags    flags;
---   >     VkDeviceSize           size;
---   >     VkBufferUsageFlags     usage;
---   >     VkSharingMode          sharingMode;
---   >     uint32_t               queueFamilyIndexCount;
---   >     const uint32_t*        pQueueFamilyIndices;
---   > } VkBufferCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferCreateInfo.html VkBufferCreateInfo registry at www.khronos.org>
-data VkBufferCreateInfo = VkBufferCreateInfo## Addr## ByteArray##
-
-instance Eq VkBufferCreateInfo where
-        (VkBufferCreateInfo## a _) == x@(VkBufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferCreateInfo where
-        (VkBufferCreateInfo## a _) `compare` x@(VkBufferCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferCreateInfo where
-        sizeOf ~_ = #{size VkBufferCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBufferCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferCreateInfo where
-        unsafeAddr (VkBufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferCreateInfo where
-        type StructFields VkBufferCreateInfo =
-             '["sType", "pNext", "flags", "size", "usage", "sharingMode", -- ' closing tick for hsc2hs
-               "queueFamilyIndexCount", "pQueueFamilyIndices"]
-        type CUnionType VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkBufferCreateInfo
-         where
-        type FieldType "sType" VkBufferCreateInfo = VkStructureType
-        type FieldOptional "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, sType}
-        type FieldIsArray "sType" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkBufferCreateInfo
-         where
-        type FieldType "pNext" VkBufferCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, pNext}
-        type FieldIsArray "pNext" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkBufferCreateInfo
-         where
-        type FieldType "flags" VkBufferCreateInfo = VkBufferCreateFlags
-        type FieldOptional "flags" VkBufferCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, flags}
-        type FieldIsArray "flags" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} HasField "size" VkBufferCreateInfo
-         where
-        type FieldType "size" VkBufferCreateInfo = VkDeviceSize
-        type FieldOptional "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, size}
-        type FieldIsArray "size" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, size}
-
-instance {-# OVERLAPPING #-} CanReadField "size" VkBufferCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, size}
-
-instance {-# OVERLAPPING #-} HasField "usage" VkBufferCreateInfo
-         where
-        type FieldType "usage" VkBufferCreateInfo = VkBufferUsageFlags
-        type FieldOptional "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, usage}
-        type FieldIsArray "usage" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "sharingMode" VkBufferCreateInfo where
-        type FieldType "sharingMode" VkBufferCreateInfo = VkSharingMode
-        type FieldOptional "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sharingMode" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, sharingMode}
-        type FieldIsArray "sharingMode" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sharingMode" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, sharingMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sharingMode" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndexCount" VkBufferCreateInfo where
-        type FieldType "queueFamilyIndexCount" VkBufferCreateInfo = Word32
-        type FieldOptional "queueFamilyIndexCount" VkBufferCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndexCount" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, queueFamilyIndexCount}
-        type FieldIsArray "queueFamilyIndexCount" VkBufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndexCount" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, queueFamilyIndexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndexCount" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueueFamilyIndices" VkBufferCreateInfo where
-        type FieldType "pQueueFamilyIndices" VkBufferCreateInfo =
-             Ptr Word32
-        type FieldOptional "pQueueFamilyIndices" VkBufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pQueueFamilyIndices" VkBufferCreateInfo =
-             #{offset VkBufferCreateInfo, pQueueFamilyIndices}
-        type FieldIsArray "pQueueFamilyIndices" VkBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferCreateInfo, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueueFamilyIndices" VkBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferCreateInfo, pQueueFamilyIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferCreateInfo, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueueFamilyIndices" VkBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferCreateInfo, pQueueFamilyIndices}
-
-instance Show VkBufferCreateInfo where
-        showsPrec d x
-          = showString "VkBufferCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "size = " .
-                                  showsPrec d (getField @"size" x) .
-                                    showString ", " .
-                                      showString "usage = " .
-                                        showsPrec d (getField @"usage" x) .
-                                          showString ", " .
-                                            showString "sharingMode = " .
-                                              showsPrec d (getField @"sharingMode" x) .
-                                                showString ", " .
-                                                  showString "queueFamilyIndexCount = " .
-                                                    showsPrec d
-                                                      (getField @"queueFamilyIndexCount" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pQueueFamilyIndices = " .
-                                                          showsPrec d
-                                                            (getField @"pQueueFamilyIndices" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferImageCopy.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferImageCopy.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferImageCopy.hsc
+++ /dev/null
@@ -1,289 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferImageCopy
-       (VkBufferImageCopy(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                       (VkDeviceSize)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D               (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers (VkImageSubresourceLayers)
-import           Graphics.Vulkan.Types.Struct.VkOffset3D               (VkOffset3D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferImageCopy {
---   >     VkDeviceSize           bufferOffset;
---   >     uint32_t               bufferRowLength;
---   >     uint32_t               bufferImageHeight;
---   >     VkImageSubresourceLayers imageSubresource;
---   >     VkOffset3D             imageOffset;
---   >     VkExtent3D             imageExtent;
---   > } VkBufferImageCopy;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferImageCopy.html VkBufferImageCopy registry at www.khronos.org>
-data VkBufferImageCopy = VkBufferImageCopy## Addr## ByteArray##
-
-instance Eq VkBufferImageCopy where
-        (VkBufferImageCopy## a _) == x@(VkBufferImageCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferImageCopy where
-        (VkBufferImageCopy## a _) `compare` x@(VkBufferImageCopy## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferImageCopy where
-        sizeOf ~_ = #{size VkBufferImageCopy}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBufferImageCopy}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferImageCopy where
-        unsafeAddr (VkBufferImageCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferImageCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferImageCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferImageCopy where
-        type StructFields VkBufferImageCopy =
-             '["bufferOffset", "bufferRowLength", "bufferImageHeight", -- ' closing tick for hsc2hs
-               "imageSubresource", "imageOffset", "imageExtent"]
-        type CUnionType VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferImageCopy = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferOffset" VkBufferImageCopy where
-        type FieldType "bufferOffset" VkBufferImageCopy = VkDeviceSize
-        type FieldOptional "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bufferOffset" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, bufferOffset}
-        type FieldIsArray "bufferOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferImageCopy, bufferOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferOffset" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, bufferOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferOffset" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, bufferOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferRowLength" VkBufferImageCopy where
-        type FieldType "bufferRowLength" VkBufferImageCopy = Word32
-        type FieldOptional "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bufferRowLength" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, bufferRowLength}
-        type FieldIsArray "bufferRowLength" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferImageCopy, bufferRowLength}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferRowLength" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferRowLength})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, bufferRowLength}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferRowLength" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, bufferRowLength}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferImageHeight" VkBufferImageCopy where
-        type FieldType "bufferImageHeight" VkBufferImageCopy = Word32
-        type FieldOptional "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bufferImageHeight" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, bufferImageHeight}
-        type FieldIsArray "bufferImageHeight" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferImageCopy, bufferImageHeight}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferImageHeight" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, bufferImageHeight})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, bufferImageHeight}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferImageHeight" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, bufferImageHeight}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageSubresource" VkBufferImageCopy where
-        type FieldType "imageSubresource" VkBufferImageCopy =
-             VkImageSubresourceLayers
-        type FieldOptional "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageSubresource" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, imageSubresource}
-        type FieldIsArray "imageSubresource" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferImageCopy, imageSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageSubresource" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, imageSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageSubresource" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, imageSubresource}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageOffset" VkBufferImageCopy where
-        type FieldType "imageOffset" VkBufferImageCopy = VkOffset3D
-        type FieldOptional "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageOffset" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, imageOffset}
-        type FieldIsArray "imageOffset" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferImageCopy, imageOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageOffset" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, imageOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageOffset" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, imageOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageExtent" VkBufferImageCopy where
-        type FieldType "imageExtent" VkBufferImageCopy = VkExtent3D
-        type FieldOptional "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageExtent" VkBufferImageCopy =
-             #{offset VkBufferImageCopy, imageExtent}
-        type FieldIsArray "imageExtent" VkBufferImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferImageCopy, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageExtent" VkBufferImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferImageCopy, imageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferImageCopy, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageExtent" VkBufferImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferImageCopy, imageExtent}
-
-instance Show VkBufferImageCopy where
-        showsPrec d x
-          = showString "VkBufferImageCopy {" .
-              showString "bufferOffset = " .
-                showsPrec d (getField @"bufferOffset" x) .
-                  showString ", " .
-                    showString "bufferRowLength = " .
-                      showsPrec d (getField @"bufferRowLength" x) .
-                        showString ", " .
-                          showString "bufferImageHeight = " .
-                            showsPrec d (getField @"bufferImageHeight" x) .
-                              showString ", " .
-                                showString "imageSubresource = " .
-                                  showsPrec d (getField @"imageSubresource" x) .
-                                    showString ", " .
-                                      showString "imageOffset = " .
-                                        showsPrec d (getField @"imageOffset" x) .
-                                          showString ", " .
-                                            showString "imageExtent = " .
-                                              showsPrec d (getField @"imageExtent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryBarrier.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryBarrier.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryBarrier.hsc
+++ /dev/null
@@ -1,403 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier
-       (VkBufferMemoryBarrier(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags   (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkBuffer)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferMemoryBarrier {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkAccessFlags          srcAccessMask;
---   >     VkAccessFlags          dstAccessMask;
---   >     uint32_t               srcQueueFamilyIndex;
---   >     uint32_t               dstQueueFamilyIndex;
---   >     VkBuffer               buffer;
---   >     VkDeviceSize           offset;
---   >     VkDeviceSize           size;
---   > } VkBufferMemoryBarrier;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferMemoryBarrier.html VkBufferMemoryBarrier registry at www.khronos.org>
-data VkBufferMemoryBarrier = VkBufferMemoryBarrier## Addr##
-                                                    ByteArray##
-
-instance Eq VkBufferMemoryBarrier where
-        (VkBufferMemoryBarrier## a _) == x@(VkBufferMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferMemoryBarrier where
-        (VkBufferMemoryBarrier## a _) `compare`
-          x@(VkBufferMemoryBarrier## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferMemoryBarrier where
-        sizeOf ~_ = #{size VkBufferMemoryBarrier}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBufferMemoryBarrier}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferMemoryBarrier where
-        unsafeAddr (VkBufferMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferMemoryBarrier where
-        type StructFields VkBufferMemoryBarrier =
-             '["sType", "pNext", "srcAccessMask", "dstAccessMask", -- ' closing tick for hsc2hs
-               "srcQueueFamilyIndex", "dstQueueFamilyIndex", "buffer", "offset",
-               "size"]
-        type CUnionType VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferMemoryBarrier = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkBufferMemoryBarrier
-         where
-        type FieldType "sType" VkBufferMemoryBarrier = VkStructureType
-        type FieldOptional "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, sType}
-        type FieldIsArray "sType" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkBufferMemoryBarrier
-         where
-        type FieldType "pNext" VkBufferMemoryBarrier = Ptr Void
-        type FieldOptional "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, pNext}
-        type FieldIsArray "pNext" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcAccessMask" VkBufferMemoryBarrier where
-        type FieldType "srcAccessMask" VkBufferMemoryBarrier =
-             VkAccessFlags
-        type FieldOptional "srcAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "srcAccessMask" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, srcAccessMask}
-        type FieldIsArray "srcAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcAccessMask" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, srcAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcAccessMask" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstAccessMask" VkBufferMemoryBarrier where
-        type FieldType "dstAccessMask" VkBufferMemoryBarrier =
-             VkAccessFlags
-        type FieldOptional "dstAccessMask" VkBufferMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dstAccessMask" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, dstAccessMask}
-        type FieldIsArray "dstAccessMask" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstAccessMask" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, dstAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstAccessMask" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
-        type FieldType "srcQueueFamilyIndex" VkBufferMemoryBarrier = Word32
-        type FieldOptional "srcQueueFamilyIndex" VkBufferMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcQueueFamilyIndex" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
-        type FieldIsArray "srcQueueFamilyIndex" VkBufferMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcQueueFamilyIndex" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
-        type FieldType "dstQueueFamilyIndex" VkBufferMemoryBarrier = Word32
-        type FieldOptional "dstQueueFamilyIndex" VkBufferMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstQueueFamilyIndex" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
-        type FieldIsArray "dstQueueFamilyIndex" VkBufferMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstQueueFamilyIndex" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkBufferMemoryBarrier where
-        type FieldType "buffer" VkBufferMemoryBarrier = VkBuffer
-        type FieldOptional "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, buffer}
-        type FieldIsArray "buffer" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferMemoryBarrier, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkBufferMemoryBarrier where
-        type FieldType "offset" VkBufferMemoryBarrier = VkDeviceSize
-        type FieldOptional "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, offset}
-        type FieldIsArray "offset" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferMemoryBarrier, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, offset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkBufferMemoryBarrier
-         where
-        type FieldType "size" VkBufferMemoryBarrier = VkDeviceSize
-        type FieldOptional "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkBufferMemoryBarrier =
-             #{offset VkBufferMemoryBarrier, size}
-        type FieldIsArray "size" VkBufferMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferMemoryBarrier, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkBufferMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryBarrier, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryBarrier, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkBufferMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryBarrier, size}
-
-instance Show VkBufferMemoryBarrier where
-        showsPrec d x
-          = showString "VkBufferMemoryBarrier {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcAccessMask = " .
-                            showsPrec d (getField @"srcAccessMask" x) .
-                              showString ", " .
-                                showString "dstAccessMask = " .
-                                  showsPrec d (getField @"dstAccessMask" x) .
-                                    showString ", " .
-                                      showString "srcQueueFamilyIndex = " .
-                                        showsPrec d (getField @"srcQueueFamilyIndex" x) .
-                                          showString ", " .
-                                            showString "dstQueueFamilyIndex = " .
-                                              showsPrec d (getField @"dstQueueFamilyIndex" x) .
-                                                showString ", " .
-                                                  showString "buffer = " .
-                                                    showsPrec d (getField @"buffer" x) .
-                                                      showString ", " .
-                                                        showString "offset = " .
-                                                          showsPrec d (getField @"offset" x) .
-                                                            showString ", " .
-                                                              showString "size = " .
-                                                                showsPrec d (getField @"size" x) .
-                                                                  showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2
-       (VkBufferMemoryRequirementsInfo2(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkBuffer)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferMemoryRequirementsInfo2 {
---   >     VkStructureType sType;
---   >     const void*                                                          pNext;
---   >     VkBuffer                                                             buffer;
---   > } VkBufferMemoryRequirementsInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferMemoryRequirementsInfo2.html VkBufferMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkBufferMemoryRequirementsInfo2 = VkBufferMemoryRequirementsInfo2## Addr##
-                                                                        ByteArray##
-
-instance Eq VkBufferMemoryRequirementsInfo2 where
-        (VkBufferMemoryRequirementsInfo2## a _) ==
-          x@(VkBufferMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferMemoryRequirementsInfo2 where
-        (VkBufferMemoryRequirementsInfo2## a _) `compare`
-          x@(VkBufferMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferMemoryRequirementsInfo2 where
-        sizeOf ~_ = #{size VkBufferMemoryRequirementsInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkBufferMemoryRequirementsInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferMemoryRequirementsInfo2 where
-        unsafeAddr (VkBufferMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferMemoryRequirementsInfo2 where
-        type StructFields VkBufferMemoryRequirementsInfo2 =
-             '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
-        type CUnionType VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBufferMemoryRequirementsInfo2 where
-        type FieldType "sType" VkBufferMemoryRequirementsInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBufferMemoryRequirementsInfo2 =
-             #{offset VkBufferMemoryRequirementsInfo2, sType}
-        type FieldIsArray "sType" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBufferMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBufferMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBufferMemoryRequirementsInfo2 where
-        type FieldType "pNext" VkBufferMemoryRequirementsInfo2 = Ptr Void
-        type FieldOptional "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBufferMemoryRequirementsInfo2 =
-             #{offset VkBufferMemoryRequirementsInfo2, pNext}
-        type FieldIsArray "pNext" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBufferMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBufferMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkBufferMemoryRequirementsInfo2 where
-        type FieldType "buffer" VkBufferMemoryRequirementsInfo2 = VkBuffer
-        type FieldOptional "buffer" VkBufferMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkBufferMemoryRequirementsInfo2 =
-             #{offset VkBufferMemoryRequirementsInfo2, buffer}
-        type FieldIsArray "buffer" VkBufferMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkBufferMemoryRequirementsInfo2, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkBufferMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferMemoryRequirementsInfo2, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferMemoryRequirementsInfo2, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkBufferMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferMemoryRequirementsInfo2, buffer}
-
-instance Show VkBufferMemoryRequirementsInfo2 where
-        showsPrec d x
-          = showString "VkBufferMemoryRequirementsInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "buffer = " .
-                            showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferMemoryRequirementsInfo2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2KHR
-       (VkBufferMemoryRequirementsInfo2(..),
-        VkBufferMemoryRequirementsInfo2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2 (VkBufferMemoryRequirementsInfo2 (..))
-
--- | Alias for `VkBufferMemoryRequirementsInfo2`
-type VkBufferMemoryRequirementsInfo2KHR =
-     VkBufferMemoryRequirementsInfo2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferViewCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkBufferViewCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkBufferViewCreateInfo.hsc
+++ /dev/null
@@ -1,322 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo
-       (VkBufferViewCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Bitmasks             (VkBufferViewCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkFormat        (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkBuffer)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkBufferViewCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkBufferViewCreateFlagsflags;
---   >     VkBuffer               buffer;
---   >     VkFormat               format;
---   >     VkDeviceSize           offset;
---   >     VkDeviceSize           range;
---   > } VkBufferViewCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkBufferViewCreateInfo.html VkBufferViewCreateInfo registry at www.khronos.org>
-data VkBufferViewCreateInfo = VkBufferViewCreateInfo## Addr##
-                                                      ByteArray##
-
-instance Eq VkBufferViewCreateInfo where
-        (VkBufferViewCreateInfo## a _) == x@(VkBufferViewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkBufferViewCreateInfo where
-        (VkBufferViewCreateInfo## a _) `compare`
-          x@(VkBufferViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkBufferViewCreateInfo where
-        sizeOf ~_ = #{size VkBufferViewCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkBufferViewCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkBufferViewCreateInfo where
-        unsafeAddr (VkBufferViewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkBufferViewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkBufferViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkBufferViewCreateInfo where
-        type StructFields VkBufferViewCreateInfo =
-             '["sType", "pNext", "flags", "buffer", "format", "offset", "range"] -- ' closing tick for hsc2hs
-        type CUnionType VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkBufferViewCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkBufferViewCreateInfo where
-        type FieldType "sType" VkBufferViewCreateInfo = VkStructureType
-        type FieldOptional "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, sType}
-        type FieldIsArray "sType" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkBufferViewCreateInfo where
-        type FieldType "pNext" VkBufferViewCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, pNext}
-        type FieldIsArray "pNext" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkBufferViewCreateInfo where
-        type FieldType "flags" VkBufferViewCreateInfo =
-             VkBufferViewCreateFlags
-        type FieldOptional "flags" VkBufferViewCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, flags}
-        type FieldIsArray "flags" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkBufferViewCreateInfo where
-        type FieldType "buffer" VkBufferViewCreateInfo = VkBuffer
-        type FieldOptional "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, buffer}
-        type FieldIsArray "buffer" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkBufferViewCreateInfo where
-        type FieldType "format" VkBufferViewCreateInfo = VkFormat
-        type FieldOptional "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, format}
-        type FieldIsArray "format" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkBufferViewCreateInfo where
-        type FieldType "offset" VkBufferViewCreateInfo = VkDeviceSize
-        type FieldOptional "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, offset}
-        type FieldIsArray "offset" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         HasField "range" VkBufferViewCreateInfo where
-        type FieldType "range" VkBufferViewCreateInfo = VkDeviceSize
-        type FieldOptional "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "range" VkBufferViewCreateInfo =
-             #{offset VkBufferViewCreateInfo, range}
-        type FieldIsArray "range" VkBufferViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkBufferViewCreateInfo, range}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "range" VkBufferViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkBufferViewCreateInfo, range})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkBufferViewCreateInfo, range}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "range" VkBufferViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkBufferViewCreateInfo, range}
-
-instance Show VkBufferViewCreateInfo where
-        showsPrec d x
-          = showString "VkBufferViewCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "buffer = " .
-                                  showsPrec d (getField @"buffer" x) .
-                                    showString ", " .
-                                      showString "format = " .
-                                        showsPrec d (getField @"format" x) .
-                                          showString ", " .
-                                            showString "offset = " .
-                                              showsPrec d (getField @"offset" x) .
-                                                showString ", " .
-                                                  showString "range = " .
-                                                    showsPrec d (getField @"range" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkClearAttachment.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkClearAttachment.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkClearAttachment.hsc
+++ /dev/null
@@ -1,178 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkClearAttachment
-       (VkClearAttachment(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags (VkImageAspectFlags)
-import           Graphics.Vulkan.Types.Struct.VkClearValue     (VkClearValue)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkClearAttachment {
---   >     VkImageAspectFlags     aspectMask;
---   >     uint32_t               colorAttachment;
---   >     VkClearValue           clearValue;
---   > } VkClearAttachment;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkClearAttachment.html VkClearAttachment registry at www.khronos.org>
-data VkClearAttachment = VkClearAttachment## Addr## ByteArray##
-
-instance Eq VkClearAttachment where
-        (VkClearAttachment## a _) == x@(VkClearAttachment## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkClearAttachment where
-        (VkClearAttachment## a _) `compare` x@(VkClearAttachment## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkClearAttachment where
-        sizeOf ~_ = #{size VkClearAttachment}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkClearAttachment}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearAttachment where
-        unsafeAddr (VkClearAttachment## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearAttachment## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearAttachment## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkClearAttachment where
-        type StructFields VkClearAttachment =
-             '["aspectMask", "colorAttachment", "clearValue"] -- ' closing tick for hsc2hs
-        type CUnionType VkClearAttachment = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkClearAttachment = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkClearAttachment = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkClearAttachment where
-        type FieldType "aspectMask" VkClearAttachment = VkImageAspectFlags
-        type FieldOptional "aspectMask" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkClearAttachment =
-             #{offset VkClearAttachment, aspectMask}
-        type FieldIsArray "aspectMask" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearAttachment, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkClearAttachment where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearAttachment, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkClearAttachment where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearAttachment, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "colorAttachment" VkClearAttachment where
-        type FieldType "colorAttachment" VkClearAttachment = Word32
-        type FieldOptional "colorAttachment" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "colorAttachment" VkClearAttachment =
-             #{offset VkClearAttachment, colorAttachment}
-        type FieldIsArray "colorAttachment" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkClearAttachment, colorAttachment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "colorAttachment" VkClearAttachment where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, colorAttachment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearAttachment, colorAttachment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "colorAttachment" VkClearAttachment where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearAttachment, colorAttachment}
-
-instance {-# OVERLAPPING #-}
-         HasField "clearValue" VkClearAttachment where
-        type FieldType "clearValue" VkClearAttachment = VkClearValue
-        type FieldOptional "clearValue" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "clearValue" VkClearAttachment =
-             #{offset VkClearAttachment, clearValue}
-        type FieldIsArray "clearValue" VkClearAttachment = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearAttachment, clearValue}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "clearValue" VkClearAttachment where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearAttachment, clearValue})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearAttachment, clearValue}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "clearValue" VkClearAttachment where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearAttachment, clearValue}
-
-instance Show VkClearAttachment where
-        showsPrec d x
-          = showString "VkClearAttachment {" .
-              showString "aspectMask = " .
-                showsPrec d (getField @"aspectMask" x) .
-                  showString ", " .
-                    showString "colorAttachment = " .
-                      showsPrec d (getField @"colorAttachment" x) .
-                        showString ", " .
-                          showString "clearValue = " .
-                            showsPrec d (getField @"clearValue" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkClearColorValue.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkClearColorValue.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkClearColorValue.hsc
+++ /dev/null
@@ -1,340 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkClearColorValue
-       (VkClearColorValue(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | // Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
---
---   > typedef union VkClearColorValue {
---   >     float                  float32[4];
---   >     int32_t                int32[4];
---   >     uint32_t               uint32[4];
---   > } VkClearColorValue;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkClearColorValue.html VkClearColorValue registry at www.khronos.org>
-data VkClearColorValue = VkClearColorValue## Addr## ByteArray##
-
-instance Eq VkClearColorValue where
-        (VkClearColorValue## a _) == x@(VkClearColorValue## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkClearColorValue where
-        (VkClearColorValue## a _) `compare` x@(VkClearColorValue## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkClearColorValue where
-        sizeOf ~_ = #{size VkClearColorValue}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkClearColorValue}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearColorValue where
-        unsafeAddr (VkClearColorValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearColorValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearColorValue## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkClearColorValue where
-        type StructFields VkClearColorValue =
-             '["float32", "int32", "uint32"] -- ' closing tick for hsc2hs
-        type CUnionType VkClearColorValue = 'True -- ' closing tick for hsc2hs
-        type ReturnedOnly VkClearColorValue = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkClearColorValue = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "float32" VkClearColorValue
-         where
-        type FieldType "float32" VkClearColorValue =
-             #{type float}
-        type FieldOptional "float32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "float32" VkClearColorValue =
-             #{offset VkClearColorValue, float32}
-        type FieldIsArray "float32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearColorValue, float32}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>
-         CanReadFieldArray "float32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "float32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "float32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "float32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "float32" 3 VkClearColorValue #-}
-        type FieldArrayLength "float32" VkClearColorValue = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkClearColorValue, float32} +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkClearColorValue, float32} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "float32" idx VkClearColorValue) =>
-         CanWriteFieldArray "float32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "float32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "float32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "float32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "float32" 3 VkClearColorValue #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkClearColorValue, float32} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "int32" VkClearColorValue
-         where
-        type FieldType "int32" VkClearColorValue = Int32
-        type FieldOptional "int32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "int32" VkClearColorValue =
-             #{offset VkClearColorValue, int32}
-        type FieldIsArray "int32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearColorValue, int32}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>
-         CanReadFieldArray "int32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "int32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "int32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "int32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "int32" 3 VkClearColorValue #-}
-        type FieldArrayLength "int32" VkClearColorValue = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkClearColorValue, int32} +
-                      sizeOf (undefined :: Int32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkClearColorValue, int32} +
-                 sizeOf (undefined :: Int32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "int32" idx VkClearColorValue) =>
-         CanWriteFieldArray "int32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "int32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "int32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "int32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "int32" 3 VkClearColorValue #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkClearColorValue, int32} +
-                 sizeOf (undefined :: Int32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "uint32" VkClearColorValue
-         where
-        type FieldType "uint32" VkClearColorValue = Word32
-        type FieldOptional "uint32" VkClearColorValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "uint32" VkClearColorValue =
-             #{offset VkClearColorValue, uint32}
-        type FieldIsArray "uint32" VkClearColorValue = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearColorValue, uint32}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>
-         CanReadFieldArray "uint32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "uint32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "uint32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "uint32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "uint32" 3 VkClearColorValue #-}
-        type FieldArrayLength "uint32" VkClearColorValue = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkClearColorValue, uint32} +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkClearColorValue, uint32} +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "uint32" idx VkClearColorValue) =>
-         CanWriteFieldArray "uint32" idx VkClearColorValue
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "uint32" 0 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "uint32" 1 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "uint32" 2 VkClearColorValue #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "uint32" 3 VkClearColorValue #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkClearColorValue, uint32} +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkClearColorValue where
-        showsPrec d x
-          = showString "VkClearColorValue {" .
-              (showString "float32 = [" .
-                 showsPrec d
-                   (let s = sizeOf
-                              (undefined :: FieldType "float32" VkClearColorValue)
-                        o = fieldOffset @"float32" @VkClearColorValue
-                        f i
-                          = peekByteOff (unsafePtr x) i ::
-                              IO (FieldType "float32" VkClearColorValue)
-                      in
-                      unsafeDupablePerformIO . mapM f $
-                        map (\ i -> o + i * s) [0 .. 4 - 1])
-                   . showChar ']')
-                .
-                showString ", " .
-                  (showString "int32 = [" .
-                     showsPrec d
-                       (let s = sizeOf (undefined :: FieldType "int32" VkClearColorValue)
-                            o = fieldOffset @"int32" @VkClearColorValue
-                            f i
-                              = peekByteOff (unsafePtr x) i ::
-                                  IO (FieldType "int32" VkClearColorValue)
-                          in
-                          unsafeDupablePerformIO . mapM f $
-                            map (\ i -> o + i * s) [0 .. 4 - 1])
-                       . showChar ']')
-                    .
-                    showString ", " .
-                      (showString "uint32 = [" .
-                         showsPrec d
-                           (let s = sizeOf (undefined :: FieldType "uint32" VkClearColorValue)
-                                o = fieldOffset @"uint32" @VkClearColorValue
-                                f i
-                                  = peekByteOff (unsafePtr x) i ::
-                                      IO (FieldType "uint32" VkClearColorValue)
-                              in
-                              unsafeDupablePerformIO . mapM f $
-                                map (\ i -> o + i * s) [0 .. 4 - 1])
-                           . showChar ']')
-                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkClearDepthStencilValue.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkClearDepthStencilValue.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkClearDepthStencilValue.hsc
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue
-       (VkClearDepthStencilValue(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkClearDepthStencilValue {
---   >     float                  depth;
---   >     uint32_t               stencil;
---   > } VkClearDepthStencilValue;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkClearDepthStencilValue.html VkClearDepthStencilValue registry at www.khronos.org>
-data VkClearDepthStencilValue = VkClearDepthStencilValue## Addr##
-                                                          ByteArray##
-
-instance Eq VkClearDepthStencilValue where
-        (VkClearDepthStencilValue## a _) ==
-          x@(VkClearDepthStencilValue## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkClearDepthStencilValue where
-        (VkClearDepthStencilValue## a _) `compare`
-          x@(VkClearDepthStencilValue## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkClearDepthStencilValue where
-        sizeOf ~_ = #{size VkClearDepthStencilValue}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkClearDepthStencilValue}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearDepthStencilValue where
-        unsafeAddr (VkClearDepthStencilValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearDepthStencilValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearDepthStencilValue## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkClearDepthStencilValue where
-        type StructFields VkClearDepthStencilValue = '["depth", "stencil"] -- ' closing tick for hsc2hs
-        type CUnionType VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkClearDepthStencilValue = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "depth" VkClearDepthStencilValue where
-        type FieldType "depth" VkClearDepthStencilValue =
-             #{type float}
-        type FieldOptional "depth" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depth" VkClearDepthStencilValue =
-             #{offset VkClearDepthStencilValue, depth}
-        type FieldIsArray "depth" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearDepthStencilValue, depth}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depth" VkClearDepthStencilValue where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearDepthStencilValue, depth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearDepthStencilValue, depth}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depth" VkClearDepthStencilValue where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearDepthStencilValue, depth}
-
-instance {-# OVERLAPPING #-}
-         HasField "stencil" VkClearDepthStencilValue where
-        type FieldType "stencil" VkClearDepthStencilValue = Word32
-        type FieldOptional "stencil" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stencil" VkClearDepthStencilValue =
-             #{offset VkClearDepthStencilValue, stencil}
-        type FieldIsArray "stencil" VkClearDepthStencilValue = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkClearDepthStencilValue, stencil}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stencil" VkClearDepthStencilValue where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearDepthStencilValue, stencil})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearDepthStencilValue, stencil}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stencil" VkClearDepthStencilValue where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearDepthStencilValue, stencil}
-
-instance Show VkClearDepthStencilValue where
-        showsPrec d x
-          = showString "VkClearDepthStencilValue {" .
-              showString "depth = " .
-                showsPrec d (getField @"depth" x) .
-                  showString ", " .
-                    showString "stencil = " .
-                      showsPrec d (getField @"stencil" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkClearRect.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkClearRect.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkClearRect.hsc
+++ /dev/null
@@ -1,172 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkClearRect (VkClearRect(..))
-       where
-import           Foreign.Storable                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkRect2D (VkRect2D)
-import           System.IO.Unsafe                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkClearRect {
---   >     VkRect2D       rect;
---   >     uint32_t       baseArrayLayer;
---   >     uint32_t       layerCount;
---   > } VkClearRect;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkClearRect.html VkClearRect registry at www.khronos.org>
-data VkClearRect = VkClearRect## Addr## ByteArray##
-
-instance Eq VkClearRect where
-        (VkClearRect## a _) == x@(VkClearRect## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkClearRect where
-        (VkClearRect## a _) `compare` x@(VkClearRect## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkClearRect where
-        sizeOf ~_ = #{size VkClearRect}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkClearRect}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearRect where
-        unsafeAddr (VkClearRect## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearRect## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearRect## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkClearRect where
-        type StructFields VkClearRect =
-             '["rect", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
-        type CUnionType VkClearRect = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkClearRect = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkClearRect = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "rect" VkClearRect where
-        type FieldType "rect" VkClearRect = VkRect2D
-        type FieldOptional "rect" VkClearRect = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "rect" VkClearRect =
-             #{offset VkClearRect, rect}
-        type FieldIsArray "rect" VkClearRect = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearRect, rect}
-
-instance {-# OVERLAPPING #-} CanReadField "rect" VkClearRect where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearRect, rect})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkClearRect, rect}
-
-instance {-# OVERLAPPING #-} CanWriteField "rect" VkClearRect where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearRect, rect}
-
-instance {-# OVERLAPPING #-} HasField "baseArrayLayer" VkClearRect
-         where
-        type FieldType "baseArrayLayer" VkClearRect = Word32
-        type FieldOptional "baseArrayLayer" VkClearRect = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "baseArrayLayer" VkClearRect =
-             #{offset VkClearRect, baseArrayLayer}
-        type FieldIsArray "baseArrayLayer" VkClearRect = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearRect, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "baseArrayLayer" VkClearRect where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearRect, baseArrayLayer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearRect, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "baseArrayLayer" VkClearRect where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearRect, baseArrayLayer}
-
-instance {-# OVERLAPPING #-} HasField "layerCount" VkClearRect
-         where
-        type FieldType "layerCount" VkClearRect = Word32
-        type FieldOptional "layerCount" VkClearRect = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layerCount" VkClearRect =
-             #{offset VkClearRect, layerCount}
-        type FieldIsArray "layerCount" VkClearRect = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearRect, layerCount}
-
-instance {-# OVERLAPPING #-} CanReadField "layerCount" VkClearRect
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearRect, layerCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearRect, layerCount}
-
-instance {-# OVERLAPPING #-} CanWriteField "layerCount" VkClearRect
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearRect, layerCount}
-
-instance Show VkClearRect where
-        showsPrec d x
-          = showString "VkClearRect {" .
-              showString "rect = " .
-                showsPrec d (getField @"rect" x) .
-                  showString ", " .
-                    showString "baseArrayLayer = " .
-                      showsPrec d (getField @"baseArrayLayer" x) .
-                        showString ", " .
-                          showString "layerCount = " .
-                            showsPrec d (getField @"layerCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkClearValue.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkClearValue.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkClearValue.hsc
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkClearValue (VkClearValue(..))
-       where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkClearColorValue        (VkClearColorValue)
-import           Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue (VkClearDepthStencilValue)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | // Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.
---
---   > typedef union VkClearValue {
---   >     VkClearColorValue      color;
---   >     VkClearDepthStencilValue depthStencil;
---   > } VkClearValue;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkClearValue.html VkClearValue registry at www.khronos.org>
-data VkClearValue = VkClearValue## Addr## ByteArray##
-
-instance Eq VkClearValue where
-        (VkClearValue## a _) == x@(VkClearValue## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkClearValue where
-        (VkClearValue## a _) `compare` x@(VkClearValue## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkClearValue where
-        sizeOf ~_ = #{size VkClearValue}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkClearValue}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkClearValue where
-        unsafeAddr (VkClearValue## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkClearValue## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkClearValue## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkClearValue where
-        type StructFields VkClearValue = '["color", "depthStencil"] -- ' closing tick for hsc2hs
-        type CUnionType VkClearValue = 'True -- ' closing tick for hsc2hs
-        type ReturnedOnly VkClearValue = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkClearValue = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "color" VkClearValue where
-        type FieldType "color" VkClearValue = VkClearColorValue
-        type FieldOptional "color" VkClearValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "color" VkClearValue =
-             #{offset VkClearValue, color}
-        type FieldIsArray "color" VkClearValue = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearValue, color}
-
-instance {-# OVERLAPPING #-} CanReadField "color" VkClearValue
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearValue, color})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearValue, color}
-
-instance {-# OVERLAPPING #-} CanWriteField "color" VkClearValue
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearValue, color}
-
-instance {-# OVERLAPPING #-} HasField "depthStencil" VkClearValue
-         where
-        type FieldType "depthStencil" VkClearValue =
-             VkClearDepthStencilValue
-        type FieldOptional "depthStencil" VkClearValue = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthStencil" VkClearValue =
-             #{offset VkClearValue, depthStencil}
-        type FieldIsArray "depthStencil" VkClearValue = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkClearValue, depthStencil}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthStencil" VkClearValue where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkClearValue, depthStencil})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkClearValue, depthStencil}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthStencil" VkClearValue where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkClearValue, depthStencil}
-
-instance Show VkClearValue where
-        showsPrec d x
-          = showString "VkClearValue {" .
-              showString "color = " .
-                showsPrec d (getField @"color" x) .
-                  showString ", " .
-                    showString "depthStencil = " .
-                      showsPrec d (getField @"depthStencil" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCmdProcessCommandsInfoNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCmdProcessCommandsInfoNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCmdProcessCommandsInfoNVX.hsc
+++ /dev/null
@@ -1,619 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCmdProcessCommandsInfoNVX
-       (VkCmdProcessCommandsInfoNVX(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                         (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType              (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                           (VkBuffer,
-                                                                          VkCommandBuffer,
-                                                                          VkIndirectCommandsLayoutNVX,
-                                                                          VkObjectTableNVX)
-import           Graphics.Vulkan.Types.Struct.VkIndirectCommandsTokenNVX (VkIndirectCommandsTokenNVX)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkCmdProcessCommandsInfoNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkObjectTableNVX                                         objectTable;
---   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
---   >     uint32_t                                                 indirectCommandsTokenCount;
---   >     const VkIndirectCommandsTokenNVX*       pIndirectCommandsTokens;
---   >     uint32_t                                                 maxSequencesCount;
---   >     VkCommandBuffer                          targetCommandBuffer;
---   >     VkBuffer                                 sequencesCountBuffer;
---   >     VkDeviceSize                             sequencesCountOffset;
---   >     VkBuffer                                 sequencesIndexBuffer;
---   >     VkDeviceSize                             sequencesIndexOffset;
---   > } VkCmdProcessCommandsInfoNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCmdProcessCommandsInfoNVX.html VkCmdProcessCommandsInfoNVX registry at www.khronos.org>
-data VkCmdProcessCommandsInfoNVX = VkCmdProcessCommandsInfoNVX## Addr##
-                                                                ByteArray##
-
-instance Eq VkCmdProcessCommandsInfoNVX where
-        (VkCmdProcessCommandsInfoNVX## a _) ==
-          x@(VkCmdProcessCommandsInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCmdProcessCommandsInfoNVX where
-        (VkCmdProcessCommandsInfoNVX## a _) `compare`
-          x@(VkCmdProcessCommandsInfoNVX## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCmdProcessCommandsInfoNVX where
-        sizeOf ~_ = #{size VkCmdProcessCommandsInfoNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkCmdProcessCommandsInfoNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCmdProcessCommandsInfoNVX where
-        unsafeAddr (VkCmdProcessCommandsInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCmdProcessCommandsInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCmdProcessCommandsInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCmdProcessCommandsInfoNVX where
-        type StructFields VkCmdProcessCommandsInfoNVX =
-             '["sType", "pNext", "objectTable", "indirectCommandsLayout", -- ' closing tick for hsc2hs
-               "indirectCommandsTokenCount", "pIndirectCommandsTokens",
-               "maxSequencesCount", "targetCommandBuffer", "sequencesCountBuffer",
-               "sequencesCountOffset", "sequencesIndexBuffer",
-               "sequencesIndexOffset"]
-        type CUnionType VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCmdProcessCommandsInfoNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCmdProcessCommandsInfoNVX where
-        type FieldType "sType" VkCmdProcessCommandsInfoNVX =
-             VkStructureType
-        type FieldOptional "sType" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCmdProcessCommandsInfoNVX =
-             #{offset VkCmdProcessCommandsInfoNVX, sType}
-        type FieldIsArray "sType" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCmdProcessCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCmdProcessCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCmdProcessCommandsInfoNVX where
-        type FieldType "pNext" VkCmdProcessCommandsInfoNVX = Ptr Void
-        type FieldOptional "pNext" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCmdProcessCommandsInfoNVX =
-             #{offset VkCmdProcessCommandsInfoNVX, pNext}
-        type FieldIsArray "pNext" VkCmdProcessCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCmdProcessCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCmdProcessCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectTable" VkCmdProcessCommandsInfoNVX where
-        type FieldType "objectTable" VkCmdProcessCommandsInfoNVX =
-             VkObjectTableNVX
-        type FieldOptional "objectTable" VkCmdProcessCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectTable" VkCmdProcessCommandsInfoNVX =
-             #{offset VkCmdProcessCommandsInfoNVX, objectTable}
-        type FieldIsArray "objectTable" VkCmdProcessCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectTable" VkCmdProcessCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, objectTable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectTable" VkCmdProcessCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         HasField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX where
-        type FieldType "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
-             = VkIndirectCommandsLayoutNVX
-        type FieldOptional "indirectCommandsLayout"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "indirectCommandsLayout"
-               VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
-        type FieldIsArray "indirectCommandsLayout"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "indirectCommandsLayout" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "indirectCommandsTokenCount" VkCmdProcessCommandsInfoNVX
-         where
-        type FieldType "indirectCommandsTokenCount"
-               VkCmdProcessCommandsInfoNVX
-             = Word32
-        type FieldOptional "indirectCommandsTokenCount"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "indirectCommandsTokenCount"
-               VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
-        type FieldIsArray "indirectCommandsTokenCount"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "indirectCommandsTokenCount"
-           VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "indirectCommandsTokenCount"
-           VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, indirectCommandsTokenCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
-         where
-        type FieldType "pIndirectCommandsTokens"
-               VkCmdProcessCommandsInfoNVX
-             = Ptr VkIndirectCommandsTokenNVX
-        type FieldOptional "pIndirectCommandsTokens"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pIndirectCommandsTokens"
-               VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
-        type FieldIsArray "pIndirectCommandsTokens"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pIndirectCommandsTokens" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, pIndirectCommandsTokens}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
-        type FieldType "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
-             Word32
-        type FieldOptional "maxSequencesCount" VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
-             #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
-        type FieldIsArray "maxSequencesCount" VkCmdProcessCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSequencesCount" VkCmdProcessCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, maxSequencesCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX where
-        type FieldType "targetCommandBuffer" VkCmdProcessCommandsInfoNVX =
-             VkCommandBuffer
-        type FieldOptional "targetCommandBuffer"
-               VkCmdProcessCommandsInfoNVX
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
-        type FieldIsArray "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "targetCommandBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, targetCommandBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX where
-        type FieldType "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX =
-             VkBuffer
-        type FieldOptional "sequencesCountBuffer"
-               VkCmdProcessCommandsInfoNVX
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
-        type FieldIsArray "sequencesCountBuffer"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sequencesCountBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX where
-        type FieldType "sequencesCountOffset" VkCmdProcessCommandsInfoNVX =
-             VkDeviceSize
-        type FieldOptional "sequencesCountOffset"
-               VkCmdProcessCommandsInfoNVX
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
-        type FieldIsArray "sequencesCountOffset"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sequencesCountOffset" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesCountOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX where
-        type FieldType "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX =
-             VkBuffer
-        type FieldOptional "sequencesIndexBuffer"
-               VkCmdProcessCommandsInfoNVX
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
-        type FieldIsArray "sequencesIndexBuffer"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sequencesIndexBuffer" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX where
-        type FieldType "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX =
-             VkDeviceSize
-        type FieldOptional "sequencesIndexOffset"
-               VkCmdProcessCommandsInfoNVX
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
-             =
-             #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
-        type FieldIsArray "sequencesIndexOffset"
-               VkCmdProcessCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sequencesIndexOffset" VkCmdProcessCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdProcessCommandsInfoNVX, sequencesIndexOffset}
-
-instance Show VkCmdProcessCommandsInfoNVX where
-        showsPrec d x
-          = showString "VkCmdProcessCommandsInfoNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectTable = " .
-                            showsPrec d (getField @"objectTable" x) .
-                              showString ", " .
-                                showString "indirectCommandsLayout = " .
-                                  showsPrec d (getField @"indirectCommandsLayout" x) .
-                                    showString ", " .
-                                      showString "indirectCommandsTokenCount = " .
-                                        showsPrec d (getField @"indirectCommandsTokenCount" x) .
-                                          showString ", " .
-                                            showString "pIndirectCommandsTokens = " .
-                                              showsPrec d (getField @"pIndirectCommandsTokens" x) .
-                                                showString ", " .
-                                                  showString "maxSequencesCount = " .
-                                                    showsPrec d (getField @"maxSequencesCount" x) .
-                                                      showString ", " .
-                                                        showString "targetCommandBuffer = " .
-                                                          showsPrec d
-                                                            (getField @"targetCommandBuffer" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "sequencesCountBuffer = " .
-                                                                showsPrec d
-                                                                  (getField @"sequencesCountBuffer"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "sequencesCountOffset = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"sequencesCountOffset"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "sequencesIndexBuffer = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"sequencesIndexBuffer"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "sequencesIndexOffset = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"sequencesIndexOffset"
-                                                                                       x)
-                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCmdReserveSpaceForCommandsInfoNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCmdReserveSpaceForCommandsInfoNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCmdReserveSpaceForCommandsInfoNVX.hsc
+++ /dev/null
@@ -1,301 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCmdReserveSpaceForCommandsInfoNVX
-       (VkCmdReserveSpaceForCommandsInfoNVX(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkIndirectCommandsLayoutNVX,
-                                                             VkObjectTableNVX)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkObjectTableNVX                                         objectTable;
---   >     VkIndirectCommandsLayoutNVX                              indirectCommandsLayout;
---   >     uint32_t                                                 maxSequencesCount;
---   > } VkCmdReserveSpaceForCommandsInfoNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCmdReserveSpaceForCommandsInfoNVX.html VkCmdReserveSpaceForCommandsInfoNVX registry at www.khronos.org>
-data VkCmdReserveSpaceForCommandsInfoNVX = VkCmdReserveSpaceForCommandsInfoNVX## Addr##
-                                                                                ByteArray##
-
-instance Eq VkCmdReserveSpaceForCommandsInfoNVX where
-        (VkCmdReserveSpaceForCommandsInfoNVX## a _) ==
-          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCmdReserveSpaceForCommandsInfoNVX where
-        (VkCmdReserveSpaceForCommandsInfoNVX## a _) `compare`
-          x@(VkCmdReserveSpaceForCommandsInfoNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCmdReserveSpaceForCommandsInfoNVX where
-        sizeOf ~_ = #{size VkCmdReserveSpaceForCommandsInfoNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkCmdReserveSpaceForCommandsInfoNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        unsafeAddr (VkCmdReserveSpaceForCommandsInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCmdReserveSpaceForCommandsInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCmdReserveSpaceForCommandsInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCmdReserveSpaceForCommandsInfoNVX where
-        type StructFields VkCmdReserveSpaceForCommandsInfoNVX =
-             '["sType", "pNext", "objectTable", "indirectCommandsLayout", -- ' closing tick for hsc2hs
-               "maxSequencesCount"]
-        type CUnionType VkCmdReserveSpaceForCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCmdReserveSpaceForCommandsInfoNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCmdReserveSpaceForCommandsInfoNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
-        type FieldType "sType" VkCmdReserveSpaceForCommandsInfoNVX =
-             VkStructureType
-        type FieldOptional "sType" VkCmdReserveSpaceForCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCmdReserveSpaceForCommandsInfoNVX =
-             #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
-        type FieldIsArray "sType" VkCmdReserveSpaceForCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCmdReserveSpaceForCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
-        type FieldType "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
-             Ptr Void
-        type FieldOptional "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
-             #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
-        type FieldIsArray "pNext" VkCmdReserveSpaceForCommandsInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCmdReserveSpaceForCommandsInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX where
-        type FieldType "objectTable" VkCmdReserveSpaceForCommandsInfoNVX =
-             VkObjectTableNVX
-        type FieldOptional "objectTable"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
-             =
-             #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
-        type FieldIsArray "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectTable" VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, objectTable}
-
-instance {-# OVERLAPPING #-}
-         HasField "indirectCommandsLayout"
-           VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        type FieldType "indirectCommandsLayout"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = VkIndirectCommandsLayoutNVX
-        type FieldOptional "indirectCommandsLayout"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "indirectCommandsLayout"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             =
-             #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
-        type FieldIsArray "indirectCommandsLayout"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "indirectCommandsLayout"
-           VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "indirectCommandsLayout"
-           VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, indirectCommandsLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSequencesCount" VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        type FieldType "maxSequencesCount"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = Word32
-        type FieldOptional "maxSequencesCount"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSequencesCount"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             =
-             #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
-        type FieldIsArray "maxSequencesCount"
-               VkCmdReserveSpaceForCommandsInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSequencesCount"
-           VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSequencesCount"
-           VkCmdReserveSpaceForCommandsInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCmdReserveSpaceForCommandsInfoNVX, maxSequencesCount}
-
-instance Show VkCmdReserveSpaceForCommandsInfoNVX where
-        showsPrec d x
-          = showString "VkCmdReserveSpaceForCommandsInfoNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectTable = " .
-                            showsPrec d (getField @"objectTable" x) .
-                              showString ", " .
-                                showString "indirectCommandsLayout = " .
-                                  showsPrec d (getField @"indirectCommandsLayout" x) .
-                                    showString ", " .
-                                      showString "maxSequencesCount = " .
-                                        showsPrec d (getField @"maxSequencesCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferAllocateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferAllocateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferAllocateInfo.hsc
+++ /dev/null
@@ -1,267 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo
-       (VkCommandBufferAllocateInfo(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferLevel (VkCommandBufferLevel)
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                   (VkCommandPool)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkCommandBufferAllocateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkCommandPool          commandPool;
---   >     VkCommandBufferLevel   level;
---   >     uint32_t               commandBufferCount;
---   > } VkCommandBufferAllocateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCommandBufferAllocateInfo.html VkCommandBufferAllocateInfo registry at www.khronos.org>
-data VkCommandBufferAllocateInfo = VkCommandBufferAllocateInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkCommandBufferAllocateInfo where
-        (VkCommandBufferAllocateInfo## a _) ==
-          x@(VkCommandBufferAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCommandBufferAllocateInfo where
-        (VkCommandBufferAllocateInfo## a _) `compare`
-          x@(VkCommandBufferAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCommandBufferAllocateInfo where
-        sizeOf ~_ = #{size VkCommandBufferAllocateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkCommandBufferAllocateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCommandBufferAllocateInfo where
-        unsafeAddr (VkCommandBufferAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCommandBufferAllocateInfo where
-        type StructFields VkCommandBufferAllocateInfo =
-             '["sType", "pNext", "commandPool", "level", "commandBufferCount"] -- ' closing tick for hsc2hs
-        type CUnionType VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCommandBufferAllocateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCommandBufferAllocateInfo where
-        type FieldType "sType" VkCommandBufferAllocateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCommandBufferAllocateInfo =
-             #{offset VkCommandBufferAllocateInfo, sType}
-        type FieldIsArray "sType" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCommandBufferAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCommandBufferAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCommandBufferAllocateInfo where
-        type FieldType "pNext" VkCommandBufferAllocateInfo = Ptr Void
-        type FieldOptional "pNext" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCommandBufferAllocateInfo =
-             #{offset VkCommandBufferAllocateInfo, pNext}
-        type FieldIsArray "pNext" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCommandBufferAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCommandBufferAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "commandPool" VkCommandBufferAllocateInfo where
-        type FieldType "commandPool" VkCommandBufferAllocateInfo =
-             VkCommandPool
-        type FieldOptional "commandPool" VkCommandBufferAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "commandPool" VkCommandBufferAllocateInfo =
-             #{offset VkCommandBufferAllocateInfo, commandPool}
-        type FieldIsArray "commandPool" VkCommandBufferAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferAllocateInfo, commandPool}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "commandPool" VkCommandBufferAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, commandPool})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferAllocateInfo, commandPool}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "commandPool" VkCommandBufferAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, commandPool}
-
-instance {-# OVERLAPPING #-}
-         HasField "level" VkCommandBufferAllocateInfo where
-        type FieldType "level" VkCommandBufferAllocateInfo =
-             VkCommandBufferLevel
-        type FieldOptional "level" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "level" VkCommandBufferAllocateInfo =
-             #{offset VkCommandBufferAllocateInfo, level}
-        type FieldIsArray "level" VkCommandBufferAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferAllocateInfo, level}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "level" VkCommandBufferAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, level})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferAllocateInfo, level}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "level" VkCommandBufferAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, level}
-
-instance {-# OVERLAPPING #-}
-         HasField "commandBufferCount" VkCommandBufferAllocateInfo where
-        type FieldType "commandBufferCount" VkCommandBufferAllocateInfo =
-             Word32
-        type FieldOptional "commandBufferCount" VkCommandBufferAllocateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "commandBufferCount" VkCommandBufferAllocateInfo =
-             #{offset VkCommandBufferAllocateInfo, commandBufferCount}
-        type FieldIsArray "commandBufferCount" VkCommandBufferAllocateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferAllocateInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "commandBufferCount" VkCommandBufferAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferAllocateInfo, commandBufferCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferAllocateInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "commandBufferCount" VkCommandBufferAllocateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferAllocateInfo, commandBufferCount}
-
-instance Show VkCommandBufferAllocateInfo where
-        showsPrec d x
-          = showString "VkCommandBufferAllocateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "commandPool = " .
-                            showsPrec d (getField @"commandPool" x) .
-                              showString ", " .
-                                showString "level = " .
-                                  showsPrec d (getField @"level" x) .
-                                    showString ", " .
-                                      showString "commandBufferCount = " .
-                                        showsPrec d (getField @"commandBufferCount" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferBeginInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferBeginInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferBeginInfo.hsc
+++ /dev/null
@@ -1,220 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo
-       (VkCommandBufferBeginInfo(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags        (VkCommandBufferUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo (VkCommandBufferInheritanceInfo)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkCommandBufferBeginInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkCommandBufferUsageFlags  flags;
---   >     const VkCommandBufferInheritanceInfo*       pInheritanceInfo;
---   > } VkCommandBufferBeginInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCommandBufferBeginInfo.html VkCommandBufferBeginInfo registry at www.khronos.org>
-data VkCommandBufferBeginInfo = VkCommandBufferBeginInfo## Addr##
-                                                          ByteArray##
-
-instance Eq VkCommandBufferBeginInfo where
-        (VkCommandBufferBeginInfo## a _) ==
-          x@(VkCommandBufferBeginInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCommandBufferBeginInfo where
-        (VkCommandBufferBeginInfo## a _) `compare`
-          x@(VkCommandBufferBeginInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCommandBufferBeginInfo where
-        sizeOf ~_ = #{size VkCommandBufferBeginInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkCommandBufferBeginInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCommandBufferBeginInfo where
-        unsafeAddr (VkCommandBufferBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferBeginInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCommandBufferBeginInfo where
-        type StructFields VkCommandBufferBeginInfo =
-             '["sType", "pNext", "flags", "pInheritanceInfo"] -- ' closing tick for hsc2hs
-        type CUnionType VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCommandBufferBeginInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCommandBufferBeginInfo where
-        type FieldType "sType" VkCommandBufferBeginInfo = VkStructureType
-        type FieldOptional "sType" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCommandBufferBeginInfo =
-             #{offset VkCommandBufferBeginInfo, sType}
-        type FieldIsArray "sType" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCommandBufferBeginInfo where
-        type FieldType "pNext" VkCommandBufferBeginInfo = Ptr Void
-        type FieldOptional "pNext" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCommandBufferBeginInfo =
-             #{offset VkCommandBufferBeginInfo, pNext}
-        type FieldIsArray "pNext" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkCommandBufferBeginInfo where
-        type FieldType "flags" VkCommandBufferBeginInfo =
-             VkCommandBufferUsageFlags
-        type FieldOptional "flags" VkCommandBufferBeginInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkCommandBufferBeginInfo =
-             #{offset VkCommandBufferBeginInfo, flags}
-        type FieldIsArray "flags" VkCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandBufferBeginInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferBeginInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferBeginInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pInheritanceInfo" VkCommandBufferBeginInfo where
-        type FieldType "pInheritanceInfo" VkCommandBufferBeginInfo =
-             Ptr VkCommandBufferInheritanceInfo
-        type FieldOptional "pInheritanceInfo" VkCommandBufferBeginInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pInheritanceInfo" VkCommandBufferBeginInfo =
-             #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
-        type FieldIsArray "pInheritanceInfo" VkCommandBufferBeginInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pInheritanceInfo" VkCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferBeginInfo, pInheritanceInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pInheritanceInfo" VkCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferBeginInfo, pInheritanceInfo}
-
-instance Show VkCommandBufferBeginInfo where
-        showsPrec d x
-          = showString "VkCommandBufferBeginInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pInheritanceInfo = " .
-                                  showsPrec d (getField @"pInheritanceInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferInheritanceInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferInheritanceInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandBufferInheritanceInfo.hsc
+++ /dev/null
@@ -1,403 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo
-       (VkCommandBufferInheritanceInfo(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkQueryControlFlags           (VkQueryControlFlags)
-import           Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags (VkQueryPipelineStatisticFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                            (VkFramebuffer,
-                                                                           VkRenderPass)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkCommandBufferInheritanceInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkRenderPass    renderPass;
---   >     uint32_t               subpass;
---   >     VkFramebuffer   framebuffer;
---   >     VkBool32               occlusionQueryEnable;
---   >     VkQueryControlFlags    queryFlags;
---   >     VkQueryPipelineStatisticFlags pipelineStatistics;
---   > } VkCommandBufferInheritanceInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCommandBufferInheritanceInfo.html VkCommandBufferInheritanceInfo registry at www.khronos.org>
-data VkCommandBufferInheritanceInfo = VkCommandBufferInheritanceInfo## Addr##
-                                                                      ByteArray##
-
-instance Eq VkCommandBufferInheritanceInfo where
-        (VkCommandBufferInheritanceInfo## a _) ==
-          x@(VkCommandBufferInheritanceInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCommandBufferInheritanceInfo where
-        (VkCommandBufferInheritanceInfo## a _) `compare`
-          x@(VkCommandBufferInheritanceInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCommandBufferInheritanceInfo where
-        sizeOf ~_ = #{size VkCommandBufferInheritanceInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkCommandBufferInheritanceInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCommandBufferInheritanceInfo where
-        unsafeAddr (VkCommandBufferInheritanceInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandBufferInheritanceInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandBufferInheritanceInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCommandBufferInheritanceInfo where
-        type StructFields VkCommandBufferInheritanceInfo =
-             '["sType", "pNext", "renderPass", "subpass", "framebuffer", -- ' closing tick for hsc2hs
-               "occlusionQueryEnable", "queryFlags", "pipelineStatistics"]
-        type CUnionType VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCommandBufferInheritanceInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCommandBufferInheritanceInfo where
-        type FieldType "sType" VkCommandBufferInheritanceInfo =
-             VkStructureType
-        type FieldOptional "sType" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, sType}
-        type FieldIsArray "sType" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCommandBufferInheritanceInfo where
-        type FieldType "pNext" VkCommandBufferInheritanceInfo = Ptr Void
-        type FieldOptional "pNext" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, pNext}
-        type FieldIsArray "pNext" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "renderPass" VkCommandBufferInheritanceInfo where
-        type FieldType "renderPass" VkCommandBufferInheritanceInfo =
-             VkRenderPass
-        type FieldOptional "renderPass" VkCommandBufferInheritanceInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "renderPass" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, renderPass}
-        type FieldIsArray "renderPass" VkCommandBufferInheritanceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "renderPass" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, renderPass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "renderPass" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         HasField "subpass" VkCommandBufferInheritanceInfo where
-        type FieldType "subpass" VkCommandBufferInheritanceInfo = Word32
-        type FieldOptional "subpass" VkCommandBufferInheritanceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subpass" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, subpass}
-        type FieldIsArray "subpass" VkCommandBufferInheritanceInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpass" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, subpass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpass" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebuffer" VkCommandBufferInheritanceInfo where
-        type FieldType "framebuffer" VkCommandBufferInheritanceInfo =
-             VkFramebuffer
-        type FieldOptional "framebuffer" VkCommandBufferInheritanceInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebuffer" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, framebuffer}
-        type FieldIsArray "framebuffer" VkCommandBufferInheritanceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebuffer" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, framebuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebuffer" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
-         where
-        type FieldType "occlusionQueryEnable"
-               VkCommandBufferInheritanceInfo
-             = VkBool32
-        type FieldOptional "occlusionQueryEnable"
-               VkCommandBufferInheritanceInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "occlusionQueryEnable"
-               VkCommandBufferInheritanceInfo
-             =
-             #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
-        type FieldIsArray "occlusionQueryEnable"
-               VkCommandBufferInheritanceInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "occlusionQueryEnable" VkCommandBufferInheritanceInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, occlusionQueryEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "queryFlags" VkCommandBufferInheritanceInfo where
-        type FieldType "queryFlags" VkCommandBufferInheritanceInfo =
-             VkQueryControlFlags
-        type FieldOptional "queryFlags" VkCommandBufferInheritanceInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "queryFlags" VkCommandBufferInheritanceInfo =
-             #{offset VkCommandBufferInheritanceInfo, queryFlags}
-        type FieldIsArray "queryFlags" VkCommandBufferInheritanceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, queryFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queryFlags" VkCommandBufferInheritanceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, queryFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, queryFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queryFlags" VkCommandBufferInheritanceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, queryFlags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineStatistics" VkCommandBufferInheritanceInfo where
-        type FieldType "pipelineStatistics" VkCommandBufferInheritanceInfo
-             = VkQueryPipelineStatisticFlags
-        type FieldOptional "pipelineStatistics"
-               VkCommandBufferInheritanceInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineStatistics"
-               VkCommandBufferInheritanceInfo
-             =
-             #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
-        type FieldIsArray "pipelineStatistics"
-               VkCommandBufferInheritanceInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineStatistics" VkCommandBufferInheritanceInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandBufferInheritanceInfo, pipelineStatistics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineStatistics" VkCommandBufferInheritanceInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandBufferInheritanceInfo, pipelineStatistics}
-
-instance Show VkCommandBufferInheritanceInfo where
-        showsPrec d x
-          = showString "VkCommandBufferInheritanceInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "renderPass = " .
-                            showsPrec d (getField @"renderPass" x) .
-                              showString ", " .
-                                showString "subpass = " .
-                                  showsPrec d (getField @"subpass" x) .
-                                    showString ", " .
-                                      showString "framebuffer = " .
-                                        showsPrec d (getField @"framebuffer" x) .
-                                          showString ", " .
-                                            showString "occlusionQueryEnable = " .
-                                              showsPrec d (getField @"occlusionQueryEnable" x) .
-                                                showString ", " .
-                                                  showString "queryFlags = " .
-                                                    showsPrec d (getField @"queryFlags" x) .
-                                                      showString ", " .
-                                                        showString "pipelineStatistics = " .
-                                                          showsPrec d
-                                                            (getField @"pipelineStatistics" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandPoolCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCommandPoolCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCommandPoolCreateInfo.hsc
+++ /dev/null
@@ -1,217 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo
-       (VkCommandPoolCreateInfo(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags (VkCommandPoolCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkCommandPoolCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkCommandPoolCreateFlags   flags;
---   >     uint32_t               queueFamilyIndex;
---   > } VkCommandPoolCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCommandPoolCreateInfo.html VkCommandPoolCreateInfo registry at www.khronos.org>
-data VkCommandPoolCreateInfo = VkCommandPoolCreateInfo## Addr##
-                                                        ByteArray##
-
-instance Eq VkCommandPoolCreateInfo where
-        (VkCommandPoolCreateInfo## a _) == x@(VkCommandPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCommandPoolCreateInfo where
-        (VkCommandPoolCreateInfo## a _) `compare`
-          x@(VkCommandPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCommandPoolCreateInfo where
-        sizeOf ~_ = #{size VkCommandPoolCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkCommandPoolCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCommandPoolCreateInfo where
-        unsafeAddr (VkCommandPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCommandPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCommandPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCommandPoolCreateInfo where
-        type StructFields VkCommandPoolCreateInfo =
-             '["sType", "pNext", "flags", "queueFamilyIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCommandPoolCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkCommandPoolCreateInfo where
-        type FieldType "sType" VkCommandPoolCreateInfo = VkStructureType
-        type FieldOptional "sType" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCommandPoolCreateInfo =
-             #{offset VkCommandPoolCreateInfo, sType}
-        type FieldIsArray "sType" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCommandPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCommandPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkCommandPoolCreateInfo where
-        type FieldType "pNext" VkCommandPoolCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCommandPoolCreateInfo =
-             #{offset VkCommandPoolCreateInfo, pNext}
-        type FieldIsArray "pNext" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCommandPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCommandPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkCommandPoolCreateInfo where
-        type FieldType "flags" VkCommandPoolCreateInfo =
-             VkCommandPoolCreateFlags
-        type FieldOptional "flags" VkCommandPoolCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkCommandPoolCreateInfo =
-             #{offset VkCommandPoolCreateInfo, flags}
-        type FieldIsArray "flags" VkCommandPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCommandPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkCommandPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkCommandPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndex" VkCommandPoolCreateInfo where
-        type FieldType "queueFamilyIndex" VkCommandPoolCreateInfo = Word32
-        type FieldOptional "queueFamilyIndex" VkCommandPoolCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndex" VkCommandPoolCreateInfo =
-             #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
-        type FieldIsArray "queueFamilyIndex" VkCommandPoolCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndex" VkCommandPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCommandPoolCreateInfo, queueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndex" VkCommandPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCommandPoolCreateInfo, queueFamilyIndex}
-
-instance Show VkCommandPoolCreateInfo where
-        showsPrec d x
-          = showString "VkCommandPoolCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "queueFamilyIndex = " .
-                                  showsPrec d (getField @"queueFamilyIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkComponentMapping.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkComponentMapping.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkComponentMapping.hsc
+++ /dev/null
@@ -1,205 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkComponentMapping
-       (VkComponentMapping(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkComponentSwizzle (VkComponentSwizzle)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkComponentMapping {
---   >     VkComponentSwizzle r;
---   >     VkComponentSwizzle g;
---   >     VkComponentSwizzle b;
---   >     VkComponentSwizzle a;
---   > } VkComponentMapping;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkComponentMapping.html VkComponentMapping registry at www.khronos.org>
-data VkComponentMapping = VkComponentMapping## Addr## ByteArray##
-
-instance Eq VkComponentMapping where
-        (VkComponentMapping## a _) == x@(VkComponentMapping## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkComponentMapping where
-        (VkComponentMapping## a _) `compare` x@(VkComponentMapping## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkComponentMapping where
-        sizeOf ~_ = #{size VkComponentMapping}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkComponentMapping}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkComponentMapping where
-        unsafeAddr (VkComponentMapping## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkComponentMapping## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkComponentMapping## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkComponentMapping where
-        type StructFields VkComponentMapping = '["r", "g", "b", "a"] -- ' closing tick for hsc2hs
-        type CUnionType VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkComponentMapping = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "r" VkComponentMapping where
-        type FieldType "r" VkComponentMapping = VkComponentSwizzle
-        type FieldOptional "r" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "r" VkComponentMapping =
-             #{offset VkComponentMapping, r}
-        type FieldIsArray "r" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkComponentMapping, r}
-
-instance {-# OVERLAPPING #-} CanReadField "r" VkComponentMapping
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, r})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComponentMapping, r}
-
-instance {-# OVERLAPPING #-} CanWriteField "r" VkComponentMapping
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComponentMapping, r}
-
-instance {-# OVERLAPPING #-} HasField "g" VkComponentMapping where
-        type FieldType "g" VkComponentMapping = VkComponentSwizzle
-        type FieldOptional "g" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "g" VkComponentMapping =
-             #{offset VkComponentMapping, g}
-        type FieldIsArray "g" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkComponentMapping, g}
-
-instance {-# OVERLAPPING #-} CanReadField "g" VkComponentMapping
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, g})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComponentMapping, g}
-
-instance {-# OVERLAPPING #-} CanWriteField "g" VkComponentMapping
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComponentMapping, g}
-
-instance {-# OVERLAPPING #-} HasField "b" VkComponentMapping where
-        type FieldType "b" VkComponentMapping = VkComponentSwizzle
-        type FieldOptional "b" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "b" VkComponentMapping =
-             #{offset VkComponentMapping, b}
-        type FieldIsArray "b" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkComponentMapping, b}
-
-instance {-# OVERLAPPING #-} CanReadField "b" VkComponentMapping
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, b})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComponentMapping, b}
-
-instance {-# OVERLAPPING #-} CanWriteField "b" VkComponentMapping
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComponentMapping, b}
-
-instance {-# OVERLAPPING #-} HasField "a" VkComponentMapping where
-        type FieldType "a" VkComponentMapping = VkComponentSwizzle
-        type FieldOptional "a" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "a" VkComponentMapping =
-             #{offset VkComponentMapping, a}
-        type FieldIsArray "a" VkComponentMapping = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkComponentMapping, a}
-
-instance {-# OVERLAPPING #-} CanReadField "a" VkComponentMapping
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComponentMapping, a})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComponentMapping, a}
-
-instance {-# OVERLAPPING #-} CanWriteField "a" VkComponentMapping
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComponentMapping, a}
-
-instance Show VkComponentMapping where
-        showsPrec d x
-          = showString "VkComponentMapping {" .
-              showString "r = " .
-                showsPrec d (getField @"r" x) .
-                  showString ", " .
-                    showString "g = " .
-                      showsPrec d (getField @"g" x) .
-                        showString ", " .
-                          showString "b = " .
-                            showsPrec d (getField @"b" x) .
-                              showString ", " .
-                                showString "a = " . showsPrec d (getField @"a" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkComputePipelineCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkComputePipelineCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkComputePipelineCreateInfo.hsc
+++ /dev/null
@@ -1,344 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo
-       (VkComputePipelineCreateInfo(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags             (VkPipelineCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                (VkPipeline,
-                                                                               VkPipelineLayout)
-import           Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo (VkPipelineShaderStageCreateInfo)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkComputePipelineCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineCreateFlags  flags;
---   >     VkPipelineShaderStageCreateInfo stage;
---   >     VkPipelineLayout       layout;
---   >     VkPipeline      basePipelineHandle;
---   >     int32_t                basePipelineIndex;
---   > } VkComputePipelineCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkComputePipelineCreateInfo.html VkComputePipelineCreateInfo registry at www.khronos.org>
-data VkComputePipelineCreateInfo = VkComputePipelineCreateInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkComputePipelineCreateInfo where
-        (VkComputePipelineCreateInfo## a _) ==
-          x@(VkComputePipelineCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkComputePipelineCreateInfo where
-        (VkComputePipelineCreateInfo## a _) `compare`
-          x@(VkComputePipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkComputePipelineCreateInfo where
-        sizeOf ~_ = #{size VkComputePipelineCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkComputePipelineCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkComputePipelineCreateInfo where
-        unsafeAddr (VkComputePipelineCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkComputePipelineCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkComputePipelineCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkComputePipelineCreateInfo where
-        type StructFields VkComputePipelineCreateInfo =
-             '["sType", "pNext", "flags", "stage", "layout", -- ' closing tick for hsc2hs
-               "basePipelineHandle", "basePipelineIndex"]
-        type CUnionType VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkComputePipelineCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkComputePipelineCreateInfo where
-        type FieldType "sType" VkComputePipelineCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, sType}
-        type FieldIsArray "sType" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkComputePipelineCreateInfo where
-        type FieldType "pNext" VkComputePipelineCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, pNext}
-        type FieldIsArray "pNext" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkComputePipelineCreateInfo where
-        type FieldType "flags" VkComputePipelineCreateInfo =
-             VkPipelineCreateFlags
-        type FieldOptional "flags" VkComputePipelineCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, flags}
-        type FieldIsArray "flags" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "stage" VkComputePipelineCreateInfo where
-        type FieldType "stage" VkComputePipelineCreateInfo =
-             VkPipelineShaderStageCreateInfo
-        type FieldOptional "stage" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stage" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, stage}
-        type FieldIsArray "stage" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stage" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, stage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stage" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         HasField "layout" VkComputePipelineCreateInfo where
-        type FieldType "layout" VkComputePipelineCreateInfo =
-             VkPipelineLayout
-        type FieldOptional "layout" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layout" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, layout}
-        type FieldIsArray "layout" VkComputePipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layout" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, layout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layout" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         HasField "basePipelineHandle" VkComputePipelineCreateInfo where
-        type FieldType "basePipelineHandle" VkComputePipelineCreateInfo =
-             VkPipeline
-        type FieldOptional "basePipelineHandle" VkComputePipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "basePipelineHandle" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, basePipelineHandle}
-        type FieldIsArray "basePipelineHandle" VkComputePipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "basePipelineHandle" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, basePipelineHandle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "basePipelineHandle" VkComputePipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         HasField "basePipelineIndex" VkComputePipelineCreateInfo where
-        type FieldType "basePipelineIndex" VkComputePipelineCreateInfo =
-             Int32
-        type FieldOptional "basePipelineIndex" VkComputePipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "basePipelineIndex" VkComputePipelineCreateInfo =
-             #{offset VkComputePipelineCreateInfo, basePipelineIndex}
-        type FieldIsArray "basePipelineIndex" VkComputePipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkComputePipelineCreateInfo, basePipelineIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "basePipelineIndex" VkComputePipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkComputePipelineCreateInfo, basePipelineIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkComputePipelineCreateInfo, basePipelineIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "basePipelineIndex" VkComputePipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkComputePipelineCreateInfo, basePipelineIndex}
-
-instance Show VkComputePipelineCreateInfo where
-        showsPrec d x
-          = showString "VkComputePipelineCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "stage = " .
-                                  showsPrec d (getField @"stage" x) .
-                                    showString ", " .
-                                      showString "layout = " .
-                                        showsPrec d (getField @"layout" x) .
-                                          showString ", " .
-                                            showString "basePipelineHandle = " .
-                                              showsPrec d (getField @"basePipelineHandle" x) .
-                                                showString ", " .
-                                                  showString "basePipelineIndex = " .
-                                                    showsPrec d (getField @"basePipelineIndex" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkCopyDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkCopyDescriptorSet.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkCopyDescriptorSet.hsc
+++ /dev/null
@@ -1,395 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet
-       (VkCopyDescriptorSet(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDescriptorSet)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkCopyDescriptorSet {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDescriptorSet        srcSet;
---   >     uint32_t               srcBinding;
---   >     uint32_t               srcArrayElement;
---   >     VkDescriptorSet        dstSet;
---   >     uint32_t               dstBinding;
---   >     uint32_t               dstArrayElement;
---   >     uint32_t               descriptorCount;
---   > } VkCopyDescriptorSet;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkCopyDescriptorSet.html VkCopyDescriptorSet registry at www.khronos.org>
-data VkCopyDescriptorSet = VkCopyDescriptorSet## Addr## ByteArray##
-
-instance Eq VkCopyDescriptorSet where
-        (VkCopyDescriptorSet## a _) == x@(VkCopyDescriptorSet## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkCopyDescriptorSet where
-        (VkCopyDescriptorSet## a _) `compare` x@(VkCopyDescriptorSet## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkCopyDescriptorSet where
-        sizeOf ~_ = #{size VkCopyDescriptorSet}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkCopyDescriptorSet}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkCopyDescriptorSet where
-        unsafeAddr (VkCopyDescriptorSet## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkCopyDescriptorSet## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkCopyDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkCopyDescriptorSet where
-        type StructFields VkCopyDescriptorSet =
-             '["sType", "pNext", "srcSet", "srcBinding", "srcArrayElement", -- ' closing tick for hsc2hs
-               "dstSet", "dstBinding", "dstArrayElement", "descriptorCount"]
-        type CUnionType VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkCopyDescriptorSet = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkCopyDescriptorSet
-         where
-        type FieldType "sType" VkCopyDescriptorSet = VkStructureType
-        type FieldOptional "sType" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, sType}
-        type FieldIsArray "sType" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkCopyDescriptorSet
-         where
-        type FieldType "pNext" VkCopyDescriptorSet = Ptr Void
-        type FieldOptional "pNext" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, pNext}
-        type FieldIsArray "pNext" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-} HasField "srcSet" VkCopyDescriptorSet
-         where
-        type FieldType "srcSet" VkCopyDescriptorSet = VkDescriptorSet
-        type FieldOptional "srcSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcSet" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, srcSet}
-        type FieldIsArray "srcSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, srcSet}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcSet" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcSet})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, srcSet}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcSet" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, srcSet}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcBinding" VkCopyDescriptorSet where
-        type FieldType "srcBinding" VkCopyDescriptorSet = Word32
-        type FieldOptional "srcBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcBinding" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, srcBinding}
-        type FieldIsArray "srcBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, srcBinding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcBinding" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcBinding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, srcBinding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcBinding" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, srcBinding}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcArrayElement" VkCopyDescriptorSet where
-        type FieldType "srcArrayElement" VkCopyDescriptorSet = Word32
-        type FieldOptional "srcArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcArrayElement" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, srcArrayElement}
-        type FieldIsArray "srcArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCopyDescriptorSet, srcArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcArrayElement" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, srcArrayElement})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, srcArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcArrayElement" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, srcArrayElement}
-
-instance {-# OVERLAPPING #-} HasField "dstSet" VkCopyDescriptorSet
-         where
-        type FieldType "dstSet" VkCopyDescriptorSet = VkDescriptorSet
-        type FieldOptional "dstSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSet" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, dstSet}
-        type FieldIsArray "dstSet" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSet" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstSet})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSet" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstBinding" VkCopyDescriptorSet where
-        type FieldType "dstBinding" VkCopyDescriptorSet = Word32
-        type FieldOptional "dstBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstBinding" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, dstBinding}
-        type FieldIsArray "dstBinding" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkCopyDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstBinding" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstBinding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstBinding" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstArrayElement" VkCopyDescriptorSet where
-        type FieldType "dstArrayElement" VkCopyDescriptorSet = Word32
-        type FieldOptional "dstArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstArrayElement" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, dstArrayElement}
-        type FieldIsArray "dstArrayElement" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCopyDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstArrayElement" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, dstArrayElement})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstArrayElement" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorCount" VkCopyDescriptorSet where
-        type FieldType "descriptorCount" VkCopyDescriptorSet = Word32
-        type FieldOptional "descriptorCount" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorCount" VkCopyDescriptorSet =
-             #{offset VkCopyDescriptorSet, descriptorCount}
-        type FieldIsArray "descriptorCount" VkCopyDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkCopyDescriptorSet, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorCount" VkCopyDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkCopyDescriptorSet, descriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkCopyDescriptorSet, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorCount" VkCopyDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkCopyDescriptorSet, descriptorCount}
-
-instance Show VkCopyDescriptorSet where
-        showsPrec d x
-          = showString "VkCopyDescriptorSet {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcSet = " .
-                            showsPrec d (getField @"srcSet" x) .
-                              showString ", " .
-                                showString "srcBinding = " .
-                                  showsPrec d (getField @"srcBinding" x) .
-                                    showString ", " .
-                                      showString "srcArrayElement = " .
-                                        showsPrec d (getField @"srcArrayElement" x) .
-                                          showString ", " .
-                                            showString "dstSet = " .
-                                              showsPrec d (getField @"dstSet" x) .
-                                                showString ", " .
-                                                  showString "dstBinding = " .
-                                                    showsPrec d (getField @"dstBinding" x) .
-                                                      showString ", " .
-                                                        showString "dstArrayElement = " .
-                                                          showsPrec d
-                                                            (getField @"dstArrayElement" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "descriptorCount = " .
-                                                                showsPrec d
-                                                                  (getField @"descriptorCount" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkD3D12FenceSubmitInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkD3D12FenceSubmitInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkD3D12FenceSubmitInfoKHR.hsc
+++ /dev/null
@@ -1,326 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkD3D12FenceSubmitInfoKHR
-       (VkD3D12FenceSubmitInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkD3D12FenceSubmitInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         waitSemaphoreValuesCount;
---   >     const uint64_t* pWaitSemaphoreValues;
---   >     uint32_t         signalSemaphoreValuesCount;
---   >     const uint64_t* pSignalSemaphoreValues;
---   > } VkD3D12FenceSubmitInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkD3D12FenceSubmitInfoKHR.html VkD3D12FenceSubmitInfoKHR registry at www.khronos.org>
-data VkD3D12FenceSubmitInfoKHR = VkD3D12FenceSubmitInfoKHR## Addr##
-                                                            ByteArray##
-
-instance Eq VkD3D12FenceSubmitInfoKHR where
-        (VkD3D12FenceSubmitInfoKHR## a _) ==
-          x@(VkD3D12FenceSubmitInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkD3D12FenceSubmitInfoKHR where
-        (VkD3D12FenceSubmitInfoKHR## a _) `compare`
-          x@(VkD3D12FenceSubmitInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkD3D12FenceSubmitInfoKHR where
-        sizeOf ~_ = #{size VkD3D12FenceSubmitInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkD3D12FenceSubmitInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkD3D12FenceSubmitInfoKHR where
-        unsafeAddr (VkD3D12FenceSubmitInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkD3D12FenceSubmitInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkD3D12FenceSubmitInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkD3D12FenceSubmitInfoKHR where
-        type StructFields VkD3D12FenceSubmitInfoKHR =
-             '["sType", "pNext", "waitSemaphoreValuesCount", -- ' closing tick for hsc2hs
-               "pWaitSemaphoreValues", "signalSemaphoreValuesCount",
-               "pSignalSemaphoreValues"]
-        type CUnionType VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkD3D12FenceSubmitInfoKHR = '[VkSubmitInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkD3D12FenceSubmitInfoKHR where
-        type FieldType "sType" VkD3D12FenceSubmitInfoKHR = VkStructureType
-        type FieldOptional "sType" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkD3D12FenceSubmitInfoKHR =
-             #{offset VkD3D12FenceSubmitInfoKHR, sType}
-        type FieldIsArray "sType" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkD3D12FenceSubmitInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkD3D12FenceSubmitInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkD3D12FenceSubmitInfoKHR where
-        type FieldType "pNext" VkD3D12FenceSubmitInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkD3D12FenceSubmitInfoKHR =
-             #{offset VkD3D12FenceSubmitInfoKHR, pNext}
-        type FieldIsArray "pNext" VkD3D12FenceSubmitInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkD3D12FenceSubmitInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkD3D12FenceSubmitInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR where
-        type FieldType "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
-             = Word32
-        type FieldOptional "waitSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "waitSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             =
-             #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
-        type FieldIsArray "waitSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "waitSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, waitSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
-        type FieldType "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
-             Ptr Word64
-        type FieldOptional "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
-             #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
-        type FieldIsArray "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pWaitSemaphoreValues}
-
-instance {-# OVERLAPPING #-}
-         HasField "signalSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
-         where
-        type FieldType "signalSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             = Word32
-        type FieldOptional "signalSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "signalSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             =
-             #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
-        type FieldIsArray "signalSemaphoreValuesCount"
-               VkD3D12FenceSubmitInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "signalSemaphoreValuesCount" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "signalSemaphoreValuesCount"
-           VkD3D12FenceSubmitInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, signalSemaphoreValuesCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR where
-        type FieldType "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR =
-             Ptr Word64
-        type FieldOptional "pSignalSemaphoreValues"
-               VkD3D12FenceSubmitInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-             =
-             #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
-        type FieldIsArray "pSignalSemaphoreValues"
-               VkD3D12FenceSubmitInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSignalSemaphoreValues" VkD3D12FenceSubmitInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkD3D12FenceSubmitInfoKHR, pSignalSemaphoreValues}
-
-instance Show VkD3D12FenceSubmitInfoKHR where
-        showsPrec d x
-          = showString "VkD3D12FenceSubmitInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "waitSemaphoreValuesCount = " .
-                            showsPrec d (getField @"waitSemaphoreValuesCount" x) .
-                              showString ", " .
-                                showString "pWaitSemaphoreValues = " .
-                                  showsPrec d (getField @"pWaitSemaphoreValues" x) .
-                                    showString ", " .
-                                      showString "signalSemaphoreValuesCount = " .
-                                        showsPrec d (getField @"signalSemaphoreValuesCount" x) .
-                                          showString ", " .
-                                            showString "pSignalSemaphoreValues = " .
-                                              showsPrec d (getField @"pSignalSemaphoreValues" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerMarkerInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerMarkerInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerMarkerInfoEXT.hsc
+++ /dev/null
@@ -1,282 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkDebugMarkerMarkerInfoEXT
-       (VkDebugMarkerMarkerInfoEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                               (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugMarkerMarkerInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     const char* pMarkerName;
---   >     float            color[4];
---   > } VkDebugMarkerMarkerInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugMarkerMarkerInfoEXT.html VkDebugMarkerMarkerInfoEXT registry at www.khronos.org>
-data VkDebugMarkerMarkerInfoEXT = VkDebugMarkerMarkerInfoEXT## Addr##
-                                                              ByteArray##
-
-instance Eq VkDebugMarkerMarkerInfoEXT where
-        (VkDebugMarkerMarkerInfoEXT## a _) ==
-          x@(VkDebugMarkerMarkerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugMarkerMarkerInfoEXT where
-        (VkDebugMarkerMarkerInfoEXT## a _) `compare`
-          x@(VkDebugMarkerMarkerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugMarkerMarkerInfoEXT where
-        sizeOf ~_ = #{size VkDebugMarkerMarkerInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDebugMarkerMarkerInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugMarkerMarkerInfoEXT where
-        unsafeAddr (VkDebugMarkerMarkerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerMarkerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerMarkerInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugMarkerMarkerInfoEXT where
-        type StructFields VkDebugMarkerMarkerInfoEXT =
-             '["sType", "pNext", "pMarkerName", "color"] -- ' closing tick for hsc2hs
-        type CUnionType VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugMarkerMarkerInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugMarkerMarkerInfoEXT where
-        type FieldType "sType" VkDebugMarkerMarkerInfoEXT = VkStructureType
-        type FieldOptional "sType" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugMarkerMarkerInfoEXT =
-             #{offset VkDebugMarkerMarkerInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerMarkerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugMarkerMarkerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugMarkerMarkerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugMarkerMarkerInfoEXT where
-        type FieldType "pNext" VkDebugMarkerMarkerInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugMarkerMarkerInfoEXT =
-             #{offset VkDebugMarkerMarkerInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerMarkerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugMarkerMarkerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugMarkerMarkerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
-        type FieldType "pMarkerName" VkDebugMarkerMarkerInfoEXT = CString
-        type FieldOptional "pMarkerName" VkDebugMarkerMarkerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pMarkerName" VkDebugMarkerMarkerInfoEXT =
-             #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
-        type FieldIsArray "pMarkerName" VkDebugMarkerMarkerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pMarkerName" VkDebugMarkerMarkerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerMarkerInfoEXT, pMarkerName}
-
-instance {-# OVERLAPPING #-}
-         HasField "color" VkDebugMarkerMarkerInfoEXT where
-        type FieldType "color" VkDebugMarkerMarkerInfoEXT =
-             #{type float}
-        type FieldOptional "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "color" VkDebugMarkerMarkerInfoEXT =
-             #{offset VkDebugMarkerMarkerInfoEXT, color}
-        type FieldIsArray "color" VkDebugMarkerMarkerInfoEXT = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerMarkerInfoEXT, color}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
-         CanReadFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}
-        type FieldArrayLength "color" VkDebugMarkerMarkerInfoEXT = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkDebugMarkerMarkerInfoEXT, color} +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkDebugMarkerMarkerInfoEXT, color} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "color" idx VkDebugMarkerMarkerInfoEXT) =>
-         CanWriteFieldArray "color" idx VkDebugMarkerMarkerInfoEXT
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 0 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 1 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 2 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 3 VkDebugMarkerMarkerInfoEXT #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkDebugMarkerMarkerInfoEXT, color} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkDebugMarkerMarkerInfoEXT where
-        showsPrec d x
-          = showString "VkDebugMarkerMarkerInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pMarkerName = " .
-                            showsPrec d (getField @"pMarkerName" x) .
-                              showString ", " .
-                                (showString "color = [" .
-                                   showsPrec d
-                                     (let s = sizeOf
-                                                (undefined ::
-                                                   FieldType "color" VkDebugMarkerMarkerInfoEXT)
-                                          o = fieldOffset @"color" @VkDebugMarkerMarkerInfoEXT
-                                          f i
-                                            = peekByteOff (unsafePtr x) i ::
-                                                IO (FieldType "color" VkDebugMarkerMarkerInfoEXT)
-                                        in
-                                        unsafeDupablePerformIO . mapM f $
-                                          map (\ i -> o + i * s) [0 .. 4 - 1])
-                                     . showChar ']')
-                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectNameInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectNameInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectNameInfoEXT.hsc
+++ /dev/null
@@ -1,264 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectNameInfoEXT
-       (VkDebugMarkerObjectNameInfoEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT (VkDebugReportObjectTypeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugMarkerObjectNameInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDebugReportObjectTypeEXT       objectType;
---   >     uint64_t                         object;
---   >     const char* pObjectName;
---   > } VkDebugMarkerObjectNameInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugMarkerObjectNameInfoEXT.html VkDebugMarkerObjectNameInfoEXT registry at www.khronos.org>
-data VkDebugMarkerObjectNameInfoEXT = VkDebugMarkerObjectNameInfoEXT## Addr##
-                                                                      ByteArray##
-
-instance Eq VkDebugMarkerObjectNameInfoEXT where
-        (VkDebugMarkerObjectNameInfoEXT## a _) ==
-          x@(VkDebugMarkerObjectNameInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugMarkerObjectNameInfoEXT where
-        (VkDebugMarkerObjectNameInfoEXT## a _) `compare`
-          x@(VkDebugMarkerObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugMarkerObjectNameInfoEXT where
-        sizeOf ~_ = #{size VkDebugMarkerObjectNameInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugMarkerObjectNameInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugMarkerObjectNameInfoEXT where
-        unsafeAddr (VkDebugMarkerObjectNameInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerObjectNameInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerObjectNameInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugMarkerObjectNameInfoEXT where
-        type StructFields VkDebugMarkerObjectNameInfoEXT =
-             '["sType", "pNext", "objectType", "object", "pObjectName"] -- ' closing tick for hsc2hs
-        type CUnionType VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugMarkerObjectNameInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugMarkerObjectNameInfoEXT where
-        type FieldType "sType" VkDebugMarkerObjectNameInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugMarkerObjectNameInfoEXT =
-             #{offset VkDebugMarkerObjectNameInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugMarkerObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugMarkerObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugMarkerObjectNameInfoEXT where
-        type FieldType "pNext" VkDebugMarkerObjectNameInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugMarkerObjectNameInfoEXT =
-             #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugMarkerObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugMarkerObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectType" VkDebugMarkerObjectNameInfoEXT where
-        type FieldType "objectType" VkDebugMarkerObjectNameInfoEXT =
-             VkDebugReportObjectTypeEXT
-        type FieldOptional "objectType" VkDebugMarkerObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectType" VkDebugMarkerObjectNameInfoEXT =
-             #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
-        type FieldIsArray "objectType" VkDebugMarkerObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectType" VkDebugMarkerObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, objectType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectType" VkDebugMarkerObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         HasField "object" VkDebugMarkerObjectNameInfoEXT where
-        type FieldType "object" VkDebugMarkerObjectNameInfoEXT = Word64
-        type FieldOptional "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "object" VkDebugMarkerObjectNameInfoEXT =
-             #{offset VkDebugMarkerObjectNameInfoEXT, object}
-        type FieldIsArray "object" VkDebugMarkerObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectNameInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "object" VkDebugMarkerObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, object})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "object" VkDebugMarkerObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
-        type FieldType "pObjectName" VkDebugMarkerObjectNameInfoEXT =
-             CString
-        type FieldOptional "pObjectName" VkDebugMarkerObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pObjectName" VkDebugMarkerObjectNameInfoEXT =
-             #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
-        type FieldIsArray "pObjectName" VkDebugMarkerObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjectName" VkDebugMarkerObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectNameInfoEXT, pObjectName}
-
-instance Show VkDebugMarkerObjectNameInfoEXT where
-        showsPrec d x
-          = showString "VkDebugMarkerObjectNameInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectType = " .
-                            showsPrec d (getField @"objectType" x) .
-                              showString ", " .
-                                showString "object = " .
-                                  showsPrec d (getField @"object" x) .
-                                    showString ", " .
-                                      showString "pObjectName = " .
-                                        showsPrec d (getField @"pObjectName" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectTagInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectTagInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugMarkerObjectTagInfoEXT.hsc
+++ /dev/null
@@ -1,334 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectTagInfoEXT
-       (VkDebugMarkerObjectTagInfoEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT (VkDebugReportObjectTypeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugMarkerObjectTagInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDebugReportObjectTypeEXT       objectType;
---   >     uint64_t                         object;
---   >     uint64_t                         tagName;
---   >     size_t                           tagSize;
---   >     const void*        pTag;
---   > } VkDebugMarkerObjectTagInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugMarkerObjectTagInfoEXT.html VkDebugMarkerObjectTagInfoEXT registry at www.khronos.org>
-data VkDebugMarkerObjectTagInfoEXT = VkDebugMarkerObjectTagInfoEXT## Addr##
-                                                                    ByteArray##
-
-instance Eq VkDebugMarkerObjectTagInfoEXT where
-        (VkDebugMarkerObjectTagInfoEXT## a _) ==
-          x@(VkDebugMarkerObjectTagInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugMarkerObjectTagInfoEXT where
-        (VkDebugMarkerObjectTagInfoEXT## a _) `compare`
-          x@(VkDebugMarkerObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugMarkerObjectTagInfoEXT where
-        sizeOf ~_ = #{size VkDebugMarkerObjectTagInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugMarkerObjectTagInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugMarkerObjectTagInfoEXT where
-        unsafeAddr (VkDebugMarkerObjectTagInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugMarkerObjectTagInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugMarkerObjectTagInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugMarkerObjectTagInfoEXT where
-        type StructFields VkDebugMarkerObjectTagInfoEXT =
-             '["sType", "pNext", "objectType", "object", "tagName", "tagSize", -- ' closing tick for hsc2hs
-               "pTag"]
-        type CUnionType VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugMarkerObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "sType" VkDebugMarkerObjectTagInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "pNext" VkDebugMarkerObjectTagInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectType" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "objectType" VkDebugMarkerObjectTagInfoEXT =
-             VkDebugReportObjectTypeEXT
-        type FieldOptional "objectType" VkDebugMarkerObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectType" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
-        type FieldIsArray "objectType" VkDebugMarkerObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectType" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, objectType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectType" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         HasField "object" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "object" VkDebugMarkerObjectTagInfoEXT = Word64
-        type FieldOptional "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "object" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, object}
-        type FieldIsArray "object" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "object" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, object})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "object" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, object}
-
-instance {-# OVERLAPPING #-}
-         HasField "tagName" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "tagName" VkDebugMarkerObjectTagInfoEXT = Word64
-        type FieldOptional "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tagName" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
-        type FieldIsArray "tagName" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tagName" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, tagName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tagName" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         HasField "tagSize" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "tagSize" VkDebugMarkerObjectTagInfoEXT = CSize
-        type FieldOptional "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tagSize" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
-        type FieldIsArray "tagSize" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tagSize" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, tagSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tagSize" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTag" VkDebugMarkerObjectTagInfoEXT where
-        type FieldType "pTag" VkDebugMarkerObjectTagInfoEXT = Ptr Void
-        type FieldOptional "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pTag" VkDebugMarkerObjectTagInfoEXT =
-             #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
-        type FieldIsArray "pTag" VkDebugMarkerObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTag" VkDebugMarkerObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugMarkerObjectTagInfoEXT, pTag})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTag" VkDebugMarkerObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugMarkerObjectTagInfoEXT, pTag}
-
-instance Show VkDebugMarkerObjectTagInfoEXT where
-        showsPrec d x
-          = showString "VkDebugMarkerObjectTagInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectType = " .
-                            showsPrec d (getField @"objectType" x) .
-                              showString ", " .
-                                showString "object = " .
-                                  showsPrec d (getField @"object" x) .
-                                    showString ", " .
-                                      showString "tagName = " .
-                                        showsPrec d (getField @"tagName" x) .
-                                          showString ", " .
-                                            showString "tagSize = " .
-                                              showsPrec d (getField @"tagSize" x) .
-                                                showString ", " .
-                                                  showString "pTag = " .
-                                                    showsPrec d (getField @"pTag" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugReportCallbackCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugReportCallbackCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugReportCallbackCreateInfoEXT.hsc
+++ /dev/null
@@ -1,277 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugReportCallbackCreateInfoEXT
-       (VkDebugReportCallbackCreateInfoEXT(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT  (VkDebugReportFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Funcpointers                (PFN_vkDebugReportCallbackEXT)
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugReportCallbackCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDebugReportFlagsEXT            flags;
---   >     PFN_vkDebugReportCallbackEXT     pfnCallback;
---   >     void*            pUserData;
---   > } VkDebugReportCallbackCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugReportCallbackCreateInfoEXT.html VkDebugReportCallbackCreateInfoEXT registry at www.khronos.org>
-data VkDebugReportCallbackCreateInfoEXT = VkDebugReportCallbackCreateInfoEXT## Addr##
-                                                                              ByteArray##
-
-instance Eq VkDebugReportCallbackCreateInfoEXT where
-        (VkDebugReportCallbackCreateInfoEXT## a _) ==
-          x@(VkDebugReportCallbackCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugReportCallbackCreateInfoEXT where
-        (VkDebugReportCallbackCreateInfoEXT## a _) `compare`
-          x@(VkDebugReportCallbackCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugReportCallbackCreateInfoEXT where
-        sizeOf ~_ = #{size VkDebugReportCallbackCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugReportCallbackCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugReportCallbackCreateInfoEXT where
-        unsafeAddr (VkDebugReportCallbackCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugReportCallbackCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugReportCallbackCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugReportCallbackCreateInfoEXT where
-        type StructFields VkDebugReportCallbackCreateInfoEXT =
-             '["sType", "pNext", "flags", "pfnCallback", "pUserData"] -- ' closing tick for hsc2hs
-        type CUnionType VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugReportCallbackCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugReportCallbackCreateInfoEXT =
-             '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugReportCallbackCreateInfoEXT where
-        type FieldType "sType" VkDebugReportCallbackCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugReportCallbackCreateInfoEXT =
-             #{offset VkDebugReportCallbackCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugReportCallbackCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugReportCallbackCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugReportCallbackCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugReportCallbackCreateInfoEXT where
-        type FieldType "pNext" VkDebugReportCallbackCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugReportCallbackCreateInfoEXT =
-             #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugReportCallbackCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugReportCallbackCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDebugReportCallbackCreateInfoEXT where
-        type FieldType "flags" VkDebugReportCallbackCreateInfoEXT =
-             VkDebugReportFlagsEXT
-        type FieldOptional "flags" VkDebugReportCallbackCreateInfoEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDebugReportCallbackCreateInfoEXT =
-             #{offset VkDebugReportCallbackCreateInfoEXT, flags}
-        type FieldIsArray "flags" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugReportCallbackCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDebugReportCallbackCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDebugReportCallbackCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
-        type FieldType "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
-             PFN_vkDebugReportCallbackEXT
-        type FieldOptional "pfnCallback" VkDebugReportCallbackCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pfnCallback" VkDebugReportCallbackCreateInfoEXT =
-             #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
-        type FieldIsArray "pfnCallback" VkDebugReportCallbackCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnCallback" VkDebugReportCallbackCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnCallback" VkDebugReportCallbackCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pfnCallback}
-
-instance {-# OVERLAPPING #-}
-         HasField "pUserData" VkDebugReportCallbackCreateInfoEXT where
-        type FieldType "pUserData" VkDebugReportCallbackCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pUserData" VkDebugReportCallbackCreateInfoEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pUserData" VkDebugReportCallbackCreateInfoEXT =
-             #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
-        type FieldIsArray "pUserData" VkDebugReportCallbackCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pUserData" VkDebugReportCallbackCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugReportCallbackCreateInfoEXT, pUserData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pUserData" VkDebugReportCallbackCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugReportCallbackCreateInfoEXT, pUserData}
-
-instance Show VkDebugReportCallbackCreateInfoEXT where
-        showsPrec d x
-          = showString "VkDebugReportCallbackCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pfnCallback = " .
-                                  showsPrec d (getField @"pfnCallback" x) .
-                                    showString ", " .
-                                      showString "pUserData = " .
-                                        showsPrec d (getField @"pUserData" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsLabelEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsLabelEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsLabelEXT.hsc
+++ /dev/null
@@ -1,272 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkDebugUtilsLabelEXT
-       (VkDebugUtilsLabelEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                               (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugUtilsLabelEXT {
---   >     VkStructureType sType;
---   >     const void*                            pNext;
---   >     const char*      pLabelName;
---   >     float                  color[4];
---   > } VkDebugUtilsLabelEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugUtilsLabelEXT.html VkDebugUtilsLabelEXT registry at www.khronos.org>
-data VkDebugUtilsLabelEXT = VkDebugUtilsLabelEXT## Addr## ByteArray##
-
-instance Eq VkDebugUtilsLabelEXT where
-        (VkDebugUtilsLabelEXT## a _) == x@(VkDebugUtilsLabelEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugUtilsLabelEXT where
-        (VkDebugUtilsLabelEXT## a _) `compare` x@(VkDebugUtilsLabelEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugUtilsLabelEXT where
-        sizeOf ~_ = #{size VkDebugUtilsLabelEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDebugUtilsLabelEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsLabelEXT where
-        unsafeAddr (VkDebugUtilsLabelEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsLabelEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsLabelEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugUtilsLabelEXT where
-        type StructFields VkDebugUtilsLabelEXT =
-             '["sType", "pNext", "pLabelName", "color"] -- ' closing tick for hsc2hs
-        type CUnionType VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugUtilsLabelEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDebugUtilsLabelEXT
-         where
-        type FieldType "sType" VkDebugUtilsLabelEXT = VkStructureType
-        type FieldOptional "sType" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugUtilsLabelEXT =
-             #{offset VkDebugUtilsLabelEXT, sType}
-        type FieldIsArray "sType" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDebugUtilsLabelEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugUtilsLabelEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsLabelEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugUtilsLabelEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDebugUtilsLabelEXT
-         where
-        type FieldType "pNext" VkDebugUtilsLabelEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugUtilsLabelEXT =
-             #{offset VkDebugUtilsLabelEXT, pNext}
-        type FieldIsArray "pNext" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDebugUtilsLabelEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugUtilsLabelEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsLabelEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugUtilsLabelEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pLabelName" VkDebugUtilsLabelEXT where
-        type FieldType "pLabelName" VkDebugUtilsLabelEXT = CString
-        type FieldOptional "pLabelName" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pLabelName" VkDebugUtilsLabelEXT =
-             #{offset VkDebugUtilsLabelEXT, pLabelName}
-        type FieldIsArray "pLabelName" VkDebugUtilsLabelEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsLabelEXT, pLabelName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pLabelName" VkDebugUtilsLabelEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsLabelEXT, pLabelName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsLabelEXT, pLabelName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pLabelName" VkDebugUtilsLabelEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsLabelEXT, pLabelName}
-
-instance {-# OVERLAPPING #-} HasField "color" VkDebugUtilsLabelEXT
-         where
-        type FieldType "color" VkDebugUtilsLabelEXT =
-             #{type float}
-        type FieldOptional "color" VkDebugUtilsLabelEXT = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "color" VkDebugUtilsLabelEXT =
-             #{offset VkDebugUtilsLabelEXT, color}
-        type FieldIsArray "color" VkDebugUtilsLabelEXT = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDebugUtilsLabelEXT, color}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>
-         CanReadFieldArray "color" idx VkDebugUtilsLabelEXT
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 0 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 1 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 2 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "color" 3 VkDebugUtilsLabelEXT #-}
-        type FieldArrayLength "color" VkDebugUtilsLabelEXT = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkDebugUtilsLabelEXT, color} +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkDebugUtilsLabelEXT, color} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "color" idx VkDebugUtilsLabelEXT) =>
-         CanWriteFieldArray "color" idx VkDebugUtilsLabelEXT
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 0 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 1 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 2 VkDebugUtilsLabelEXT #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "color" 3 VkDebugUtilsLabelEXT #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkDebugUtilsLabelEXT, color} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkDebugUtilsLabelEXT where
-        showsPrec d x
-          = showString "VkDebugUtilsLabelEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pLabelName = " .
-                            showsPrec d (getField @"pLabelName" x) .
-                              showString ", " .
-                                (showString "color = [" .
-                                   showsPrec d
-                                     (let s = sizeOf
-                                                (undefined ::
-                                                   FieldType "color" VkDebugUtilsLabelEXT)
-                                          o = fieldOffset @"color" @VkDebugUtilsLabelEXT
-                                          f i
-                                            = peekByteOff (unsafePtr x) i ::
-                                                IO (FieldType "color" VkDebugUtilsLabelEXT)
-                                        in
-                                        unsafeDupablePerformIO . mapM f $
-                                          map (\ i -> o + i * s) [0 .. 4 - 1])
-                                     . showChar ']')
-                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCallbackDataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCallbackDataEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCallbackDataEXT.hsc
+++ /dev/null
@@ -1,622 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT
-       (VkDebugUtilsMessengerCallbackDataEXT(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                             (VkDebugUtilsMessengerCallbackDataFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsLabelEXT          (VkDebugUtilsLabelEXT)
-import           Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectNameInfoEXT (VkDebugUtilsObjectNameInfoEXT)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugUtilsMessengerCallbackDataEXT {
---   >     VkStructureType sType;
---   >     const void*                                                        pNext;
---   >     VkDebugUtilsMessengerCallbackDataFlagsEXT                          flags;
---   >     const char*                                  pMessageIdName;
---   >     int32_t                                                            messageIdNumber;
---   >     const char*                                                  pMessage;
---   >     uint32_t                                                           queueLabelCount;
---   >     VkDebugUtilsLabelEXT*  pQueueLabels;
---   >     uint32_t                                                           cmdBufLabelCount;
---   >     VkDebugUtilsLabelEXT* pCmdBufLabels;
---   >     uint32_t                                                                           objectCount;
---   >     VkDebugUtilsObjectNameInfoEXT*             pObjects;
---   > } VkDebugUtilsMessengerCallbackDataEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugUtilsMessengerCallbackDataEXT.html VkDebugUtilsMessengerCallbackDataEXT registry at www.khronos.org>
-data VkDebugUtilsMessengerCallbackDataEXT = VkDebugUtilsMessengerCallbackDataEXT## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkDebugUtilsMessengerCallbackDataEXT where
-        (VkDebugUtilsMessengerCallbackDataEXT## a _) ==
-          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugUtilsMessengerCallbackDataEXT where
-        (VkDebugUtilsMessengerCallbackDataEXT## a _) `compare`
-          x@(VkDebugUtilsMessengerCallbackDataEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugUtilsMessengerCallbackDataEXT where
-        sizeOf ~_
-          = #{size VkDebugUtilsMessengerCallbackDataEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugUtilsMessengerCallbackDataEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsMessengerCallbackDataEXT
-         where
-        unsafeAddr (VkDebugUtilsMessengerCallbackDataEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsMessengerCallbackDataEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsMessengerCallbackDataEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugUtilsMessengerCallbackDataEXT where
-        type StructFields VkDebugUtilsMessengerCallbackDataEXT =
-             '["sType", "pNext", "flags", "pMessageIdName", "messageIdNumber", -- ' closing tick for hsc2hs
-               "pMessage", "queueLabelCount", "pQueueLabels", "cmdBufLabelCount",
-               "pCmdBufLabels", "objectCount", "pObjects"]
-        type CUnionType VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugUtilsMessengerCallbackDataEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugUtilsMessengerCallbackDataEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "sType" VkDebugUtilsMessengerCallbackDataEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugUtilsMessengerCallbackDataEXT =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
-        type FieldIsArray "sType" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "pNext" VkDebugUtilsMessengerCallbackDataEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkDebugUtilsMessengerCallbackDataEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugUtilsMessengerCallbackDataEXT =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
-        type FieldIsArray "pNext" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "flags" VkDebugUtilsMessengerCallbackDataEXT =
-             VkDebugUtilsMessengerCallbackDataFlagsEXT
-        type FieldOptional "flags" VkDebugUtilsMessengerCallbackDataEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDebugUtilsMessengerCallbackDataEXT =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
-        type FieldIsArray "flags" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        type FieldType "pMessageIdName"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = CString
-        type FieldOptional "pMessageIdName"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pMessageIdName"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
-        type FieldIsArray "pMessageIdName"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pMessageIdName" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessageIdName}
-
-instance {-# OVERLAPPING #-}
-         HasField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        type FieldType "messageIdNumber"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = Int32
-        type FieldOptional "messageIdNumber"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "messageIdNumber"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
-        type FieldIsArray "messageIdNumber"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "messageIdNumber" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "messageIdNumber"
-           VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, messageIdNumber}
-
-instance {-# OVERLAPPING #-}
-         HasField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
-             CString
-        type FieldOptional "pMessage" VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
-        type FieldIsArray "pMessage" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pMessage" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pMessage}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        type FieldType "queueLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = Word32
-        type FieldOptional "queueLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "queueLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
-        type FieldIsArray "queueLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueLabelCount" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueLabelCount"
-           VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, queueLabelCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
-             = Ptr VkDebugUtilsLabelEXT
-        type FieldOptional "pQueueLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pQueueLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
-        type FieldIsArray "pQueueLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueueLabels" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pQueueLabels}
-
-instance {-# OVERLAPPING #-}
-         HasField "cmdBufLabelCount" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        type FieldType "cmdBufLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = Word32
-        type FieldOptional "cmdBufLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "cmdBufLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
-        type FieldIsArray "cmdBufLabelCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "cmdBufLabelCount"
-           VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "cmdBufLabelCount"
-           VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, cmdBufLabelCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
-             = Ptr VkDebugUtilsLabelEXT
-        type FieldOptional "pCmdBufLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pCmdBufLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
-        type FieldIsArray "pCmdBufLabels"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCmdBufLabels" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pCmdBufLabels}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectCount" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "objectCount" VkDebugUtilsMessengerCallbackDataEXT =
-             Word32
-        type FieldOptional "objectCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectCount" VkDebugUtilsMessengerCallbackDataEXT
-             =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
-        type FieldIsArray "objectCount"
-               VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectCount" VkDebugUtilsMessengerCallbackDataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, objectCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
-        type FieldType "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
-             Ptr VkDebugUtilsObjectNameInfoEXT
-        type FieldOptional "pObjects" VkDebugUtilsMessengerCallbackDataEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
-             #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
-        type FieldIsArray "pObjects" VkDebugUtilsMessengerCallbackDataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjects" VkDebugUtilsMessengerCallbackDataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCallbackDataEXT, pObjects}
-
-instance Show VkDebugUtilsMessengerCallbackDataEXT where
-        showsPrec d x
-          = showString "VkDebugUtilsMessengerCallbackDataEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pMessageIdName = " .
-                                  showsPrec d (getField @"pMessageIdName" x) .
-                                    showString ", " .
-                                      showString "messageIdNumber = " .
-                                        showsPrec d (getField @"messageIdNumber" x) .
-                                          showString ", " .
-                                            showString "pMessage = " .
-                                              showsPrec d (getField @"pMessage" x) .
-                                                showString ", " .
-                                                  showString "queueLabelCount = " .
-                                                    showsPrec d (getField @"queueLabelCount" x) .
-                                                      showString ", " .
-                                                        showString "pQueueLabels = " .
-                                                          showsPrec d (getField @"pQueueLabels" x) .
-                                                            showString ", " .
-                                                              showString "cmdBufLabelCount = " .
-                                                                showsPrec d
-                                                                  (getField @"cmdBufLabelCount" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "pCmdBufLabels = " .
-                                                                      showsPrec d
-                                                                        (getField @"pCmdBufLabels"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "objectCount = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"objectCount"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "pObjects = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"pObjects"
-                                                                                       x)
-                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsMessengerCreateInfoEXT.hsc
+++ /dev/null
@@ -1,371 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCreateInfoEXT
-       (VkDebugUtilsMessengerCreateInfoEXT(..)) where
-import           Foreign.Storable                                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                                 (VkDebugUtilsMessengerCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT (VkDebugUtilsMessageSeverityFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT     (VkDebugUtilsMessageTypeFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                     (VkStructureType)
-import           Graphics.Vulkan.Types.Funcpointers                             (PFN_vkDebugUtilsMessengerCallbackEXT)
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo              (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugUtilsMessengerCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                                          pNext;
---   >     VkDebugUtilsMessengerCreateFlagsEXT  flags;
---   >     VkDebugUtilsMessageSeverityFlagsEXT                  messageSeverity;
---   >     VkDebugUtilsMessageTypeFlagsEXT                      messageType;
---   >     PFN_vkDebugUtilsMessengerCallbackEXT                 pfnUserCallback;
---   >     void*                                pUserData;
---   > } VkDebugUtilsMessengerCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugUtilsMessengerCreateInfoEXT.html VkDebugUtilsMessengerCreateInfoEXT registry at www.khronos.org>
-data VkDebugUtilsMessengerCreateInfoEXT = VkDebugUtilsMessengerCreateInfoEXT## Addr##
-                                                                              ByteArray##
-
-instance Eq VkDebugUtilsMessengerCreateInfoEXT where
-        (VkDebugUtilsMessengerCreateInfoEXT## a _) ==
-          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugUtilsMessengerCreateInfoEXT where
-        (VkDebugUtilsMessengerCreateInfoEXT## a _) `compare`
-          x@(VkDebugUtilsMessengerCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugUtilsMessengerCreateInfoEXT where
-        sizeOf ~_ = #{size VkDebugUtilsMessengerCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugUtilsMessengerCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsMessengerCreateInfoEXT where
-        unsafeAddr (VkDebugUtilsMessengerCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsMessengerCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsMessengerCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugUtilsMessengerCreateInfoEXT where
-        type StructFields VkDebugUtilsMessengerCreateInfoEXT =
-             '["sType", "pNext", "flags", "messageSeverity", "messageType", -- ' closing tick for hsc2hs
-               "pfnUserCallback", "pUserData"]
-        type CUnionType VkDebugUtilsMessengerCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugUtilsMessengerCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugUtilsMessengerCreateInfoEXT =
-             '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "sType" VkDebugUtilsMessengerCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugUtilsMessengerCreateInfoEXT =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "pNext" VkDebugUtilsMessengerCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugUtilsMessengerCreateInfoEXT =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "flags" VkDebugUtilsMessengerCreateInfoEXT =
-             VkDebugUtilsMessengerCreateFlagsEXT
-        type FieldOptional "flags" VkDebugUtilsMessengerCreateInfoEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDebugUtilsMessengerCreateInfoEXT =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
-        type FieldIsArray "flags" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
-             = VkDebugUtilsMessageSeverityFlagsEXT
-        type FieldOptional "messageSeverity"
-               VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "messageSeverity"
-               VkDebugUtilsMessengerCreateInfoEXT
-             =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
-        type FieldIsArray "messageSeverity"
-               VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "messageSeverity" VkDebugUtilsMessengerCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageSeverity}
-
-instance {-# OVERLAPPING #-}
-         HasField "messageType" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "messageType" VkDebugUtilsMessengerCreateInfoEXT =
-             VkDebugUtilsMessageTypeFlagsEXT
-        type FieldOptional "messageType" VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "messageType" VkDebugUtilsMessengerCreateInfoEXT =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
-        type FieldIsArray "messageType" VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "messageType" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "messageType" VkDebugUtilsMessengerCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, messageType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
-             = PFN_vkDebugUtilsMessengerCallbackEXT
-        type FieldOptional "pfnUserCallback"
-               VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pfnUserCallback"
-               VkDebugUtilsMessengerCreateInfoEXT
-             =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
-        type FieldIsArray "pfnUserCallback"
-               VkDebugUtilsMessengerCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pfnUserCallback" VkDebugUtilsMessengerCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pfnUserCallback}
-
-instance {-# OVERLAPPING #-}
-         HasField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
-        type FieldType "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
-             #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
-        type FieldIsArray "pUserData" VkDebugUtilsMessengerCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pUserData" VkDebugUtilsMessengerCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsMessengerCreateInfoEXT, pUserData}
-
-instance Show VkDebugUtilsMessengerCreateInfoEXT where
-        showsPrec d x
-          = showString "VkDebugUtilsMessengerCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "messageSeverity = " .
-                                  showsPrec d (getField @"messageSeverity" x) .
-                                    showString ", " .
-                                      showString "messageType = " .
-                                        showsPrec d (getField @"messageType" x) .
-                                          showString ", " .
-                                            showString "pfnUserCallback = " .
-                                              showsPrec d (getField @"pfnUserCallback" x) .
-                                                showString ", " .
-                                                  showString "pUserData = " .
-                                                    showsPrec d (getField @"pUserData" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectNameInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectNameInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectNameInfoEXT.hsc
+++ /dev/null
@@ -1,267 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectNameInfoEXT
-       (VkDebugUtilsObjectNameInfoEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectType    (VkObjectType)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugUtilsObjectNameInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                                            pNext;
---   >     VkObjectType                                           objectType;
---   >     uint64_t                                               objectHandle;
---   >     const char*      pObjectName;
---   > } VkDebugUtilsObjectNameInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugUtilsObjectNameInfoEXT.html VkDebugUtilsObjectNameInfoEXT registry at www.khronos.org>
-data VkDebugUtilsObjectNameInfoEXT = VkDebugUtilsObjectNameInfoEXT## Addr##
-                                                                    ByteArray##
-
-instance Eq VkDebugUtilsObjectNameInfoEXT where
-        (VkDebugUtilsObjectNameInfoEXT## a _) ==
-          x@(VkDebugUtilsObjectNameInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugUtilsObjectNameInfoEXT where
-        (VkDebugUtilsObjectNameInfoEXT## a _) `compare`
-          x@(VkDebugUtilsObjectNameInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugUtilsObjectNameInfoEXT where
-        sizeOf ~_ = #{size VkDebugUtilsObjectNameInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugUtilsObjectNameInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsObjectNameInfoEXT where
-        unsafeAddr (VkDebugUtilsObjectNameInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsObjectNameInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsObjectNameInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugUtilsObjectNameInfoEXT where
-        type StructFields VkDebugUtilsObjectNameInfoEXT =
-             '["sType", "pNext", "objectType", "objectHandle", "pObjectName"] -- ' closing tick for hsc2hs
-        type CUnionType VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugUtilsObjectNameInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugUtilsObjectNameInfoEXT where
-        type FieldType "sType" VkDebugUtilsObjectNameInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugUtilsObjectNameInfoEXT =
-             #{offset VkDebugUtilsObjectNameInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugUtilsObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugUtilsObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugUtilsObjectNameInfoEXT where
-        type FieldType "pNext" VkDebugUtilsObjectNameInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugUtilsObjectNameInfoEXT =
-             #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugUtilsObjectNameInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugUtilsObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugUtilsObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectType" VkDebugUtilsObjectNameInfoEXT where
-        type FieldType "objectType" VkDebugUtilsObjectNameInfoEXT =
-             VkObjectType
-        type FieldOptional "objectType" VkDebugUtilsObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectType" VkDebugUtilsObjectNameInfoEXT =
-             #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
-        type FieldIsArray "objectType" VkDebugUtilsObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectType" VkDebugUtilsObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, objectType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectType" VkDebugUtilsObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
-        type FieldType "objectHandle" VkDebugUtilsObjectNameInfoEXT =
-             Word64
-        type FieldOptional "objectHandle" VkDebugUtilsObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectHandle" VkDebugUtilsObjectNameInfoEXT =
-             #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
-        type FieldIsArray "objectHandle" VkDebugUtilsObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectHandle" VkDebugUtilsObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
-        type FieldType "pObjectName" VkDebugUtilsObjectNameInfoEXT =
-             CString
-        type FieldOptional "pObjectName" VkDebugUtilsObjectNameInfoEXT =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pObjectName" VkDebugUtilsObjectNameInfoEXT =
-             #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
-        type FieldIsArray "pObjectName" VkDebugUtilsObjectNameInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjectName" VkDebugUtilsObjectNameInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectNameInfoEXT, pObjectName}
-
-instance Show VkDebugUtilsObjectNameInfoEXT where
-        showsPrec d x
-          = showString "VkDebugUtilsObjectNameInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectType = " .
-                            showsPrec d (getField @"objectType" x) .
-                              showString ", " .
-                                showString "objectHandle = " .
-                                  showsPrec d (getField @"objectHandle" x) .
-                                    showString ", " .
-                                      showString "pObjectName = " .
-                                        showsPrec d (getField @"pObjectName" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectTagInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectTagInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDebugUtilsObjectTagInfoEXT.hsc
+++ /dev/null
@@ -1,336 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectTagInfoEXT
-       (VkDebugUtilsObjectTagInfoEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectType    (VkObjectType)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDebugUtilsObjectTagInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                            pNext;
---   >     VkObjectType                           objectType;
---   >     uint64_t                               objectHandle;
---   >     uint64_t                               tagName;
---   >     size_t                                 tagSize;
---   >     const void*              pTag;
---   > } VkDebugUtilsObjectTagInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDebugUtilsObjectTagInfoEXT.html VkDebugUtilsObjectTagInfoEXT registry at www.khronos.org>
-data VkDebugUtilsObjectTagInfoEXT = VkDebugUtilsObjectTagInfoEXT## Addr##
-                                                                  ByteArray##
-
-instance Eq VkDebugUtilsObjectTagInfoEXT where
-        (VkDebugUtilsObjectTagInfoEXT## a _) ==
-          x@(VkDebugUtilsObjectTagInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDebugUtilsObjectTagInfoEXT where
-        (VkDebugUtilsObjectTagInfoEXT## a _) `compare`
-          x@(VkDebugUtilsObjectTagInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDebugUtilsObjectTagInfoEXT where
-        sizeOf ~_ = #{size VkDebugUtilsObjectTagInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDebugUtilsObjectTagInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDebugUtilsObjectTagInfoEXT where
-        unsafeAddr (VkDebugUtilsObjectTagInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDebugUtilsObjectTagInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDebugUtilsObjectTagInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDebugUtilsObjectTagInfoEXT where
-        type StructFields VkDebugUtilsObjectTagInfoEXT =
-             '["sType", "pNext", "objectType", "objectHandle", "tagName", -- ' closing tick for hsc2hs
-               "tagSize", "pTag"]
-        type CUnionType VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDebugUtilsObjectTagInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "sType" VkDebugUtilsObjectTagInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, sType}
-        type FieldIsArray "sType" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "pNext" VkDebugUtilsObjectTagInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectType" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "objectType" VkDebugUtilsObjectTagInfoEXT =
-             VkObjectType
-        type FieldOptional "objectType" VkDebugUtilsObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectType" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
-        type FieldIsArray "objectType" VkDebugUtilsObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectType" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, objectType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectType" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectType}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "objectHandle" VkDebugUtilsObjectTagInfoEXT = Word64
-        type FieldOptional "objectHandle" VkDebugUtilsObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectHandle" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
-        type FieldIsArray "objectHandle" VkDebugUtilsObjectTagInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectHandle" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, objectHandle}
-
-instance {-# OVERLAPPING #-}
-         HasField "tagName" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "tagName" VkDebugUtilsObjectTagInfoEXT = Word64
-        type FieldOptional "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tagName" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
-        type FieldIsArray "tagName" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tagName" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, tagName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tagName" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagName}
-
-instance {-# OVERLAPPING #-}
-         HasField "tagSize" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "tagSize" VkDebugUtilsObjectTagInfoEXT = CSize
-        type FieldOptional "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tagSize" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
-        type FieldIsArray "tagSize" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tagSize" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, tagSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tagSize" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, tagSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTag" VkDebugUtilsObjectTagInfoEXT where
-        type FieldType "pTag" VkDebugUtilsObjectTagInfoEXT = Ptr Void
-        type FieldOptional "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pTag" VkDebugUtilsObjectTagInfoEXT =
-             #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
-        type FieldIsArray "pTag" VkDebugUtilsObjectTagInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTag" VkDebugUtilsObjectTagInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDebugUtilsObjectTagInfoEXT, pTag})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTag" VkDebugUtilsObjectTagInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDebugUtilsObjectTagInfoEXT, pTag}
-
-instance Show VkDebugUtilsObjectTagInfoEXT where
-        showsPrec d x
-          = showString "VkDebugUtilsObjectTagInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectType = " .
-                            showsPrec d (getField @"objectType" x) .
-                              showString ", " .
-                                showString "objectHandle = " .
-                                  showsPrec d (getField @"objectHandle" x) .
-                                    showString ", " .
-                                      showString "tagName = " .
-                                        showsPrec d (getField @"tagName" x) .
-                                          showString ", " .
-                                            showString "tagSize = " .
-                                              showsPrec d (getField @"tagSize" x) .
-                                                showString ", " .
-                                                  showString "pTag = " .
-                                                    showsPrec d (getField @"pTag" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationBufferCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationBufferCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationBufferCreateInfoNV.hsc
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationBufferCreateInfoNV
-       (VkDedicatedAllocationBufferCreateInfoNV(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                 (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBufferCreateInfo (VkBufferCreateInfo)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkDedicatedAllocationBufferCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBool32                         dedicatedAllocation;
---   > } VkDedicatedAllocationBufferCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDedicatedAllocationBufferCreateInfoNV.html VkDedicatedAllocationBufferCreateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationBufferCreateInfoNV = VkDedicatedAllocationBufferCreateInfoNV## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkDedicatedAllocationBufferCreateInfoNV where
-        (VkDedicatedAllocationBufferCreateInfoNV## a _) ==
-          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDedicatedAllocationBufferCreateInfoNV where
-        (VkDedicatedAllocationBufferCreateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationBufferCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDedicatedAllocationBufferCreateInfoNV where
-        sizeOf ~_
-          = #{size VkDedicatedAllocationBufferCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDedicatedAllocationBufferCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDedicatedAllocationBufferCreateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationBufferCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationBufferCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationBufferCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDedicatedAllocationBufferCreateInfoNV
-         where
-        type StructFields VkDedicatedAllocationBufferCreateInfoNV =
-             '["sType", "pNext", "dedicatedAllocation"] -- ' closing tick for hsc2hs
-        type CUnionType VkDedicatedAllocationBufferCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDedicatedAllocationBufferCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDedicatedAllocationBufferCreateInfoNV =
-             '[VkBufferCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDedicatedAllocationBufferCreateInfoNV where
-        type FieldType "sType" VkDedicatedAllocationBufferCreateInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkDedicatedAllocationBufferCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDedicatedAllocationBufferCreateInfoNV =
-             #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
-        type FieldIsArray "sType" VkDedicatedAllocationBufferCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDedicatedAllocationBufferCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDedicatedAllocationBufferCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
-        type FieldType "pNext" VkDedicatedAllocationBufferCreateInfoNV =
-             Ptr Void
-        type FieldOptional "pNext" VkDedicatedAllocationBufferCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDedicatedAllocationBufferCreateInfoNV =
-             #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
-        type FieldIsArray "pNext" VkDedicatedAllocationBufferCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDedicatedAllocationBufferCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "dedicatedAllocation"
-           VkDedicatedAllocationBufferCreateInfoNV
-         where
-        type FieldType "dedicatedAllocation"
-               VkDedicatedAllocationBufferCreateInfoNV
-             = VkBool32
-        type FieldOptional "dedicatedAllocation"
-               VkDedicatedAllocationBufferCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dedicatedAllocation"
-               VkDedicatedAllocationBufferCreateInfoNV
-             =
-             #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
-        type FieldIsArray "dedicatedAllocation"
-               VkDedicatedAllocationBufferCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dedicatedAllocation"
-           VkDedicatedAllocationBufferCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dedicatedAllocation"
-           VkDedicatedAllocationBufferCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationBufferCreateInfoNV, dedicatedAllocation}
-
-instance Show VkDedicatedAllocationBufferCreateInfoNV where
-        showsPrec d x
-          = showString "VkDedicatedAllocationBufferCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "dedicatedAllocation = " .
-                            showsPrec d (getField @"dedicatedAllocation" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationImageCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationImageCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationImageCreateInfoNV.hsc
+++ /dev/null
@@ -1,210 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationImageCreateInfoNV
-       (VkDedicatedAllocationImageCreateInfoNV(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo (VkImageCreateInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkDedicatedAllocationImageCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBool32                         dedicatedAllocation;
---   > } VkDedicatedAllocationImageCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDedicatedAllocationImageCreateInfoNV.html VkDedicatedAllocationImageCreateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationImageCreateInfoNV = VkDedicatedAllocationImageCreateInfoNV## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkDedicatedAllocationImageCreateInfoNV where
-        (VkDedicatedAllocationImageCreateInfoNV## a _) ==
-          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDedicatedAllocationImageCreateInfoNV where
-        (VkDedicatedAllocationImageCreateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationImageCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDedicatedAllocationImageCreateInfoNV where
-        sizeOf ~_
-          = #{size VkDedicatedAllocationImageCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDedicatedAllocationImageCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDedicatedAllocationImageCreateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationImageCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationImageCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationImageCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDedicatedAllocationImageCreateInfoNV where
-        type StructFields VkDedicatedAllocationImageCreateInfoNV =
-             '["sType", "pNext", "dedicatedAllocation"] -- ' closing tick for hsc2hs
-        type CUnionType VkDedicatedAllocationImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDedicatedAllocationImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDedicatedAllocationImageCreateInfoNV =
-             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDedicatedAllocationImageCreateInfoNV where
-        type FieldType "sType" VkDedicatedAllocationImageCreateInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkDedicatedAllocationImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDedicatedAllocationImageCreateInfoNV =
-             #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
-        type FieldIsArray "sType" VkDedicatedAllocationImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDedicatedAllocationImageCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDedicatedAllocationImageCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDedicatedAllocationImageCreateInfoNV where
-        type FieldType "pNext" VkDedicatedAllocationImageCreateInfoNV =
-             Ptr Void
-        type FieldOptional "pNext" VkDedicatedAllocationImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDedicatedAllocationImageCreateInfoNV =
-             #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
-        type FieldIsArray "pNext" VkDedicatedAllocationImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDedicatedAllocationImageCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDedicatedAllocationImageCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "dedicatedAllocation"
-           VkDedicatedAllocationImageCreateInfoNV
-         where
-        type FieldType "dedicatedAllocation"
-               VkDedicatedAllocationImageCreateInfoNV
-             = VkBool32
-        type FieldOptional "dedicatedAllocation"
-               VkDedicatedAllocationImageCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dedicatedAllocation"
-               VkDedicatedAllocationImageCreateInfoNV
-             =
-             #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
-        type FieldIsArray "dedicatedAllocation"
-               VkDedicatedAllocationImageCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dedicatedAllocation"
-           VkDedicatedAllocationImageCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dedicatedAllocation"
-           VkDedicatedAllocationImageCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationImageCreateInfoNV, dedicatedAllocation}
-
-instance Show VkDedicatedAllocationImageCreateInfoNV where
-        showsPrec d x
-          = showString "VkDedicatedAllocationImageCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "dedicatedAllocation = " .
-                            showsPrec d (getField @"dedicatedAllocation" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationMemoryAllocateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationMemoryAllocateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDedicatedAllocationMemoryAllocateInfoNV.hsc
+++ /dev/null
@@ -1,260 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDedicatedAllocationMemoryAllocateInfoNV
-       (VkDedicatedAllocationMemoryAllocateInfoNV(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                     (VkBuffer,
-                                                                    VkImage)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkImage          image;
---   >     VkBuffer         buffer;
---   > } VkDedicatedAllocationMemoryAllocateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDedicatedAllocationMemoryAllocateInfoNV.html VkDedicatedAllocationMemoryAllocateInfoNV registry at www.khronos.org>
-data VkDedicatedAllocationMemoryAllocateInfoNV = VkDedicatedAllocationMemoryAllocateInfoNV## Addr##
-                                                                                            ByteArray##
-
-instance Eq VkDedicatedAllocationMemoryAllocateInfoNV where
-        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) ==
-          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDedicatedAllocationMemoryAllocateInfoNV where
-        (VkDedicatedAllocationMemoryAllocateInfoNV## a _) `compare`
-          x@(VkDedicatedAllocationMemoryAllocateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDedicatedAllocationMemoryAllocateInfoNV where
-        sizeOf ~_
-          = #{size VkDedicatedAllocationMemoryAllocateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDedicatedAllocationMemoryAllocateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        unsafeAddr (VkDedicatedAllocationMemoryAllocateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDedicatedAllocationMemoryAllocateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDedicatedAllocationMemoryAllocateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        type StructFields VkDedicatedAllocationMemoryAllocateInfoNV =
-             '["sType", "pNext", "image", "buffer"] -- ' closing tick for hsc2hs
-        type CUnionType VkDedicatedAllocationMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDedicatedAllocationMemoryAllocateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkDedicatedAllocationMemoryAllocateInfoNV =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDedicatedAllocationMemoryAllocateInfoNV where
-        type FieldType "sType" VkDedicatedAllocationMemoryAllocateInfoNV =
-             VkStructureType
-        type FieldOptional "sType"
-               VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDedicatedAllocationMemoryAllocateInfoNV
-             =
-             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
-        type FieldIsArray "sType" VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV where
-        type FieldType "pNext" VkDedicatedAllocationMemoryAllocateInfoNV =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
-             =
-             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
-        type FieldIsArray "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkDedicatedAllocationMemoryAllocateInfoNV where
-        type FieldType "image" VkDedicatedAllocationMemoryAllocateInfoNV =
-             VkImage
-        type FieldOptional "image"
-               VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkDedicatedAllocationMemoryAllocateInfoNV
-             =
-             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
-        type FieldIsArray "image" VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV where
-        type FieldType "buffer" VkDedicatedAllocationMemoryAllocateInfoNV =
-             VkBuffer
-        type FieldOptional "buffer"
-               VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
-             =
-             #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
-        type FieldIsArray "buffer"
-               VkDedicatedAllocationMemoryAllocateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkDedicatedAllocationMemoryAllocateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDedicatedAllocationMemoryAllocateInfoNV, buffer}
-
-instance Show VkDedicatedAllocationMemoryAllocateInfoNV where
-        showsPrec d x
-          = showString "VkDedicatedAllocationMemoryAllocateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "image = " .
-                            showsPrec d (getField @"image" x) .
-                              showString ", " .
-                                showString "buffer = " .
-                                  showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorBufferInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorBufferInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorBufferInfo.hsc
+++ /dev/null
@@ -1,178 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo
-       (VkDescriptorBufferInfo(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
-import           Graphics.Vulkan.Types.Handles    (VkBuffer)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorBufferInfo {
---   >     VkBuffer               buffer;
---   >     VkDeviceSize           offset;
---   >     VkDeviceSize           range;
---   > } VkDescriptorBufferInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorBufferInfo.html VkDescriptorBufferInfo registry at www.khronos.org>
-data VkDescriptorBufferInfo = VkDescriptorBufferInfo## Addr##
-                                                      ByteArray##
-
-instance Eq VkDescriptorBufferInfo where
-        (VkDescriptorBufferInfo## a _) == x@(VkDescriptorBufferInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorBufferInfo where
-        (VkDescriptorBufferInfo## a _) `compare`
-          x@(VkDescriptorBufferInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorBufferInfo where
-        sizeOf ~_ = #{size VkDescriptorBufferInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDescriptorBufferInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorBufferInfo where
-        unsafeAddr (VkDescriptorBufferInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorBufferInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorBufferInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorBufferInfo where
-        type StructFields VkDescriptorBufferInfo =
-             '["buffer", "offset", "range"] -- ' closing tick for hsc2hs
-        type CUnionType VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorBufferInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkDescriptorBufferInfo where
-        type FieldType "buffer" VkDescriptorBufferInfo = VkBuffer
-        type FieldOptional "buffer" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkDescriptorBufferInfo =
-             #{offset VkDescriptorBufferInfo, buffer}
-        type FieldIsArray "buffer" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDescriptorBufferInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkDescriptorBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorBufferInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkDescriptorBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorBufferInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkDescriptorBufferInfo where
-        type FieldType "offset" VkDescriptorBufferInfo = VkDeviceSize
-        type FieldOptional "offset" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkDescriptorBufferInfo =
-             #{offset VkDescriptorBufferInfo, offset}
-        type FieldIsArray "offset" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDescriptorBufferInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkDescriptorBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorBufferInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkDescriptorBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorBufferInfo, offset}
-
-instance {-# OVERLAPPING #-}
-         HasField "range" VkDescriptorBufferInfo where
-        type FieldType "range" VkDescriptorBufferInfo = VkDeviceSize
-        type FieldOptional "range" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "range" VkDescriptorBufferInfo =
-             #{offset VkDescriptorBufferInfo, range}
-        type FieldIsArray "range" VkDescriptorBufferInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDescriptorBufferInfo, range}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "range" VkDescriptorBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorBufferInfo, range})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorBufferInfo, range}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "range" VkDescriptorBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorBufferInfo, range}
-
-instance Show VkDescriptorBufferInfo where
-        showsPrec d x
-          = showString "VkDescriptorBufferInfo {" .
-              showString "buffer = " .
-                showsPrec d (getField @"buffer" x) .
-                  showString ", " .
-                    showString "offset = " .
-                      showsPrec d (getField @"offset" x) .
-                        showString ", " .
-                          showString "range = " .
-                            showsPrec d (getField @"range" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorImageInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorImageInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorImageInfo.hsc
+++ /dev/null
@@ -1,181 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo
-       (VkDescriptorImageInfo(..)) where
-import           Foreign.Storable                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageLayout (VkImageLayout)
-import           Graphics.Vulkan.Types.Handles            (VkImageView,
-                                                           VkSampler)
-import           System.IO.Unsafe                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorImageInfo {
---   >     VkSampler       sampler;
---   >     VkImageView     imageView;
---   >     VkImageLayout   imageLayout;
---   > } VkDescriptorImageInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorImageInfo.html VkDescriptorImageInfo registry at www.khronos.org>
-data VkDescriptorImageInfo = VkDescriptorImageInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkDescriptorImageInfo where
-        (VkDescriptorImageInfo## a _) == x@(VkDescriptorImageInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorImageInfo where
-        (VkDescriptorImageInfo## a _) `compare`
-          x@(VkDescriptorImageInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorImageInfo where
-        sizeOf ~_ = #{size VkDescriptorImageInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDescriptorImageInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorImageInfo where
-        unsafeAddr (VkDescriptorImageInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorImageInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorImageInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorImageInfo where
-        type StructFields VkDescriptorImageInfo =
-             '["sampler", "imageView", "imageLayout"] -- ' closing tick for hsc2hs
-        type CUnionType VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorImageInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sampler" VkDescriptorImageInfo where
-        type FieldType "sampler" VkDescriptorImageInfo = VkSampler
-        type FieldOptional "sampler" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampler" VkDescriptorImageInfo =
-             #{offset VkDescriptorImageInfo, sampler}
-        type FieldIsArray "sampler" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDescriptorImageInfo, sampler}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampler" VkDescriptorImageInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, sampler})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorImageInfo, sampler}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampler" VkDescriptorImageInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorImageInfo, sampler}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageView" VkDescriptorImageInfo where
-        type FieldType "imageView" VkDescriptorImageInfo = VkImageView
-        type FieldOptional "imageView" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageView" VkDescriptorImageInfo =
-             #{offset VkDescriptorImageInfo, imageView}
-        type FieldIsArray "imageView" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorImageInfo, imageView}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageView" VkDescriptorImageInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, imageView})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorImageInfo, imageView}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageView" VkDescriptorImageInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorImageInfo, imageView}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageLayout" VkDescriptorImageInfo where
-        type FieldType "imageLayout" VkDescriptorImageInfo = VkImageLayout
-        type FieldOptional "imageLayout" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageLayout" VkDescriptorImageInfo =
-             #{offset VkDescriptorImageInfo, imageLayout}
-        type FieldIsArray "imageLayout" VkDescriptorImageInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorImageInfo, imageLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageLayout" VkDescriptorImageInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorImageInfo, imageLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorImageInfo, imageLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageLayout" VkDescriptorImageInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorImageInfo, imageLayout}
-
-instance Show VkDescriptorImageInfo where
-        showsPrec d x
-          = showString "VkDescriptorImageInfo {" .
-              showString "sampler = " .
-                showsPrec d (getField @"sampler" x) .
-                  showString ", " .
-                    showString "imageView = " .
-                      showsPrec d (getField @"imageView" x) .
-                        showString ", " .
-                          showString "imageLayout = " .
-                            showsPrec d (getField @"imageLayout" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolCreateInfo.hsc
+++ /dev/null
@@ -1,298 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo
-       (VkDescriptorPoolCreateInfo(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags (VkDescriptorPoolCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize      (VkDescriptorPoolSize)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorPoolCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDescriptorPoolCreateFlags  flags;
---   >     uint32_t               maxSets;
---   >     uint32_t               poolSizeCount;
---   >     const VkDescriptorPoolSize* pPoolSizes;
---   > } VkDescriptorPoolCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorPoolCreateInfo.html VkDescriptorPoolCreateInfo registry at www.khronos.org>
-data VkDescriptorPoolCreateInfo = VkDescriptorPoolCreateInfo## Addr##
-                                                              ByteArray##
-
-instance Eq VkDescriptorPoolCreateInfo where
-        (VkDescriptorPoolCreateInfo## a _) ==
-          x@(VkDescriptorPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorPoolCreateInfo where
-        (VkDescriptorPoolCreateInfo## a _) `compare`
-          x@(VkDescriptorPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorPoolCreateInfo where
-        sizeOf ~_ = #{size VkDescriptorPoolCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDescriptorPoolCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorPoolCreateInfo where
-        unsafeAddr (VkDescriptorPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorPoolCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorPoolCreateInfo where
-        type StructFields VkDescriptorPoolCreateInfo =
-             '["sType", "pNext", "flags", "maxSets", "poolSizeCount", -- ' closing tick for hsc2hs
-               "pPoolSizes"]
-        type CUnionType VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorPoolCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDescriptorPoolCreateInfo where
-        type FieldType "sType" VkDescriptorPoolCreateInfo = VkStructureType
-        type FieldOptional "sType" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, sType}
-        type FieldIsArray "sType" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDescriptorPoolCreateInfo where
-        type FieldType "pNext" VkDescriptorPoolCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDescriptorPoolCreateInfo where
-        type FieldType "flags" VkDescriptorPoolCreateInfo =
-             VkDescriptorPoolCreateFlags
-        type FieldOptional "flags" VkDescriptorPoolCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, flags}
-        type FieldIsArray "flags" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSets" VkDescriptorPoolCreateInfo where
-        type FieldType "maxSets" VkDescriptorPoolCreateInfo = Word32
-        type FieldOptional "maxSets" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSets" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, maxSets}
-        type FieldIsArray "maxSets" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, maxSets}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSets" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, maxSets})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, maxSets}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSets" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, maxSets}
-
-instance {-# OVERLAPPING #-}
-         HasField "poolSizeCount" VkDescriptorPoolCreateInfo where
-        type FieldType "poolSizeCount" VkDescriptorPoolCreateInfo = Word32
-        type FieldOptional "poolSizeCount" VkDescriptorPoolCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "poolSizeCount" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
-        type FieldIsArray "poolSizeCount" VkDescriptorPoolCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "poolSizeCount" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, poolSizeCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "poolSizeCount" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, poolSizeCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pPoolSizes" VkDescriptorPoolCreateInfo where
-        type FieldType "pPoolSizes" VkDescriptorPoolCreateInfo =
-             Ptr VkDescriptorPoolSize
-        type FieldOptional "pPoolSizes" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pPoolSizes" VkDescriptorPoolCreateInfo =
-             #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
-        type FieldIsArray "pPoolSizes" VkDescriptorPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pPoolSizes" VkDescriptorPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolCreateInfo, pPoolSizes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pPoolSizes" VkDescriptorPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolCreateInfo, pPoolSizes}
-
-instance Show VkDescriptorPoolCreateInfo where
-        showsPrec d x
-          = showString "VkDescriptorPoolCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "maxSets = " .
-                                  showsPrec d (getField @"maxSets" x) .
-                                    showString ", " .
-                                      showString "poolSizeCount = " .
-                                        showsPrec d (getField @"poolSizeCount" x) .
-                                          showString ", " .
-                                            showString "pPoolSizes = " .
-                                              showsPrec d (getField @"pPoolSizes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolSize.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolSize.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorPoolSize.hsc
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize
-       (VkDescriptorPoolSize(..)) where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType (VkDescriptorType)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorPoolSize {
---   >     VkDescriptorType       type;
---   >     uint32_t               descriptorCount;
---   > } VkDescriptorPoolSize;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorPoolSize.html VkDescriptorPoolSize registry at www.khronos.org>
-data VkDescriptorPoolSize = VkDescriptorPoolSize## Addr## ByteArray##
-
-instance Eq VkDescriptorPoolSize where
-        (VkDescriptorPoolSize## a _) == x@(VkDescriptorPoolSize## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorPoolSize where
-        (VkDescriptorPoolSize## a _) `compare` x@(VkDescriptorPoolSize## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorPoolSize where
-        sizeOf ~_ = #{size VkDescriptorPoolSize}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDescriptorPoolSize}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorPoolSize where
-        unsafeAddr (VkDescriptorPoolSize## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorPoolSize## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorPoolSize## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorPoolSize where
-        type StructFields VkDescriptorPoolSize =
-             '["type", "descriptorCount"] -- ' closing tick for hsc2hs
-        type CUnionType VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorPoolSize = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "type" VkDescriptorPoolSize
-         where
-        type FieldType "type" VkDescriptorPoolSize = VkDescriptorType
-        type FieldOptional "type" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkDescriptorPoolSize =
-             #{offset VkDescriptorPoolSize, type}
-        type FieldIsArray "type" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDescriptorPoolSize, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkDescriptorPoolSize where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolSize, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolSize, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkDescriptorPoolSize where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolSize, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorCount" VkDescriptorPoolSize where
-        type FieldType "descriptorCount" VkDescriptorPoolSize = Word32
-        type FieldOptional "descriptorCount" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorCount" VkDescriptorPoolSize =
-             #{offset VkDescriptorPoolSize, descriptorCount}
-        type FieldIsArray "descriptorCount" VkDescriptorPoolSize = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorPoolSize, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorCount" VkDescriptorPoolSize where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorPoolSize, descriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorPoolSize, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorCount" VkDescriptorPoolSize where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorPoolSize, descriptorCount}
-
-instance Show VkDescriptorPoolSize where
-        showsPrec d x
-          = showString "VkDescriptorPoolSize {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "descriptorCount = " .
-                      showsPrec d (getField @"descriptorCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetAllocateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetAllocateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetAllocateInfo.hsc
+++ /dev/null
@@ -1,268 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo
-       (VkDescriptorSetAllocateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDescriptorPool, VkDescriptorSetLayout)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorSetAllocateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDescriptorPool       descriptorPool;
---   >     uint32_t               descriptorSetCount;
---   >     const VkDescriptorSetLayout* pSetLayouts;
---   > } VkDescriptorSetAllocateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorSetAllocateInfo.html VkDescriptorSetAllocateInfo registry at www.khronos.org>
-data VkDescriptorSetAllocateInfo = VkDescriptorSetAllocateInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkDescriptorSetAllocateInfo where
-        (VkDescriptorSetAllocateInfo## a _) ==
-          x@(VkDescriptorSetAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorSetAllocateInfo where
-        (VkDescriptorSetAllocateInfo## a _) `compare`
-          x@(VkDescriptorSetAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorSetAllocateInfo where
-        sizeOf ~_ = #{size VkDescriptorSetAllocateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDescriptorSetAllocateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorSetAllocateInfo where
-        unsafeAddr (VkDescriptorSetAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorSetAllocateInfo where
-        type StructFields VkDescriptorSetAllocateInfo =
-             '["sType", "pNext", "descriptorPool", "descriptorSetCount", -- ' closing tick for hsc2hs
-               "pSetLayouts"]
-        type CUnionType VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorSetAllocateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDescriptorSetAllocateInfo where
-        type FieldType "sType" VkDescriptorSetAllocateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDescriptorSetAllocateInfo =
-             #{offset VkDescriptorSetAllocateInfo, sType}
-        type FieldIsArray "sType" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDescriptorSetAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDescriptorSetAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDescriptorSetAllocateInfo where
-        type FieldType "pNext" VkDescriptorSetAllocateInfo = Ptr Void
-        type FieldOptional "pNext" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDescriptorSetAllocateInfo =
-             #{offset VkDescriptorSetAllocateInfo, pNext}
-        type FieldIsArray "pNext" VkDescriptorSetAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDescriptorSetAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDescriptorSetAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorPool" VkDescriptorSetAllocateInfo where
-        type FieldType "descriptorPool" VkDescriptorSetAllocateInfo =
-             VkDescriptorPool
-        type FieldOptional "descriptorPool" VkDescriptorSetAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorPool" VkDescriptorSetAllocateInfo =
-             #{offset VkDescriptorSetAllocateInfo, descriptorPool}
-        type FieldIsArray "descriptorPool" VkDescriptorSetAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetAllocateInfo, descriptorPool}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorPool" VkDescriptorSetAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, descriptorPool})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorPool}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorPool" VkDescriptorSetAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorPool}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorSetCount" VkDescriptorSetAllocateInfo where
-        type FieldType "descriptorSetCount" VkDescriptorSetAllocateInfo =
-             Word32
-        type FieldOptional "descriptorSetCount" VkDescriptorSetAllocateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorSetCount" VkDescriptorSetAllocateInfo =
-             #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
-        type FieldIsArray "descriptorSetCount" VkDescriptorSetAllocateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorSetCount" VkDescriptorSetAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, descriptorSetCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorSetCount" VkDescriptorSetAllocateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, descriptorSetCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSetLayouts" VkDescriptorSetAllocateInfo where
-        type FieldType "pSetLayouts" VkDescriptorSetAllocateInfo =
-             Ptr VkDescriptorSetLayout
-        type FieldOptional "pSetLayouts" VkDescriptorSetAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSetLayouts" VkDescriptorSetAllocateInfo =
-             #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
-        type FieldIsArray "pSetLayouts" VkDescriptorSetAllocateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSetLayouts" VkDescriptorSetAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetAllocateInfo, pSetLayouts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSetLayouts" VkDescriptorSetAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetAllocateInfo, pSetLayouts}
-
-instance Show VkDescriptorSetAllocateInfo where
-        showsPrec d x
-          = showString "VkDescriptorSetAllocateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "descriptorPool = " .
-                            showsPrec d (getField @"descriptorPool" x) .
-                              showString ", " .
-                                showString "descriptorSetCount = " .
-                                  showsPrec d (getField @"descriptorSetCount" x) .
-                                    showString ", " .
-                                      showString "pSetLayouts = " .
-                                        showsPrec d (getField @"pSetLayouts" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutBinding.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutBinding.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutBinding.hsc
+++ /dev/null
@@ -1,276 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding
-       (VkDescriptorSetLayoutBinding(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType   (VkDescriptorType)
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Handles                 (VkSampler)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorSetLayoutBinding {
---   >     uint32_t               binding;
---   >     VkDescriptorType       descriptorType;
---   >     uint32_t descriptorCount;
---   >     VkShaderStageFlags     stageFlags;
---   >     const VkSampler*       pImmutableSamplers;
---   > } VkDescriptorSetLayoutBinding;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorSetLayoutBinding.html VkDescriptorSetLayoutBinding registry at www.khronos.org>
-data VkDescriptorSetLayoutBinding = VkDescriptorSetLayoutBinding## Addr##
-                                                                  ByteArray##
-
-instance Eq VkDescriptorSetLayoutBinding where
-        (VkDescriptorSetLayoutBinding## a _) ==
-          x@(VkDescriptorSetLayoutBinding## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorSetLayoutBinding where
-        (VkDescriptorSetLayoutBinding## a _) `compare`
-          x@(VkDescriptorSetLayoutBinding## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorSetLayoutBinding where
-        sizeOf ~_ = #{size VkDescriptorSetLayoutBinding}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDescriptorSetLayoutBinding}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorSetLayoutBinding where
-        unsafeAddr (VkDescriptorSetLayoutBinding## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutBinding## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutBinding##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorSetLayoutBinding where
-        type StructFields VkDescriptorSetLayoutBinding =
-             '["binding", "descriptorType", "descriptorCount", "stageFlags", -- ' closing tick for hsc2hs
-               "pImmutableSamplers"]
-        type CUnionType VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorSetLayoutBinding = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "binding" VkDescriptorSetLayoutBinding where
-        type FieldType "binding" VkDescriptorSetLayoutBinding = Word32
-        type FieldOptional "binding" VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "binding" VkDescriptorSetLayoutBinding =
-             #{offset VkDescriptorSetLayoutBinding, binding}
-        type FieldIsArray "binding" VkDescriptorSetLayoutBinding = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutBinding, binding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "binding" VkDescriptorSetLayoutBinding where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, binding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, binding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "binding" VkDescriptorSetLayoutBinding where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, binding}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorType" VkDescriptorSetLayoutBinding where
-        type FieldType "descriptorType" VkDescriptorSetLayoutBinding =
-             VkDescriptorType
-        type FieldOptional "descriptorType" VkDescriptorSetLayoutBinding =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorType" VkDescriptorSetLayoutBinding =
-             #{offset VkDescriptorSetLayoutBinding, descriptorType}
-        type FieldIsArray "descriptorType" VkDescriptorSetLayoutBinding =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutBinding, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorType" VkDescriptorSetLayoutBinding where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, descriptorType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorType" VkDescriptorSetLayoutBinding where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorCount" VkDescriptorSetLayoutBinding where
-        type FieldType "descriptorCount" VkDescriptorSetLayoutBinding =
-             Word32
-        type FieldOptional "descriptorCount" VkDescriptorSetLayoutBinding =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorCount" VkDescriptorSetLayoutBinding =
-             #{offset VkDescriptorSetLayoutBinding, descriptorCount}
-        type FieldIsArray "descriptorCount" VkDescriptorSetLayoutBinding =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutBinding, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorCount" VkDescriptorSetLayoutBinding where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, descriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorCount" VkDescriptorSetLayoutBinding where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "stageFlags" VkDescriptorSetLayoutBinding where
-        type FieldType "stageFlags" VkDescriptorSetLayoutBinding =
-             VkShaderStageFlags
-        type FieldOptional "stageFlags" VkDescriptorSetLayoutBinding =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stageFlags" VkDescriptorSetLayoutBinding =
-             #{offset VkDescriptorSetLayoutBinding, stageFlags}
-        type FieldIsArray "stageFlags" VkDescriptorSetLayoutBinding =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutBinding, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stageFlags" VkDescriptorSetLayoutBinding where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, stageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stageFlags" VkDescriptorSetLayoutBinding where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pImmutableSamplers" VkDescriptorSetLayoutBinding where
-        type FieldType "pImmutableSamplers" VkDescriptorSetLayoutBinding =
-             Ptr VkSampler
-        type FieldOptional "pImmutableSamplers"
-               VkDescriptorSetLayoutBinding
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pImmutableSamplers" VkDescriptorSetLayoutBinding
-             =
-             #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
-        type FieldIsArray "pImmutableSamplers" VkDescriptorSetLayoutBinding
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pImmutableSamplers" VkDescriptorSetLayoutBinding
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pImmutableSamplers" VkDescriptorSetLayoutBinding
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutBinding, pImmutableSamplers}
-
-instance Show VkDescriptorSetLayoutBinding where
-        showsPrec d x
-          = showString "VkDescriptorSetLayoutBinding {" .
-              showString "binding = " .
-                showsPrec d (getField @"binding" x) .
-                  showString ", " .
-                    showString "descriptorType = " .
-                      showsPrec d (getField @"descriptorType" x) .
-                        showString ", " .
-                          showString "descriptorCount = " .
-                            showsPrec d (getField @"descriptorCount" x) .
-                              showString ", " .
-                                showString "stageFlags = " .
-                                  showsPrec d (getField @"stageFlags" x) .
-                                    showString ", " .
-                                      showString "pImmutableSamplers = " .
-                                        showsPrec d (getField @"pImmutableSamplers" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutCreateInfo.hsc
+++ /dev/null
@@ -1,266 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo
-       (VkDescriptorSetLayoutCreateInfo(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags (VkDescriptorSetLayoutCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding   (VkDescriptorSetLayoutBinding)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorSetLayoutCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDescriptorSetLayoutCreateFlags    flags;
---   >     uint32_t               bindingCount;
---   >     const VkDescriptorSetLayoutBinding* pBindings;
---   > } VkDescriptorSetLayoutCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorSetLayoutCreateInfo.html VkDescriptorSetLayoutCreateInfo registry at www.khronos.org>
-data VkDescriptorSetLayoutCreateInfo = VkDescriptorSetLayoutCreateInfo## Addr##
-                                                                        ByteArray##
-
-instance Eq VkDescriptorSetLayoutCreateInfo where
-        (VkDescriptorSetLayoutCreateInfo## a _) ==
-          x@(VkDescriptorSetLayoutCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorSetLayoutCreateInfo where
-        (VkDescriptorSetLayoutCreateInfo## a _) `compare`
-          x@(VkDescriptorSetLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorSetLayoutCreateInfo where
-        sizeOf ~_ = #{size VkDescriptorSetLayoutCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDescriptorSetLayoutCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorSetLayoutCreateInfo where
-        unsafeAddr (VkDescriptorSetLayoutCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorSetLayoutCreateInfo where
-        type StructFields VkDescriptorSetLayoutCreateInfo =
-             '["sType", "pNext", "flags", "bindingCount", "pBindings"] -- ' closing tick for hsc2hs
-        type CUnionType VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorSetLayoutCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDescriptorSetLayoutCreateInfo where
-        type FieldType "sType" VkDescriptorSetLayoutCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDescriptorSetLayoutCreateInfo =
-             #{offset VkDescriptorSetLayoutCreateInfo, sType}
-        type FieldIsArray "sType" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDescriptorSetLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDescriptorSetLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDescriptorSetLayoutCreateInfo where
-        type FieldType "pNext" VkDescriptorSetLayoutCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDescriptorSetLayoutCreateInfo =
-             #{offset VkDescriptorSetLayoutCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDescriptorSetLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDescriptorSetLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDescriptorSetLayoutCreateInfo where
-        type FieldType "flags" VkDescriptorSetLayoutCreateInfo =
-             VkDescriptorSetLayoutCreateFlags
-        type FieldOptional "flags" VkDescriptorSetLayoutCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDescriptorSetLayoutCreateInfo =
-             #{offset VkDescriptorSetLayoutCreateInfo, flags}
-        type FieldIsArray "flags" VkDescriptorSetLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDescriptorSetLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDescriptorSetLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "bindingCount" VkDescriptorSetLayoutCreateInfo where
-        type FieldType "bindingCount" VkDescriptorSetLayoutCreateInfo =
-             Word32
-        type FieldOptional "bindingCount" VkDescriptorSetLayoutCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "bindingCount" VkDescriptorSetLayoutCreateInfo =
-             #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
-        type FieldIsArray "bindingCount" VkDescriptorSetLayoutCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bindingCount" VkDescriptorSetLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, bindingCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bindingCount" VkDescriptorSetLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, bindingCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBindings" VkDescriptorSetLayoutCreateInfo where
-        type FieldType "pBindings" VkDescriptorSetLayoutCreateInfo =
-             Ptr VkDescriptorSetLayoutBinding
-        type FieldOptional "pBindings" VkDescriptorSetLayoutCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBindings" VkDescriptorSetLayoutCreateInfo =
-             #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
-        type FieldIsArray "pBindings" VkDescriptorSetLayoutCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBindings" VkDescriptorSetLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutCreateInfo, pBindings})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBindings" VkDescriptorSetLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutCreateInfo, pBindings}
-
-instance Show VkDescriptorSetLayoutCreateInfo where
-        showsPrec d x
-          = showString "VkDescriptorSetLayoutCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "bindingCount = " .
-                                  showsPrec d (getField @"bindingCount" x) .
-                                    showString ", " .
-                                      showString "pBindings = " .
-                                        showsPrec d (getField @"pBindings" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupport.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupport.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupport.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport
-       (VkDescriptorSetLayoutSupport(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorSetLayoutSupport {
---   >     VkStructureType sType;
---   >     void*            pNext;
---   >     VkBool32         supported;
---   > } VkDescriptorSetLayoutSupport;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorSetLayoutSupport.html VkDescriptorSetLayoutSupport registry at www.khronos.org>
-data VkDescriptorSetLayoutSupport = VkDescriptorSetLayoutSupport## Addr##
-                                                                  ByteArray##
-
-instance Eq VkDescriptorSetLayoutSupport where
-        (VkDescriptorSetLayoutSupport## a _) ==
-          x@(VkDescriptorSetLayoutSupport## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorSetLayoutSupport where
-        (VkDescriptorSetLayoutSupport## a _) `compare`
-          x@(VkDescriptorSetLayoutSupport## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorSetLayoutSupport where
-        sizeOf ~_ = #{size VkDescriptorSetLayoutSupport}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDescriptorSetLayoutSupport}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorSetLayoutSupport where
-        unsafeAddr (VkDescriptorSetLayoutSupport## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorSetLayoutSupport## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorSetLayoutSupport##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorSetLayoutSupport where
-        type StructFields VkDescriptorSetLayoutSupport =
-             '["sType", "pNext", "supported"] -- ' closing tick for hsc2hs
-        type CUnionType VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorSetLayoutSupport = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorSetLayoutSupport = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDescriptorSetLayoutSupport where
-        type FieldType "sType" VkDescriptorSetLayoutSupport =
-             VkStructureType
-        type FieldOptional "sType" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDescriptorSetLayoutSupport =
-             #{offset VkDescriptorSetLayoutSupport, sType}
-        type FieldIsArray "sType" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutSupport, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDescriptorSetLayoutSupport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDescriptorSetLayoutSupport where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDescriptorSetLayoutSupport where
-        type FieldType "pNext" VkDescriptorSetLayoutSupport = Ptr Void
-        type FieldOptional "pNext" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDescriptorSetLayoutSupport =
-             #{offset VkDescriptorSetLayoutSupport, pNext}
-        type FieldIsArray "pNext" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutSupport, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDescriptorSetLayoutSupport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDescriptorSetLayoutSupport where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "supported" VkDescriptorSetLayoutSupport where
-        type FieldType "supported" VkDescriptorSetLayoutSupport = VkBool32
-        type FieldOptional "supported" VkDescriptorSetLayoutSupport =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "supported" VkDescriptorSetLayoutSupport =
-             #{offset VkDescriptorSetLayoutSupport, supported}
-        type FieldIsArray "supported" VkDescriptorSetLayoutSupport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorSetLayoutSupport, supported}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supported" VkDescriptorSetLayoutSupport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorSetLayoutSupport, supported})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorSetLayoutSupport, supported}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supported" VkDescriptorSetLayoutSupport where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorSetLayoutSupport, supported}
-
-instance Show VkDescriptorSetLayoutSupport where
-        showsPrec d x
-          = showString "VkDescriptorSetLayoutSupport {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "supported = " .
-                            showsPrec d (getField @"supported" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupportKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupportKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorSetLayoutSupportKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupportKHR
-       (VkDescriptorSetLayoutSupport(..), VkDescriptorSetLayoutSupportKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport (VkDescriptorSetLayoutSupport (..))
-
--- | Alias for `VkDescriptorSetLayoutSupport`
-type VkDescriptorSetLayoutSupportKHR = VkDescriptorSetLayoutSupport
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfo.hsc
+++ /dev/null
@@ -1,539 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo
-       (VkDescriptorUpdateTemplateCreateInfo(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                               (VkDescriptorUpdateTemplateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType    (VkDescriptorUpdateTemplateType)
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint               (VkPipelineBindPoint)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                (VkDescriptorSetLayout,
-                                                                               VkPipelineLayout)
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry (VkDescriptorUpdateTemplateEntry)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorUpdateTemplateCreateInfo {
---   >     VkStructureType sType;
---   >     void*                                   pNext;
---   >     VkDescriptorUpdateTemplateCreateFlags    flags;
---   >     uint32_t                 descriptorUpdateEntryCount;
---   >     const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
---   >     VkDescriptorUpdateTemplateType templateType;
---   >     VkDescriptorSetLayout descriptorSetLayout;
---   >     VkPipelineBindPoint pipelineBindPoint;
---   >     VkPipelineLayoutpipelineLayout;
---   >     uint32_t set;
---   > } VkDescriptorUpdateTemplateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorUpdateTemplateCreateInfo.html VkDescriptorUpdateTemplateCreateInfo registry at www.khronos.org>
-data VkDescriptorUpdateTemplateCreateInfo = VkDescriptorUpdateTemplateCreateInfo## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkDescriptorUpdateTemplateCreateInfo where
-        (VkDescriptorUpdateTemplateCreateInfo## a _) ==
-          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorUpdateTemplateCreateInfo where
-        (VkDescriptorUpdateTemplateCreateInfo## a _) `compare`
-          x@(VkDescriptorUpdateTemplateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorUpdateTemplateCreateInfo where
-        sizeOf ~_
-          = #{size VkDescriptorUpdateTemplateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDescriptorUpdateTemplateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorUpdateTemplateCreateInfo
-         where
-        unsafeAddr (VkDescriptorUpdateTemplateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorUpdateTemplateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorUpdateTemplateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorUpdateTemplateCreateInfo where
-        type StructFields VkDescriptorUpdateTemplateCreateInfo =
-             '["sType", "pNext", "flags", "descriptorUpdateEntryCount", -- ' closing tick for hsc2hs
-               "pDescriptorUpdateEntries", "templateType", "descriptorSetLayout",
-               "pipelineBindPoint", "pipelineLayout", "set"]
-        type CUnionType VkDescriptorUpdateTemplateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorUpdateTemplateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorUpdateTemplateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDescriptorUpdateTemplateCreateInfo where
-        type FieldType "sType" VkDescriptorUpdateTemplateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDescriptorUpdateTemplateCreateInfo =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
-        type FieldIsArray "sType" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDescriptorUpdateTemplateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDescriptorUpdateTemplateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDescriptorUpdateTemplateCreateInfo where
-        type FieldType "pNext" VkDescriptorUpdateTemplateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDescriptorUpdateTemplateCreateInfo =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDescriptorUpdateTemplateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDescriptorUpdateTemplateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDescriptorUpdateTemplateCreateInfo where
-        type FieldType "flags" VkDescriptorUpdateTemplateCreateInfo =
-             VkDescriptorUpdateTemplateCreateFlags
-        type FieldOptional "flags" VkDescriptorUpdateTemplateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDescriptorUpdateTemplateCreateInfo =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
-        type FieldIsArray "flags" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDescriptorUpdateTemplateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDescriptorUpdateTemplateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorUpdateEntryCount"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        type FieldType "descriptorUpdateEntryCount"
-               VkDescriptorUpdateTemplateCreateInfo
-             = Word32
-        type FieldOptional "descriptorUpdateEntryCount"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorUpdateEntryCount"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
-        type FieldIsArray "descriptorUpdateEntryCount"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorUpdateEntryCount"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorUpdateEntryCount"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorUpdateEntryCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDescriptorUpdateEntries"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        type FieldType "pDescriptorUpdateEntries"
-               VkDescriptorUpdateTemplateCreateInfo
-             = Ptr VkDescriptorUpdateTemplateEntry
-        type FieldOptional "pDescriptorUpdateEntries"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDescriptorUpdateEntries"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
-        type FieldIsArray "pDescriptorUpdateEntries"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDescriptorUpdateEntries"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDescriptorUpdateEntries"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pDescriptorUpdateEntries}
-
-instance {-# OVERLAPPING #-}
-         HasField "templateType" VkDescriptorUpdateTemplateCreateInfo where
-        type FieldType "templateType" VkDescriptorUpdateTemplateCreateInfo
-             = VkDescriptorUpdateTemplateType
-        type FieldOptional "templateType"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "templateType"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
-        type FieldIsArray "templateType"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "templateType" VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, templateType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "templateType" VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, templateType}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorSetLayout" VkDescriptorUpdateTemplateCreateInfo
-         where
-        type FieldType "descriptorSetLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = VkDescriptorSetLayout
-        type FieldOptional "descriptorSetLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorSetLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
-        type FieldIsArray "descriptorSetLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorSetLayout"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorSetLayout"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, descriptorSetLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineBindPoint" VkDescriptorUpdateTemplateCreateInfo
-         where
-        type FieldType "pipelineBindPoint"
-               VkDescriptorUpdateTemplateCreateInfo
-             = VkPipelineBindPoint
-        type FieldOptional "pipelineBindPoint"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineBindPoint"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
-        type FieldIsArray "pipelineBindPoint"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineBindPoint"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineBindPoint"
-           VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
-         where
-        type FieldType "pipelineLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = VkPipelineLayout
-        type FieldOptional "pipelineLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
-        type FieldIsArray "pipelineLayout"
-               VkDescriptorUpdateTemplateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineLayout" VkDescriptorUpdateTemplateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "set" VkDescriptorUpdateTemplateCreateInfo where
-        type FieldType "set" VkDescriptorUpdateTemplateCreateInfo = Word32
-        type FieldOptional "set" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "set" VkDescriptorUpdateTemplateCreateInfo =
-             #{offset VkDescriptorUpdateTemplateCreateInfo, set}
-        type FieldIsArray "set" VkDescriptorUpdateTemplateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateCreateInfo, set}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "set" VkDescriptorUpdateTemplateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateCreateInfo, set})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, set}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "set" VkDescriptorUpdateTemplateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateCreateInfo, set}
-
-instance Show VkDescriptorUpdateTemplateCreateInfo where
-        showsPrec d x
-          = showString "VkDescriptorUpdateTemplateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "descriptorUpdateEntryCount = " .
-                                  showsPrec d (getField @"descriptorUpdateEntryCount" x) .
-                                    showString ", " .
-                                      showString "pDescriptorUpdateEntries = " .
-                                        showsPrec d (getField @"pDescriptorUpdateEntries" x) .
-                                          showString ", " .
-                                            showString "templateType = " .
-                                              showsPrec d (getField @"templateType" x) .
-                                                showString ", " .
-                                                  showString "descriptorSetLayout = " .
-                                                    showsPrec d (getField @"descriptorSetLayout" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pipelineBindPoint = " .
-                                                          showsPrec d
-                                                            (getField @"pipelineBindPoint" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pipelineLayout = " .
-                                                                showsPrec d
-                                                                  (getField @"pipelineLayout" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "set = " .
-                                                                      showsPrec d
-                                                                        (getField @"set" x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateCreateInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfoKHR
-       (VkDescriptorUpdateTemplateCreateInfo(..),
-        VkDescriptorUpdateTemplateCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo
-                                                                                    (VkDescriptorUpdateTemplateCreateInfo (..))
-
--- | Alias for `VkDescriptorUpdateTemplateCreateInfo`
-type VkDescriptorUpdateTemplateCreateInfoKHR =
-     VkDescriptorUpdateTemplateCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntry.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntry.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntry.hsc
+++ /dev/null
@@ -1,316 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry
-       (VkDescriptorUpdateTemplateEntry(..)) where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType (VkDescriptorType)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDescriptorUpdateTemplateEntry {
---   >     uint32_t                         dstBinding;
---   >     uint32_t                         dstArrayElement;
---   >     uint32_t                         descriptorCount;
---   >     VkDescriptorType                 descriptorType;
---   >     size_t                           offset;
---   >     size_t                           stride;
---   > } VkDescriptorUpdateTemplateEntry;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDescriptorUpdateTemplateEntry.html VkDescriptorUpdateTemplateEntry registry at www.khronos.org>
-data VkDescriptorUpdateTemplateEntry = VkDescriptorUpdateTemplateEntry## Addr##
-                                                                        ByteArray##
-
-instance Eq VkDescriptorUpdateTemplateEntry where
-        (VkDescriptorUpdateTemplateEntry## a _) ==
-          x@(VkDescriptorUpdateTemplateEntry## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDescriptorUpdateTemplateEntry where
-        (VkDescriptorUpdateTemplateEntry## a _) `compare`
-          x@(VkDescriptorUpdateTemplateEntry## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDescriptorUpdateTemplateEntry where
-        sizeOf ~_ = #{size VkDescriptorUpdateTemplateEntry}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDescriptorUpdateTemplateEntry}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDescriptorUpdateTemplateEntry where
-        unsafeAddr (VkDescriptorUpdateTemplateEntry## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDescriptorUpdateTemplateEntry## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDescriptorUpdateTemplateEntry##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDescriptorUpdateTemplateEntry where
-        type StructFields VkDescriptorUpdateTemplateEntry =
-             '["dstBinding", "dstArrayElement", "descriptorCount", -- ' closing tick for hsc2hs
-               "descriptorType", "offset", "stride"]
-        type CUnionType VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDescriptorUpdateTemplateEntry = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "dstBinding" VkDescriptorUpdateTemplateEntry where
-        type FieldType "dstBinding" VkDescriptorUpdateTemplateEntry =
-             Word32
-        type FieldOptional "dstBinding" VkDescriptorUpdateTemplateEntry =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstBinding" VkDescriptorUpdateTemplateEntry =
-             #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
-        type FieldIsArray "dstBinding" VkDescriptorUpdateTemplateEntry =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstBinding" VkDescriptorUpdateTemplateEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, dstBinding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstBinding" VkDescriptorUpdateTemplateEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstArrayElement" VkDescriptorUpdateTemplateEntry where
-        type FieldType "dstArrayElement" VkDescriptorUpdateTemplateEntry =
-             Word32
-        type FieldOptional "dstArrayElement"
-               VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstArrayElement" VkDescriptorUpdateTemplateEntry
-             =
-             #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
-        type FieldIsArray "dstArrayElement" VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstArrayElement" VkDescriptorUpdateTemplateEntry
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstArrayElement" VkDescriptorUpdateTemplateEntry
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorCount" VkDescriptorUpdateTemplateEntry where
-        type FieldType "descriptorCount" VkDescriptorUpdateTemplateEntry =
-             Word32
-        type FieldOptional "descriptorCount"
-               VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorCount" VkDescriptorUpdateTemplateEntry
-             =
-             #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
-        type FieldIsArray "descriptorCount" VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorCount" VkDescriptorUpdateTemplateEntry
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, descriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorCount" VkDescriptorUpdateTemplateEntry
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorType" VkDescriptorUpdateTemplateEntry where
-        type FieldType "descriptorType" VkDescriptorUpdateTemplateEntry =
-             VkDescriptorType
-        type FieldOptional "descriptorType" VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorType" VkDescriptorUpdateTemplateEntry =
-             #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
-        type FieldIsArray "descriptorType" VkDescriptorUpdateTemplateEntry
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorType" VkDescriptorUpdateTemplateEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, descriptorType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorType" VkDescriptorUpdateTemplateEntry
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkDescriptorUpdateTemplateEntry where
-        type FieldType "offset" VkDescriptorUpdateTemplateEntry = CSize
-        type FieldOptional "offset" VkDescriptorUpdateTemplateEntry =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkDescriptorUpdateTemplateEntry =
-             #{offset VkDescriptorUpdateTemplateEntry, offset}
-        type FieldIsArray "offset" VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkDescriptorUpdateTemplateEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkDescriptorUpdateTemplateEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         HasField "stride" VkDescriptorUpdateTemplateEntry where
-        type FieldType "stride" VkDescriptorUpdateTemplateEntry = CSize
-        type FieldOptional "stride" VkDescriptorUpdateTemplateEntry =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stride" VkDescriptorUpdateTemplateEntry =
-             #{offset VkDescriptorUpdateTemplateEntry, stride}
-        type FieldIsArray "stride" VkDescriptorUpdateTemplateEntry = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDescriptorUpdateTemplateEntry, stride}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stride" VkDescriptorUpdateTemplateEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDescriptorUpdateTemplateEntry, stride})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDescriptorUpdateTemplateEntry, stride}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stride" VkDescriptorUpdateTemplateEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDescriptorUpdateTemplateEntry, stride}
-
-instance Show VkDescriptorUpdateTemplateEntry where
-        showsPrec d x
-          = showString "VkDescriptorUpdateTemplateEntry {" .
-              showString "dstBinding = " .
-                showsPrec d (getField @"dstBinding" x) .
-                  showString ", " .
-                    showString "dstArrayElement = " .
-                      showsPrec d (getField @"dstArrayElement" x) .
-                        showString ", " .
-                          showString "descriptorCount = " .
-                            showsPrec d (getField @"descriptorCount" x) .
-                              showString ", " .
-                                showString "descriptorType = " .
-                                  showsPrec d (getField @"descriptorType" x) .
-                                    showString ", " .
-                                      showString "offset = " .
-                                        showsPrec d (getField @"offset" x) .
-                                          showString ", " .
-                                            showString "stride = " .
-                                              showsPrec d (getField @"stride" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntryKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntryKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDescriptorUpdateTemplateEntryKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntryKHR
-       (VkDescriptorUpdateTemplateEntry(..),
-        VkDescriptorUpdateTemplateEntryKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry (VkDescriptorUpdateTemplateEntry (..))
-
--- | Alias for `VkDescriptorUpdateTemplateEntry`
-type VkDescriptorUpdateTemplateEntryKHR =
-     VkDescriptorUpdateTemplateEntry
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceCreateInfo.hsc
+++ /dev/null
@@ -1,459 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-       (VkDeviceCreateInfo(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                        (VkDeviceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo  (VkDeviceQueueCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceCreateInfo {
---   >     VkStructureType sType;
---   >     const void*     pNext;
---   >     VkDeviceCreateFlags    flags;
---   >     uint32_t        queueCreateInfoCount;
---   >     const VkDeviceQueueCreateInfo* pQueueCreateInfos;
---   >     uint32_t               enabledLayerCount;
---   >     const char* const*      ppEnabledLayerNames;
---   >     uint32_t               enabledExtensionCount;
---   >     const char* const*      ppEnabledExtensionNames;
---   >     const VkPhysicalDeviceFeatures* pEnabledFeatures;
---   > } VkDeviceCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceCreateInfo.html VkDeviceCreateInfo registry at www.khronos.org>
-data VkDeviceCreateInfo = VkDeviceCreateInfo## Addr## ByteArray##
-
-instance Eq VkDeviceCreateInfo where
-        (VkDeviceCreateInfo## a _) == x@(VkDeviceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceCreateInfo where
-        (VkDeviceCreateInfo## a _) `compare` x@(VkDeviceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceCreateInfo where
-        sizeOf ~_ = #{size VkDeviceCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceCreateInfo where
-        unsafeAddr (VkDeviceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceCreateInfo where
-        type StructFields VkDeviceCreateInfo =
-             '["sType", "pNext", "flags", "queueCreateInfoCount", -- ' closing tick for hsc2hs
-               "pQueueCreateInfos", "enabledLayerCount", "ppEnabledLayerNames",
-               "enabledExtensionCount", "ppEnabledExtensionNames",
-               "pEnabledFeatures"]
-        type CUnionType VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDeviceCreateInfo
-         where
-        type FieldType "sType" VkDeviceCreateInfo = VkStructureType
-        type FieldOptional "sType" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, sType}
-        type FieldIsArray "sType" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceCreateInfo
-         where
-        type FieldType "pNext" VkDeviceCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkDeviceCreateInfo
-         where
-        type FieldType "flags" VkDeviceCreateInfo = VkDeviceCreateFlags
-        type FieldOptional "flags" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, flags}
-        type FieldIsArray "flags" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueCreateInfoCount" VkDeviceCreateInfo where
-        type FieldType "queueCreateInfoCount" VkDeviceCreateInfo = Word32
-        type FieldOptional "queueCreateInfoCount" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueCreateInfoCount" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, queueCreateInfoCount}
-        type FieldIsArray "queueCreateInfoCount" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, queueCreateInfoCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueCreateInfoCount" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, queueCreateInfoCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, queueCreateInfoCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueCreateInfoCount" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, queueCreateInfoCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueueCreateInfos" VkDeviceCreateInfo where
-        type FieldType "pQueueCreateInfos" VkDeviceCreateInfo =
-             Ptr VkDeviceQueueCreateInfo
-        type FieldOptional "pQueueCreateInfos" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pQueueCreateInfos" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, pQueueCreateInfos}
-        type FieldIsArray "pQueueCreateInfos" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, pQueueCreateInfos}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueueCreateInfos" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pQueueCreateInfos})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, pQueueCreateInfos}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueueCreateInfos" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, pQueueCreateInfos}
-
-instance {-# OVERLAPPING #-}
-         HasField "enabledLayerCount" VkDeviceCreateInfo where
-        type FieldType "enabledLayerCount" VkDeviceCreateInfo = Word32
-        type FieldOptional "enabledLayerCount" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "enabledLayerCount" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, enabledLayerCount}
-        type FieldIsArray "enabledLayerCount" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "enabledLayerCount" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, enabledLayerCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "enabledLayerCount" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "ppEnabledLayerNames" VkDeviceCreateInfo where
-        type FieldType "ppEnabledLayerNames" VkDeviceCreateInfo =
-             Ptr CString
-        type FieldOptional "ppEnabledLayerNames" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "ppEnabledLayerNames" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
-        type FieldIsArray "ppEnabledLayerNames" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ppEnabledLayerNames" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, ppEnabledLayerNames})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ppEnabledLayerNames" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         HasField "enabledExtensionCount" VkDeviceCreateInfo where
-        type FieldType "enabledExtensionCount" VkDeviceCreateInfo = Word32
-        type FieldOptional "enabledExtensionCount" VkDeviceCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "enabledExtensionCount" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, enabledExtensionCount}
-        type FieldIsArray "enabledExtensionCount" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "enabledExtensionCount" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, enabledExtensionCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "enabledExtensionCount" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "ppEnabledExtensionNames" VkDeviceCreateInfo where
-        type FieldType "ppEnabledExtensionNames" VkDeviceCreateInfo =
-             Ptr CString
-        type FieldOptional "ppEnabledExtensionNames" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "ppEnabledExtensionNames" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
-        type FieldIsArray "ppEnabledExtensionNames" VkDeviceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ppEnabledExtensionNames" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, ppEnabledExtensionNames})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ppEnabledExtensionNames" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, ppEnabledExtensionNames}
-
-instance {-# OVERLAPPING #-}
-         HasField "pEnabledFeatures" VkDeviceCreateInfo where
-        type FieldType "pEnabledFeatures" VkDeviceCreateInfo =
-             Ptr VkPhysicalDeviceFeatures
-        type FieldOptional "pEnabledFeatures" VkDeviceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pEnabledFeatures" VkDeviceCreateInfo =
-             #{offset VkDeviceCreateInfo, pEnabledFeatures}
-        type FieldIsArray "pEnabledFeatures" VkDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceCreateInfo, pEnabledFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pEnabledFeatures" VkDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceCreateInfo, pEnabledFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceCreateInfo, pEnabledFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pEnabledFeatures" VkDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceCreateInfo, pEnabledFeatures}
-
-instance Show VkDeviceCreateInfo where
-        showsPrec d x
-          = showString "VkDeviceCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "queueCreateInfoCount = " .
-                                  showsPrec d (getField @"queueCreateInfoCount" x) .
-                                    showString ", " .
-                                      showString "pQueueCreateInfos = " .
-                                        showsPrec d (getField @"pQueueCreateInfos" x) .
-                                          showString ", " .
-                                            showString "enabledLayerCount = " .
-                                              showsPrec d (getField @"enabledLayerCount" x) .
-                                                showString ", " .
-                                                  showString "ppEnabledLayerNames = " .
-                                                    showsPrec d (getField @"ppEnabledLayerNames" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "enabledExtensionCount = " .
-                                                          showsPrec d
-                                                            (getField @"enabledExtensionCount" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "ppEnabledExtensionNames = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"ppEnabledExtensionNames"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "pEnabledFeatures = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"pEnabledFeatures"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceEventInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceEventInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceEventInfoEXT.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceEventInfoEXT
-       (VkDeviceEventInfoEXT(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceEventTypeEXT (VkDeviceEventTypeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceEventInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDeviceEventTypeEXT             deviceEvent;
---   > } VkDeviceEventInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceEventInfoEXT.html VkDeviceEventInfoEXT registry at www.khronos.org>
-data VkDeviceEventInfoEXT = VkDeviceEventInfoEXT## Addr## ByteArray##
-
-instance Eq VkDeviceEventInfoEXT where
-        (VkDeviceEventInfoEXT## a _) == x@(VkDeviceEventInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceEventInfoEXT where
-        (VkDeviceEventInfoEXT## a _) `compare` x@(VkDeviceEventInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceEventInfoEXT where
-        sizeOf ~_ = #{size VkDeviceEventInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceEventInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceEventInfoEXT where
-        unsafeAddr (VkDeviceEventInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceEventInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceEventInfoEXT where
-        type StructFields VkDeviceEventInfoEXT =
-             '["sType", "pNext", "deviceEvent"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceEventInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDeviceEventInfoEXT
-         where
-        type FieldType "sType" VkDeviceEventInfoEXT = VkStructureType
-        type FieldOptional "sType" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceEventInfoEXT =
-             #{offset VkDeviceEventInfoEXT, sType}
-        type FieldIsArray "sType" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceEventInfoEXT
-         where
-        type FieldType "pNext" VkDeviceEventInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceEventInfoEXT =
-             #{offset VkDeviceEventInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceEvent" VkDeviceEventInfoEXT where
-        type FieldType "deviceEvent" VkDeviceEventInfoEXT =
-             VkDeviceEventTypeEXT
-        type FieldOptional "deviceEvent" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceEvent" VkDeviceEventInfoEXT =
-             #{offset VkDeviceEventInfoEXT, deviceEvent}
-        type FieldIsArray "deviceEvent" VkDeviceEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceEventInfoEXT, deviceEvent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceEvent" VkDeviceEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceEventInfoEXT, deviceEvent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceEventInfoEXT, deviceEvent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceEvent" VkDeviceEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceEventInfoEXT, deviceEvent}
-
-instance Show VkDeviceEventInfoEXT where
-        showsPrec d x
-          = showString "VkDeviceEventInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "deviceEvent = " .
-                            showsPrec d (getField @"deviceEvent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsFeaturesNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsFeaturesNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsFeaturesNVX.hsc
+++ /dev/null
@@ -1,209 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsFeaturesNVX
-       (VkDeviceGeneratedCommandsFeaturesNVX(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBool32                         computeBindingPointSupport;
---   > } VkDeviceGeneratedCommandsFeaturesNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGeneratedCommandsFeaturesNVX.html VkDeviceGeneratedCommandsFeaturesNVX registry at www.khronos.org>
-data VkDeviceGeneratedCommandsFeaturesNVX = VkDeviceGeneratedCommandsFeaturesNVX## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkDeviceGeneratedCommandsFeaturesNVX where
-        (VkDeviceGeneratedCommandsFeaturesNVX## a _) ==
-          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGeneratedCommandsFeaturesNVX where
-        (VkDeviceGeneratedCommandsFeaturesNVX## a _) `compare`
-          x@(VkDeviceGeneratedCommandsFeaturesNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGeneratedCommandsFeaturesNVX where
-        sizeOf ~_
-          = #{size VkDeviceGeneratedCommandsFeaturesNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGeneratedCommandsFeaturesNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGeneratedCommandsFeaturesNVX
-         where
-        unsafeAddr (VkDeviceGeneratedCommandsFeaturesNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGeneratedCommandsFeaturesNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGeneratedCommandsFeaturesNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGeneratedCommandsFeaturesNVX where
-        type StructFields VkDeviceGeneratedCommandsFeaturesNVX =
-             '["sType", "pNext", "computeBindingPointSupport"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGeneratedCommandsFeaturesNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGeneratedCommandsFeaturesNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGeneratedCommandsFeaturesNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
-        type FieldType "sType" VkDeviceGeneratedCommandsFeaturesNVX =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGeneratedCommandsFeaturesNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGeneratedCommandsFeaturesNVX =
-             #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
-        type FieldIsArray "sType" VkDeviceGeneratedCommandsFeaturesNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGeneratedCommandsFeaturesNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
-        type FieldType "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
-             #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
-        type FieldIsArray "pNext" VkDeviceGeneratedCommandsFeaturesNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGeneratedCommandsFeaturesNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "computeBindingPointSupport"
-           VkDeviceGeneratedCommandsFeaturesNVX
-         where
-        type FieldType "computeBindingPointSupport"
-               VkDeviceGeneratedCommandsFeaturesNVX
-             = VkBool32
-        type FieldOptional "computeBindingPointSupport"
-               VkDeviceGeneratedCommandsFeaturesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "computeBindingPointSupport"
-               VkDeviceGeneratedCommandsFeaturesNVX
-             =
-             #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
-        type FieldIsArray "computeBindingPointSupport"
-               VkDeviceGeneratedCommandsFeaturesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "computeBindingPointSupport"
-           VkDeviceGeneratedCommandsFeaturesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "computeBindingPointSupport"
-           VkDeviceGeneratedCommandsFeaturesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsFeaturesNVX, computeBindingPointSupport}
-
-instance Show VkDeviceGeneratedCommandsFeaturesNVX where
-        showsPrec d x
-          = showString "VkDeviceGeneratedCommandsFeaturesNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "computeBindingPointSupport = " .
-                            showsPrec d (getField @"computeBindingPointSupport" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsLimitsNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsLimitsNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGeneratedCommandsLimitsNVX.hsc
+++ /dev/null
@@ -1,418 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsLimitsNVX
-       (VkDeviceGeneratedCommandsLimitsNVX(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGeneratedCommandsLimitsNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         maxIndirectCommandsLayoutTokenCount;
---   >     uint32_t                         maxObjectEntryCounts;
---   >     uint32_t                         minSequenceCountBufferOffsetAlignment;
---   >     uint32_t                         minSequenceIndexBufferOffsetAlignment;
---   >     uint32_t                         minCommandsTokenBufferOffsetAlignment;
---   > } VkDeviceGeneratedCommandsLimitsNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGeneratedCommandsLimitsNVX.html VkDeviceGeneratedCommandsLimitsNVX registry at www.khronos.org>
-data VkDeviceGeneratedCommandsLimitsNVX = VkDeviceGeneratedCommandsLimitsNVX## Addr##
-                                                                              ByteArray##
-
-instance Eq VkDeviceGeneratedCommandsLimitsNVX where
-        (VkDeviceGeneratedCommandsLimitsNVX## a _) ==
-          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGeneratedCommandsLimitsNVX where
-        (VkDeviceGeneratedCommandsLimitsNVX## a _) `compare`
-          x@(VkDeviceGeneratedCommandsLimitsNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGeneratedCommandsLimitsNVX where
-        sizeOf ~_ = #{size VkDeviceGeneratedCommandsLimitsNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGeneratedCommandsLimitsNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGeneratedCommandsLimitsNVX where
-        unsafeAddr (VkDeviceGeneratedCommandsLimitsNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGeneratedCommandsLimitsNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGeneratedCommandsLimitsNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGeneratedCommandsLimitsNVX where
-        type StructFields VkDeviceGeneratedCommandsLimitsNVX =
-             '["sType", "pNext", "maxIndirectCommandsLayoutTokenCount", -- ' closing tick for hsc2hs
-               "maxObjectEntryCounts", "minSequenceCountBufferOffsetAlignment",
-               "minSequenceIndexBufferOffsetAlignment",
-               "minCommandsTokenBufferOffsetAlignment"]
-        type CUnionType VkDeviceGeneratedCommandsLimitsNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGeneratedCommandsLimitsNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGeneratedCommandsLimitsNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGeneratedCommandsLimitsNVX where
-        type FieldType "sType" VkDeviceGeneratedCommandsLimitsNVX =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGeneratedCommandsLimitsNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGeneratedCommandsLimitsNVX =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
-        type FieldIsArray "sType" VkDeviceGeneratedCommandsLimitsNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGeneratedCommandsLimitsNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGeneratedCommandsLimitsNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
-        type FieldType "pNext" VkDeviceGeneratedCommandsLimitsNVX =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceGeneratedCommandsLimitsNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGeneratedCommandsLimitsNVX =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
-        type FieldIsArray "pNext" VkDeviceGeneratedCommandsLimitsNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGeneratedCommandsLimitsNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxIndirectCommandsLayoutTokenCount"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        type FieldType "maxIndirectCommandsLayoutTokenCount"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = Word32
-        type FieldOptional "maxIndirectCommandsLayoutTokenCount"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxIndirectCommandsLayoutTokenCount"
-               VkDeviceGeneratedCommandsLimitsNVX
-             =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
-        type FieldIsArray "maxIndirectCommandsLayoutTokenCount"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxIndirectCommandsLayoutTokenCount"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxIndirectCommandsLayoutTokenCount"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxIndirectCommandsLayoutTokenCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxObjectEntryCounts" VkDeviceGeneratedCommandsLimitsNVX
-         where
-        type FieldType "maxObjectEntryCounts"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = Word32
-        type FieldOptional "maxObjectEntryCounts"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxObjectEntryCounts"
-               VkDeviceGeneratedCommandsLimitsNVX
-             =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
-        type FieldIsArray "maxObjectEntryCounts"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxObjectEntryCounts"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxObjectEntryCounts"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, maxObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSequenceCountBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        type FieldType "minSequenceCountBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = Word32
-        type FieldOptional "minSequenceCountBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSequenceCountBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
-        type FieldIsArray "minSequenceCountBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSequenceCountBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSequenceCountBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceCountBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSequenceIndexBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        type FieldType "minSequenceIndexBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = Word32
-        type FieldOptional "minSequenceIndexBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSequenceIndexBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
-        type FieldIsArray "minSequenceIndexBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSequenceIndexBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSequenceIndexBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minSequenceIndexBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minCommandsTokenBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        type FieldType "minCommandsTokenBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = Word32
-        type FieldOptional "minCommandsTokenBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minCommandsTokenBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             =
-             #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
-        type FieldIsArray "minCommandsTokenBufferOffsetAlignment"
-               VkDeviceGeneratedCommandsLimitsNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minCommandsTokenBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minCommandsTokenBufferOffsetAlignment"
-           VkDeviceGeneratedCommandsLimitsNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGeneratedCommandsLimitsNVX, minCommandsTokenBufferOffsetAlignment}
-
-instance Show VkDeviceGeneratedCommandsLimitsNVX where
-        showsPrec d x
-          = showString "VkDeviceGeneratedCommandsLimitsNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxIndirectCommandsLayoutTokenCount = " .
-                            showsPrec d (getField @"maxIndirectCommandsLayoutTokenCount" x) .
-                              showString ", " .
-                                showString "maxObjectEntryCounts = " .
-                                  showsPrec d (getField @"maxObjectEntryCounts" x) .
-                                    showString ", " .
-                                      showString "minSequenceCountBufferOffsetAlignment = " .
-                                        showsPrec d
-                                          (getField @"minSequenceCountBufferOffsetAlignment" x)
-                                          .
-                                          showString ", " .
-                                            showString "minSequenceIndexBufferOffsetAlignment = " .
-                                              showsPrec d
-                                                (getField @"minSequenceIndexBufferOffsetAlignment"
-                                                   x)
-                                                .
-                                                showString ", " .
-                                                  showString
-                                                    "minCommandsTokenBufferOffsetAlignment = "
-                                                    .
-                                                    showsPrec d
-                                                      (getField
-                                                         @"minCommandsTokenBufferOffsetAlignment"
-                                                         x)
-                                                      . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfo.hsc
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfo
-       (VkDeviceGroupBindSparseInfo(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBindSparseInfo (VkBindSparseInfo)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupBindSparseInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         resourceDeviceIndex;
---   >     uint32_t                         memoryDeviceIndex;
---   > } VkDeviceGroupBindSparseInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupBindSparseInfo.html VkDeviceGroupBindSparseInfo registry at www.khronos.org>
-data VkDeviceGroupBindSparseInfo = VkDeviceGroupBindSparseInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkDeviceGroupBindSparseInfo where
-        (VkDeviceGroupBindSparseInfo## a _) ==
-          x@(VkDeviceGroupBindSparseInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupBindSparseInfo where
-        (VkDeviceGroupBindSparseInfo## a _) `compare`
-          x@(VkDeviceGroupBindSparseInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupBindSparseInfo where
-        sizeOf ~_ = #{size VkDeviceGroupBindSparseInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceGroupBindSparseInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupBindSparseInfo where
-        unsafeAddr (VkDeviceGroupBindSparseInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupBindSparseInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupBindSparseInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupBindSparseInfo where
-        type StructFields VkDeviceGroupBindSparseInfo =
-             '["sType", "pNext", "resourceDeviceIndex", "memoryDeviceIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupBindSparseInfo =
-             '[VkBindSparseInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupBindSparseInfo where
-        type FieldType "sType" VkDeviceGroupBindSparseInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupBindSparseInfo =
-             #{offset VkDeviceGroupBindSparseInfo, sType}
-        type FieldIsArray "sType" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupBindSparseInfo where
-        type FieldType "pNext" VkDeviceGroupBindSparseInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupBindSparseInfo =
-             #{offset VkDeviceGroupBindSparseInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupBindSparseInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo where
-        type FieldType "resourceDeviceIndex" VkDeviceGroupBindSparseInfo =
-             Word32
-        type FieldOptional "resourceDeviceIndex"
-               VkDeviceGroupBindSparseInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
-             =
-             #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
-        type FieldIsArray "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "resourceDeviceIndex" VkDeviceGroupBindSparseInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, resourceDeviceIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
-        type FieldType "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
-             Word32
-        type FieldOptional "memoryDeviceIndex" VkDeviceGroupBindSparseInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
-             #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
-        type FieldIsArray "memoryDeviceIndex" VkDeviceGroupBindSparseInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryDeviceIndex" VkDeviceGroupBindSparseInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupBindSparseInfo, memoryDeviceIndex}
-
-instance Show VkDeviceGroupBindSparseInfo where
-        showsPrec d x
-          = showString "VkDeviceGroupBindSparseInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "resourceDeviceIndex = " .
-                            showsPrec d (getField @"resourceDeviceIndex" x) .
-                              showString ", " .
-                                showString "memoryDeviceIndex = " .
-                                  showsPrec d (getField @"memoryDeviceIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupBindSparseInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfoKHR
-       (VkDeviceGroupBindSparseInfo(..), VkDeviceGroupBindSparseInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfo (VkDeviceGroupBindSparseInfo (..))
-
--- | Alias for `VkDeviceGroupBindSparseInfo`
-type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfo.hsc
+++ /dev/null
@@ -1,198 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfo
-       (VkDeviceGroupCommandBufferBeginInfo(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo (VkCommandBufferBeginInfo)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupCommandBufferBeginInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         deviceMask;
---   > } VkDeviceGroupCommandBufferBeginInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupCommandBufferBeginInfo.html VkDeviceGroupCommandBufferBeginInfo registry at www.khronos.org>
-data VkDeviceGroupCommandBufferBeginInfo = VkDeviceGroupCommandBufferBeginInfo## Addr##
-                                                                                ByteArray##
-
-instance Eq VkDeviceGroupCommandBufferBeginInfo where
-        (VkDeviceGroupCommandBufferBeginInfo## a _) ==
-          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupCommandBufferBeginInfo where
-        (VkDeviceGroupCommandBufferBeginInfo## a _) `compare`
-          x@(VkDeviceGroupCommandBufferBeginInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupCommandBufferBeginInfo where
-        sizeOf ~_ = #{size VkDeviceGroupCommandBufferBeginInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGroupCommandBufferBeginInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupCommandBufferBeginInfo
-         where
-        unsafeAddr (VkDeviceGroupCommandBufferBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupCommandBufferBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupCommandBufferBeginInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupCommandBufferBeginInfo where
-        type StructFields VkDeviceGroupCommandBufferBeginInfo =
-             '["sType", "pNext", "deviceMask"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupCommandBufferBeginInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupCommandBufferBeginInfo =
-             '[VkCommandBufferBeginInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupCommandBufferBeginInfo where
-        type FieldType "sType" VkDeviceGroupCommandBufferBeginInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupCommandBufferBeginInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupCommandBufferBeginInfo =
-             #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
-        type FieldIsArray "sType" VkDeviceGroupCommandBufferBeginInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupCommandBufferBeginInfo where
-        type FieldType "pNext" VkDeviceGroupCommandBufferBeginInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupCommandBufferBeginInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupCommandBufferBeginInfo =
-             #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupCommandBufferBeginInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupCommandBufferBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceMask" VkDeviceGroupCommandBufferBeginInfo where
-        type FieldType "deviceMask" VkDeviceGroupCommandBufferBeginInfo =
-             Word32
-        type FieldOptional "deviceMask" VkDeviceGroupCommandBufferBeginInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceMask" VkDeviceGroupCommandBufferBeginInfo =
-             #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
-        type FieldIsArray "deviceMask" VkDeviceGroupCommandBufferBeginInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceMask" VkDeviceGroupCommandBufferBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceMask" VkDeviceGroupCommandBufferBeginInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupCommandBufferBeginInfo, deviceMask}
-
-instance Show VkDeviceGroupCommandBufferBeginInfo where
-        showsPrec d x
-          = showString "VkDeviceGroupCommandBufferBeginInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "deviceMask = " .
-                            showsPrec d (getField @"deviceMask" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupCommandBufferBeginInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfoKHR
-       (VkDeviceGroupCommandBufferBeginInfo(..),
-        VkDeviceGroupCommandBufferBeginInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfo
-                                                                                   (VkDeviceGroupCommandBufferBeginInfo (..))
-
--- | Alias for `VkDeviceGroupCommandBufferBeginInfo`
-type VkDeviceGroupCommandBufferBeginInfoKHR =
-     VkDeviceGroupCommandBufferBeginInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfo.hsc
+++ /dev/null
@@ -1,237 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfo
-       (VkDeviceGroupDeviceCreateInfo(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                   (VkPhysicalDevice)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo (VkDeviceCreateInfo)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupDeviceCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         physicalDeviceCount;
---   >     const VkPhysicalDevice*  pPhysicalDevices;
---   > } VkDeviceGroupDeviceCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupDeviceCreateInfo.html VkDeviceGroupDeviceCreateInfo registry at www.khronos.org>
-data VkDeviceGroupDeviceCreateInfo = VkDeviceGroupDeviceCreateInfo## Addr##
-                                                                    ByteArray##
-
-instance Eq VkDeviceGroupDeviceCreateInfo where
-        (VkDeviceGroupDeviceCreateInfo## a _) ==
-          x@(VkDeviceGroupDeviceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupDeviceCreateInfo where
-        (VkDeviceGroupDeviceCreateInfo## a _) `compare`
-          x@(VkDeviceGroupDeviceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupDeviceCreateInfo where
-        sizeOf ~_ = #{size VkDeviceGroupDeviceCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGroupDeviceCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupDeviceCreateInfo where
-        unsafeAddr (VkDeviceGroupDeviceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupDeviceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupDeviceCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupDeviceCreateInfo where
-        type StructFields VkDeviceGroupDeviceCreateInfo =
-             '["sType", "pNext", "physicalDeviceCount", "pPhysicalDevices"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupDeviceCreateInfo =
-             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupDeviceCreateInfo where
-        type FieldType "sType" VkDeviceGroupDeviceCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupDeviceCreateInfo =
-             #{offset VkDeviceGroupDeviceCreateInfo, sType}
-        type FieldIsArray "sType" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupDeviceCreateInfo where
-        type FieldType "pNext" VkDeviceGroupDeviceCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupDeviceCreateInfo =
-             #{offset VkDeviceGroupDeviceCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupDeviceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupDeviceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo where
-        type FieldType "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
-             = Word32
-        type FieldOptional "physicalDeviceCount"
-               VkDeviceGroupDeviceCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDeviceCount"
-               VkDeviceGroupDeviceCreateInfo
-             =
-             #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
-        type FieldIsArray "physicalDeviceCount"
-               VkDeviceGroupDeviceCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "physicalDeviceCount" VkDeviceGroupDeviceCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo where
-        type FieldType "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo =
-             Ptr VkPhysicalDevice
-        type FieldOptional "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo =
-             #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
-        type FieldIsArray "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pPhysicalDevices" VkDeviceGroupDeviceCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupDeviceCreateInfo, pPhysicalDevices}
-
-instance Show VkDeviceGroupDeviceCreateInfo where
-        showsPrec d x
-          = showString "VkDeviceGroupDeviceCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "physicalDeviceCount = " .
-                            showsPrec d (getField @"physicalDeviceCount" x) .
-                              showString ", " .
-                                showString "pPhysicalDevices = " .
-                                  showsPrec d (getField @"pPhysicalDevices" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupDeviceCreateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfoKHR
-       (VkDeviceGroupDeviceCreateInfo(..),
-        VkDeviceGroupDeviceCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfo (VkDeviceGroupDeviceCreateInfo (..))
-
--- | Alias for `VkDeviceGroupDeviceCreateInfo`
-type VkDeviceGroupDeviceCreateInfoKHR =
-     VkDeviceGroupDeviceCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentCapabilitiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentCapabilitiesKHR.hsc
+++ /dev/null
@@ -1,330 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR
-       (VkDeviceGroupPresentCapabilitiesKHR(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                                (KnownNat,
-                                                                              natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                                   (VK_MAX_DEVICE_GROUP_SIZE,
-                                                                              pattern VK_MAX_DEVICE_GROUP_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR (VkDeviceGroupPresentModeFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupPresentCapabilitiesKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         presentMask[VK_MAX_DEVICE_GROUP_SIZE];
---   >     VkDeviceGroupPresentModeFlagsKHR modes;
---   > } VkDeviceGroupPresentCapabilitiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupPresentCapabilitiesKHR.html VkDeviceGroupPresentCapabilitiesKHR registry at www.khronos.org>
-data VkDeviceGroupPresentCapabilitiesKHR = VkDeviceGroupPresentCapabilitiesKHR## Addr##
-                                                                                ByteArray##
-
-instance Eq VkDeviceGroupPresentCapabilitiesKHR where
-        (VkDeviceGroupPresentCapabilitiesKHR## a _) ==
-          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupPresentCapabilitiesKHR where
-        (VkDeviceGroupPresentCapabilitiesKHR## a _) `compare`
-          x@(VkDeviceGroupPresentCapabilitiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupPresentCapabilitiesKHR where
-        sizeOf ~_ = #{size VkDeviceGroupPresentCapabilitiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGroupPresentCapabilitiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupPresentCapabilitiesKHR
-         where
-        unsafeAddr (VkDeviceGroupPresentCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupPresentCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupPresentCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupPresentCapabilitiesKHR where
-        type StructFields VkDeviceGroupPresentCapabilitiesKHR =
-             '["sType", "pNext", "presentMask", "modes"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupPresentCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupPresentCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupPresentCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupPresentCapabilitiesKHR where
-        type FieldType "sType" VkDeviceGroupPresentCapabilitiesKHR =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupPresentCapabilitiesKHR =
-             #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
-        type FieldIsArray "sType" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
-        type FieldType "pNext" VkDeviceGroupPresentCapabilitiesKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupPresentCapabilitiesKHR =
-             #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "presentMask" VkDeviceGroupPresentCapabilitiesKHR where
-        type FieldType "presentMask" VkDeviceGroupPresentCapabilitiesKHR =
-             Word32
-        type FieldOptional "presentMask"
-               VkDeviceGroupPresentCapabilitiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "presentMask" VkDeviceGroupPresentCapabilitiesKHR
-             =
-             #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
-        type FieldIsArray "presentMask" VkDeviceGroupPresentCapabilitiesKHR
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "presentMask" idx
-            VkDeviceGroupPresentCapabilitiesKHR) =>
-         CanReadFieldArray "presentMask" idx
-           VkDeviceGroupPresentCapabilitiesKHR
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "presentMask" 0
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "presentMask" 1
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "presentMask" 2
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "presentMask" 3
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-        type FieldArrayLength "presentMask"
-               VkDeviceGroupPresentCapabilitiesKHR
-             = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
-                      +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "presentMask" idx
-            VkDeviceGroupPresentCapabilitiesKHR) =>
-         CanWriteFieldArray "presentMask" idx
-           VkDeviceGroupPresentCapabilitiesKHR
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "presentMask" 0
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "presentMask" 1
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "presentMask" 2
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "presentMask" 3
-                         VkDeviceGroupPresentCapabilitiesKHR
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkDeviceGroupPresentCapabilitiesKHR, presentMask}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "modes" VkDeviceGroupPresentCapabilitiesKHR where
-        type FieldType "modes" VkDeviceGroupPresentCapabilitiesKHR =
-             VkDeviceGroupPresentModeFlagsKHR
-        type FieldOptional "modes" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "modes" VkDeviceGroupPresentCapabilitiesKHR =
-             #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
-        type FieldIsArray "modes" VkDeviceGroupPresentCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "modes" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentCapabilitiesKHR, modes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "modes" VkDeviceGroupPresentCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentCapabilitiesKHR, modes}
-
-instance Show VkDeviceGroupPresentCapabilitiesKHR where
-        showsPrec d x
-          = showString "VkDeviceGroupPresentCapabilitiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          (showString "presentMask = [" .
-                             showsPrec d
-                               (let s = sizeOf
-                                          (undefined ::
-                                             FieldType "presentMask"
-                                               VkDeviceGroupPresentCapabilitiesKHR)
-                                    o = fieldOffset @"presentMask"
-                                          @VkDeviceGroupPresentCapabilitiesKHR
-                                    f i
-                                      = peekByteOff (unsafePtr x) i ::
-                                          IO
-                                            (FieldType "presentMask"
-                                               VkDeviceGroupPresentCapabilitiesKHR)
-                                  in
-                                  unsafeDupablePerformIO . mapM f $
-                                    map (\ i -> o + i * s) [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
-                               . showChar ']')
-                            .
-                            showString ", " .
-                              showString "modes = " .
-                                showsPrec d (getField @"modes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupPresentInfoKHR.hsc
+++ /dev/null
@@ -1,266 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR
-       (VkDeviceGroupPresentInfoKHR(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR (VkDeviceGroupPresentModeFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR               (VkPresentInfoKHR)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupPresentInfoKHR {
---   >     VkStructureType sType;
---   >     const void*  pNext;
---   >     uint32_t         swapchainCount;
---   >     const uint32_t* pDeviceMasks;
---   >     VkDeviceGroupPresentModeFlagBitsKHR mode;
---   > } VkDeviceGroupPresentInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupPresentInfoKHR.html VkDeviceGroupPresentInfoKHR registry at www.khronos.org>
-data VkDeviceGroupPresentInfoKHR = VkDeviceGroupPresentInfoKHR## Addr##
-                                                                ByteArray##
-
-instance Eq VkDeviceGroupPresentInfoKHR where
-        (VkDeviceGroupPresentInfoKHR## a _) ==
-          x@(VkDeviceGroupPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupPresentInfoKHR where
-        (VkDeviceGroupPresentInfoKHR## a _) `compare`
-          x@(VkDeviceGroupPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupPresentInfoKHR where
-        sizeOf ~_ = #{size VkDeviceGroupPresentInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceGroupPresentInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupPresentInfoKHR where
-        unsafeAddr (VkDeviceGroupPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupPresentInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupPresentInfoKHR where
-        type StructFields VkDeviceGroupPresentInfoKHR =
-             '["sType", "pNext", "swapchainCount", "pDeviceMasks", "mode"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupPresentInfoKHR =
-             '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupPresentInfoKHR where
-        type FieldType "sType" VkDeviceGroupPresentInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupPresentInfoKHR =
-             #{offset VkDeviceGroupPresentInfoKHR, sType}
-        type FieldIsArray "sType" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupPresentInfoKHR where
-        type FieldType "pNext" VkDeviceGroupPresentInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupPresentInfoKHR =
-             #{offset VkDeviceGroupPresentInfoKHR, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchainCount" VkDeviceGroupPresentInfoKHR where
-        type FieldType "swapchainCount" VkDeviceGroupPresentInfoKHR =
-             Word32
-        type FieldOptional "swapchainCount" VkDeviceGroupPresentInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "swapchainCount" VkDeviceGroupPresentInfoKHR =
-             #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
-        type FieldIsArray "swapchainCount" VkDeviceGroupPresentInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchainCount" VkDeviceGroupPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, swapchainCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchainCount" VkDeviceGroupPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
-        type FieldType "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
-             Ptr Word32
-        type FieldOptional "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
-             #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
-        type FieldIsArray "pDeviceMasks" VkDeviceGroupPresentInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDeviceMasks" VkDeviceGroupPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, pDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         HasField "mode" VkDeviceGroupPresentInfoKHR where
-        type FieldType "mode" VkDeviceGroupPresentInfoKHR =
-             VkDeviceGroupPresentModeFlagBitsKHR
-        type FieldOptional "mode" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mode" VkDeviceGroupPresentInfoKHR =
-             #{offset VkDeviceGroupPresentInfoKHR, mode}
-        type FieldIsArray "mode" VkDeviceGroupPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupPresentInfoKHR, mode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mode" VkDeviceGroupPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupPresentInfoKHR, mode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupPresentInfoKHR, mode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mode" VkDeviceGroupPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupPresentInfoKHR, mode}
-
-instance Show VkDeviceGroupPresentInfoKHR where
-        showsPrec d x
-          = showString "VkDeviceGroupPresentInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchainCount = " .
-                            showsPrec d (getField @"swapchainCount" x) .
-                              showString ", " .
-                                showString "pDeviceMasks = " .
-                                  showsPrec d (getField @"pDeviceMasks" x) .
-                                    showString ", " .
-                                      showString "mode = " .
-                                        showsPrec d (getField @"mode" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfo.hsc
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfo
-       (VkDeviceGroupRenderPassBeginInfo(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkRect2D              (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo (VkRenderPassBeginInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupRenderPassBeginInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         deviceMask;
---   >     uint32_t         deviceRenderAreaCount;
---   >     const VkRect2D*  pDeviceRenderAreas;
---   > } VkDeviceGroupRenderPassBeginInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupRenderPassBeginInfo.html VkDeviceGroupRenderPassBeginInfo registry at www.khronos.org>
-data VkDeviceGroupRenderPassBeginInfo = VkDeviceGroupRenderPassBeginInfo## Addr##
-                                                                          ByteArray##
-
-instance Eq VkDeviceGroupRenderPassBeginInfo where
-        (VkDeviceGroupRenderPassBeginInfo## a _) ==
-          x@(VkDeviceGroupRenderPassBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupRenderPassBeginInfo where
-        (VkDeviceGroupRenderPassBeginInfo## a _) `compare`
-          x@(VkDeviceGroupRenderPassBeginInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupRenderPassBeginInfo where
-        sizeOf ~_ = #{size VkDeviceGroupRenderPassBeginInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGroupRenderPassBeginInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupRenderPassBeginInfo where
-        unsafeAddr (VkDeviceGroupRenderPassBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupRenderPassBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupRenderPassBeginInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupRenderPassBeginInfo where
-        type StructFields VkDeviceGroupRenderPassBeginInfo =
-             '["sType", "pNext", "deviceMask", "deviceRenderAreaCount", -- ' closing tick for hsc2hs
-               "pDeviceRenderAreas"]
-        type CUnionType VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupRenderPassBeginInfo =
-             '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupRenderPassBeginInfo where
-        type FieldType "sType" VkDeviceGroupRenderPassBeginInfo =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupRenderPassBeginInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupRenderPassBeginInfo =
-             #{offset VkDeviceGroupRenderPassBeginInfo, sType}
-        type FieldIsArray "sType" VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupRenderPassBeginInfo where
-        type FieldType "pNext" VkDeviceGroupRenderPassBeginInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupRenderPassBeginInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupRenderPassBeginInfo =
-             #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
-        type FieldType "deviceMask" VkDeviceGroupRenderPassBeginInfo =
-             Word32
-        type FieldOptional "deviceMask" VkDeviceGroupRenderPassBeginInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceMask" VkDeviceGroupRenderPassBeginInfo =
-             #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
-        type FieldIsArray "deviceMask" VkDeviceGroupRenderPassBeginInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceMask" VkDeviceGroupRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceRenderAreaCount" VkDeviceGroupRenderPassBeginInfo
-         where
-        type FieldType "deviceRenderAreaCount"
-               VkDeviceGroupRenderPassBeginInfo
-             = Word32
-        type FieldOptional "deviceRenderAreaCount"
-               VkDeviceGroupRenderPassBeginInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "deviceRenderAreaCount"
-               VkDeviceGroupRenderPassBeginInfo
-             =
-             #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
-        type FieldIsArray "deviceRenderAreaCount"
-               VkDeviceGroupRenderPassBeginInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceRenderAreaCount"
-           VkDeviceGroupRenderPassBeginInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceRenderAreaCount"
-           VkDeviceGroupRenderPassBeginInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, deviceRenderAreaCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
-         where
-        type FieldType "pDeviceRenderAreas"
-               VkDeviceGroupRenderPassBeginInfo
-             = Ptr VkRect2D
-        type FieldOptional "pDeviceRenderAreas"
-               VkDeviceGroupRenderPassBeginInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDeviceRenderAreas"
-               VkDeviceGroupRenderPassBeginInfo
-             =
-             #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
-        type FieldIsArray "pDeviceRenderAreas"
-               VkDeviceGroupRenderPassBeginInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDeviceRenderAreas" VkDeviceGroupRenderPassBeginInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupRenderPassBeginInfo, pDeviceRenderAreas}
-
-instance Show VkDeviceGroupRenderPassBeginInfo where
-        showsPrec d x
-          = showString "VkDeviceGroupRenderPassBeginInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "deviceMask = " .
-                            showsPrec d (getField @"deviceMask" x) .
-                              showString ", " .
-                                showString "deviceRenderAreaCount = " .
-                                  showsPrec d (getField @"deviceRenderAreaCount" x) .
-                                    showString ", " .
-                                      showString "pDeviceRenderAreas = " .
-                                        showsPrec d (getField @"pDeviceRenderAreas" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupRenderPassBeginInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfoKHR
-       (VkDeviceGroupRenderPassBeginInfo(..),
-        VkDeviceGroupRenderPassBeginInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfo (VkDeviceGroupRenderPassBeginInfo (..))
-
--- | Alias for `VkDeviceGroupRenderPassBeginInfo`
-type VkDeviceGroupRenderPassBeginInfoKHR =
-     VkDeviceGroupRenderPassBeginInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfo.hsc
+++ /dev/null
@@ -1,412 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfo
-       (VkDeviceGroupSubmitInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupSubmitInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         waitSemaphoreCount;
---   >     const uint32_t*    pWaitSemaphoreDeviceIndices;
---   >     uint32_t         commandBufferCount;
---   >     const uint32_t*    pCommandBufferDeviceMasks;
---   >     uint32_t         signalSemaphoreCount;
---   >     const uint32_t*  pSignalSemaphoreDeviceIndices;
---   > } VkDeviceGroupSubmitInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupSubmitInfo.html VkDeviceGroupSubmitInfo registry at www.khronos.org>
-data VkDeviceGroupSubmitInfo = VkDeviceGroupSubmitInfo## Addr##
-                                                        ByteArray##
-
-instance Eq VkDeviceGroupSubmitInfo where
-        (VkDeviceGroupSubmitInfo## a _) == x@(VkDeviceGroupSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupSubmitInfo where
-        (VkDeviceGroupSubmitInfo## a _) `compare`
-          x@(VkDeviceGroupSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupSubmitInfo where
-        sizeOf ~_ = #{size VkDeviceGroupSubmitInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceGroupSubmitInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupSubmitInfo where
-        unsafeAddr (VkDeviceGroupSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupSubmitInfo where
-        type StructFields VkDeviceGroupSubmitInfo =
-             '["sType", "pNext", "waitSemaphoreCount", -- ' closing tick for hsc2hs
-               "pWaitSemaphoreDeviceIndices", "commandBufferCount",
-               "pCommandBufferDeviceMasks", "signalSemaphoreCount",
-               "pSignalSemaphoreDeviceIndices"]
-        type CUnionType VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupSubmitInfo = '[VkSubmitInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupSubmitInfo where
-        type FieldType "sType" VkDeviceGroupSubmitInfo = VkStructureType
-        type FieldOptional "sType" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupSubmitInfo =
-             #{offset VkDeviceGroupSubmitInfo, sType}
-        type FieldIsArray "sType" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceGroupSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupSubmitInfo where
-        type FieldType "pNext" VkDeviceGroupSubmitInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupSubmitInfo =
-             #{offset VkDeviceGroupSubmitInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceGroupSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
-        type FieldType "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
-             Word32
-        type FieldOptional "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
-             #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
-        type FieldIsArray "waitSemaphoreCount" VkDeviceGroupSubmitInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "waitSemaphoreCount" VkDeviceGroupSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
-         where
-        type FieldType "pWaitSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = Ptr Word32
-        type FieldOptional "pWaitSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             =
-             #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
-        type FieldIsArray "pWaitSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pWaitSemaphoreDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         HasField "commandBufferCount" VkDeviceGroupSubmitInfo where
-        type FieldType "commandBufferCount" VkDeviceGroupSubmitInfo =
-             Word32
-        type FieldOptional "commandBufferCount" VkDeviceGroupSubmitInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "commandBufferCount" VkDeviceGroupSubmitInfo =
-             #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
-        type FieldIsArray "commandBufferCount" VkDeviceGroupSubmitInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "commandBufferCount" VkDeviceGroupSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, commandBufferCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "commandBufferCount" VkDeviceGroupSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo where
-        type FieldType "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
-             = Ptr Word32
-        type FieldOptional "pCommandBufferDeviceMasks"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pCommandBufferDeviceMasks"
-               VkDeviceGroupSubmitInfo
-             =
-             #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
-        type FieldIsArray "pCommandBufferDeviceMasks"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCommandBufferDeviceMasks" VkDeviceGroupSubmitInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pCommandBufferDeviceMasks}
-
-instance {-# OVERLAPPING #-}
-         HasField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
-        type FieldType "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
-             Word32
-        type FieldOptional "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
-             #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
-        type FieldIsArray "signalSemaphoreCount" VkDeviceGroupSubmitInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "signalSemaphoreCount" VkDeviceGroupSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSignalSemaphoreDeviceIndices" VkDeviceGroupSubmitInfo
-         where
-        type FieldType "pSignalSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = Ptr Word32
-        type FieldOptional "pSignalSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSignalSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             =
-             #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
-        type FieldIsArray "pSignalSemaphoreDeviceIndices"
-               VkDeviceGroupSubmitInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSignalSemaphoreDeviceIndices"
-           VkDeviceGroupSubmitInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSignalSemaphoreDeviceIndices"
-           VkDeviceGroupSubmitInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSubmitInfo, pSignalSemaphoreDeviceIndices}
-
-instance Show VkDeviceGroupSubmitInfo where
-        showsPrec d x
-          = showString "VkDeviceGroupSubmitInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "waitSemaphoreCount = " .
-                            showsPrec d (getField @"waitSemaphoreCount" x) .
-                              showString ", " .
-                                showString "pWaitSemaphoreDeviceIndices = " .
-                                  showsPrec d (getField @"pWaitSemaphoreDeviceIndices" x) .
-                                    showString ", " .
-                                      showString "commandBufferCount = " .
-                                        showsPrec d (getField @"commandBufferCount" x) .
-                                          showString ", " .
-                                            showString "pCommandBufferDeviceMasks = " .
-                                              showsPrec d (getField @"pCommandBufferDeviceMasks" x)
-                                                .
-                                                showString ", " .
-                                                  showString "signalSemaphoreCount = " .
-                                                    showsPrec d (getField @"signalSemaphoreCount" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "pSignalSemaphoreDeviceIndices = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"pSignalSemaphoreDeviceIndices"
-                                                               x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSubmitInfoKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfoKHR
-       (VkDeviceGroupSubmitInfo(..), VkDeviceGroupSubmitInfoKHR) where
-import           Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfo (VkDeviceGroupSubmitInfo (..))
-
--- | Alias for `VkDeviceGroupSubmitInfo`
-type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSwapchainCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSwapchainCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceGroupSwapchainCreateInfoKHR.hsc
+++ /dev/null
@@ -1,198 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR
-       (VkDeviceGroupSwapchainCreateInfoKHR(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR (VkDeviceGroupPresentModeFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR       (VkSwapchainCreateInfoKHR)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDeviceGroupPresentModeFlagsKHR                         modes;
---   > } VkDeviceGroupSwapchainCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceGroupSwapchainCreateInfoKHR.html VkDeviceGroupSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkDeviceGroupSwapchainCreateInfoKHR = VkDeviceGroupSwapchainCreateInfoKHR## Addr##
-                                                                                ByteArray##
-
-instance Eq VkDeviceGroupSwapchainCreateInfoKHR where
-        (VkDeviceGroupSwapchainCreateInfoKHR## a _) ==
-          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceGroupSwapchainCreateInfoKHR where
-        (VkDeviceGroupSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkDeviceGroupSwapchainCreateInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceGroupSwapchainCreateInfoKHR where
-        sizeOf ~_ = #{size VkDeviceGroupSwapchainCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceGroupSwapchainCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceGroupSwapchainCreateInfoKHR
-         where
-        unsafeAddr (VkDeviceGroupSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceGroupSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceGroupSwapchainCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceGroupSwapchainCreateInfoKHR where
-        type StructFields VkDeviceGroupSwapchainCreateInfoKHR =
-             '["sType", "pNext", "modes"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceGroupSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceGroupSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceGroupSwapchainCreateInfoKHR =
-             '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
-        type FieldType "sType" VkDeviceGroupSwapchainCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceGroupSwapchainCreateInfoKHR =
-             #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
-        type FieldType "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
-             #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
-        type FieldType "modes" VkDeviceGroupSwapchainCreateInfoKHR =
-             VkDeviceGroupPresentModeFlagsKHR
-        type FieldOptional "modes" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "modes" VkDeviceGroupSwapchainCreateInfoKHR =
-             #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
-        type FieldIsArray "modes" VkDeviceGroupSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "modes" VkDeviceGroupSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceGroupSwapchainCreateInfoKHR, modes}
-
-instance Show VkDeviceGroupSwapchainCreateInfoKHR where
-        showsPrec d x
-          = showString "VkDeviceGroupSwapchainCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "modes = " .
-                            showsPrec d (getField @"modes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueCreateInfo.hsc
+++ /dev/null
@@ -1,294 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-       (VkDeviceQueueCreateInfo(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags (VkDeviceQueueCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceQueueCreateInfo {
---   >     VkStructureType sType;
---   >     const void*     pNext;
---   >     VkDeviceQueueCreateFlags    flags;
---   >     uint32_t        queueFamilyIndex;
---   >     uint32_t        queueCount;
---   >     const float*    pQueuePriorities;
---   > } VkDeviceQueueCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceQueueCreateInfo.html VkDeviceQueueCreateInfo registry at www.khronos.org>
-data VkDeviceQueueCreateInfo = VkDeviceQueueCreateInfo## Addr##
-                                                        ByteArray##
-
-instance Eq VkDeviceQueueCreateInfo where
-        (VkDeviceQueueCreateInfo## a _) == x@(VkDeviceQueueCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceQueueCreateInfo where
-        (VkDeviceQueueCreateInfo## a _) `compare`
-          x@(VkDeviceQueueCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceQueueCreateInfo where
-        sizeOf ~_ = #{size VkDeviceQueueCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceQueueCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceQueueCreateInfo where
-        unsafeAddr (VkDeviceQueueCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceQueueCreateInfo where
-        type StructFields VkDeviceQueueCreateInfo =
-             '["sType", "pNext", "flags", "queueFamilyIndex", "queueCount", -- ' closing tick for hsc2hs
-               "pQueuePriorities"]
-        type CUnionType VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceQueueCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceQueueCreateInfo where
-        type FieldType "sType" VkDeviceQueueCreateInfo = VkStructureType
-        type FieldOptional "sType" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, sType}
-        type FieldIsArray "sType" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceQueueCreateInfo where
-        type FieldType "pNext" VkDeviceQueueCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, pNext}
-        type FieldIsArray "pNext" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDeviceQueueCreateInfo where
-        type FieldType "flags" VkDeviceQueueCreateInfo =
-             VkDeviceQueueCreateFlags
-        type FieldOptional "flags" VkDeviceQueueCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, flags}
-        type FieldIsArray "flags" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndex" VkDeviceQueueCreateInfo where
-        type FieldType "queueFamilyIndex" VkDeviceQueueCreateInfo = Word32
-        type FieldOptional "queueFamilyIndex" VkDeviceQueueCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndex" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
-        type FieldIsArray "queueFamilyIndex" VkDeviceQueueCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndex" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, queueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndex" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueCount" VkDeviceQueueCreateInfo where
-        type FieldType "queueCount" VkDeviceQueueCreateInfo = Word32
-        type FieldOptional "queueCount" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueCount" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, queueCount}
-        type FieldIsArray "queueCount" VkDeviceQueueCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueCreateInfo, queueCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueCount" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, queueCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, queueCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueCount" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, queueCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueuePriorities" VkDeviceQueueCreateInfo where
-        type FieldType "pQueuePriorities" VkDeviceQueueCreateInfo =
-             Ptr #{type float}
-        type FieldOptional "pQueuePriorities" VkDeviceQueueCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pQueuePriorities" VkDeviceQueueCreateInfo =
-             #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
-        type FieldIsArray "pQueuePriorities" VkDeviceQueueCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueuePriorities" VkDeviceQueueCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueCreateInfo, pQueuePriorities})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueuePriorities" VkDeviceQueueCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueCreateInfo, pQueuePriorities}
-
-instance Show VkDeviceQueueCreateInfo where
-        showsPrec d x
-          = showString "VkDeviceQueueCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "queueFamilyIndex = " .
-                                  showsPrec d (getField @"queueFamilyIndex" x) .
-                                    showString ", " .
-                                      showString "queueCount = " .
-                                        showsPrec d (getField @"queueCount" x) .
-                                          showString ", " .
-                                            showString "pQueuePriorities = " .
-                                              showsPrec d (getField @"pQueuePriorities" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueGlobalPriorityCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueGlobalPriorityCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueGlobalPriorityCreateInfoEXT.hsc
+++ /dev/null
@@ -1,212 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceQueueGlobalPriorityCreateInfoEXT
-       (VkDeviceQueueGlobalPriorityCreateInfoEXT(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkQueueGlobalPriorityEXT  (VkQueueGlobalPriorityEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo (VkDeviceQueueCreateInfo)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                    pNext;
---   >     VkQueueGlobalPriorityEXT       globalPriority;
---   > } VkDeviceQueueGlobalPriorityCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceQueueGlobalPriorityCreateInfoEXT.html VkDeviceQueueGlobalPriorityCreateInfoEXT registry at www.khronos.org>
-data VkDeviceQueueGlobalPriorityCreateInfoEXT = VkDeviceQueueGlobalPriorityCreateInfoEXT## Addr##
-                                                                                          ByteArray##
-
-instance Eq VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) ==
-          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) `compare`
-          x@(VkDeviceQueueGlobalPriorityCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        sizeOf ~_
-          = #{size VkDeviceQueueGlobalPriorityCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDeviceQueueGlobalPriorityCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        unsafeAddr (VkDeviceQueueGlobalPriorityCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueGlobalPriorityCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueGlobalPriorityCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        type StructFields VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             '["sType", "pNext", "globalPriority"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceQueueGlobalPriorityCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceQueueGlobalPriorityCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             '[VkDeviceQueueCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        type FieldType "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        type FieldType "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT =
-             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "globalPriority" VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        type FieldType "globalPriority"
-               VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = VkQueueGlobalPriorityEXT
-        type FieldOptional "globalPriority"
-               VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "globalPriority"
-               VkDeviceQueueGlobalPriorityCreateInfoEXT
-             =
-             #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
-        type FieldIsArray "globalPriority"
-               VkDeviceQueueGlobalPriorityCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "globalPriority"
-           VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "globalPriority"
-           VkDeviceQueueGlobalPriorityCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueGlobalPriorityCreateInfoEXT, globalPriority}
-
-instance Show VkDeviceQueueGlobalPriorityCreateInfoEXT where
-        showsPrec d x
-          = showString "VkDeviceQueueGlobalPriorityCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "globalPriority = " .
-                            showsPrec d (getField @"globalPriority" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDeviceQueueInfo2.hsc
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDeviceQueueInfo2
-       (VkDeviceQueueInfo2(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags (VkDeviceQueueCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkDeviceQueueInfo2 {
---   >     VkStructureType sType;
---   >     const void*                         pNext;
---   >     VkDeviceQueueCreateFlags            flags;
---   >     uint32_t                            queueFamilyIndex;
---   >     uint32_t                            queueIndex;
---   > } VkDeviceQueueInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDeviceQueueInfo2.html VkDeviceQueueInfo2 registry at www.khronos.org>
-data VkDeviceQueueInfo2 = VkDeviceQueueInfo2## Addr## ByteArray##
-
-instance Eq VkDeviceQueueInfo2 where
-        (VkDeviceQueueInfo2## a _) == x@(VkDeviceQueueInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDeviceQueueInfo2 where
-        (VkDeviceQueueInfo2## a _) `compare` x@(VkDeviceQueueInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDeviceQueueInfo2 where
-        sizeOf ~_ = #{size VkDeviceQueueInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDeviceQueueInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDeviceQueueInfo2 where
-        unsafeAddr (VkDeviceQueueInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDeviceQueueInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDeviceQueueInfo2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDeviceQueueInfo2 where
-        type StructFields VkDeviceQueueInfo2 =
-             '["sType", "pNext", "flags", "queueFamilyIndex", "queueIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDeviceQueueInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDeviceQueueInfo2
-         where
-        type FieldType "sType" VkDeviceQueueInfo2 = VkStructureType
-        type FieldOptional "sType" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDeviceQueueInfo2 =
-             #{offset VkDeviceQueueInfo2, sType}
-        type FieldIsArray "sType" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDeviceQueueInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDeviceQueueInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueInfo2, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDeviceQueueInfo2
-         where
-        type FieldType "pNext" VkDeviceQueueInfo2 = Ptr Void
-        type FieldOptional "pNext" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDeviceQueueInfo2 =
-             #{offset VkDeviceQueueInfo2, pNext}
-        type FieldIsArray "pNext" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDeviceQueueInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDeviceQueueInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueInfo2, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkDeviceQueueInfo2
-         where
-        type FieldType "flags" VkDeviceQueueInfo2 =
-             VkDeviceQueueCreateFlags
-        type FieldOptional "flags" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDeviceQueueInfo2 =
-             #{offset VkDeviceQueueInfo2, flags}
-        type FieldIsArray "flags" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDeviceQueueInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDeviceQueueInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndex" VkDeviceQueueInfo2 where
-        type FieldType "queueFamilyIndex" VkDeviceQueueInfo2 = Word32
-        type FieldOptional "queueFamilyIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndex" VkDeviceQueueInfo2 =
-             #{offset VkDeviceQueueInfo2, queueFamilyIndex}
-        type FieldIsArray "queueFamilyIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDeviceQueueInfo2, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndex" VkDeviceQueueInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, queueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueInfo2, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndex" VkDeviceQueueInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueInfo2, queueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueIndex" VkDeviceQueueInfo2 where
-        type FieldType "queueIndex" VkDeviceQueueInfo2 = Word32
-        type FieldOptional "queueIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueIndex" VkDeviceQueueInfo2 =
-             #{offset VkDeviceQueueInfo2, queueIndex}
-        type FieldIsArray "queueIndex" VkDeviceQueueInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDeviceQueueInfo2, queueIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueIndex" VkDeviceQueueInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDeviceQueueInfo2, queueIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDeviceQueueInfo2, queueIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueIndex" VkDeviceQueueInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDeviceQueueInfo2, queueIndex}
-
-instance Show VkDeviceQueueInfo2 where
-        showsPrec d x
-          = showString "VkDeviceQueueInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "queueFamilyIndex = " .
-                                  showsPrec d (getField @"queueFamilyIndex" x) .
-                                    showString ", " .
-                                      showString "queueIndex = " .
-                                        showsPrec d (getField @"queueIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDispatchIndirectCommand.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDispatchIndirectCommand.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDispatchIndirectCommand.hsc
+++ /dev/null
@@ -1,175 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand
-       (VkDispatchIndirectCommand(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDispatchIndirectCommand {
---   >     uint32_t               x;
---   >     uint32_t               y;
---   >     uint32_t               z;
---   > } VkDispatchIndirectCommand;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDispatchIndirectCommand.html VkDispatchIndirectCommand registry at www.khronos.org>
-data VkDispatchIndirectCommand = VkDispatchIndirectCommand## Addr##
-                                                            ByteArray##
-
-instance Eq VkDispatchIndirectCommand where
-        (VkDispatchIndirectCommand## a _) ==
-          x@(VkDispatchIndirectCommand## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDispatchIndirectCommand where
-        (VkDispatchIndirectCommand## a _) `compare`
-          x@(VkDispatchIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDispatchIndirectCommand where
-        sizeOf ~_ = #{size VkDispatchIndirectCommand}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDispatchIndirectCommand}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDispatchIndirectCommand where
-        unsafeAddr (VkDispatchIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDispatchIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDispatchIndirectCommand## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDispatchIndirectCommand where
-        type StructFields VkDispatchIndirectCommand = '["x", "y", "z"] -- ' closing tick for hsc2hs
-        type CUnionType VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDispatchIndirectCommand = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkDispatchIndirectCommand
-         where
-        type FieldType "x" VkDispatchIndirectCommand = Word32
-        type FieldOptional "x" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkDispatchIndirectCommand =
-             #{offset VkDispatchIndirectCommand, x}
-        type FieldIsArray "x" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDispatchIndirectCommand, x}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "x" VkDispatchIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, x})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDispatchIndirectCommand, x}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "x" VkDispatchIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDispatchIndirectCommand, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkDispatchIndirectCommand
-         where
-        type FieldType "y" VkDispatchIndirectCommand = Word32
-        type FieldOptional "y" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkDispatchIndirectCommand =
-             #{offset VkDispatchIndirectCommand, y}
-        type FieldIsArray "y" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDispatchIndirectCommand, y}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "y" VkDispatchIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, y})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDispatchIndirectCommand, y}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "y" VkDispatchIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDispatchIndirectCommand, y}
-
-instance {-# OVERLAPPING #-} HasField "z" VkDispatchIndirectCommand
-         where
-        type FieldType "z" VkDispatchIndirectCommand = Word32
-        type FieldOptional "z" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "z" VkDispatchIndirectCommand =
-             #{offset VkDispatchIndirectCommand, z}
-        type FieldIsArray "z" VkDispatchIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDispatchIndirectCommand, z}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "z" VkDispatchIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDispatchIndirectCommand, z})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDispatchIndirectCommand, z}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "z" VkDispatchIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDispatchIndirectCommand, z}
-
-instance Show VkDispatchIndirectCommand where
-        showsPrec d x
-          = showString "VkDispatchIndirectCommand {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " .
-                      showsPrec d (getField @"y" x) .
-                        showString ", " .
-                          showString "z = " . showsPrec d (getField @"z" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayEventInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayEventInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayEventInfoEXT.hsc
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayEventInfoEXT
-       (VkDisplayEventInfoEXT(..)) where
-import           Foreign.Storable                                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDisplayEventTypeEXT (VkDisplayEventTypeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType       (VkStructureType)
-import           System.IO.Unsafe                                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayEventInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDisplayEventTypeEXT            displayEvent;
---   > } VkDisplayEventInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayEventInfoEXT.html VkDisplayEventInfoEXT registry at www.khronos.org>
-data VkDisplayEventInfoEXT = VkDisplayEventInfoEXT## Addr##
-                                                    ByteArray##
-
-instance Eq VkDisplayEventInfoEXT where
-        (VkDisplayEventInfoEXT## a _) == x@(VkDisplayEventInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayEventInfoEXT where
-        (VkDisplayEventInfoEXT## a _) `compare`
-          x@(VkDisplayEventInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayEventInfoEXT where
-        sizeOf ~_ = #{size VkDisplayEventInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayEventInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayEventInfoEXT where
-        unsafeAddr (VkDisplayEventInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayEventInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayEventInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayEventInfoEXT where
-        type StructFields VkDisplayEventInfoEXT =
-             '["sType", "pNext", "displayEvent"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayEventInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDisplayEventInfoEXT
-         where
-        type FieldType "sType" VkDisplayEventInfoEXT = VkStructureType
-        type FieldOptional "sType" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDisplayEventInfoEXT =
-             #{offset VkDisplayEventInfoEXT, sType}
-        type FieldIsArray "sType" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDisplayEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDisplayEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayEventInfoEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDisplayEventInfoEXT
-         where
-        type FieldType "pNext" VkDisplayEventInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDisplayEventInfoEXT =
-             #{offset VkDisplayEventInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDisplayEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDisplayEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayEventInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayEvent" VkDisplayEventInfoEXT where
-        type FieldType "displayEvent" VkDisplayEventInfoEXT =
-             VkDisplayEventTypeEXT
-        type FieldOptional "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayEvent" VkDisplayEventInfoEXT =
-             #{offset VkDisplayEventInfoEXT, displayEvent}
-        type FieldIsArray "displayEvent" VkDisplayEventInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayEventInfoEXT, displayEvent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayEvent" VkDisplayEventInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayEventInfoEXT, displayEvent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayEventInfoEXT, displayEvent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayEvent" VkDisplayEventInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayEventInfoEXT, displayEvent}
-
-instance Show VkDisplayEventInfoEXT where
-        showsPrec d x
-          = showString "VkDisplayEventInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "displayEvent = " .
-                            showsPrec d (getField @"displayEvent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeCreateInfoKHR.hsc
+++ /dev/null
@@ -1,223 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayModeCreateInfoKHR
-       (VkDisplayModeCreateInfoKHR(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                          (VkDisplayModeCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType              (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR (VkDisplayModeParametersKHR)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayModeCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDisplayModeCreateFlagsKHR      flags;
---   >     VkDisplayModeParametersKHR       parameters;
---   > } VkDisplayModeCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayModeCreateInfoKHR.html VkDisplayModeCreateInfoKHR registry at www.khronos.org>
-data VkDisplayModeCreateInfoKHR = VkDisplayModeCreateInfoKHR## Addr##
-                                                              ByteArray##
-
-instance Eq VkDisplayModeCreateInfoKHR where
-        (VkDisplayModeCreateInfoKHR## a _) ==
-          x@(VkDisplayModeCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayModeCreateInfoKHR where
-        (VkDisplayModeCreateInfoKHR## a _) `compare`
-          x@(VkDisplayModeCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayModeCreateInfoKHR where
-        sizeOf ~_ = #{size VkDisplayModeCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayModeCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayModeCreateInfoKHR where
-        unsafeAddr (VkDisplayModeCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModeCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModeCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayModeCreateInfoKHR where
-        type StructFields VkDisplayModeCreateInfoKHR =
-             '["sType", "pNext", "flags", "parameters"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayModeCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDisplayModeCreateInfoKHR where
-        type FieldType "sType" VkDisplayModeCreateInfoKHR = VkStructureType
-        type FieldOptional "sType" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDisplayModeCreateInfoKHR =
-             #{offset VkDisplayModeCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDisplayModeCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDisplayModeCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDisplayModeCreateInfoKHR where
-        type FieldType "pNext" VkDisplayModeCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDisplayModeCreateInfoKHR =
-             #{offset VkDisplayModeCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDisplayModeCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDisplayModeCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDisplayModeCreateInfoKHR where
-        type FieldType "flags" VkDisplayModeCreateInfoKHR =
-             VkDisplayModeCreateFlagsKHR
-        type FieldOptional "flags" VkDisplayModeCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDisplayModeCreateInfoKHR =
-             #{offset VkDisplayModeCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDisplayModeCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDisplayModeCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "parameters" VkDisplayModeCreateInfoKHR where
-        type FieldType "parameters" VkDisplayModeCreateInfoKHR =
-             VkDisplayModeParametersKHR
-        type FieldOptional "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "parameters" VkDisplayModeCreateInfoKHR =
-             #{offset VkDisplayModeCreateInfoKHR, parameters}
-        type FieldIsArray "parameters" VkDisplayModeCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeCreateInfoKHR, parameters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "parameters" VkDisplayModeCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeCreateInfoKHR, parameters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeCreateInfoKHR, parameters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "parameters" VkDisplayModeCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeCreateInfoKHR, parameters}
-
-instance Show VkDisplayModeCreateInfoKHR where
-        showsPrec d x
-          = showString "VkDisplayModeCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "parameters = " .
-                                  showsPrec d (getField @"parameters" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeParametersKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeParametersKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModeParametersKHR.hsc
+++ /dev/null
@@ -1,151 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR
-       (VkDisplayModeParametersKHR(..)) where
-import           Foreign.Storable                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkExtent2D (VkExtent2D)
-import           System.IO.Unsafe                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayModeParametersKHR {
---   >     VkExtent2D                       visibleRegion;
---   >     uint32_t                         refreshRate;
---   > } VkDisplayModeParametersKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayModeParametersKHR.html VkDisplayModeParametersKHR registry at www.khronos.org>
-data VkDisplayModeParametersKHR = VkDisplayModeParametersKHR## Addr##
-                                                              ByteArray##
-
-instance Eq VkDisplayModeParametersKHR where
-        (VkDisplayModeParametersKHR## a _) ==
-          x@(VkDisplayModeParametersKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayModeParametersKHR where
-        (VkDisplayModeParametersKHR## a _) `compare`
-          x@(VkDisplayModeParametersKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayModeParametersKHR where
-        sizeOf ~_ = #{size VkDisplayModeParametersKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayModeParametersKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayModeParametersKHR where
-        unsafeAddr (VkDisplayModeParametersKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModeParametersKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModeParametersKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayModeParametersKHR where
-        type StructFields VkDisplayModeParametersKHR =
-             '["visibleRegion", "refreshRate"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayModeParametersKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "visibleRegion" VkDisplayModeParametersKHR where
-        type FieldType "visibleRegion" VkDisplayModeParametersKHR =
-             VkExtent2D
-        type FieldOptional "visibleRegion" VkDisplayModeParametersKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "visibleRegion" VkDisplayModeParametersKHR =
-             #{offset VkDisplayModeParametersKHR, visibleRegion}
-        type FieldIsArray "visibleRegion" VkDisplayModeParametersKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeParametersKHR, visibleRegion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "visibleRegion" VkDisplayModeParametersKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeParametersKHR, visibleRegion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeParametersKHR, visibleRegion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "visibleRegion" VkDisplayModeParametersKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeParametersKHR, visibleRegion}
-
-instance {-# OVERLAPPING #-}
-         HasField "refreshRate" VkDisplayModeParametersKHR where
-        type FieldType "refreshRate" VkDisplayModeParametersKHR = Word32
-        type FieldOptional "refreshRate" VkDisplayModeParametersKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "refreshRate" VkDisplayModeParametersKHR =
-             #{offset VkDisplayModeParametersKHR, refreshRate}
-        type FieldIsArray "refreshRate" VkDisplayModeParametersKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModeParametersKHR, refreshRate}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "refreshRate" VkDisplayModeParametersKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModeParametersKHR, refreshRate})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModeParametersKHR, refreshRate}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "refreshRate" VkDisplayModeParametersKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModeParametersKHR, refreshRate}
-
-instance Show VkDisplayModeParametersKHR where
-        showsPrec d x
-          = showString "VkDisplayModeParametersKHR {" .
-              showString "visibleRegion = " .
-                showsPrec d (getField @"visibleRegion" x) .
-                  showString ", " .
-                    showString "refreshRate = " .
-                      showsPrec d (getField @"refreshRate" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModePropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModePropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayModePropertiesKHR.hsc
+++ /dev/null
@@ -1,151 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayModePropertiesKHR
-       (VkDisplayModePropertiesKHR(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Handles                           (VkDisplayModeKHR)
-import           Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR (VkDisplayModeParametersKHR)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayModePropertiesKHR {
---   >     VkDisplayModeKHR                 displayMode;
---   >     VkDisplayModeParametersKHR       parameters;
---   > } VkDisplayModePropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayModePropertiesKHR.html VkDisplayModePropertiesKHR registry at www.khronos.org>
-data VkDisplayModePropertiesKHR = VkDisplayModePropertiesKHR## Addr##
-                                                              ByteArray##
-
-instance Eq VkDisplayModePropertiesKHR where
-        (VkDisplayModePropertiesKHR## a _) ==
-          x@(VkDisplayModePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayModePropertiesKHR where
-        (VkDisplayModePropertiesKHR## a _) `compare`
-          x@(VkDisplayModePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayModePropertiesKHR where
-        sizeOf ~_ = #{size VkDisplayModePropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayModePropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayModePropertiesKHR where
-        unsafeAddr (VkDisplayModePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayModePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayModePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayModePropertiesKHR where
-        type StructFields VkDisplayModePropertiesKHR =
-             '["displayMode", "parameters"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayModePropertiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayModePropertiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "displayMode" VkDisplayModePropertiesKHR where
-        type FieldType "displayMode" VkDisplayModePropertiesKHR =
-             VkDisplayModeKHR
-        type FieldOptional "displayMode" VkDisplayModePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayMode" VkDisplayModePropertiesKHR =
-             #{offset VkDisplayModePropertiesKHR, displayMode}
-        type FieldIsArray "displayMode" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModePropertiesKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayMode" VkDisplayModePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModePropertiesKHR, displayMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModePropertiesKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayMode" VkDisplayModePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModePropertiesKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "parameters" VkDisplayModePropertiesKHR where
-        type FieldType "parameters" VkDisplayModePropertiesKHR =
-             VkDisplayModeParametersKHR
-        type FieldOptional "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "parameters" VkDisplayModePropertiesKHR =
-             #{offset VkDisplayModePropertiesKHR, parameters}
-        type FieldIsArray "parameters" VkDisplayModePropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayModePropertiesKHR, parameters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "parameters" VkDisplayModePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayModePropertiesKHR, parameters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayModePropertiesKHR, parameters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "parameters" VkDisplayModePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayModePropertiesKHR, parameters}
-
-instance Show VkDisplayModePropertiesKHR where
-        showsPrec d x
-          = showString "VkDisplayModePropertiesKHR {" .
-              showString "displayMode = " .
-                showsPrec d (getField @"displayMode" x) .
-                  showString ", " .
-                    showString "parameters = " .
-                      showsPrec d (getField @"parameters" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlaneCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlaneCapabilitiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlaneCapabilitiesKHR.hsc
+++ /dev/null
@@ -1,433 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayPlaneCapabilitiesKHR
-       (VkDisplayPlaneCapabilitiesKHR(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR (VkDisplayPlaneAlphaFlagsKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D                (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.VkOffset2D                (VkOffset2D)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayPlaneCapabilitiesKHR {
---   >     VkDisplayPlaneAlphaFlagsKHR      supportedAlpha;
---   >     VkOffset2D                       minSrcPosition;
---   >     VkOffset2D                       maxSrcPosition;
---   >     VkExtent2D                       minSrcExtent;
---   >     VkExtent2D                       maxSrcExtent;
---   >     VkOffset2D                       minDstPosition;
---   >     VkOffset2D                       maxDstPosition;
---   >     VkExtent2D                       minDstExtent;
---   >     VkExtent2D                       maxDstExtent;
---   > } VkDisplayPlaneCapabilitiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPlaneCapabilitiesKHR.html VkDisplayPlaneCapabilitiesKHR registry at www.khronos.org>
-data VkDisplayPlaneCapabilitiesKHR = VkDisplayPlaneCapabilitiesKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkDisplayPlaneCapabilitiesKHR where
-        (VkDisplayPlaneCapabilitiesKHR## a _) ==
-          x@(VkDisplayPlaneCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayPlaneCapabilitiesKHR where
-        (VkDisplayPlaneCapabilitiesKHR## a _) `compare`
-          x@(VkDisplayPlaneCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayPlaneCapabilitiesKHR where
-        sizeOf ~_ = #{size VkDisplayPlaneCapabilitiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDisplayPlaneCapabilitiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayPlaneCapabilitiesKHR where
-        unsafeAddr (VkDisplayPlaneCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlaneCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlaneCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayPlaneCapabilitiesKHR where
-        type StructFields VkDisplayPlaneCapabilitiesKHR =
-             '["supportedAlpha", "minSrcPosition", "maxSrcPosition", -- ' closing tick for hsc2hs
-               "minSrcExtent", "maxSrcExtent", "minDstPosition", "maxDstPosition",
-               "minDstExtent", "maxDstExtent"]
-        type CUnionType VkDisplayPlaneCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayPlaneCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayPlaneCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
-             VkDisplayPlaneAlphaFlagsKHR
-        type FieldOptional "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
-        type FieldIsArray "supportedAlpha" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedAlpha" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, supportedAlpha}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             VkOffset2D
-        type FieldOptional "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
-        type FieldIsArray "minSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             VkOffset2D
-        type FieldOptional "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
-        type FieldIsArray "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSrcPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcPosition}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
-        type FieldIsArray "minSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
-        type FieldIsArray "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSrcExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxSrcExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             VkOffset2D
-        type FieldOptional "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
-        type FieldIsArray "minDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstPosition}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             VkOffset2D
-        type FieldOptional "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
-        type FieldIsArray "maxDstPosition" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDstPosition" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstPosition}
-
-instance {-# OVERLAPPING #-}
-         HasField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
-        type FieldIsArray "minDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, minDstExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        type FieldType "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
-        type FieldIsArray "maxDstExtent" VkDisplayPlaneCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDstExtent" VkDisplayPlaneCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlaneCapabilitiesKHR, maxDstExtent}
-
-instance Show VkDisplayPlaneCapabilitiesKHR where
-        showsPrec d x
-          = showString "VkDisplayPlaneCapabilitiesKHR {" .
-              showString "supportedAlpha = " .
-                showsPrec d (getField @"supportedAlpha" x) .
-                  showString ", " .
-                    showString "minSrcPosition = " .
-                      showsPrec d (getField @"minSrcPosition" x) .
-                        showString ", " .
-                          showString "maxSrcPosition = " .
-                            showsPrec d (getField @"maxSrcPosition" x) .
-                              showString ", " .
-                                showString "minSrcExtent = " .
-                                  showsPrec d (getField @"minSrcExtent" x) .
-                                    showString ", " .
-                                      showString "maxSrcExtent = " .
-                                        showsPrec d (getField @"maxSrcExtent" x) .
-                                          showString ", " .
-                                            showString "minDstPosition = " .
-                                              showsPrec d (getField @"minDstPosition" x) .
-                                                showString ", " .
-                                                  showString "maxDstPosition = " .
-                                                    showsPrec d (getField @"maxDstPosition" x) .
-                                                      showString ", " .
-                                                        showString "minDstExtent = " .
-                                                          showsPrec d (getField @"minDstExtent" x) .
-                                                            showString ", " .
-                                                              showString "maxDstExtent = " .
-                                                                showsPrec d
-                                                                  (getField @"maxDstExtent" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlanePropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlanePropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPlanePropertiesKHR.hsc
+++ /dev/null
@@ -1,153 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayPlanePropertiesKHR
-       (VkDisplayPlanePropertiesKHR(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Handles    (VkDisplayKHR)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayPlanePropertiesKHR {
---   >     VkDisplayKHR                     currentDisplay;
---   >     uint32_t                         currentStackIndex;
---   > } VkDisplayPlanePropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPlanePropertiesKHR.html VkDisplayPlanePropertiesKHR registry at www.khronos.org>
-data VkDisplayPlanePropertiesKHR = VkDisplayPlanePropertiesKHR## Addr##
-                                                                ByteArray##
-
-instance Eq VkDisplayPlanePropertiesKHR where
-        (VkDisplayPlanePropertiesKHR## a _) ==
-          x@(VkDisplayPlanePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayPlanePropertiesKHR where
-        (VkDisplayPlanePropertiesKHR## a _) `compare`
-          x@(VkDisplayPlanePropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayPlanePropertiesKHR where
-        sizeOf ~_ = #{size VkDisplayPlanePropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayPlanePropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayPlanePropertiesKHR where
-        unsafeAddr (VkDisplayPlanePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPlanePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPlanePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayPlanePropertiesKHR where
-        type StructFields VkDisplayPlanePropertiesKHR =
-             '["currentDisplay", "currentStackIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayPlanePropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayPlanePropertiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayPlanePropertiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "currentDisplay" VkDisplayPlanePropertiesKHR where
-        type FieldType "currentDisplay" VkDisplayPlanePropertiesKHR =
-             VkDisplayKHR
-        type FieldOptional "currentDisplay" VkDisplayPlanePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentDisplay" VkDisplayPlanePropertiesKHR =
-             #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
-        type FieldIsArray "currentDisplay" VkDisplayPlanePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentDisplay" VkDisplayPlanePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlanePropertiesKHR, currentDisplay})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentDisplay" VkDisplayPlanePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlanePropertiesKHR, currentDisplay}
-
-instance {-# OVERLAPPING #-}
-         HasField "currentStackIndex" VkDisplayPlanePropertiesKHR where
-        type FieldType "currentStackIndex" VkDisplayPlanePropertiesKHR =
-             Word32
-        type FieldOptional "currentStackIndex" VkDisplayPlanePropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentStackIndex" VkDisplayPlanePropertiesKHR =
-             #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
-        type FieldIsArray "currentStackIndex" VkDisplayPlanePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentStackIndex" VkDisplayPlanePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPlanePropertiesKHR, currentStackIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentStackIndex" VkDisplayPlanePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPlanePropertiesKHR, currentStackIndex}
-
-instance Show VkDisplayPlanePropertiesKHR where
-        showsPrec d x
-          = showString "VkDisplayPlanePropertiesKHR {" .
-              showString "currentDisplay = " .
-                showsPrec d (getField @"currentDisplay" x) .
-                  showString ", " .
-                    showString "currentStackIndex = " .
-                      showsPrec d (getField @"currentStackIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPowerInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPowerInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPowerInfoEXT.hsc
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayPowerInfoEXT
-       (VkDisplayPowerInfoEXT(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDisplayPowerStateEXT (VkDisplayPowerStateEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayPowerInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDisplayPowerStateEXT           powerState;
---   > } VkDisplayPowerInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPowerInfoEXT.html VkDisplayPowerInfoEXT registry at www.khronos.org>
-data VkDisplayPowerInfoEXT = VkDisplayPowerInfoEXT## Addr##
-                                                    ByteArray##
-
-instance Eq VkDisplayPowerInfoEXT where
-        (VkDisplayPowerInfoEXT## a _) == x@(VkDisplayPowerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayPowerInfoEXT where
-        (VkDisplayPowerInfoEXT## a _) `compare`
-          x@(VkDisplayPowerInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayPowerInfoEXT where
-        sizeOf ~_ = #{size VkDisplayPowerInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayPowerInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayPowerInfoEXT where
-        unsafeAddr (VkDisplayPowerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPowerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPowerInfoEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayPowerInfoEXT where
-        type StructFields VkDisplayPowerInfoEXT =
-             '["sType", "pNext", "powerState"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayPowerInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkDisplayPowerInfoEXT
-         where
-        type FieldType "sType" VkDisplayPowerInfoEXT = VkStructureType
-        type FieldOptional "sType" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDisplayPowerInfoEXT =
-             #{offset VkDisplayPowerInfoEXT, sType}
-        type FieldIsArray "sType" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayPowerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDisplayPowerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPowerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDisplayPowerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkDisplayPowerInfoEXT
-         where
-        type FieldType "pNext" VkDisplayPowerInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDisplayPowerInfoEXT =
-             #{offset VkDisplayPowerInfoEXT, pNext}
-        type FieldIsArray "pNext" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayPowerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDisplayPowerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPowerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDisplayPowerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "powerState" VkDisplayPowerInfoEXT where
-        type FieldType "powerState" VkDisplayPowerInfoEXT =
-             VkDisplayPowerStateEXT
-        type FieldOptional "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "powerState" VkDisplayPowerInfoEXT =
-             #{offset VkDisplayPowerInfoEXT, powerState}
-        type FieldIsArray "powerState" VkDisplayPowerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPowerInfoEXT, powerState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "powerState" VkDisplayPowerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPowerInfoEXT, powerState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPowerInfoEXT, powerState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "powerState" VkDisplayPowerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPowerInfoEXT, powerState}
-
-instance Show VkDisplayPowerInfoEXT where
-        showsPrec d x
-          = showString "VkDisplayPowerInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "powerState = " .
-                            showsPrec d (getField @"powerState" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPresentInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPresentInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPresentInfoKHR.hsc
+++ /dev/null
@@ -1,253 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayPresentInfoKHR
-       (VkDisplayPresentInfoKHR(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR (VkPresentInfoKHR)
-import           Graphics.Vulkan.Types.Struct.VkRect2D         (VkRect2D)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayPresentInfoKHR {
---   >     VkStructureType sType;
---   >     const void*  pNext;
---   >     VkRect2D                         srcRect;
---   >     VkRect2D                         dstRect;
---   >     VkBool32                         persistent;
---   > } VkDisplayPresentInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPresentInfoKHR.html VkDisplayPresentInfoKHR registry at www.khronos.org>
-data VkDisplayPresentInfoKHR = VkDisplayPresentInfoKHR## Addr##
-                                                        ByteArray##
-
-instance Eq VkDisplayPresentInfoKHR where
-        (VkDisplayPresentInfoKHR## a _) == x@(VkDisplayPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayPresentInfoKHR where
-        (VkDisplayPresentInfoKHR## a _) `compare`
-          x@(VkDisplayPresentInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayPresentInfoKHR where
-        sizeOf ~_ = #{size VkDisplayPresentInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayPresentInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayPresentInfoKHR where
-        unsafeAddr (VkDisplayPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayPresentInfoKHR where
-        type StructFields VkDisplayPresentInfoKHR =
-             '["sType", "pNext", "srcRect", "dstRect", "persistent"] -- ' closing tick for hsc2hs
-        type CUnionType VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayPresentInfoKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDisplayPresentInfoKHR where
-        type FieldType "sType" VkDisplayPresentInfoKHR = VkStructureType
-        type FieldOptional "sType" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDisplayPresentInfoKHR =
-             #{offset VkDisplayPresentInfoKHR, sType}
-        type FieldIsArray "sType" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDisplayPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDisplayPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDisplayPresentInfoKHR where
-        type FieldType "pNext" VkDisplayPresentInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDisplayPresentInfoKHR =
-             #{offset VkDisplayPresentInfoKHR, pNext}
-        type FieldIsArray "pNext" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDisplayPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDisplayPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcRect" VkDisplayPresentInfoKHR where
-        type FieldType "srcRect" VkDisplayPresentInfoKHR = VkRect2D
-        type FieldOptional "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcRect" VkDisplayPresentInfoKHR =
-             #{offset VkDisplayPresentInfoKHR, srcRect}
-        type FieldIsArray "srcRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPresentInfoKHR, srcRect}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcRect" VkDisplayPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, srcRect})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPresentInfoKHR, srcRect}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcRect" VkDisplayPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, srcRect}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstRect" VkDisplayPresentInfoKHR where
-        type FieldType "dstRect" VkDisplayPresentInfoKHR = VkRect2D
-        type FieldOptional "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstRect" VkDisplayPresentInfoKHR =
-             #{offset VkDisplayPresentInfoKHR, dstRect}
-        type FieldIsArray "dstRect" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPresentInfoKHR, dstRect}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstRect" VkDisplayPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, dstRect})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPresentInfoKHR, dstRect}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstRect" VkDisplayPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, dstRect}
-
-instance {-# OVERLAPPING #-}
-         HasField "persistent" VkDisplayPresentInfoKHR where
-        type FieldType "persistent" VkDisplayPresentInfoKHR = VkBool32
-        type FieldOptional "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "persistent" VkDisplayPresentInfoKHR =
-             #{offset VkDisplayPresentInfoKHR, persistent}
-        type FieldIsArray "persistent" VkDisplayPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPresentInfoKHR, persistent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "persistent" VkDisplayPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPresentInfoKHR, persistent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPresentInfoKHR, persistent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "persistent" VkDisplayPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPresentInfoKHR, persistent}
-
-instance Show VkDisplayPresentInfoKHR where
-        showsPrec d x
-          = showString "VkDisplayPresentInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcRect = " .
-                            showsPrec d (getField @"srcRect" x) .
-                              showString ", " .
-                                showString "dstRect = " .
-                                  showsPrec d (getField @"dstRect" x) .
-                                    showString ", " .
-                                      showString "persistent = " .
-                                        showsPrec d (getField @"persistent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplayPropertiesKHR.hsc
+++ /dev/null
@@ -1,344 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplayPropertiesKHR
-       (VkDisplayPropertiesKHR(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                       (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR (VkSurfaceTransformFlagsKHR)
-import           Graphics.Vulkan.Types.Handles                         (VkDisplayKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D               (VkExtent2D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplayPropertiesKHR {
---   >     VkDisplayKHR                     display;
---   >     const char*                      displayName;
---   >     VkExtent2D                       physicalDimensions;
---   >     VkExtent2D                       physicalResolution;
---   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
---   >     VkBool32                         planeReorderPossible;
---   >     VkBool32                         persistentContent;
---   > } VkDisplayPropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplayPropertiesKHR.html VkDisplayPropertiesKHR registry at www.khronos.org>
-data VkDisplayPropertiesKHR = VkDisplayPropertiesKHR## Addr##
-                                                      ByteArray##
-
-instance Eq VkDisplayPropertiesKHR where
-        (VkDisplayPropertiesKHR## a _) == x@(VkDisplayPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplayPropertiesKHR where
-        (VkDisplayPropertiesKHR## a _) `compare`
-          x@(VkDisplayPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplayPropertiesKHR where
-        sizeOf ~_ = #{size VkDisplayPropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDisplayPropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplayPropertiesKHR where
-        unsafeAddr (VkDisplayPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplayPropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplayPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplayPropertiesKHR where
-        type StructFields VkDisplayPropertiesKHR =
-             '["display", "displayName", "physicalDimensions", -- ' closing tick for hsc2hs
-               "physicalResolution", "supportedTransforms",
-               "planeReorderPossible", "persistentContent"]
-        type CUnionType VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplayPropertiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkDisplayPropertiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "display" VkDisplayPropertiesKHR where
-        type FieldType "display" VkDisplayPropertiesKHR = VkDisplayKHR
-        type FieldOptional "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "display" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, display}
-        type FieldIsArray "display" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkDisplayPropertiesKHR, display}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "display" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, display})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, display}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "display" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, display}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayName" VkDisplayPropertiesKHR where
-        type FieldType "displayName" VkDisplayPropertiesKHR = CString
-        type FieldOptional "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayName" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, displayName}
-        type FieldIsArray "displayName" VkDisplayPropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, displayName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayName" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, displayName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, displayName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayName" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, displayName}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDimensions" VkDisplayPropertiesKHR where
-        type FieldType "physicalDimensions" VkDisplayPropertiesKHR =
-             VkExtent2D
-        type FieldOptional "physicalDimensions" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDimensions" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, physicalDimensions}
-        type FieldIsArray "physicalDimensions" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, physicalDimensions}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "physicalDimensions" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, physicalDimensions})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, physicalDimensions}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "physicalDimensions" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, physicalDimensions}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalResolution" VkDisplayPropertiesKHR where
-        type FieldType "physicalResolution" VkDisplayPropertiesKHR =
-             VkExtent2D
-        type FieldOptional "physicalResolution" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalResolution" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, physicalResolution}
-        type FieldIsArray "physicalResolution" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, physicalResolution}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "physicalResolution" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, physicalResolution})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, physicalResolution}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "physicalResolution" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, physicalResolution}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedTransforms" VkDisplayPropertiesKHR where
-        type FieldType "supportedTransforms" VkDisplayPropertiesKHR =
-             VkSurfaceTransformFlagsKHR
-        type FieldOptional "supportedTransforms" VkDisplayPropertiesKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedTransforms" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, supportedTransforms}
-        type FieldIsArray "supportedTransforms" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedTransforms" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, supportedTransforms})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedTransforms" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         HasField "planeReorderPossible" VkDisplayPropertiesKHR where
-        type FieldType "planeReorderPossible" VkDisplayPropertiesKHR =
-             VkBool32
-        type FieldOptional "planeReorderPossible" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "planeReorderPossible" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, planeReorderPossible}
-        type FieldIsArray "planeReorderPossible" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, planeReorderPossible}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "planeReorderPossible" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, planeReorderPossible})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, planeReorderPossible}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "planeReorderPossible" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, planeReorderPossible}
-
-instance {-# OVERLAPPING #-}
-         HasField "persistentContent" VkDisplayPropertiesKHR where
-        type FieldType "persistentContent" VkDisplayPropertiesKHR =
-             VkBool32
-        type FieldOptional "persistentContent" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "persistentContent" VkDisplayPropertiesKHR =
-             #{offset VkDisplayPropertiesKHR, persistentContent}
-        type FieldIsArray "persistentContent" VkDisplayPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplayPropertiesKHR, persistentContent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "persistentContent" VkDisplayPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplayPropertiesKHR, persistentContent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplayPropertiesKHR, persistentContent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "persistentContent" VkDisplayPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplayPropertiesKHR, persistentContent}
-
-instance Show VkDisplayPropertiesKHR where
-        showsPrec d x
-          = showString "VkDisplayPropertiesKHR {" .
-              showString "display = " .
-                showsPrec d (getField @"display" x) .
-                  showString ", " .
-                    showString "displayName = " .
-                      showsPrec d (getField @"displayName" x) .
-                        showString ", " .
-                          showString "physicalDimensions = " .
-                            showsPrec d (getField @"physicalDimensions" x) .
-                              showString ", " .
-                                showString "physicalResolution = " .
-                                  showsPrec d (getField @"physicalResolution" x) .
-                                    showString ", " .
-                                      showString "supportedTransforms = " .
-                                        showsPrec d (getField @"supportedTransforms" x) .
-                                          showString ", " .
-                                            showString "planeReorderPossible = " .
-                                              showsPrec d (getField @"planeReorderPossible" x) .
-                                                showString ", " .
-                                                  showString "persistentContent = " .
-                                                    showsPrec d (getField @"persistentContent" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplaySurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDisplaySurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDisplaySurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,469 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDisplaySurfaceCreateInfoKHR
-       (VkDisplaySurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                         (VkDisplaySurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR (VkDisplayPlaneAlphaFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR  (VkSurfaceTransformFlagBitsKHR)
-import           Graphics.Vulkan.Types.Handles                          (VkDisplayModeKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D                (VkExtent2D)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkDisplaySurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDisplaySurfaceCreateFlagsKHR   flags;
---   >     VkDisplayModeKHR                 displayMode;
---   >     uint32_t                         planeIndex;
---   >     uint32_t                         planeStackIndex;
---   >     VkSurfaceTransformFlagBitsKHR    transform;
---   >     float                            globalAlpha;
---   >     VkDisplayPlaneAlphaFlagBitsKHR   alphaMode;
---   >     VkExtent2D                       imageExtent;
---   > } VkDisplaySurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDisplaySurfaceCreateInfoKHR.html VkDisplaySurfaceCreateInfoKHR registry at www.khronos.org>
-data VkDisplaySurfaceCreateInfoKHR = VkDisplaySurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkDisplaySurfaceCreateInfoKHR where
-        (VkDisplaySurfaceCreateInfoKHR## a _) ==
-          x@(VkDisplaySurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDisplaySurfaceCreateInfoKHR where
-        (VkDisplaySurfaceCreateInfoKHR## a _) `compare`
-          x@(VkDisplaySurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDisplaySurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkDisplaySurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDisplaySurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDisplaySurfaceCreateInfoKHR where
-        unsafeAddr (VkDisplaySurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDisplaySurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDisplaySurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDisplaySurfaceCreateInfoKHR where
-        type StructFields VkDisplaySurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "displayMode", "planeIndex", -- ' closing tick for hsc2hs
-               "planeStackIndex", "transform", "globalAlpha", "alphaMode",
-               "imageExtent"]
-        type CUnionType VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDisplaySurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "sType" VkDisplaySurfaceCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "pNext" VkDisplaySurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "flags" VkDisplaySurfaceCreateInfoKHR =
-             VkDisplaySurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkDisplaySurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkDisplaySurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayMode" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "displayMode" VkDisplaySurfaceCreateInfoKHR =
-             VkDisplayModeKHR
-        type FieldOptional "displayMode" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayMode" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
-        type FieldIsArray "displayMode" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayMode" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, displayMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayMode" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, displayMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "planeIndex" VkDisplaySurfaceCreateInfoKHR = Word32
-        type FieldOptional "planeIndex" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "planeIndex" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
-        type FieldIsArray "planeIndex" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "planeIndex" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
-             Word32
-        type FieldOptional "planeStackIndex" VkDisplaySurfaceCreateInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
-        type FieldIsArray "planeStackIndex" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "planeStackIndex" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, planeStackIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "transform" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "transform" VkDisplaySurfaceCreateInfoKHR =
-             VkSurfaceTransformFlagBitsKHR
-        type FieldOptional "transform" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "transform" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, transform}
-        type FieldIsArray "transform" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, transform}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "transform" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, transform})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, transform}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "transform" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, transform}
-
-instance {-# OVERLAPPING #-}
-         HasField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
-             #{type float}
-        type FieldOptional "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
-        type FieldIsArray "globalAlpha" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "globalAlpha" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, globalAlpha}
-
-instance {-# OVERLAPPING #-}
-         HasField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "alphaMode" VkDisplaySurfaceCreateInfoKHR =
-             VkDisplayPlaneAlphaFlagBitsKHR
-        type FieldOptional "alphaMode" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "alphaMode" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
-        type FieldIsArray "alphaMode" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alphaMode" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, alphaMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
-        type FieldType "imageExtent" VkDisplaySurfaceCreateInfoKHR =
-             VkExtent2D
-        type FieldOptional "imageExtent" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageExtent" VkDisplaySurfaceCreateInfoKHR =
-             #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
-        type FieldIsArray "imageExtent" VkDisplaySurfaceCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageExtent" VkDisplaySurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDisplaySurfaceCreateInfoKHR, imageExtent}
-
-instance Show VkDisplaySurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkDisplaySurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "displayMode = " .
-                                  showsPrec d (getField @"displayMode" x) .
-                                    showString ", " .
-                                      showString "planeIndex = " .
-                                        showsPrec d (getField @"planeIndex" x) .
-                                          showString ", " .
-                                            showString "planeStackIndex = " .
-                                              showsPrec d (getField @"planeStackIndex" x) .
-                                                showString ", " .
-                                                  showString "transform = " .
-                                                    showsPrec d (getField @"transform" x) .
-                                                      showString ", " .
-                                                        showString "globalAlpha = " .
-                                                          showsPrec d (getField @"globalAlpha" x) .
-                                                            showString ", " .
-                                                              showString "alphaMode = " .
-                                                                showsPrec d
-                                                                  (getField @"alphaMode" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "imageExtent = " .
-                                                                      showsPrec d
-                                                                        (getField @"imageExtent" x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndexedIndirectCommand.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndexedIndirectCommand.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndexedIndirectCommand.hsc
+++ /dev/null
@@ -1,268 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand
-       (VkDrawIndexedIndirectCommand(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDrawIndexedIndirectCommand {
---   >     uint32_t               indexCount;
---   >     uint32_t               instanceCount;
---   >     uint32_t               firstIndex;
---   >     int32_t                vertexOffset;
---   >     uint32_t               firstInstance;
---   > } VkDrawIndexedIndirectCommand;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDrawIndexedIndirectCommand.html VkDrawIndexedIndirectCommand registry at www.khronos.org>
-data VkDrawIndexedIndirectCommand = VkDrawIndexedIndirectCommand## Addr##
-                                                                  ByteArray##
-
-instance Eq VkDrawIndexedIndirectCommand where
-        (VkDrawIndexedIndirectCommand## a _) ==
-          x@(VkDrawIndexedIndirectCommand## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDrawIndexedIndirectCommand where
-        (VkDrawIndexedIndirectCommand## a _) `compare`
-          x@(VkDrawIndexedIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDrawIndexedIndirectCommand where
-        sizeOf ~_ = #{size VkDrawIndexedIndirectCommand}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkDrawIndexedIndirectCommand}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDrawIndexedIndirectCommand where
-        unsafeAddr (VkDrawIndexedIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDrawIndexedIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDrawIndexedIndirectCommand##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDrawIndexedIndirectCommand where
-        type StructFields VkDrawIndexedIndirectCommand =
-             '["indexCount", "instanceCount", "firstIndex", "vertexOffset", -- ' closing tick for hsc2hs
-               "firstInstance"]
-        type CUnionType VkDrawIndexedIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDrawIndexedIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDrawIndexedIndirectCommand = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "indexCount" VkDrawIndexedIndirectCommand where
-        type FieldType "indexCount" VkDrawIndexedIndirectCommand = Word32
-        type FieldOptional "indexCount" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "indexCount" VkDrawIndexedIndirectCommand =
-             #{offset VkDrawIndexedIndirectCommand, indexCount}
-        type FieldIsArray "indexCount" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndexedIndirectCommand, indexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "indexCount" VkDrawIndexedIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, indexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, indexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "indexCount" VkDrawIndexedIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, indexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "instanceCount" VkDrawIndexedIndirectCommand where
-        type FieldType "instanceCount" VkDrawIndexedIndirectCommand =
-             Word32
-        type FieldOptional "instanceCount" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "instanceCount" VkDrawIndexedIndirectCommand =
-             #{offset VkDrawIndexedIndirectCommand, instanceCount}
-        type FieldIsArray "instanceCount" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndexedIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "instanceCount" VkDrawIndexedIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, instanceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "instanceCount" VkDrawIndexedIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "firstIndex" VkDrawIndexedIndirectCommand where
-        type FieldType "firstIndex" VkDrawIndexedIndirectCommand = Word32
-        type FieldOptional "firstIndex" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "firstIndex" VkDrawIndexedIndirectCommand =
-             #{offset VkDrawIndexedIndirectCommand, firstIndex}
-        type FieldIsArray "firstIndex" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndexedIndirectCommand, firstIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "firstIndex" VkDrawIndexedIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, firstIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, firstIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "firstIndex" VkDrawIndexedIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, firstIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexOffset" VkDrawIndexedIndirectCommand where
-        type FieldType "vertexOffset" VkDrawIndexedIndirectCommand = Int32
-        type FieldOptional "vertexOffset" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "vertexOffset" VkDrawIndexedIndirectCommand =
-             #{offset VkDrawIndexedIndirectCommand, vertexOffset}
-        type FieldIsArray "vertexOffset" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndexedIndirectCommand, vertexOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexOffset" VkDrawIndexedIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, vertexOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, vertexOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexOffset" VkDrawIndexedIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, vertexOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "firstInstance" VkDrawIndexedIndirectCommand where
-        type FieldType "firstInstance" VkDrawIndexedIndirectCommand =
-             Word32
-        type FieldOptional "firstInstance" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "firstInstance" VkDrawIndexedIndirectCommand =
-             #{offset VkDrawIndexedIndirectCommand, firstInstance}
-        type FieldIsArray "firstInstance" VkDrawIndexedIndirectCommand =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndexedIndirectCommand, firstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "firstInstance" VkDrawIndexedIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndexedIndirectCommand, firstInstance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndexedIndirectCommand, firstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "firstInstance" VkDrawIndexedIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndexedIndirectCommand, firstInstance}
-
-instance Show VkDrawIndexedIndirectCommand where
-        showsPrec d x
-          = showString "VkDrawIndexedIndirectCommand {" .
-              showString "indexCount = " .
-                showsPrec d (getField @"indexCount" x) .
-                  showString ", " .
-                    showString "instanceCount = " .
-                      showsPrec d (getField @"instanceCount" x) .
-                        showString ", " .
-                          showString "firstIndex = " .
-                            showsPrec d (getField @"firstIndex" x) .
-                              showString ", " .
-                                showString "vertexOffset = " .
-                                  showsPrec d (getField @"vertexOffset" x) .
-                                    showString ", " .
-                                      showString "firstInstance = " .
-                                        showsPrec d (getField @"firstInstance" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndirectCommand.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndirectCommand.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkDrawIndirectCommand.hsc
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand
-       (VkDrawIndirectCommand(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkDrawIndirectCommand {
---   >     uint32_t               vertexCount;
---   >     uint32_t               instanceCount;
---   >     uint32_t               firstVertex;
---   >     uint32_t               firstInstance;
---   > } VkDrawIndirectCommand;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkDrawIndirectCommand.html VkDrawIndirectCommand registry at www.khronos.org>
-data VkDrawIndirectCommand = VkDrawIndirectCommand## Addr##
-                                                    ByteArray##
-
-instance Eq VkDrawIndirectCommand where
-        (VkDrawIndirectCommand## a _) == x@(VkDrawIndirectCommand## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkDrawIndirectCommand where
-        (VkDrawIndirectCommand## a _) `compare`
-          x@(VkDrawIndirectCommand## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkDrawIndirectCommand where
-        sizeOf ~_ = #{size VkDrawIndirectCommand}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkDrawIndirectCommand}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkDrawIndirectCommand where
-        unsafeAddr (VkDrawIndirectCommand## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkDrawIndirectCommand## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkDrawIndirectCommand## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkDrawIndirectCommand where
-        type StructFields VkDrawIndirectCommand =
-             '["vertexCount", "instanceCount", "firstVertex", "firstInstance"] -- ' closing tick for hsc2hs
-        type CUnionType VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkDrawIndirectCommand = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexCount" VkDrawIndirectCommand where
-        type FieldType "vertexCount" VkDrawIndirectCommand = Word32
-        type FieldOptional "vertexCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vertexCount" VkDrawIndirectCommand =
-             #{offset VkDrawIndirectCommand, vertexCount}
-        type FieldIsArray "vertexCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndirectCommand, vertexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexCount" VkDrawIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, vertexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndirectCommand, vertexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexCount" VkDrawIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndirectCommand, vertexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "instanceCount" VkDrawIndirectCommand where
-        type FieldType "instanceCount" VkDrawIndirectCommand = Word32
-        type FieldOptional "instanceCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "instanceCount" VkDrawIndirectCommand =
-             #{offset VkDrawIndirectCommand, instanceCount}
-        type FieldIsArray "instanceCount" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "instanceCount" VkDrawIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, instanceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "instanceCount" VkDrawIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndirectCommand, instanceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "firstVertex" VkDrawIndirectCommand where
-        type FieldType "firstVertex" VkDrawIndirectCommand = Word32
-        type FieldOptional "firstVertex" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "firstVertex" VkDrawIndirectCommand =
-             #{offset VkDrawIndirectCommand, firstVertex}
-        type FieldIsArray "firstVertex" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndirectCommand, firstVertex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "firstVertex" VkDrawIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, firstVertex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndirectCommand, firstVertex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "firstVertex" VkDrawIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndirectCommand, firstVertex}
-
-instance {-# OVERLAPPING #-}
-         HasField "firstInstance" VkDrawIndirectCommand where
-        type FieldType "firstInstance" VkDrawIndirectCommand = Word32
-        type FieldOptional "firstInstance" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "firstInstance" VkDrawIndirectCommand =
-             #{offset VkDrawIndirectCommand, firstInstance}
-        type FieldIsArray "firstInstance" VkDrawIndirectCommand = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkDrawIndirectCommand, firstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "firstInstance" VkDrawIndirectCommand where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkDrawIndirectCommand, firstInstance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkDrawIndirectCommand, firstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "firstInstance" VkDrawIndirectCommand where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkDrawIndirectCommand, firstInstance}
-
-instance Show VkDrawIndirectCommand where
-        showsPrec d x
-          = showString "VkDrawIndirectCommand {" .
-              showString "vertexCount = " .
-                showsPrec d (getField @"vertexCount" x) .
-                  showString ", " .
-                    showString "instanceCount = " .
-                      showsPrec d (getField @"instanceCount" x) .
-                        showString ", " .
-                          showString "firstVertex = " .
-                            showsPrec d (getField @"firstVertex" x) .
-                              showString ", " .
-                                showString "firstInstance = " .
-                                  showsPrec d (getField @"firstInstance" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkEventCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkEventCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkEventCreateInfo.hsc
+++ /dev/null
@@ -1,176 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkEventCreateInfo
-       (VkEventCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkEventCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkEventCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkEventCreateFlags     flags;
---   > } VkEventCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkEventCreateInfo.html VkEventCreateInfo registry at www.khronos.org>
-data VkEventCreateInfo = VkEventCreateInfo## Addr## ByteArray##
-
-instance Eq VkEventCreateInfo where
-        (VkEventCreateInfo## a _) == x@(VkEventCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkEventCreateInfo where
-        (VkEventCreateInfo## a _) `compare` x@(VkEventCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkEventCreateInfo where
-        sizeOf ~_ = #{size VkEventCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkEventCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkEventCreateInfo where
-        unsafeAddr (VkEventCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkEventCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkEventCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkEventCreateInfo where
-        type StructFields VkEventCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkEventCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkEventCreateInfo
-         where
-        type FieldType "sType" VkEventCreateInfo = VkStructureType
-        type FieldOptional "sType" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkEventCreateInfo =
-             #{offset VkEventCreateInfo, sType}
-        type FieldIsArray "sType" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkEventCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkEventCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkEventCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkEventCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkEventCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkEventCreateInfo
-         where
-        type FieldType "pNext" VkEventCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkEventCreateInfo =
-             #{offset VkEventCreateInfo, pNext}
-        type FieldIsArray "pNext" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkEventCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkEventCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkEventCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkEventCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkEventCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkEventCreateInfo
-         where
-        type FieldType "flags" VkEventCreateInfo = VkEventCreateFlags
-        type FieldOptional "flags" VkEventCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkEventCreateInfo =
-             #{offset VkEventCreateInfo, flags}
-        type FieldIsArray "flags" VkEventCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkEventCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} CanReadField "flags" VkEventCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkEventCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkEventCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkEventCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkEventCreateInfo, flags}
-
-instance Show VkEventCreateInfo where
-        showsPrec d x
-          = showString "VkEventCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfo.hsc
+++ /dev/null
@@ -1,181 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfo
-       (VkExportFenceCreateInfo(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkFenceCreateInfo            (VkFenceCreateInfo)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportFenceCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalFenceHandleTypeFlags handleTypes;
---   > } VkExportFenceCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportFenceCreateInfo.html VkExportFenceCreateInfo registry at www.khronos.org>
-data VkExportFenceCreateInfo = VkExportFenceCreateInfo## Addr##
-                                                        ByteArray##
-
-instance Eq VkExportFenceCreateInfo where
-        (VkExportFenceCreateInfo## a _) == x@(VkExportFenceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportFenceCreateInfo where
-        (VkExportFenceCreateInfo## a _) `compare`
-          x@(VkExportFenceCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportFenceCreateInfo where
-        sizeOf ~_ = #{size VkExportFenceCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExportFenceCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportFenceCreateInfo where
-        unsafeAddr (VkExportFenceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportFenceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportFenceCreateInfo where
-        type StructFields VkExportFenceCreateInfo =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportFenceCreateInfo = '[VkFenceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportFenceCreateInfo where
-        type FieldType "sType" VkExportFenceCreateInfo = VkStructureType
-        type FieldOptional "sType" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportFenceCreateInfo =
-             #{offset VkExportFenceCreateInfo, sType}
-        type FieldIsArray "sType" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExportFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportFenceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportFenceCreateInfo where
-        type FieldType "pNext" VkExportFenceCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportFenceCreateInfo =
-             #{offset VkExportFenceCreateInfo, pNext}
-        type FieldIsArray "pNext" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExportFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportFenceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExportFenceCreateInfo where
-        type FieldType "handleTypes" VkExportFenceCreateInfo =
-             VkExternalFenceHandleTypeFlags
-        type FieldOptional "handleTypes" VkExportFenceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExportFenceCreateInfo =
-             #{offset VkExportFenceCreateInfo, handleTypes}
-        type FieldIsArray "handleTypes" VkExportFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExportFenceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceCreateInfo, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExportFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceCreateInfo, handleTypes}
-
-instance Show VkExportFenceCreateInfo where
-        showsPrec d x
-          = showString "VkExportFenceCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceCreateInfoKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfoKHR
-       (VkExportFenceCreateInfo(..), VkExportFenceCreateInfoKHR) where
-import           Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfo (VkExportFenceCreateInfo (..))
-
--- | Alias for `VkExportFenceCreateInfo`
-type VkExportFenceCreateInfoKHR = VkExportFenceCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportFenceWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,265 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportFenceWin32HandleInfoKHR
-       (VkExportFenceWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Include                  (DWORD, LPCWSTR, SECURITY_ATTRIBUTES)
-import           Graphics.Vulkan.Types.Struct.VkFenceCreateInfo (VkFenceCreateInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportFenceWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                                pNext;
---   >     const SECURITY_ATTRIBUTES* pAttributes;
---   >     DWORD                                      dwAccess;
---   >     LPCWSTR                                    name;
---   > } VkExportFenceWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportFenceWin32HandleInfoKHR.html VkExportFenceWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportFenceWin32HandleInfoKHR = VkExportFenceWin32HandleInfoKHR## Addr##
-                                                                        ByteArray##
-
-instance Eq VkExportFenceWin32HandleInfoKHR where
-        (VkExportFenceWin32HandleInfoKHR## a _) ==
-          x@(VkExportFenceWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportFenceWin32HandleInfoKHR where
-        (VkExportFenceWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportFenceWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkExportFenceWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExportFenceWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportFenceWin32HandleInfoKHR where
-        unsafeAddr (VkExportFenceWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportFenceWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportFenceWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportFenceWin32HandleInfoKHR where
-        type StructFields VkExportFenceWin32HandleInfoKHR =
-             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportFenceWin32HandleInfoKHR =
-             '[VkFenceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportFenceWin32HandleInfoKHR where
-        type FieldType "sType" VkExportFenceWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportFenceWin32HandleInfoKHR =
-             #{offset VkExportFenceWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportFenceWin32HandleInfoKHR where
-        type FieldType "pNext" VkExportFenceWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportFenceWin32HandleInfoKHR =
-             #{offset VkExportFenceWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttributes" VkExportFenceWin32HandleInfoKHR where
-        type FieldType "pAttributes" VkExportFenceWin32HandleInfoKHR =
-             Ptr SECURITY_ATTRIBUTES
-        type FieldOptional "pAttributes" VkExportFenceWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pAttributes" VkExportFenceWin32HandleInfoKHR =
-             #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
-        type FieldIsArray "pAttributes" VkExportFenceWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttributes" VkExportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, pAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttributes" VkExportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "dwAccess" VkExportFenceWin32HandleInfoKHR where
-        type FieldType "dwAccess" VkExportFenceWin32HandleInfoKHR = DWORD
-        type FieldOptional "dwAccess" VkExportFenceWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dwAccess" VkExportFenceWin32HandleInfoKHR =
-             #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
-        type FieldIsArray "dwAccess" VkExportFenceWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dwAccess" VkExportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, dwAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dwAccess" VkExportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkExportFenceWin32HandleInfoKHR where
-        type FieldType "name" VkExportFenceWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkExportFenceWin32HandleInfoKHR =
-             #{offset VkExportFenceWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkExportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportFenceWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkExportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportFenceWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportFenceWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkExportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportFenceWin32HandleInfoKHR, name}
-
-instance Show VkExportFenceWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkExportFenceWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pAttributes = " .
-                            showsPrec d (getField @"pAttributes" x) .
-                              showString ", " .
-                                showString "dwAccess = " .
-                                  showsPrec d (getField @"dwAccess" x) .
-                                    showString ", " .
-                                      showString "name = " .
-                                        showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfo.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfo
-       (VkExportMemoryAllocateInfo(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo          (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportMemoryAllocateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlags handleTypes;
---   > } VkExportMemoryAllocateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportMemoryAllocateInfo.html VkExportMemoryAllocateInfo registry at www.khronos.org>
-data VkExportMemoryAllocateInfo = VkExportMemoryAllocateInfo## Addr##
-                                                              ByteArray##
-
-instance Eq VkExportMemoryAllocateInfo where
-        (VkExportMemoryAllocateInfo## a _) ==
-          x@(VkExportMemoryAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportMemoryAllocateInfo where
-        (VkExportMemoryAllocateInfo## a _) `compare`
-          x@(VkExportMemoryAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportMemoryAllocateInfo where
-        sizeOf ~_ = #{size VkExportMemoryAllocateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExportMemoryAllocateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportMemoryAllocateInfo where
-        unsafeAddr (VkExportMemoryAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportMemoryAllocateInfo where
-        type StructFields VkExportMemoryAllocateInfo =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportMemoryAllocateInfo =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportMemoryAllocateInfo where
-        type FieldType "sType" VkExportMemoryAllocateInfo = VkStructureType
-        type FieldOptional "sType" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportMemoryAllocateInfo =
-             #{offset VkExportMemoryAllocateInfo, sType}
-        type FieldIsArray "sType" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportMemoryAllocateInfo where
-        type FieldType "pNext" VkExportMemoryAllocateInfo = Ptr Void
-        type FieldOptional "pNext" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportMemoryAllocateInfo =
-             #{offset VkExportMemoryAllocateInfo, pNext}
-        type FieldIsArray "pNext" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExportMemoryAllocateInfo where
-        type FieldType "handleTypes" VkExportMemoryAllocateInfo =
-             VkExternalMemoryHandleTypeFlags
-        type FieldOptional "handleTypes" VkExportMemoryAllocateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExportMemoryAllocateInfo =
-             #{offset VkExportMemoryAllocateInfo, handleTypes}
-        type FieldIsArray "handleTypes" VkExportMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExportMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfo, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExportMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfo, handleTypes}
-
-instance Show VkExportMemoryAllocateInfo where
-        showsPrec d x
-          = showString "VkExportMemoryAllocateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoKHR
-       (VkExportMemoryAllocateInfo(..), VkExportMemoryAllocateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfo (VkExportMemoryAllocateInfo (..))
-
--- | Alias for `VkExportMemoryAllocateInfo`
-type VkExportMemoryAllocateInfoKHR = VkExportMemoryAllocateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryAllocateInfoNV.hsc
+++ /dev/null
@@ -1,191 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoNV
-       (VkExportMemoryAllocateInfoNV(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV (VkExternalMemoryHandleTypeFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo            (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportMemoryAllocateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagsNV handleTypes;
---   > } VkExportMemoryAllocateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportMemoryAllocateInfoNV.html VkExportMemoryAllocateInfoNV registry at www.khronos.org>
-data VkExportMemoryAllocateInfoNV = VkExportMemoryAllocateInfoNV## Addr##
-                                                                  ByteArray##
-
-instance Eq VkExportMemoryAllocateInfoNV where
-        (VkExportMemoryAllocateInfoNV## a _) ==
-          x@(VkExportMemoryAllocateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportMemoryAllocateInfoNV where
-        (VkExportMemoryAllocateInfoNV## a _) `compare`
-          x@(VkExportMemoryAllocateInfoNV## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportMemoryAllocateInfoNV where
-        sizeOf ~_ = #{size VkExportMemoryAllocateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExportMemoryAllocateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportMemoryAllocateInfoNV where
-        unsafeAddr (VkExportMemoryAllocateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryAllocateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryAllocateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportMemoryAllocateInfoNV where
-        type StructFields VkExportMemoryAllocateInfoNV =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportMemoryAllocateInfoNV =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportMemoryAllocateInfoNV where
-        type FieldType "sType" VkExportMemoryAllocateInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportMemoryAllocateInfoNV =
-             #{offset VkExportMemoryAllocateInfoNV, sType}
-        type FieldIsArray "sType" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportMemoryAllocateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportMemoryAllocateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportMemoryAllocateInfoNV where
-        type FieldType "pNext" VkExportMemoryAllocateInfoNV = Ptr Void
-        type FieldOptional "pNext" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportMemoryAllocateInfoNV =
-             #{offset VkExportMemoryAllocateInfoNV, pNext}
-        type FieldIsArray "pNext" VkExportMemoryAllocateInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportMemoryAllocateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportMemoryAllocateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExportMemoryAllocateInfoNV where
-        type FieldType "handleTypes" VkExportMemoryAllocateInfoNV =
-             VkExternalMemoryHandleTypeFlagsNV
-        type FieldOptional "handleTypes" VkExportMemoryAllocateInfoNV =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExportMemoryAllocateInfoNV =
-             #{offset VkExportMemoryAllocateInfoNV, handleTypes}
-        type FieldIsArray "handleTypes" VkExportMemoryAllocateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryAllocateInfoNV, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExportMemoryAllocateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryAllocateInfoNV, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryAllocateInfoNV, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExportMemoryAllocateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryAllocateInfoNV, handleTypes}
-
-instance Show VkExportMemoryAllocateInfoNV where
-        showsPrec d x
-          = showString "VkExportMemoryAllocateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,270 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoKHR
-       (VkExportMemoryWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Include                     (DWORD,
-                                                                    LPCWSTR,
-                                                                    SECURITY_ATTRIBUTES)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportMemoryWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     const SECURITY_ATTRIBUTES* pAttributes;
---   >     DWORD                            dwAccess;
---   >     LPCWSTR                          name;
---   > } VkExportMemoryWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportMemoryWin32HandleInfoKHR.html VkExportMemoryWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportMemoryWin32HandleInfoKHR = VkExportMemoryWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
-
-instance Eq VkExportMemoryWin32HandleInfoKHR where
-        (VkExportMemoryWin32HandleInfoKHR## a _) ==
-          x@(VkExportMemoryWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportMemoryWin32HandleInfoKHR where
-        (VkExportMemoryWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportMemoryWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportMemoryWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkExportMemoryWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExportMemoryWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoKHR where
-        unsafeAddr (VkExportMemoryWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportMemoryWin32HandleInfoKHR where
-        type StructFields VkExportMemoryWin32HandleInfoKHR =
-             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportMemoryWin32HandleInfoKHR =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportMemoryWin32HandleInfoKHR where
-        type FieldType "sType" VkExportMemoryWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkExportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportMemoryWin32HandleInfoKHR =
-             #{offset VkExportMemoryWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportMemoryWin32HandleInfoKHR where
-        type FieldType "pNext" VkExportMemoryWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkExportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportMemoryWin32HandleInfoKHR =
-             #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
-        type FieldType "pAttributes" VkExportMemoryWin32HandleInfoKHR =
-             Ptr SECURITY_ATTRIBUTES
-        type FieldOptional "pAttributes" VkExportMemoryWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pAttributes" VkExportMemoryWin32HandleInfoKHR =
-             #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
-        type FieldIsArray "pAttributes" VkExportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttributes" VkExportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
-        type FieldType "dwAccess" VkExportMemoryWin32HandleInfoKHR = DWORD
-        type FieldOptional "dwAccess" VkExportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dwAccess" VkExportMemoryWin32HandleInfoKHR =
-             #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
-        type FieldIsArray "dwAccess" VkExportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dwAccess" VkExportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkExportMemoryWin32HandleInfoKHR where
-        type FieldType "name" VkExportMemoryWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkExportMemoryWin32HandleInfoKHR =
-             #{offset VkExportMemoryWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkExportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkExportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkExportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoKHR, name}
-
-instance Show VkExportMemoryWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkExportMemoryWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pAttributes = " .
-                            showsPrec d (getField @"pAttributes" x) .
-                              showString ", " .
-                                showString "dwAccess = " .
-                                  showsPrec d (getField @"dwAccess" x) .
-                                    showString ", " .
-                                      showString "name = " .
-                                        showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportMemoryWin32HandleInfoNV.hsc
+++ /dev/null
@@ -1,229 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoNV
-       (VkExportMemoryWin32HandleInfoNV(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Include                     (DWORD, SECURITY_ATTRIBUTES)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportMemoryWin32HandleInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     const SECURITY_ATTRIBUTES*       pAttributes;
---   >     DWORD                            dwAccess;
---   > } VkExportMemoryWin32HandleInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportMemoryWin32HandleInfoNV.html VkExportMemoryWin32HandleInfoNV registry at www.khronos.org>
-data VkExportMemoryWin32HandleInfoNV = VkExportMemoryWin32HandleInfoNV## Addr##
-                                                                        ByteArray##
-
-instance Eq VkExportMemoryWin32HandleInfoNV where
-        (VkExportMemoryWin32HandleInfoNV## a _) ==
-          x@(VkExportMemoryWin32HandleInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportMemoryWin32HandleInfoNV where
-        (VkExportMemoryWin32HandleInfoNV## a _) `compare`
-          x@(VkExportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportMemoryWin32HandleInfoNV where
-        sizeOf ~_ = #{size VkExportMemoryWin32HandleInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExportMemoryWin32HandleInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportMemoryWin32HandleInfoNV where
-        unsafeAddr (VkExportMemoryWin32HandleInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportMemoryWin32HandleInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportMemoryWin32HandleInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportMemoryWin32HandleInfoNV where
-        type StructFields VkExportMemoryWin32HandleInfoNV =
-             '["sType", "pNext", "pAttributes", "dwAccess"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportMemoryWin32HandleInfoNV =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportMemoryWin32HandleInfoNV where
-        type FieldType "sType" VkExportMemoryWin32HandleInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportMemoryWin32HandleInfoNV =
-             #{offset VkExportMemoryWin32HandleInfoNV, sType}
-        type FieldIsArray "sType" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportMemoryWin32HandleInfoNV where
-        type FieldType "pNext" VkExportMemoryWin32HandleInfoNV = Ptr Void
-        type FieldOptional "pNext" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportMemoryWin32HandleInfoNV =
-             #{offset VkExportMemoryWin32HandleInfoNV, pNext}
-        type FieldIsArray "pNext" VkExportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttributes" VkExportMemoryWin32HandleInfoNV where
-        type FieldType "pAttributes" VkExportMemoryWin32HandleInfoNV =
-             Ptr SECURITY_ATTRIBUTES
-        type FieldOptional "pAttributes" VkExportMemoryWin32HandleInfoNV =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pAttributes" VkExportMemoryWin32HandleInfoNV =
-             #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
-        type FieldIsArray "pAttributes" VkExportMemoryWin32HandleInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttributes" VkExportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, pAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttributes" VkExportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "dwAccess" VkExportMemoryWin32HandleInfoNV where
-        type FieldType "dwAccess" VkExportMemoryWin32HandleInfoNV = DWORD
-        type FieldOptional "dwAccess" VkExportMemoryWin32HandleInfoNV =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "dwAccess" VkExportMemoryWin32HandleInfoNV =
-             #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
-        type FieldIsArray "dwAccess" VkExportMemoryWin32HandleInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dwAccess" VkExportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportMemoryWin32HandleInfoNV, dwAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dwAccess" VkExportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportMemoryWin32HandleInfoNV, dwAccess}
-
-instance Show VkExportMemoryWin32HandleInfoNV where
-        showsPrec d x
-          = showString "VkExportMemoryWin32HandleInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pAttributes = " .
-                            showsPrec d (getField @"pAttributes" x) .
-                              showString ", " .
-                                showString "dwAccess = " .
-                                  showsPrec d (getField @"dwAccess" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfo.hsc
+++ /dev/null
@@ -1,190 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfo
-       (VkExportSemaphoreCreateInfo(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo            (VkSemaphoreCreateInfo)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportSemaphoreCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalSemaphoreHandleTypeFlags handleTypes;
---   > } VkExportSemaphoreCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportSemaphoreCreateInfo.html VkExportSemaphoreCreateInfo registry at www.khronos.org>
-data VkExportSemaphoreCreateInfo = VkExportSemaphoreCreateInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkExportSemaphoreCreateInfo where
-        (VkExportSemaphoreCreateInfo## a _) ==
-          x@(VkExportSemaphoreCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportSemaphoreCreateInfo where
-        (VkExportSemaphoreCreateInfo## a _) `compare`
-          x@(VkExportSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportSemaphoreCreateInfo where
-        sizeOf ~_ = #{size VkExportSemaphoreCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExportSemaphoreCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportSemaphoreCreateInfo where
-        unsafeAddr (VkExportSemaphoreCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportSemaphoreCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportSemaphoreCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportSemaphoreCreateInfo where
-        type StructFields VkExportSemaphoreCreateInfo =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportSemaphoreCreateInfo =
-             '[VkSemaphoreCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportSemaphoreCreateInfo where
-        type FieldType "sType" VkExportSemaphoreCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportSemaphoreCreateInfo =
-             #{offset VkExportSemaphoreCreateInfo, sType}
-        type FieldIsArray "sType" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportSemaphoreCreateInfo where
-        type FieldType "pNext" VkExportSemaphoreCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportSemaphoreCreateInfo =
-             #{offset VkExportSemaphoreCreateInfo, pNext}
-        type FieldIsArray "pNext" VkExportSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExportSemaphoreCreateInfo where
-        type FieldType "handleTypes" VkExportSemaphoreCreateInfo =
-             VkExternalSemaphoreHandleTypeFlags
-        type FieldOptional "handleTypes" VkExportSemaphoreCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExportSemaphoreCreateInfo =
-             #{offset VkExportSemaphoreCreateInfo, handleTypes}
-        type FieldIsArray "handleTypes" VkExportSemaphoreCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExportSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreCreateInfo, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExportSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreCreateInfo, handleTypes}
-
-instance Show VkExportSemaphoreCreateInfo where
-        showsPrec d x
-          = showString "VkExportSemaphoreCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreCreateInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfoKHR
-       (VkExportSemaphoreCreateInfo(..), VkExportSemaphoreCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfo (VkExportSemaphoreCreateInfo (..))
-
--- | Alias for `VkExportSemaphoreCreateInfo`
-type VkExportSemaphoreCreateInfoKHR = VkExportSemaphoreCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExportSemaphoreWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,281 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExportSemaphoreWin32HandleInfoKHR
-       (VkExportSemaphoreWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Include                      (DWORD,
-                                                                     LPCWSTR,
-                                                                     SECURITY_ATTRIBUTES)
-import           Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo (VkSemaphoreCreateInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkExportSemaphoreWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     const SECURITY_ATTRIBUTES*       pAttributes;
---   >     DWORD                            dwAccess;
---   >     LPCWSTR                          name;
---   > } VkExportSemaphoreWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExportSemaphoreWin32HandleInfoKHR.html VkExportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
-data VkExportSemaphoreWin32HandleInfoKHR = VkExportSemaphoreWin32HandleInfoKHR## Addr##
-                                                                                ByteArray##
-
-instance Eq VkExportSemaphoreWin32HandleInfoKHR where
-        (VkExportSemaphoreWin32HandleInfoKHR## a _) ==
-          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExportSemaphoreWin32HandleInfoKHR where
-        (VkExportSemaphoreWin32HandleInfoKHR## a _) `compare`
-          x@(VkExportSemaphoreWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExportSemaphoreWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkExportSemaphoreWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExportSemaphoreWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExportSemaphoreWin32HandleInfoKHR
-         where
-        unsafeAddr (VkExportSemaphoreWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExportSemaphoreWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExportSemaphoreWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExportSemaphoreWin32HandleInfoKHR where
-        type StructFields VkExportSemaphoreWin32HandleInfoKHR =
-             '["sType", "pNext", "pAttributes", "dwAccess", "name"] -- ' closing tick for hsc2hs
-        type CUnionType VkExportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExportSemaphoreWin32HandleInfoKHR =
-             '[VkSemaphoreCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExportSemaphoreWin32HandleInfoKHR where
-        type FieldType "sType" VkExportSemaphoreWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExportSemaphoreWin32HandleInfoKHR =
-             #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
-        type FieldType "pNext" VkExportSemaphoreWin32HandleInfoKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExportSemaphoreWin32HandleInfoKHR =
-             #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR where
-        type FieldType "pAttributes" VkExportSemaphoreWin32HandleInfoKHR =
-             Ptr SECURITY_ATTRIBUTES
-        type FieldOptional "pAttributes"
-               VkExportSemaphoreWin32HandleInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
-             =
-             #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
-        type FieldIsArray "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttributes" VkExportSemaphoreWin32HandleInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, pAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
-        type FieldType "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
-             DWORD
-        type FieldOptional "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
-             #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
-        type FieldIsArray "dwAccess" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dwAccess" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, dwAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkExportSemaphoreWin32HandleInfoKHR where
-        type FieldType "name" VkExportSemaphoreWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkExportSemaphoreWin32HandleInfoKHR =
-             #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkExportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExportSemaphoreWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkExportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExportSemaphoreWin32HandleInfoKHR, name}
-
-instance Show VkExportSemaphoreWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkExportSemaphoreWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pAttributes = " .
-                            showsPrec d (getField @"pAttributes" x) .
-                              showString ", " .
-                                showString "dwAccess = " .
-                                  showsPrec d (getField @"dwAccess" x) .
-                                    showString ", " .
-                                      showString "name = " .
-                                        showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExtensionProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExtensionProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExtensionProperties.hsc
+++ /dev/null
@@ -1,205 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkExtensionProperties
-       (VkExtensionProperties(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants        (VK_MAX_EXTENSION_NAME_SIZE, pattern VK_MAX_EXTENSION_NAME_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkExtensionProperties {
---   >     char            extensionName[VK_MAX_EXTENSION_NAME_SIZE];
---   >     uint32_t        specVersion;
---   > } VkExtensionProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExtensionProperties.html VkExtensionProperties registry at www.khronos.org>
-data VkExtensionProperties = VkExtensionProperties## Addr##
-                                                    ByteArray##
-
-instance Eq VkExtensionProperties where
-        (VkExtensionProperties## a _) == x@(VkExtensionProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExtensionProperties where
-        (VkExtensionProperties## a _) `compare`
-          x@(VkExtensionProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExtensionProperties where
-        sizeOf ~_ = #{size VkExtensionProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExtensionProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExtensionProperties where
-        unsafeAddr (VkExtensionProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtensionProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtensionProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExtensionProperties where
-        type StructFields VkExtensionProperties =
-             '["extensionName", "specVersion"] -- ' closing tick for hsc2hs
-        type CUnionType VkExtensionProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExtensionProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExtensionProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "extensionName" VkExtensionProperties where
-        type FieldType "extensionName" VkExtensionProperties = CChar
-        type FieldOptional "extensionName" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extensionName" VkExtensionProperties =
-             #{offset VkExtensionProperties, extensionName}
-        type FieldIsArray "extensionName" VkExtensionProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExtensionProperties, extensionName}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "extensionName" idx VkExtensionProperties) =>
-         CanReadFieldArray "extensionName" idx VkExtensionProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "extensionName" 0 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "extensionName" 1 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "extensionName" 2 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "extensionName" 3 VkExtensionProperties #-}
-        type FieldArrayLength "extensionName" VkExtensionProperties =
-             VK_MAX_EXTENSION_NAME_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkExtensionProperties, extensionName} +
-                      sizeOf (undefined :: CChar) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkExtensionProperties, extensionName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "extensionName" idx VkExtensionProperties) =>
-         CanWriteFieldArray "extensionName" idx VkExtensionProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "extensionName" 0 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "extensionName" 1 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "extensionName" 2 VkExtensionProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "extensionName" 3 VkExtensionProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkExtensionProperties, extensionName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "specVersion" VkExtensionProperties where
-        type FieldType "specVersion" VkExtensionProperties = Word32
-        type FieldOptional "specVersion" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "specVersion" VkExtensionProperties =
-             #{offset VkExtensionProperties, specVersion}
-        type FieldIsArray "specVersion" VkExtensionProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExtensionProperties, specVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "specVersion" VkExtensionProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtensionProperties, specVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExtensionProperties, specVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "specVersion" VkExtensionProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtensionProperties, specVersion}
-
-instance Show VkExtensionProperties where
-        showsPrec d x
-          = showString "VkExtensionProperties {" .
-              (showString "extensionName = [" .
-                 showsPrec d
-                   (let s = sizeOf
-                              (undefined :: FieldType "extensionName" VkExtensionProperties)
-                        o = fieldOffset @"extensionName" @VkExtensionProperties
-                        f i
-                          = peekByteOff (unsafePtr x) i ::
-                              IO (FieldType "extensionName" VkExtensionProperties)
-                      in
-                      unsafeDupablePerformIO . mapM f $
-                        map (\ i -> o + i * s) [0 .. VK_MAX_EXTENSION_NAME_SIZE - 1])
-                   . showChar ']')
-                .
-                showString ", " .
-                  showString "specVersion = " .
-                    showsPrec d (getField @"specVersion" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExtent2D.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExtent2D.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExtent2D.hsc
+++ /dev/null
@@ -1,133 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExtent2D (VkExtent2D(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkExtent2D {
---   >     uint32_t        width;
---   >     uint32_t        height;
---   > } VkExtent2D;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExtent2D.html VkExtent2D registry at www.khronos.org>
-data VkExtent2D = VkExtent2D## Addr## ByteArray##
-
-instance Eq VkExtent2D where
-        (VkExtent2D## a _) == x@(VkExtent2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExtent2D where
-        (VkExtent2D## a _) `compare` x@(VkExtent2D## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExtent2D where
-        sizeOf ~_ = #{size VkExtent2D}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExtent2D}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExtent2D where
-        unsafeAddr (VkExtent2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtent2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtent2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExtent2D where
-        type StructFields VkExtent2D = '["width", "height"] -- ' closing tick for hsc2hs
-        type CUnionType VkExtent2D = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExtent2D = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExtent2D = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "width" VkExtent2D where
-        type FieldType "width" VkExtent2D = Word32
-        type FieldOptional "width" VkExtent2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "width" VkExtent2D =
-             #{offset VkExtent2D, width}
-        type FieldIsArray "width" VkExtent2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExtent2D, width}
-
-instance {-# OVERLAPPING #-} CanReadField "width" VkExtent2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtent2D, width})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkExtent2D, width}
-
-instance {-# OVERLAPPING #-} CanWriteField "width" VkExtent2D where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtent2D, width}
-
-instance {-# OVERLAPPING #-} HasField "height" VkExtent2D where
-        type FieldType "height" VkExtent2D = Word32
-        type FieldOptional "height" VkExtent2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "height" VkExtent2D =
-             #{offset VkExtent2D, height}
-        type FieldIsArray "height" VkExtent2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExtent2D, height}
-
-instance {-# OVERLAPPING #-} CanReadField "height" VkExtent2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtent2D, height})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExtent2D, height}
-
-instance {-# OVERLAPPING #-} CanWriteField "height" VkExtent2D
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtent2D, height}
-
-instance Show VkExtent2D where
-        showsPrec d x
-          = showString "VkExtent2D {" .
-              showString "width = " .
-                showsPrec d (getField @"width" x) .
-                  showString ", " .
-                    showString "height = " .
-                      showsPrec d (getField @"height" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExtent3D.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExtent3D.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExtent3D.hsc
+++ /dev/null
@@ -1,164 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExtent3D (VkExtent3D(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkExtent3D {
---   >     uint32_t        width;
---   >     uint32_t        height;
---   >     uint32_t        depth;
---   > } VkExtent3D;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExtent3D.html VkExtent3D registry at www.khronos.org>
-data VkExtent3D = VkExtent3D## Addr## ByteArray##
-
-instance Eq VkExtent3D where
-        (VkExtent3D## a _) == x@(VkExtent3D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExtent3D where
-        (VkExtent3D## a _) `compare` x@(VkExtent3D## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExtent3D where
-        sizeOf ~_ = #{size VkExtent3D}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExtent3D}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExtent3D where
-        unsafeAddr (VkExtent3D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExtent3D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExtent3D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExtent3D where
-        type StructFields VkExtent3D = '["width", "height", "depth"] -- ' closing tick for hsc2hs
-        type CUnionType VkExtent3D = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExtent3D = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExtent3D = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "width" VkExtent3D where
-        type FieldType "width" VkExtent3D = Word32
-        type FieldOptional "width" VkExtent3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "width" VkExtent3D =
-             #{offset VkExtent3D, width}
-        type FieldIsArray "width" VkExtent3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExtent3D, width}
-
-instance {-# OVERLAPPING #-} CanReadField "width" VkExtent3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtent3D, width})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkExtent3D, width}
-
-instance {-# OVERLAPPING #-} CanWriteField "width" VkExtent3D where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtent3D, width}
-
-instance {-# OVERLAPPING #-} HasField "height" VkExtent3D where
-        type FieldType "height" VkExtent3D = Word32
-        type FieldOptional "height" VkExtent3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "height" VkExtent3D =
-             #{offset VkExtent3D, height}
-        type FieldIsArray "height" VkExtent3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExtent3D, height}
-
-instance {-# OVERLAPPING #-} CanReadField "height" VkExtent3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtent3D, height})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExtent3D, height}
-
-instance {-# OVERLAPPING #-} CanWriteField "height" VkExtent3D
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtent3D, height}
-
-instance {-# OVERLAPPING #-} HasField "depth" VkExtent3D where
-        type FieldType "depth" VkExtent3D = Word32
-        type FieldOptional "depth" VkExtent3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depth" VkExtent3D =
-             #{offset VkExtent3D, depth}
-        type FieldIsArray "depth" VkExtent3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExtent3D, depth}
-
-instance {-# OVERLAPPING #-} CanReadField "depth" VkExtent3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExtent3D, depth})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkExtent3D, depth}
-
-instance {-# OVERLAPPING #-} CanWriteField "depth" VkExtent3D where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExtent3D, depth}
-
-instance Show VkExtent3D where
-        showsPrec d x
-          = showString "VkExtent3D {" .
-              showString "width = " .
-                showsPrec d (getField @"width" x) .
-                  showString ", " .
-                    showString "height = " .
-                      showsPrec d (getField @"height" x) .
-                        showString ", " .
-                          showString "depth = " .
-                            showsPrec d (getField @"depth" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferProperties.hsc
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalBufferProperties
-       (VkExternalBufferProperties(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType              (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties (VkExternalMemoryProperties)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalBufferProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkExternalMemoryProperties    externalMemoryProperties;
---   > } VkExternalBufferProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalBufferProperties.html VkExternalBufferProperties registry at www.khronos.org>
-data VkExternalBufferProperties = VkExternalBufferProperties## Addr##
-                                                              ByteArray##
-
-instance Eq VkExternalBufferProperties where
-        (VkExternalBufferProperties## a _) ==
-          x@(VkExternalBufferProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalBufferProperties where
-        (VkExternalBufferProperties## a _) `compare`
-          x@(VkExternalBufferProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalBufferProperties where
-        sizeOf ~_ = #{size VkExternalBufferProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExternalBufferProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalBufferProperties where
-        unsafeAddr (VkExternalBufferProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalBufferProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalBufferProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalBufferProperties where
-        type StructFields VkExternalBufferProperties =
-             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalBufferProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalBufferProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalBufferProperties where
-        type FieldType "sType" VkExternalBufferProperties = VkStructureType
-        type FieldOptional "sType" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalBufferProperties =
-             #{offset VkExternalBufferProperties, sType}
-        type FieldIsArray "sType" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalBufferProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalBufferProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalBufferProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalBufferProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalBufferProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalBufferProperties where
-        type FieldType "pNext" VkExternalBufferProperties = Ptr Void
-        type FieldOptional "pNext" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalBufferProperties =
-             #{offset VkExternalBufferProperties, pNext}
-        type FieldIsArray "pNext" VkExternalBufferProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalBufferProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalBufferProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalBufferProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalBufferProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalBufferProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalMemoryProperties" VkExternalBufferProperties
-         where
-        type FieldType "externalMemoryProperties"
-               VkExternalBufferProperties
-             = VkExternalMemoryProperties
-        type FieldOptional "externalMemoryProperties"
-               VkExternalBufferProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "externalMemoryProperties"
-               VkExternalBufferProperties
-             =
-             #{offset VkExternalBufferProperties, externalMemoryProperties}
-        type FieldIsArray "externalMemoryProperties"
-               VkExternalBufferProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalBufferProperties, externalMemoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalMemoryProperties" VkExternalBufferProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalBufferProperties, externalMemoryProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalBufferProperties, externalMemoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalMemoryProperties" VkExternalBufferProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalBufferProperties, externalMemoryProperties}
-
-instance Show VkExternalBufferProperties where
-        showsPrec d x
-          = showString "VkExternalBufferProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "externalMemoryProperties = " .
-                            showsPrec d (getField @"externalMemoryProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalBufferPropertiesKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalBufferPropertiesKHR
-       (VkExternalBufferProperties(..), VkExternalBufferPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalBufferProperties (VkExternalBufferProperties (..))
-
--- | Alias for `VkExternalBufferProperties`
-type VkExternalBufferPropertiesKHR = VkExternalBufferProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFenceProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFenceProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFenceProperties.hsc
+++ /dev/null
@@ -1,284 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalFenceProperties
-       (VkExternalFenceProperties(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags    (VkExternalFenceFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalFenceProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
---   >     VkExternalFenceHandleTypeFlags compatibleHandleTypes;
---   >     VkExternalFenceFeatureFlags externalFenceFeatures;
---   > } VkExternalFenceProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalFenceProperties.html VkExternalFenceProperties registry at www.khronos.org>
-data VkExternalFenceProperties = VkExternalFenceProperties## Addr##
-                                                            ByteArray##
-
-instance Eq VkExternalFenceProperties where
-        (VkExternalFenceProperties## a _) ==
-          x@(VkExternalFenceProperties## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalFenceProperties where
-        (VkExternalFenceProperties## a _) `compare`
-          x@(VkExternalFenceProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalFenceProperties where
-        sizeOf ~_ = #{size VkExternalFenceProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExternalFenceProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalFenceProperties where
-        unsafeAddr (VkExternalFenceProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalFenceProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalFenceProperties## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalFenceProperties where
-        type StructFields VkExternalFenceProperties =
-             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
-               "compatibleHandleTypes", "externalFenceFeatures"]
-        type CUnionType VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalFenceProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalFenceProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalFenceProperties where
-        type FieldType "sType" VkExternalFenceProperties = VkStructureType
-        type FieldOptional "sType" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalFenceProperties =
-             #{offset VkExternalFenceProperties, sType}
-        type FieldIsArray "sType" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFenceProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalFenceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFenceProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalFenceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFenceProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalFenceProperties where
-        type FieldType "pNext" VkExternalFenceProperties = Ptr Void
-        type FieldOptional "pNext" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalFenceProperties =
-             #{offset VkExternalFenceProperties, pNext}
-        type FieldIsArray "pNext" VkExternalFenceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFenceProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalFenceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFenceProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalFenceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFenceProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "exportFromImportedHandleTypes" VkExternalFenceProperties
-         where
-        type FieldType "exportFromImportedHandleTypes"
-               VkExternalFenceProperties
-             = VkExternalFenceHandleTypeFlags
-        type FieldOptional "exportFromImportedHandleTypes"
-               VkExternalFenceProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "exportFromImportedHandleTypes"
-               VkExternalFenceProperties
-             =
-             #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
-        type FieldIsArray "exportFromImportedHandleTypes"
-               VkExternalFenceProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "exportFromImportedHandleTypes"
-           VkExternalFenceProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, exportFromImportedHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "exportFromImportedHandleTypes"
-           VkExternalFenceProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFenceProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "compatibleHandleTypes" VkExternalFenceProperties where
-        type FieldType "compatibleHandleTypes" VkExternalFenceProperties =
-             VkExternalFenceHandleTypeFlags
-        type FieldOptional "compatibleHandleTypes"
-               VkExternalFenceProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compatibleHandleTypes" VkExternalFenceProperties
-             =
-             #{offset VkExternalFenceProperties, compatibleHandleTypes}
-        type FieldIsArray "compatibleHandleTypes" VkExternalFenceProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFenceProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compatibleHandleTypes" VkExternalFenceProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, compatibleHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFenceProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compatibleHandleTypes" VkExternalFenceProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFenceProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalFenceFeatures" VkExternalFenceProperties where
-        type FieldType "externalFenceFeatures" VkExternalFenceProperties =
-             VkExternalFenceFeatureFlags
-        type FieldOptional "externalFenceFeatures"
-               VkExternalFenceProperties
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "externalFenceFeatures" VkExternalFenceProperties
-             =
-             #{offset VkExternalFenceProperties, externalFenceFeatures}
-        type FieldIsArray "externalFenceFeatures" VkExternalFenceProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFenceProperties, externalFenceFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalFenceFeatures" VkExternalFenceProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFenceProperties, externalFenceFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFenceProperties, externalFenceFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalFenceFeatures" VkExternalFenceProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFenceProperties, externalFenceFeatures}
-
-instance Show VkExternalFenceProperties where
-        showsPrec d x
-          = showString "VkExternalFenceProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "exportFromImportedHandleTypes = " .
-                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
-                              showString ", " .
-                                showString "compatibleHandleTypes = " .
-                                  showsPrec d (getField @"compatibleHandleTypes" x) .
-                                    showString ", " .
-                                      showString "externalFenceFeatures = " .
-                                        showsPrec d (getField @"externalFenceFeatures" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFencePropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFencePropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFencePropertiesKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalFencePropertiesKHR
-       (VkExternalFenceProperties(..), VkExternalFencePropertiesKHR) where
-import           Graphics.Vulkan.Types.Struct.VkExternalFenceProperties (VkExternalFenceProperties (..))
-
--- | Alias for `VkExternalFenceProperties`
-type VkExternalFencePropertiesKHR = VkExternalFenceProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFormatANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFormatANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalFormatANDROID.hsc
+++ /dev/null
@@ -1,182 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalFormatANDROID
-       (VkExternalFormatANDROID(..)) where
-import           Foreign.Storable                                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo                  (VkImageCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo (VkSamplerYcbcrConversionCreateInfo)
-import           System.IO.Unsafe                                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalFormatANDROID {
---   >     VkStructureType sType;
---   >     void*                              pNext;
---   >     uint64_t                           externalFormat;
---   > } VkExternalFormatANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalFormatANDROID.html VkExternalFormatANDROID registry at www.khronos.org>
-data VkExternalFormatANDROID = VkExternalFormatANDROID## Addr##
-                                                        ByteArray##
-
-instance Eq VkExternalFormatANDROID where
-        (VkExternalFormatANDROID## a _) == x@(VkExternalFormatANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalFormatANDROID where
-        (VkExternalFormatANDROID## a _) `compare`
-          x@(VkExternalFormatANDROID## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalFormatANDROID where
-        sizeOf ~_ = #{size VkExternalFormatANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExternalFormatANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalFormatANDROID where
-        unsafeAddr (VkExternalFormatANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalFormatANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalFormatANDROID## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalFormatANDROID where
-        type StructFields VkExternalFormatANDROID =
-             '["sType", "pNext", "externalFormat"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExternalFormatANDROID =
-             '[VkImageCreateInfo, VkSamplerYcbcrConversionCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalFormatANDROID where
-        type FieldType "sType" VkExternalFormatANDROID = VkStructureType
-        type FieldOptional "sType" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalFormatANDROID =
-             #{offset VkExternalFormatANDROID, sType}
-        type FieldIsArray "sType" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExternalFormatANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalFormatANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFormatANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalFormatANDROID where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFormatANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalFormatANDROID where
-        type FieldType "pNext" VkExternalFormatANDROID = Ptr Void
-        type FieldOptional "pNext" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalFormatANDROID =
-             #{offset VkExternalFormatANDROID, pNext}
-        type FieldIsArray "pNext" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkExternalFormatANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalFormatANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFormatANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalFormatANDROID where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFormatANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalFormat" VkExternalFormatANDROID where
-        type FieldType "externalFormat" VkExternalFormatANDROID = Word64
-        type FieldOptional "externalFormat" VkExternalFormatANDROID =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "externalFormat" VkExternalFormatANDROID =
-             #{offset VkExternalFormatANDROID, externalFormat}
-        type FieldIsArray "externalFormat" VkExternalFormatANDROID = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalFormatANDROID, externalFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalFormat" VkExternalFormatANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalFormatANDROID, externalFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalFormatANDROID, externalFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalFormat" VkExternalFormatANDROID where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalFormatANDROID, externalFormat}
-
-instance Show VkExternalFormatANDROID where
-        showsPrec d x
-          = showString "VkExternalFormatANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "externalFormat = " .
-                            showsPrec d (getField @"externalFormat" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatProperties.hsc
+++ /dev/null
@@ -1,201 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalImageFormatProperties
-       (VkExternalImageFormatProperties(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType              (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties (VkExternalMemoryProperties)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2   (VkImageFormatProperties2)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalImageFormatProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkExternalMemoryProperties externalMemoryProperties;
---   > } VkExternalImageFormatProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalImageFormatProperties.html VkExternalImageFormatProperties registry at www.khronos.org>
-data VkExternalImageFormatProperties = VkExternalImageFormatProperties## Addr##
-                                                                        ByteArray##
-
-instance Eq VkExternalImageFormatProperties where
-        (VkExternalImageFormatProperties## a _) ==
-          x@(VkExternalImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalImageFormatProperties where
-        (VkExternalImageFormatProperties## a _) `compare`
-          x@(VkExternalImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalImageFormatProperties where
-        sizeOf ~_ = #{size VkExternalImageFormatProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalImageFormatProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalImageFormatProperties where
-        unsafeAddr (VkExternalImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalImageFormatProperties where
-        type StructFields VkExternalImageFormatProperties =
-             '["sType", "pNext", "externalMemoryProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalImageFormatProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalImageFormatProperties =
-             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalImageFormatProperties where
-        type FieldType "sType" VkExternalImageFormatProperties =
-             VkStructureType
-        type FieldOptional "sType" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalImageFormatProperties =
-             #{offset VkExternalImageFormatProperties, sType}
-        type FieldIsArray "sType" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalImageFormatProperties where
-        type FieldType "pNext" VkExternalImageFormatProperties = Ptr Void
-        type FieldOptional "pNext" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalImageFormatProperties =
-             #{offset VkExternalImageFormatProperties, pNext}
-        type FieldIsArray "pNext" VkExternalImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalMemoryProperties" VkExternalImageFormatProperties
-         where
-        type FieldType "externalMemoryProperties"
-               VkExternalImageFormatProperties
-             = VkExternalMemoryProperties
-        type FieldOptional "externalMemoryProperties"
-               VkExternalImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "externalMemoryProperties"
-               VkExternalImageFormatProperties
-             =
-             #{offset VkExternalImageFormatProperties, externalMemoryProperties}
-        type FieldIsArray "externalMemoryProperties"
-               VkExternalImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatProperties, externalMemoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalMemoryProperties"
-           VkExternalImageFormatProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatProperties, externalMemoryProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatProperties, externalMemoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalMemoryProperties"
-           VkExternalImageFormatProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatProperties, externalMemoryProperties}
-
-instance Show VkExternalImageFormatProperties where
-        showsPrec d x
-          = showString "VkExternalImageFormatProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "externalMemoryProperties = " .
-                            showsPrec d (getField @"externalMemoryProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesKHR
-       (VkExternalImageFormatProperties(..),
-        VkExternalImageFormatPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalImageFormatProperties (VkExternalImageFormatProperties (..))
-
--- | Alias for `VkExternalImageFormatProperties`
-type VkExternalImageFormatPropertiesKHR =
-     VkExternalImageFormatProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalImageFormatPropertiesNV.hsc
+++ /dev/null
@@ -1,277 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesNV
-       (VkExternalImageFormatPropertiesNV(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagsNV    (VkExternalMemoryFeatureFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV (VkExternalMemoryHandleTypeFlagsNV)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties         (VkImageFormatProperties)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalImageFormatPropertiesNV {
---   >     VkImageFormatProperties          imageFormatProperties;
---   >     VkExternalMemoryFeatureFlagsNV   externalMemoryFeatures;
---   >     VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
---   >     VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
---   > } VkExternalImageFormatPropertiesNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalImageFormatPropertiesNV.html VkExternalImageFormatPropertiesNV registry at www.khronos.org>
-data VkExternalImageFormatPropertiesNV = VkExternalImageFormatPropertiesNV## Addr##
-                                                                            ByteArray##
-
-instance Eq VkExternalImageFormatPropertiesNV where
-        (VkExternalImageFormatPropertiesNV## a _) ==
-          x@(VkExternalImageFormatPropertiesNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalImageFormatPropertiesNV where
-        (VkExternalImageFormatPropertiesNV## a _) `compare`
-          x@(VkExternalImageFormatPropertiesNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalImageFormatPropertiesNV where
-        sizeOf ~_ = #{size VkExternalImageFormatPropertiesNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalImageFormatPropertiesNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalImageFormatPropertiesNV where
-        unsafeAddr (VkExternalImageFormatPropertiesNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalImageFormatPropertiesNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalImageFormatPropertiesNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalImageFormatPropertiesNV where
-        type StructFields VkExternalImageFormatPropertiesNV =
-             '["imageFormatProperties", "externalMemoryFeatures", -- ' closing tick for hsc2hs
-               "exportFromImportedHandleTypes", "compatibleHandleTypes"]
-        type CUnionType VkExternalImageFormatPropertiesNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalImageFormatPropertiesNV = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalImageFormatPropertiesNV = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "imageFormatProperties" VkExternalImageFormatPropertiesNV
-         where
-        type FieldType "imageFormatProperties"
-               VkExternalImageFormatPropertiesNV
-             = VkImageFormatProperties
-        type FieldOptional "imageFormatProperties"
-               VkExternalImageFormatPropertiesNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageFormatProperties"
-               VkExternalImageFormatPropertiesNV
-             =
-             #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
-        type FieldIsArray "imageFormatProperties"
-               VkExternalImageFormatPropertiesNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageFormatProperties"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageFormatProperties"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, imageFormatProperties}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalMemoryFeatures" VkExternalImageFormatPropertiesNV
-         where
-        type FieldType "externalMemoryFeatures"
-               VkExternalImageFormatPropertiesNV
-             = VkExternalMemoryFeatureFlagsNV
-        type FieldOptional "externalMemoryFeatures"
-               VkExternalImageFormatPropertiesNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "externalMemoryFeatures"
-               VkExternalImageFormatPropertiesNV
-             =
-             #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
-        type FieldIsArray "externalMemoryFeatures"
-               VkExternalImageFormatPropertiesNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalMemoryFeatures"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalMemoryFeatures"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         HasField "exportFromImportedHandleTypes"
-           VkExternalImageFormatPropertiesNV
-         where
-        type FieldType "exportFromImportedHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = VkExternalMemoryHandleTypeFlagsNV
-        type FieldOptional "exportFromImportedHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "exportFromImportedHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             =
-             #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
-        type FieldIsArray "exportFromImportedHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "exportFromImportedHandleTypes"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "exportFromImportedHandleTypes"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "compatibleHandleTypes" VkExternalImageFormatPropertiesNV
-         where
-        type FieldType "compatibleHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = VkExternalMemoryHandleTypeFlagsNV
-        type FieldOptional "compatibleHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "compatibleHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             =
-             #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
-        type FieldIsArray "compatibleHandleTypes"
-               VkExternalImageFormatPropertiesNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compatibleHandleTypes"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compatibleHandleTypes"
-           VkExternalImageFormatPropertiesNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalImageFormatPropertiesNV, compatibleHandleTypes}
-
-instance Show VkExternalImageFormatPropertiesNV where
-        showsPrec d x
-          = showString "VkExternalImageFormatPropertiesNV {" .
-              showString "imageFormatProperties = " .
-                showsPrec d (getField @"imageFormatProperties" x) .
-                  showString ", " .
-                    showString "externalMemoryFeatures = " .
-                      showsPrec d (getField @"externalMemoryFeatures" x) .
-                        showString ", " .
-                          showString "exportFromImportedHandleTypes = " .
-                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
-                              showString ", " .
-                                showString "compatibleHandleTypes = " .
-                                  showsPrec d (getField @"compatibleHandleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfo.hsc
+++ /dev/null
@@ -1,194 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfo
-       (VkExternalMemoryBufferCreateInfo(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkBufferCreateInfo            (VkBufferCreateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalMemoryBufferCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlags handleTypes;
---   > } VkExternalMemoryBufferCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalMemoryBufferCreateInfo.html VkExternalMemoryBufferCreateInfo registry at www.khronos.org>
-data VkExternalMemoryBufferCreateInfo = VkExternalMemoryBufferCreateInfo## Addr##
-                                                                          ByteArray##
-
-instance Eq VkExternalMemoryBufferCreateInfo where
-        (VkExternalMemoryBufferCreateInfo## a _) ==
-          x@(VkExternalMemoryBufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalMemoryBufferCreateInfo where
-        (VkExternalMemoryBufferCreateInfo## a _) `compare`
-          x@(VkExternalMemoryBufferCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalMemoryBufferCreateInfo where
-        sizeOf ~_ = #{size VkExternalMemoryBufferCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalMemoryBufferCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalMemoryBufferCreateInfo where
-        unsafeAddr (VkExternalMemoryBufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryBufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryBufferCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalMemoryBufferCreateInfo where
-        type StructFields VkExternalMemoryBufferCreateInfo =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExternalMemoryBufferCreateInfo =
-             '[VkBufferCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalMemoryBufferCreateInfo where
-        type FieldType "sType" VkExternalMemoryBufferCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkExternalMemoryBufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalMemoryBufferCreateInfo =
-             #{offset VkExternalMemoryBufferCreateInfo, sType}
-        type FieldIsArray "sType" VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalMemoryBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalMemoryBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalMemoryBufferCreateInfo where
-        type FieldType "pNext" VkExternalMemoryBufferCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkExternalMemoryBufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalMemoryBufferCreateInfo =
-             #{offset VkExternalMemoryBufferCreateInfo, pNext}
-        type FieldIsArray "pNext" VkExternalMemoryBufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalMemoryBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalMemoryBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExternalMemoryBufferCreateInfo where
-        type FieldType "handleTypes" VkExternalMemoryBufferCreateInfo =
-             VkExternalMemoryHandleTypeFlags
-        type FieldOptional "handleTypes" VkExternalMemoryBufferCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExternalMemoryBufferCreateInfo =
-             #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
-        type FieldIsArray "handleTypes" VkExternalMemoryBufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExternalMemoryBufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryBufferCreateInfo, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExternalMemoryBufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryBufferCreateInfo, handleTypes}
-
-instance Show VkExternalMemoryBufferCreateInfo where
-        showsPrec d x
-          = showString "VkExternalMemoryBufferCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryBufferCreateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfoKHR
-       (VkExternalMemoryBufferCreateInfo(..),
-        VkExternalMemoryBufferCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfo (VkExternalMemoryBufferCreateInfo (..))
-
--- | Alias for `VkExternalMemoryBufferCreateInfo`
-type VkExternalMemoryBufferCreateInfoKHR =
-     VkExternalMemoryBufferCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfo.hsc
+++ /dev/null
@@ -1,191 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfo
-       (VkExternalMemoryImageCreateInfo(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo             (VkImageCreateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalMemoryImageCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlags handleTypes;
---   > } VkExternalMemoryImageCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalMemoryImageCreateInfo.html VkExternalMemoryImageCreateInfo registry at www.khronos.org>
-data VkExternalMemoryImageCreateInfo = VkExternalMemoryImageCreateInfo## Addr##
-                                                                        ByteArray##
-
-instance Eq VkExternalMemoryImageCreateInfo where
-        (VkExternalMemoryImageCreateInfo## a _) ==
-          x@(VkExternalMemoryImageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalMemoryImageCreateInfo where
-        (VkExternalMemoryImageCreateInfo## a _) `compare`
-          x@(VkExternalMemoryImageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalMemoryImageCreateInfo where
-        sizeOf ~_ = #{size VkExternalMemoryImageCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalMemoryImageCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalMemoryImageCreateInfo where
-        unsafeAddr (VkExternalMemoryImageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryImageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryImageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalMemoryImageCreateInfo where
-        type StructFields VkExternalMemoryImageCreateInfo =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExternalMemoryImageCreateInfo =
-             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalMemoryImageCreateInfo where
-        type FieldType "sType" VkExternalMemoryImageCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalMemoryImageCreateInfo =
-             #{offset VkExternalMemoryImageCreateInfo, sType}
-        type FieldIsArray "sType" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalMemoryImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalMemoryImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalMemoryImageCreateInfo where
-        type FieldType "pNext" VkExternalMemoryImageCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalMemoryImageCreateInfo =
-             #{offset VkExternalMemoryImageCreateInfo, pNext}
-        type FieldIsArray "pNext" VkExternalMemoryImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalMemoryImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalMemoryImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExternalMemoryImageCreateInfo where
-        type FieldType "handleTypes" VkExternalMemoryImageCreateInfo =
-             VkExternalMemoryHandleTypeFlags
-        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfo =
-             #{offset VkExternalMemoryImageCreateInfo, handleTypes}
-        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExternalMemoryImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfo, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfo, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfo, handleTypes}
-
-instance Show VkExternalMemoryImageCreateInfo where
-        showsPrec d x
-          = showString "VkExternalMemoryImageCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoKHR
-       (VkExternalMemoryImageCreateInfo(..),
-        VkExternalMemoryImageCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfo (VkExternalMemoryImageCreateInfo (..))
-
--- | Alias for `VkExternalMemoryImageCreateInfo`
-type VkExternalMemoryImageCreateInfoKHR =
-     VkExternalMemoryImageCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryImageCreateInfoNV.hsc
+++ /dev/null
@@ -1,196 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoNV
-       (VkExternalMemoryImageCreateInfoNV(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV (VkExternalMemoryHandleTypeFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo               (VkImageCreateInfo)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalMemoryImageCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagsNV handleTypes;
---   > } VkExternalMemoryImageCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalMemoryImageCreateInfoNV.html VkExternalMemoryImageCreateInfoNV registry at www.khronos.org>
-data VkExternalMemoryImageCreateInfoNV = VkExternalMemoryImageCreateInfoNV## Addr##
-                                                                            ByteArray##
-
-instance Eq VkExternalMemoryImageCreateInfoNV where
-        (VkExternalMemoryImageCreateInfoNV## a _) ==
-          x@(VkExternalMemoryImageCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalMemoryImageCreateInfoNV where
-        (VkExternalMemoryImageCreateInfoNV## a _) `compare`
-          x@(VkExternalMemoryImageCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalMemoryImageCreateInfoNV where
-        sizeOf ~_ = #{size VkExternalMemoryImageCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalMemoryImageCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalMemoryImageCreateInfoNV where
-        unsafeAddr (VkExternalMemoryImageCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryImageCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryImageCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalMemoryImageCreateInfoNV where
-        type StructFields VkExternalMemoryImageCreateInfoNV =
-             '["sType", "pNext", "handleTypes"] -- ' closing tick for hsc2hs
-        type CUnionType VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalMemoryImageCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkExternalMemoryImageCreateInfoNV =
-             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalMemoryImageCreateInfoNV where
-        type FieldType "sType" VkExternalMemoryImageCreateInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkExternalMemoryImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalMemoryImageCreateInfoNV =
-             #{offset VkExternalMemoryImageCreateInfoNV, sType}
-        type FieldIsArray "sType" VkExternalMemoryImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalMemoryImageCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalMemoryImageCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalMemoryImageCreateInfoNV where
-        type FieldType "pNext" VkExternalMemoryImageCreateInfoNV = Ptr Void
-        type FieldOptional "pNext" VkExternalMemoryImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalMemoryImageCreateInfoNV =
-             #{offset VkExternalMemoryImageCreateInfoNV, pNext}
-        type FieldIsArray "pNext" VkExternalMemoryImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalMemoryImageCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalMemoryImageCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleTypes" VkExternalMemoryImageCreateInfoNV where
-        type FieldType "handleTypes" VkExternalMemoryImageCreateInfoNV =
-             VkExternalMemoryHandleTypeFlagsNV
-        type FieldOptional "handleTypes" VkExternalMemoryImageCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleTypes" VkExternalMemoryImageCreateInfoNV =
-             #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
-        type FieldIsArray "handleTypes" VkExternalMemoryImageCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleTypes" VkExternalMemoryImageCreateInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryImageCreateInfoNV, handleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleTypes" VkExternalMemoryImageCreateInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryImageCreateInfoNV, handleTypes}
-
-instance Show VkExternalMemoryImageCreateInfoNV where
-        showsPrec d x
-          = showString "VkExternalMemoryImageCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleTypes = " .
-                            showsPrec d (getField @"handleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryProperties.hsc
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties
-       (VkExternalMemoryProperties(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags    (VkExternalMemoryFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlags)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalMemoryProperties {
---   >     VkExternalMemoryFeatureFlags  externalMemoryFeatures;
---   >     VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
---   >     VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
---   > } VkExternalMemoryProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalMemoryProperties.html VkExternalMemoryProperties registry at www.khronos.org>
-data VkExternalMemoryProperties = VkExternalMemoryProperties## Addr##
-                                                              ByteArray##
-
-instance Eq VkExternalMemoryProperties where
-        (VkExternalMemoryProperties## a _) ==
-          x@(VkExternalMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalMemoryProperties where
-        (VkExternalMemoryProperties## a _) `compare`
-          x@(VkExternalMemoryProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalMemoryProperties where
-        sizeOf ~_ = #{size VkExternalMemoryProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkExternalMemoryProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalMemoryProperties where
-        unsafeAddr (VkExternalMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalMemoryProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalMemoryProperties where
-        type StructFields VkExternalMemoryProperties =
-             '["externalMemoryFeatures", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
-               "compatibleHandleTypes"]
-        type CUnionType VkExternalMemoryProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalMemoryProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalMemoryProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "externalMemoryFeatures" VkExternalMemoryProperties where
-        type FieldType "externalMemoryFeatures" VkExternalMemoryProperties
-             = VkExternalMemoryFeatureFlags
-        type FieldOptional "externalMemoryFeatures"
-               VkExternalMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "externalMemoryFeatures"
-               VkExternalMemoryProperties
-             =
-             #{offset VkExternalMemoryProperties, externalMemoryFeatures}
-        type FieldIsArray "externalMemoryFeatures"
-               VkExternalMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryProperties, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalMemoryFeatures" VkExternalMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, externalMemoryFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryProperties, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalMemoryFeatures" VkExternalMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryProperties, externalMemoryFeatures}
-
-instance {-# OVERLAPPING #-}
-         HasField "exportFromImportedHandleTypes" VkExternalMemoryProperties
-         where
-        type FieldType "exportFromImportedHandleTypes"
-               VkExternalMemoryProperties
-             = VkExternalMemoryHandleTypeFlags
-        type FieldOptional "exportFromImportedHandleTypes"
-               VkExternalMemoryProperties
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "exportFromImportedHandleTypes"
-               VkExternalMemoryProperties
-             =
-             #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
-        type FieldIsArray "exportFromImportedHandleTypes"
-               VkExternalMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "exportFromImportedHandleTypes"
-           VkExternalMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "exportFromImportedHandleTypes"
-           VkExternalMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "compatibleHandleTypes" VkExternalMemoryProperties where
-        type FieldType "compatibleHandleTypes" VkExternalMemoryProperties =
-             VkExternalMemoryHandleTypeFlags
-        type FieldOptional "compatibleHandleTypes"
-               VkExternalMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compatibleHandleTypes" VkExternalMemoryProperties
-             =
-             #{offset VkExternalMemoryProperties, compatibleHandleTypes}
-        type FieldIsArray "compatibleHandleTypes"
-               VkExternalMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalMemoryProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compatibleHandleTypes" VkExternalMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalMemoryProperties, compatibleHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalMemoryProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compatibleHandleTypes" VkExternalMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalMemoryProperties, compatibleHandleTypes}
-
-instance Show VkExternalMemoryProperties where
-        showsPrec d x
-          = showString "VkExternalMemoryProperties {" .
-              showString "externalMemoryFeatures = " .
-                showsPrec d (getField @"externalMemoryFeatures" x) .
-                  showString ", " .
-                    showString "exportFromImportedHandleTypes = " .
-                      showsPrec d (getField @"exportFromImportedHandleTypes" x) .
-                        showString ", " .
-                          showString "compatibleHandleTypes = " .
-                            showsPrec d (getField @"compatibleHandleTypes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalMemoryPropertiesKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalMemoryPropertiesKHR
-       (VkExternalMemoryProperties(..), VkExternalMemoryPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties (VkExternalMemoryProperties (..))
-
--- | Alias for `VkExternalMemoryProperties`
-type VkExternalMemoryPropertiesKHR = VkExternalMemoryProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphoreProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphoreProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphoreProperties.hsc
+++ /dev/null
@@ -1,299 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties
-       (VkExternalSemaphoreProperties(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags    (VkExternalSemaphoreFeatureFlags)
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkExternalSemaphoreProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
---   >     VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
---   >     VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
---   > } VkExternalSemaphoreProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkExternalSemaphoreProperties.html VkExternalSemaphoreProperties registry at www.khronos.org>
-data VkExternalSemaphoreProperties = VkExternalSemaphoreProperties## Addr##
-                                                                    ByteArray##
-
-instance Eq VkExternalSemaphoreProperties where
-        (VkExternalSemaphoreProperties## a _) ==
-          x@(VkExternalSemaphoreProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkExternalSemaphoreProperties where
-        (VkExternalSemaphoreProperties## a _) `compare`
-          x@(VkExternalSemaphoreProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkExternalSemaphoreProperties where
-        sizeOf ~_ = #{size VkExternalSemaphoreProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkExternalSemaphoreProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkExternalSemaphoreProperties where
-        unsafeAddr (VkExternalSemaphoreProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkExternalSemaphoreProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkExternalSemaphoreProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkExternalSemaphoreProperties where
-        type StructFields VkExternalSemaphoreProperties =
-             '["sType", "pNext", "exportFromImportedHandleTypes", -- ' closing tick for hsc2hs
-               "compatibleHandleTypes", "externalSemaphoreFeatures"]
-        type CUnionType VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkExternalSemaphoreProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkExternalSemaphoreProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkExternalSemaphoreProperties where
-        type FieldType "sType" VkExternalSemaphoreProperties =
-             VkStructureType
-        type FieldOptional "sType" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkExternalSemaphoreProperties =
-             #{offset VkExternalSemaphoreProperties, sType}
-        type FieldIsArray "sType" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalSemaphoreProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkExternalSemaphoreProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalSemaphoreProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkExternalSemaphoreProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalSemaphoreProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkExternalSemaphoreProperties where
-        type FieldType "pNext" VkExternalSemaphoreProperties = Ptr Void
-        type FieldOptional "pNext" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkExternalSemaphoreProperties =
-             #{offset VkExternalSemaphoreProperties, pNext}
-        type FieldIsArray "pNext" VkExternalSemaphoreProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalSemaphoreProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkExternalSemaphoreProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalSemaphoreProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkExternalSemaphoreProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalSemaphoreProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "exportFromImportedHandleTypes"
-           VkExternalSemaphoreProperties
-         where
-        type FieldType "exportFromImportedHandleTypes"
-               VkExternalSemaphoreProperties
-             = VkExternalSemaphoreHandleTypeFlags
-        type FieldOptional "exportFromImportedHandleTypes"
-               VkExternalSemaphoreProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "exportFromImportedHandleTypes"
-               VkExternalSemaphoreProperties
-             =
-             #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
-        type FieldIsArray "exportFromImportedHandleTypes"
-               VkExternalSemaphoreProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "exportFromImportedHandleTypes"
-           VkExternalSemaphoreProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "exportFromImportedHandleTypes"
-           VkExternalSemaphoreProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalSemaphoreProperties, exportFromImportedHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "compatibleHandleTypes" VkExternalSemaphoreProperties
-         where
-        type FieldType "compatibleHandleTypes"
-               VkExternalSemaphoreProperties
-             = VkExternalSemaphoreHandleTypeFlags
-        type FieldOptional "compatibleHandleTypes"
-               VkExternalSemaphoreProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compatibleHandleTypes"
-               VkExternalSemaphoreProperties
-             =
-             #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
-        type FieldIsArray "compatibleHandleTypes"
-               VkExternalSemaphoreProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compatibleHandleTypes" VkExternalSemaphoreProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, compatibleHandleTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compatibleHandleTypes" VkExternalSemaphoreProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalSemaphoreProperties, compatibleHandleTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "externalSemaphoreFeatures" VkExternalSemaphoreProperties
-         where
-        type FieldType "externalSemaphoreFeatures"
-               VkExternalSemaphoreProperties
-             = VkExternalSemaphoreFeatureFlags
-        type FieldOptional "externalSemaphoreFeatures"
-               VkExternalSemaphoreProperties
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "externalSemaphoreFeatures"
-               VkExternalSemaphoreProperties
-             =
-             #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
-        type FieldIsArray "externalSemaphoreFeatures"
-               VkExternalSemaphoreProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "externalSemaphoreFeatures"
-           VkExternalSemaphoreProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "externalSemaphoreFeatures"
-           VkExternalSemaphoreProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkExternalSemaphoreProperties, externalSemaphoreFeatures}
-
-instance Show VkExternalSemaphoreProperties where
-        showsPrec d x
-          = showString "VkExternalSemaphoreProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "exportFromImportedHandleTypes = " .
-                            showsPrec d (getField @"exportFromImportedHandleTypes" x) .
-                              showString ", " .
-                                showString "compatibleHandleTypes = " .
-                                  showsPrec d (getField @"compatibleHandleTypes" x) .
-                                    showString ", " .
-                                      showString "externalSemaphoreFeatures = " .
-                                        showsPrec d (getField @"externalSemaphoreFeatures" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphorePropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphorePropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkExternalSemaphorePropertiesKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkExternalSemaphorePropertiesKHR
-       (VkExternalSemaphoreProperties(..),
-        VkExternalSemaphorePropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties (VkExternalSemaphoreProperties (..))
-
--- | Alias for `VkExternalSemaphoreProperties`
-type VkExternalSemaphorePropertiesKHR =
-     VkExternalSemaphoreProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFenceCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceCreateInfo.hsc
+++ /dev/null
@@ -1,176 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFenceCreateInfo
-       (VkFenceCreateInfo(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFenceCreateFlags (VkFenceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkFenceCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkFenceCreateFlags     flags;
---   > } VkFenceCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFenceCreateInfo.html VkFenceCreateInfo registry at www.khronos.org>
-data VkFenceCreateInfo = VkFenceCreateInfo## Addr## ByteArray##
-
-instance Eq VkFenceCreateInfo where
-        (VkFenceCreateInfo## a _) == x@(VkFenceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFenceCreateInfo where
-        (VkFenceCreateInfo## a _) `compare` x@(VkFenceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFenceCreateInfo where
-        sizeOf ~_ = #{size VkFenceCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkFenceCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFenceCreateInfo where
-        unsafeAddr (VkFenceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFenceCreateInfo where
-        type StructFields VkFenceCreateInfo = '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkFenceCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkFenceCreateInfo
-         where
-        type FieldType "sType" VkFenceCreateInfo = VkStructureType
-        type FieldOptional "sType" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkFenceCreateInfo =
-             #{offset VkFenceCreateInfo, sType}
-        type FieldIsArray "sType" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkFenceCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkFenceCreateInfo
-         where
-        type FieldType "pNext" VkFenceCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkFenceCreateInfo =
-             #{offset VkFenceCreateInfo, pNext}
-        type FieldIsArray "pNext" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkFenceCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkFenceCreateInfo
-         where
-        type FieldType "flags" VkFenceCreateInfo = VkFenceCreateFlags
-        type FieldOptional "flags" VkFenceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkFenceCreateInfo =
-             #{offset VkFenceCreateInfo, flags}
-        type FieldIsArray "flags" VkFenceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} CanReadField "flags" VkFenceCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkFenceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceCreateInfo, flags}
-
-instance Show VkFenceCreateInfo where
-        showsPrec d x
-          = showString "VkFenceCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetFdInfoKHR.hsc
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFenceGetFdInfoKHR
-       (VkFenceGetFdInfoKHR(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                             (VkFence)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkFenceGetFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                            pNext;
---   >     VkFence                                fence;
---   >     VkExternalFenceHandleTypeFlagBits   handleType;
---   > } VkFenceGetFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFenceGetFdInfoKHR.html VkFenceGetFdInfoKHR registry at www.khronos.org>
-data VkFenceGetFdInfoKHR = VkFenceGetFdInfoKHR## Addr## ByteArray##
-
-instance Eq VkFenceGetFdInfoKHR where
-        (VkFenceGetFdInfoKHR## a _) == x@(VkFenceGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFenceGetFdInfoKHR where
-        (VkFenceGetFdInfoKHR## a _) `compare` x@(VkFenceGetFdInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFenceGetFdInfoKHR where
-        sizeOf ~_ = #{size VkFenceGetFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkFenceGetFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFenceGetFdInfoKHR where
-        unsafeAddr (VkFenceGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFenceGetFdInfoKHR where
-        type StructFields VkFenceGetFdInfoKHR =
-             '["sType", "pNext", "fence", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkFenceGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkFenceGetFdInfoKHR
-         where
-        type FieldType "sType" VkFenceGetFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkFenceGetFdInfoKHR =
-             #{offset VkFenceGetFdInfoKHR, sType}
-        type FieldIsArray "sType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkFenceGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkFenceGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkFenceGetFdInfoKHR
-         where
-        type FieldType "pNext" VkFenceGetFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkFenceGetFdInfoKHR =
-             #{offset VkFenceGetFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkFenceGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkFenceGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-} HasField "fence" VkFenceGetFdInfoKHR
-         where
-        type FieldType "fence" VkFenceGetFdInfoKHR = VkFence
-        type FieldOptional "fence" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fence" VkFenceGetFdInfoKHR =
-             #{offset VkFenceGetFdInfoKHR, fence}
-        type FieldIsArray "fence" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceGetFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fence" VkFenceGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, fence})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fence" VkFenceGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkFenceGetFdInfoKHR where
-        type FieldType "handleType" VkFenceGetFdInfoKHR =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkFenceGetFdInfoKHR =
-             #{offset VkFenceGetFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkFenceGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFenceGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkFenceGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkFenceGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetFdInfoKHR, handleType}
-
-instance Show VkFenceGetFdInfoKHR where
-        showsPrec d x
-          = showString "VkFenceGetFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "fence = " .
-                            showsPrec d (getField @"fence" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFenceGetWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,226 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFenceGetWin32HandleInfoKHR
-       (VkFenceGetWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                             (VkFence)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkFenceGetWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                            pNext;
---   >     VkFence                                fence;
---   >     VkExternalFenceHandleTypeFlagBits   handleType;
---   > } VkFenceGetWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFenceGetWin32HandleInfoKHR.html VkFenceGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkFenceGetWin32HandleInfoKHR = VkFenceGetWin32HandleInfoKHR## Addr##
-                                                                  ByteArray##
-
-instance Eq VkFenceGetWin32HandleInfoKHR where
-        (VkFenceGetWin32HandleInfoKHR## a _) ==
-          x@(VkFenceGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFenceGetWin32HandleInfoKHR where
-        (VkFenceGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkFenceGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFenceGetWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkFenceGetWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkFenceGetWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFenceGetWin32HandleInfoKHR where
-        unsafeAddr (VkFenceGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFenceGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFenceGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFenceGetWin32HandleInfoKHR where
-        type StructFields VkFenceGetWin32HandleInfoKHR =
-             '["sType", "pNext", "fence", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkFenceGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkFenceGetWin32HandleInfoKHR where
-        type FieldType "sType" VkFenceGetWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkFenceGetWin32HandleInfoKHR =
-             #{offset VkFenceGetWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFenceGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkFenceGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkFenceGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkFenceGetWin32HandleInfoKHR where
-        type FieldType "pNext" VkFenceGetWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkFenceGetWin32HandleInfoKHR =
-             #{offset VkFenceGetWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFenceGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkFenceGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkFenceGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "fence" VkFenceGetWin32HandleInfoKHR where
-        type FieldType "fence" VkFenceGetWin32HandleInfoKHR = VkFence
-        type FieldOptional "fence" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fence" VkFenceGetWin32HandleInfoKHR =
-             #{offset VkFenceGetWin32HandleInfoKHR, fence}
-        type FieldIsArray "fence" VkFenceGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFenceGetWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fence" VkFenceGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, fence})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fence" VkFenceGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkFenceGetWin32HandleInfoKHR where
-        type FieldType "handleType" VkFenceGetWin32HandleInfoKHR =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkFenceGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkFenceGetWin32HandleInfoKHR =
-             #{offset VkFenceGetWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkFenceGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFenceGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkFenceGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFenceGetWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFenceGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkFenceGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFenceGetWin32HandleInfoKHR, handleType}
-
-instance Show VkFenceGetWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkFenceGetWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "fence = " .
-                            showsPrec d (getField @"fence" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFormatProperties
-       (VkFormatProperties(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags (VkFormatFeatureFlags)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkFormatProperties {
---   >     VkFormatFeatureFlags   linearTilingFeatures;
---   >     VkFormatFeatureFlags   optimalTilingFeatures;
---   >     VkFormatFeatureFlags   bufferFeatures;
---   > } VkFormatProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFormatProperties.html VkFormatProperties registry at www.khronos.org>
-data VkFormatProperties = VkFormatProperties## Addr## ByteArray##
-
-instance Eq VkFormatProperties where
-        (VkFormatProperties## a _) == x@(VkFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFormatProperties where
-        (VkFormatProperties## a _) `compare` x@(VkFormatProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFormatProperties where
-        sizeOf ~_ = #{size VkFormatProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkFormatProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFormatProperties where
-        unsafeAddr (VkFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFormatProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFormatProperties where
-        type StructFields VkFormatProperties =
-             '["linearTilingFeatures", "optimalTilingFeatures", -- ' closing tick for hsc2hs
-               "bufferFeatures"]
-        type CUnionType VkFormatProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFormatProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkFormatProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "linearTilingFeatures" VkFormatProperties where
-        type FieldType "linearTilingFeatures" VkFormatProperties =
-             VkFormatFeatureFlags
-        type FieldOptional "linearTilingFeatures" VkFormatProperties =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "linearTilingFeatures" VkFormatProperties =
-             #{offset VkFormatProperties, linearTilingFeatures}
-        type FieldIsArray "linearTilingFeatures" VkFormatProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFormatProperties, linearTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "linearTilingFeatures" VkFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, linearTilingFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties, linearTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "linearTilingFeatures" VkFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties, linearTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         HasField "optimalTilingFeatures" VkFormatProperties where
-        type FieldType "optimalTilingFeatures" VkFormatProperties =
-             VkFormatFeatureFlags
-        type FieldOptional "optimalTilingFeatures" VkFormatProperties =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "optimalTilingFeatures" VkFormatProperties =
-             #{offset VkFormatProperties, optimalTilingFeatures}
-        type FieldIsArray "optimalTilingFeatures" VkFormatProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFormatProperties, optimalTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "optimalTilingFeatures" VkFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, optimalTilingFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties, optimalTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "optimalTilingFeatures" VkFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties, optimalTilingFeatures}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferFeatures" VkFormatProperties where
-        type FieldType "bufferFeatures" VkFormatProperties =
-             VkFormatFeatureFlags
-        type FieldOptional "bufferFeatures" VkFormatProperties = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "bufferFeatures" VkFormatProperties =
-             #{offset VkFormatProperties, bufferFeatures}
-        type FieldIsArray "bufferFeatures" VkFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFormatProperties, bufferFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferFeatures" VkFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties, bufferFeatures})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties, bufferFeatures}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferFeatures" VkFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties, bufferFeatures}
-
-instance Show VkFormatProperties where
-        showsPrec d x
-          = showString "VkFormatProperties {" .
-              showString "linearTilingFeatures = " .
-                showsPrec d (getField @"linearTilingFeatures" x) .
-                  showString ", " .
-                    showString "optimalTilingFeatures = " .
-                      showsPrec d (getField @"optimalTilingFeatures" x) .
-                        showString ", " .
-                          showString "bufferFeatures = " .
-                            showsPrec d (getField @"bufferFeatures" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFormatProperties2
-       (VkFormatProperties2(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties (VkFormatProperties)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkFormatProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkFormatProperties               formatProperties;
---   > } VkFormatProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFormatProperties2.html VkFormatProperties2 registry at www.khronos.org>
-data VkFormatProperties2 = VkFormatProperties2## Addr## ByteArray##
-
-instance Eq VkFormatProperties2 where
-        (VkFormatProperties2## a _) == x@(VkFormatProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFormatProperties2 where
-        (VkFormatProperties2## a _) `compare` x@(VkFormatProperties2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFormatProperties2 where
-        sizeOf ~_ = #{size VkFormatProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkFormatProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFormatProperties2 where
-        unsafeAddr (VkFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFormatProperties2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFormatProperties2 where
-        type StructFields VkFormatProperties2 =
-             '["sType", "pNext", "formatProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFormatProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkFormatProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkFormatProperties2
-         where
-        type FieldType "sType" VkFormatProperties2 = VkStructureType
-        type FieldOptional "sType" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkFormatProperties2 =
-             #{offset VkFormatProperties2, sType}
-        type FieldIsArray "sType" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkFormatProperties2
-         where
-        type FieldType "pNext" VkFormatProperties2 = Ptr Void
-        type FieldOptional "pNext" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkFormatProperties2 =
-             #{offset VkFormatProperties2, pNext}
-        type FieldIsArray "pNext" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "formatProperties" VkFormatProperties2 where
-        type FieldType "formatProperties" VkFormatProperties2 =
-             VkFormatProperties
-        type FieldOptional "formatProperties" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "formatProperties" VkFormatProperties2 =
-             #{offset VkFormatProperties2, formatProperties}
-        type FieldIsArray "formatProperties" VkFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFormatProperties2, formatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "formatProperties" VkFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFormatProperties2, formatProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFormatProperties2, formatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "formatProperties" VkFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFormatProperties2, formatProperties}
-
-instance Show VkFormatProperties2 where
-        showsPrec d x
-          = showString "VkFormatProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "formatProperties = " .
-                            showsPrec d (getField @"formatProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFormatProperties2KHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkFormatProperties2KHR
-       (VkFormatProperties2(..), VkFormatProperties2KHR) where
-import           Graphics.Vulkan.Types.Struct.VkFormatProperties2 (VkFormatProperties2 (..))
-
--- | Alias for `VkFormatProperties2`
-type VkFormatProperties2KHR = VkFormatProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkFramebufferCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkFramebufferCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkFramebufferCreateInfo.hsc
+++ /dev/null
@@ -1,399 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo
-       (VkFramebufferCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkFramebufferCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkImageView,
-                                                             VkRenderPass)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkFramebufferCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkFramebufferCreateFlags    flags;
---   >     VkRenderPass           renderPass;
---   >     uint32_t               attachmentCount;
---   >     const VkImageView*     pAttachments;
---   >     uint32_t               width;
---   >     uint32_t               height;
---   >     uint32_t               layers;
---   > } VkFramebufferCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkFramebufferCreateInfo.html VkFramebufferCreateInfo registry at www.khronos.org>
-data VkFramebufferCreateInfo = VkFramebufferCreateInfo## Addr##
-                                                        ByteArray##
-
-instance Eq VkFramebufferCreateInfo where
-        (VkFramebufferCreateInfo## a _) == x@(VkFramebufferCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkFramebufferCreateInfo where
-        (VkFramebufferCreateInfo## a _) `compare`
-          x@(VkFramebufferCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkFramebufferCreateInfo where
-        sizeOf ~_ = #{size VkFramebufferCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkFramebufferCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkFramebufferCreateInfo where
-        unsafeAddr (VkFramebufferCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkFramebufferCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkFramebufferCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkFramebufferCreateInfo where
-        type StructFields VkFramebufferCreateInfo =
-             '["sType", "pNext", "flags", "renderPass", "attachmentCount", -- ' closing tick for hsc2hs
-               "pAttachments", "width", "height", "layers"]
-        type CUnionType VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkFramebufferCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkFramebufferCreateInfo where
-        type FieldType "sType" VkFramebufferCreateInfo = VkStructureType
-        type FieldOptional "sType" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, sType}
-        type FieldIsArray "sType" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkFramebufferCreateInfo where
-        type FieldType "pNext" VkFramebufferCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, pNext}
-        type FieldIsArray "pNext" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkFramebufferCreateInfo where
-        type FieldType "flags" VkFramebufferCreateInfo =
-             VkFramebufferCreateFlags
-        type FieldOptional "flags" VkFramebufferCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, flags}
-        type FieldIsArray "flags" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "renderPass" VkFramebufferCreateInfo where
-        type FieldType "renderPass" VkFramebufferCreateInfo = VkRenderPass
-        type FieldOptional "renderPass" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "renderPass" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, renderPass}
-        type FieldIsArray "renderPass" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFramebufferCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "renderPass" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, renderPass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "renderPass" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         HasField "attachmentCount" VkFramebufferCreateInfo where
-        type FieldType "attachmentCount" VkFramebufferCreateInfo = Word32
-        type FieldOptional "attachmentCount" VkFramebufferCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "attachmentCount" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, attachmentCount}
-        type FieldIsArray "attachmentCount" VkFramebufferCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFramebufferCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachmentCount" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, attachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachmentCount" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttachments" VkFramebufferCreateInfo where
-        type FieldType "pAttachments" VkFramebufferCreateInfo =
-             Ptr VkImageView
-        type FieldOptional "pAttachments" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAttachments" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, pAttachments}
-        type FieldIsArray "pAttachments" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkFramebufferCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttachments" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, pAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttachments" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "width" VkFramebufferCreateInfo where
-        type FieldType "width" VkFramebufferCreateInfo = Word32
-        type FieldOptional "width" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "width" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, width}
-        type FieldIsArray "width" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, width}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "width" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, width})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, width}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "width" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, width}
-
-instance {-# OVERLAPPING #-}
-         HasField "height" VkFramebufferCreateInfo where
-        type FieldType "height" VkFramebufferCreateInfo = Word32
-        type FieldOptional "height" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "height" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, height}
-        type FieldIsArray "height" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, height}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "height" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, height})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, height}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "height" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, height}
-
-instance {-# OVERLAPPING #-}
-         HasField "layers" VkFramebufferCreateInfo where
-        type FieldType "layers" VkFramebufferCreateInfo = Word32
-        type FieldOptional "layers" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layers" VkFramebufferCreateInfo =
-             #{offset VkFramebufferCreateInfo, layers}
-        type FieldIsArray "layers" VkFramebufferCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkFramebufferCreateInfo, layers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layers" VkFramebufferCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkFramebufferCreateInfo, layers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkFramebufferCreateInfo, layers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layers" VkFramebufferCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkFramebufferCreateInfo, layers}
-
-instance Show VkFramebufferCreateInfo where
-        showsPrec d x
-          = showString "VkFramebufferCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "renderPass = " .
-                                  showsPrec d (getField @"renderPass" x) .
-                                    showString ", " .
-                                      showString "attachmentCount = " .
-                                        showsPrec d (getField @"attachmentCount" x) .
-                                          showString ", " .
-                                            showString "pAttachments = " .
-                                              showsPrec d (getField @"pAttachments" x) .
-                                                showString ", " .
-                                                  showString "width = " .
-                                                    showsPrec d (getField @"width" x) .
-                                                      showString ", " .
-                                                        showString "height = " .
-                                                          showsPrec d (getField @"height" x) .
-                                                            showString ", " .
-                                                              showString "layers = " .
-                                                                showsPrec d (getField @"layers" x) .
-                                                                  showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkGraphicsPipelineCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkGraphicsPipelineCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkGraphicsPipelineCreateInfo.hsc
+++ /dev/null
@@ -1,947 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo
-       (VkGraphicsPipelineCreateInfo(..)) where
-import           Foreign.Storable
-                                                                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-                                                                                      (VkPipelineCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles
-                                                                                      (VkPipeline,
-                                                                                      VkPipelineLayout,
-                                                                                      VkRenderPass)
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-                                                                                      (VkPipelineColorBlendStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo
-                                                                                      (VkPipelineDepthStencilStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo
-                                                                                      (VkPipelineDynamicStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo
-                                                                                      (VkPipelineInputAssemblyStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-                                                                                      (VkPipelineMultisampleStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-                                                                                      (VkPipelineRasterizationStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo
-                                                                                      (VkPipelineShaderStageCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-                                                                                      (VkPipelineTessellationStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-                                                                                      (VkPipelineVertexInputStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-                                                                                      (VkPipelineViewportStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkGraphicsPipelineCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineCreateFlags  flags;
---   >     uint32_t               stageCount;
---   >     const VkPipelineShaderStageCreateInfo* pStages;
---   >     const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
---   >     const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
---   >     const VkPipelineTessellationStateCreateInfo* pTessellationState;
---   >     const VkPipelineViewportStateCreateInfo* pViewportState;
---   >     const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
---   >     const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
---   >     const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
---   >     const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
---   >     const VkPipelineDynamicStateCreateInfo* pDynamicState;
---   >     VkPipelineLayout       layout;
---   >     VkRenderPass           renderPass;
---   >     uint32_t               subpass;
---   >     VkPipeline      basePipelineHandle;
---   >     int32_t                basePipelineIndex;
---   > } VkGraphicsPipelineCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkGraphicsPipelineCreateInfo.html VkGraphicsPipelineCreateInfo registry at www.khronos.org>
-data VkGraphicsPipelineCreateInfo = VkGraphicsPipelineCreateInfo## Addr##
-                                                                  ByteArray##
-
-instance Eq VkGraphicsPipelineCreateInfo where
-        (VkGraphicsPipelineCreateInfo## a _) ==
-          x@(VkGraphicsPipelineCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkGraphicsPipelineCreateInfo where
-        (VkGraphicsPipelineCreateInfo## a _) `compare`
-          x@(VkGraphicsPipelineCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkGraphicsPipelineCreateInfo where
-        sizeOf ~_ = #{size VkGraphicsPipelineCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkGraphicsPipelineCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkGraphicsPipelineCreateInfo where
-        unsafeAddr (VkGraphicsPipelineCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkGraphicsPipelineCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkGraphicsPipelineCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkGraphicsPipelineCreateInfo where
-        type StructFields VkGraphicsPipelineCreateInfo =
-             '["sType", "pNext", "flags", "stageCount", "pStages", -- ' closing tick for hsc2hs
-               "pVertexInputState", "pInputAssemblyState", "pTessellationState",
-               "pViewportState", "pRasterizationState", "pMultisampleState",
-               "pDepthStencilState", "pColorBlendState", "pDynamicState",
-               "layout", "renderPass", "subpass", "basePipelineHandle",
-               "basePipelineIndex"]
-        type CUnionType VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkGraphicsPipelineCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkGraphicsPipelineCreateInfo where
-        type FieldType "sType" VkGraphicsPipelineCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, sType}
-        type FieldIsArray "sType" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkGraphicsPipelineCreateInfo where
-        type FieldType "pNext" VkGraphicsPipelineCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pNext}
-        type FieldIsArray "pNext" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkGraphicsPipelineCreateInfo where
-        type FieldType "flags" VkGraphicsPipelineCreateInfo =
-             VkPipelineCreateFlags
-        type FieldOptional "flags" VkGraphicsPipelineCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, flags}
-        type FieldIsArray "flags" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "stageCount" VkGraphicsPipelineCreateInfo where
-        type FieldType "stageCount" VkGraphicsPipelineCreateInfo = Word32
-        type FieldOptional "stageCount" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stageCount" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, stageCount}
-        type FieldIsArray "stageCount" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, stageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stageCount" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, stageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, stageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stageCount" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, stageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pStages" VkGraphicsPipelineCreateInfo where
-        type FieldType "pStages" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineShaderStageCreateInfo
-        type FieldOptional "pStages" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pStages" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pStages}
-        type FieldIsArray "pStages" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pStages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pStages" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pStages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pStages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pStages" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pStages}
-
-instance {-# OVERLAPPING #-}
-         HasField "pVertexInputState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pVertexInputState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineVertexInputStateCreateInfo
-        type FieldOptional "pVertexInputState" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pVertexInputState" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
-        type FieldIsArray "pVertexInputState" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pVertexInputState" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pVertexInputState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pVertexInputState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pVertexInputState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pInputAssemblyState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pInputAssemblyState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineInputAssemblyStateCreateInfo
-        type FieldOptional "pInputAssemblyState"
-               VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pInputAssemblyState" VkGraphicsPipelineCreateInfo
-             =
-             #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
-        type FieldIsArray "pInputAssemblyState"
-               VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pInputAssemblyState" VkGraphicsPipelineCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pInputAssemblyState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pInputAssemblyState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTessellationState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pTessellationState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineTessellationStateCreateInfo
-        type FieldOptional "pTessellationState"
-               VkGraphicsPipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pTessellationState" VkGraphicsPipelineCreateInfo
-             =
-             #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
-        type FieldIsArray "pTessellationState" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTessellationState" VkGraphicsPipelineCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pTessellationState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTessellationState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pTessellationState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewportState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pViewportState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineViewportStateCreateInfo
-        type FieldOptional "pViewportState" VkGraphicsPipelineCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pViewportState" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pViewportState}
-        type FieldIsArray "pViewportState" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pViewportState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewportState" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pViewportState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pViewportState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewportState" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pViewportState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pRasterizationState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pRasterizationState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineRasterizationStateCreateInfo
-        type FieldOptional "pRasterizationState"
-               VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pRasterizationState" VkGraphicsPipelineCreateInfo
-             =
-             #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
-        type FieldIsArray "pRasterizationState"
-               VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pRasterizationState" VkGraphicsPipelineCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pRasterizationState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pRasterizationState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pRasterizationState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pMultisampleState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pMultisampleState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineMultisampleStateCreateInfo
-        type FieldOptional "pMultisampleState" VkGraphicsPipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pMultisampleState" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
-        type FieldIsArray "pMultisampleState" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pMultisampleState" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pMultisampleState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pMultisampleState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pMultisampleState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDepthStencilState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pDepthStencilState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineDepthStencilStateCreateInfo
-        type FieldOptional "pDepthStencilState"
-               VkGraphicsPipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pDepthStencilState" VkGraphicsPipelineCreateInfo
-             =
-             #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
-        type FieldIsArray "pDepthStencilState" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDepthStencilState" VkGraphicsPipelineCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDepthStencilState" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pDepthStencilState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pColorBlendState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pColorBlendState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineColorBlendStateCreateInfo
-        type FieldOptional "pColorBlendState" VkGraphicsPipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pColorBlendState" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
-        type FieldIsArray "pColorBlendState" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pColorBlendState" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pColorBlendState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pColorBlendState" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pColorBlendState}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDynamicState" VkGraphicsPipelineCreateInfo where
-        type FieldType "pDynamicState" VkGraphicsPipelineCreateInfo =
-             Ptr VkPipelineDynamicStateCreateInfo
-        type FieldOptional "pDynamicState" VkGraphicsPipelineCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pDynamicState" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
-        type FieldIsArray "pDynamicState" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDynamicState" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, pDynamicState})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDynamicState" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, pDynamicState}
-
-instance {-# OVERLAPPING #-}
-         HasField "layout" VkGraphicsPipelineCreateInfo where
-        type FieldType "layout" VkGraphicsPipelineCreateInfo =
-             VkPipelineLayout
-        type FieldOptional "layout" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layout" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, layout}
-        type FieldIsArray "layout" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layout" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, layout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layout" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, layout}
-
-instance {-# OVERLAPPING #-}
-         HasField "renderPass" VkGraphicsPipelineCreateInfo where
-        type FieldType "renderPass" VkGraphicsPipelineCreateInfo =
-             VkRenderPass
-        type FieldOptional "renderPass" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "renderPass" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, renderPass}
-        type FieldIsArray "renderPass" VkGraphicsPipelineCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "renderPass" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, renderPass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "renderPass" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         HasField "subpass" VkGraphicsPipelineCreateInfo where
-        type FieldType "subpass" VkGraphicsPipelineCreateInfo = Word32
-        type FieldOptional "subpass" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subpass" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, subpass}
-        type FieldIsArray "subpass" VkGraphicsPipelineCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpass" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, subpass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpass" VkGraphicsPipelineCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, subpass}
-
-instance {-# OVERLAPPING #-}
-         HasField "basePipelineHandle" VkGraphicsPipelineCreateInfo where
-        type FieldType "basePipelineHandle" VkGraphicsPipelineCreateInfo =
-             VkPipeline
-        type FieldOptional "basePipelineHandle"
-               VkGraphicsPipelineCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "basePipelineHandle" VkGraphicsPipelineCreateInfo
-             =
-             #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
-        type FieldIsArray "basePipelineHandle" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "basePipelineHandle" VkGraphicsPipelineCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "basePipelineHandle" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineHandle}
-
-instance {-# OVERLAPPING #-}
-         HasField "basePipelineIndex" VkGraphicsPipelineCreateInfo where
-        type FieldType "basePipelineIndex" VkGraphicsPipelineCreateInfo =
-             Int32
-        type FieldOptional "basePipelineIndex" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "basePipelineIndex" VkGraphicsPipelineCreateInfo =
-             #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
-        type FieldIsArray "basePipelineIndex" VkGraphicsPipelineCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "basePipelineIndex" VkGraphicsPipelineCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "basePipelineIndex" VkGraphicsPipelineCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkGraphicsPipelineCreateInfo, basePipelineIndex}
-
-instance Show VkGraphicsPipelineCreateInfo where
-        showsPrec d x
-          = showString "VkGraphicsPipelineCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "stageCount = " .
-                                  showsPrec d (getField @"stageCount" x) .
-                                    showString ", " .
-                                      showString "pStages = " .
-                                        showsPrec d (getField @"pStages" x) .
-                                          showString ", " .
-                                            showString "pVertexInputState = " .
-                                              showsPrec d (getField @"pVertexInputState" x) .
-                                                showString ", " .
-                                                  showString "pInputAssemblyState = " .
-                                                    showsPrec d (getField @"pInputAssemblyState" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pTessellationState = " .
-                                                          showsPrec d
-                                                            (getField @"pTessellationState" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pViewportState = " .
-                                                                showsPrec d
-                                                                  (getField @"pViewportState" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "pRasterizationState = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"pRasterizationState"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "pMultisampleState = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"pMultisampleState"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "pDepthStencilState = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"pDepthStencilState"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "pColorBlendState = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"pColorBlendState"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "pDynamicState = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"pDynamicState"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "layout = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"layout"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "renderPass = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"renderPass"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "subpass = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"subpass"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "basePipelineHandle = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"basePipelineHandle"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "basePipelineIndex = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"basePipelineIndex"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showChar
-                                                                                                                                '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkHdrMetadataEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkHdrMetadataEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkHdrMetadataEXT.hsc
+++ /dev/null
@@ -1,445 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkHdrMetadataEXT
-       (VkHdrMetadataEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkXYColorEXT  (VkXYColorEXT)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkHdrMetadataEXT {
---   >     VkStructureType sType;
---   >     const void*    pNext;
---   >     VkXYColorEXT   displayPrimaryRed;
---   >     VkXYColorEXT   displayPrimaryGreen;
---   >     VkXYColorEXT   displayPrimaryBlue;
---   >     VkXYColorEXT   whitePoint;
---   >     float          maxLuminance;
---   >     float          minLuminance;
---   >     float          maxContentLightLevel;
---   >     float          maxFrameAverageLightLevel;
---   > } VkHdrMetadataEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkHdrMetadataEXT.html VkHdrMetadataEXT registry at www.khronos.org>
-data VkHdrMetadataEXT = VkHdrMetadataEXT## Addr## ByteArray##
-
-instance Eq VkHdrMetadataEXT where
-        (VkHdrMetadataEXT## a _) == x@(VkHdrMetadataEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkHdrMetadataEXT where
-        (VkHdrMetadataEXT## a _) `compare` x@(VkHdrMetadataEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkHdrMetadataEXT where
-        sizeOf ~_ = #{size VkHdrMetadataEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkHdrMetadataEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkHdrMetadataEXT where
-        unsafeAddr (VkHdrMetadataEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkHdrMetadataEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkHdrMetadataEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkHdrMetadataEXT where
-        type StructFields VkHdrMetadataEXT =
-             '["sType", "pNext", "displayPrimaryRed", "displayPrimaryGreen", -- ' closing tick for hsc2hs
-               "displayPrimaryBlue", "whitePoint", "maxLuminance", "minLuminance",
-               "maxContentLightLevel", "maxFrameAverageLightLevel"]
-        type CUnionType VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkHdrMetadataEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkHdrMetadataEXT
-         where
-        type FieldType "sType" VkHdrMetadataEXT = VkStructureType
-        type FieldOptional "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, sType}
-        type FieldIsArray "sType" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkHdrMetadataEXT, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkHdrMetadataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, sType}
-
-instance {-# OVERLAPPING #-} CanWriteField "sType" VkHdrMetadataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkHdrMetadataEXT
-         where
-        type FieldType "pNext" VkHdrMetadataEXT = Ptr Void
-        type FieldOptional "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, pNext}
-        type FieldIsArray "pNext" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkHdrMetadataEXT, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkHdrMetadataEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, pNext}
-
-instance {-# OVERLAPPING #-} CanWriteField "pNext" VkHdrMetadataEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayPrimaryRed" VkHdrMetadataEXT where
-        type FieldType "displayPrimaryRed" VkHdrMetadataEXT = VkXYColorEXT
-        type FieldOptional "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayPrimaryRed" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, displayPrimaryRed}
-        type FieldIsArray "displayPrimaryRed" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkHdrMetadataEXT, displayPrimaryRed}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayPrimaryRed" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryRed})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryRed}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayPrimaryRed" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryRed}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayPrimaryGreen" VkHdrMetadataEXT where
-        type FieldType "displayPrimaryGreen" VkHdrMetadataEXT =
-             VkXYColorEXT
-        type FieldOptional "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayPrimaryGreen" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, displayPrimaryGreen}
-        type FieldIsArray "displayPrimaryGreen" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkHdrMetadataEXT, displayPrimaryGreen}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayPrimaryGreen" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryGreen})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryGreen}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayPrimaryGreen" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryGreen}
-
-instance {-# OVERLAPPING #-}
-         HasField "displayPrimaryBlue" VkHdrMetadataEXT where
-        type FieldType "displayPrimaryBlue" VkHdrMetadataEXT = VkXYColorEXT
-        type FieldOptional "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "displayPrimaryBlue" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, displayPrimaryBlue}
-        type FieldIsArray "displayPrimaryBlue" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkHdrMetadataEXT, displayPrimaryBlue}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "displayPrimaryBlue" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, displayPrimaryBlue})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, displayPrimaryBlue}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "displayPrimaryBlue" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, displayPrimaryBlue}
-
-instance {-# OVERLAPPING #-} HasField "whitePoint" VkHdrMetadataEXT
-         where
-        type FieldType "whitePoint" VkHdrMetadataEXT = VkXYColorEXT
-        type FieldOptional "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "whitePoint" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, whitePoint}
-        type FieldIsArray "whitePoint" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkHdrMetadataEXT, whitePoint}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "whitePoint" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, whitePoint})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, whitePoint}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "whitePoint" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, whitePoint}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxLuminance" VkHdrMetadataEXT where
-        type FieldType "maxLuminance" VkHdrMetadataEXT =
-             #{type float}
-        type FieldOptional "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxLuminance" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, maxLuminance}
-        type FieldIsArray "maxLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkHdrMetadataEXT, maxLuminance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxLuminance" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxLuminance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, maxLuminance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxLuminance" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, maxLuminance}
-
-instance {-# OVERLAPPING #-}
-         HasField "minLuminance" VkHdrMetadataEXT where
-        type FieldType "minLuminance" VkHdrMetadataEXT =
-             #{type float}
-        type FieldOptional "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minLuminance" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, minLuminance}
-        type FieldIsArray "minLuminance" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkHdrMetadataEXT, minLuminance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minLuminance" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, minLuminance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, minLuminance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minLuminance" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, minLuminance}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxContentLightLevel" VkHdrMetadataEXT where
-        type FieldType "maxContentLightLevel" VkHdrMetadataEXT =
-             #{type float}
-        type FieldOptional "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxContentLightLevel" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, maxContentLightLevel}
-        type FieldIsArray "maxContentLightLevel" VkHdrMetadataEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkHdrMetadataEXT, maxContentLightLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxContentLightLevel" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxContentLightLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, maxContentLightLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxContentLightLevel" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, maxContentLightLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
-        type FieldType "maxFrameAverageLightLevel" VkHdrMetadataEXT =
-             #{type float}
-        type FieldOptional "maxFrameAverageLightLevel" VkHdrMetadataEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFrameAverageLightLevel" VkHdrMetadataEXT =
-             #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
-        type FieldIsArray "maxFrameAverageLightLevel" VkHdrMetadataEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFrameAverageLightLevel" VkHdrMetadataEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkHdrMetadataEXT, maxFrameAverageLightLevel}
-
-instance Show VkHdrMetadataEXT where
-        showsPrec d x
-          = showString "VkHdrMetadataEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "displayPrimaryRed = " .
-                            showsPrec d (getField @"displayPrimaryRed" x) .
-                              showString ", " .
-                                showString "displayPrimaryGreen = " .
-                                  showsPrec d (getField @"displayPrimaryGreen" x) .
-                                    showString ", " .
-                                      showString "displayPrimaryBlue = " .
-                                        showsPrec d (getField @"displayPrimaryBlue" x) .
-                                          showString ", " .
-                                            showString "whitePoint = " .
-                                              showsPrec d (getField @"whitePoint" x) .
-                                                showString ", " .
-                                                  showString "maxLuminance = " .
-                                                    showsPrec d (getField @"maxLuminance" x) .
-                                                      showString ", " .
-                                                        showString "minLuminance = " .
-                                                          showsPrec d (getField @"minLuminance" x) .
-                                                            showString ", " .
-                                                              showString "maxContentLightLevel = " .
-                                                                showsPrec d
-                                                                  (getField @"maxContentLightLevel"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "maxFrameAverageLightLevel = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"maxFrameAverageLightLevel"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkIOSSurfaceCreateInfoMVK.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkIOSSurfaceCreateInfoMVK.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkIOSSurfaceCreateInfoMVK.hsc
+++ /dev/null
@@ -1,219 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkIOSSurfaceCreateInfoMVK
-       (VkIOSSurfaceCreateInfoMVK(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkIOSSurfaceCreateFlagsMVK)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkIOSSurfaceCreateInfoMVK {
---   >     VkStructureType sType;
---   >     const void*                                    pNext;
---   >     VkIOSSurfaceCreateFlagsMVK     flags;
---   >     const void*                                    pView;
---   > } VkIOSSurfaceCreateInfoMVK;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIOSSurfaceCreateInfoMVK.html VkIOSSurfaceCreateInfoMVK registry at www.khronos.org>
-data VkIOSSurfaceCreateInfoMVK = VkIOSSurfaceCreateInfoMVK## Addr##
-                                                            ByteArray##
-
-instance Eq VkIOSSurfaceCreateInfoMVK where
-        (VkIOSSurfaceCreateInfoMVK## a _) ==
-          x@(VkIOSSurfaceCreateInfoMVK## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkIOSSurfaceCreateInfoMVK where
-        (VkIOSSurfaceCreateInfoMVK## a _) `compare`
-          x@(VkIOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkIOSSurfaceCreateInfoMVK where
-        sizeOf ~_ = #{size VkIOSSurfaceCreateInfoMVK}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkIOSSurfaceCreateInfoMVK}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIOSSurfaceCreateInfoMVK where
-        unsafeAddr (VkIOSSurfaceCreateInfoMVK## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIOSSurfaceCreateInfoMVK## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIOSSurfaceCreateInfoMVK## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkIOSSurfaceCreateInfoMVK where
-        type StructFields VkIOSSurfaceCreateInfoMVK =
-             '["sType", "pNext", "flags", "pView"] -- ' closing tick for hsc2hs
-        type CUnionType VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkIOSSurfaceCreateInfoMVK = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkIOSSurfaceCreateInfoMVK where
-        type FieldType "sType" VkIOSSurfaceCreateInfoMVK = VkStructureType
-        type FieldOptional "sType" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkIOSSurfaceCreateInfoMVK =
-             #{offset VkIOSSurfaceCreateInfoMVK, sType}
-        type FieldIsArray "sType" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkIOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkIOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkIOSSurfaceCreateInfoMVK where
-        type FieldType "pNext" VkIOSSurfaceCreateInfoMVK = Ptr Void
-        type FieldOptional "pNext" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkIOSSurfaceCreateInfoMVK =
-             #{offset VkIOSSurfaceCreateInfoMVK, pNext}
-        type FieldIsArray "pNext" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkIOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkIOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkIOSSurfaceCreateInfoMVK where
-        type FieldType "flags" VkIOSSurfaceCreateInfoMVK =
-             VkIOSSurfaceCreateFlagsMVK
-        type FieldOptional "flags" VkIOSSurfaceCreateInfoMVK = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkIOSSurfaceCreateInfoMVK =
-             #{offset VkIOSSurfaceCreateInfoMVK, flags}
-        type FieldIsArray "flags" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkIOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkIOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pView" VkIOSSurfaceCreateInfoMVK where
-        type FieldType "pView" VkIOSSurfaceCreateInfoMVK = Ptr Void
-        type FieldOptional "pView" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pView" VkIOSSurfaceCreateInfoMVK =
-             #{offset VkIOSSurfaceCreateInfoMVK, pView}
-        type FieldIsArray "pView" VkIOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIOSSurfaceCreateInfoMVK, pView}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pView" VkIOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIOSSurfaceCreateInfoMVK, pView})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pView}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pView" VkIOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIOSSurfaceCreateInfoMVK, pView}
-
-instance Show VkIOSSurfaceCreateInfoMVK where
-        showsPrec d x
-          = showString "VkIOSSurfaceCreateInfoMVK {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pView = " .
-                                  showsPrec d (getField @"pView" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageBlit.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageBlit.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageBlit.hsc
+++ /dev/null
@@ -1,300 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkImageBlit (VkImageBlit(..))
-       where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                          (KnownNat,
-                                                                        natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers (VkImageSubresourceLayers)
-import           Graphics.Vulkan.Types.Struct.VkOffset3D               (VkOffset3D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageBlit {
---   >     VkImageSubresourceLayers srcSubresource;
---   >     VkOffset3D             srcOffsets[2];
---   >     VkImageSubresourceLayers dstSubresource;
---   >     VkOffset3D             dstOffsets[2];
---   > } VkImageBlit;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageBlit.html VkImageBlit registry at www.khronos.org>
-data VkImageBlit = VkImageBlit## Addr## ByteArray##
-
-instance Eq VkImageBlit where
-        (VkImageBlit## a _) == x@(VkImageBlit## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageBlit where
-        (VkImageBlit## a _) `compare` x@(VkImageBlit## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageBlit where
-        sizeOf ~_ = #{size VkImageBlit}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageBlit}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageBlit where
-        unsafeAddr (VkImageBlit## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageBlit## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageBlit## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageBlit where
-        type StructFields VkImageBlit =
-             '["srcSubresource", "srcOffsets", "dstSubresource", "dstOffsets"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageBlit = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageBlit
-         where
-        type FieldType "srcSubresource" VkImageBlit =
-             VkImageSubresourceLayers
-        type FieldOptional "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcSubresource" VkImageBlit =
-             #{offset VkImageBlit, srcSubresource}
-        type FieldIsArray "srcSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageBlit, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcSubresource" VkImageBlit where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageBlit, srcSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageBlit, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcSubresource" VkImageBlit where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageBlit, srcSubresource}
-
-instance {-# OVERLAPPING #-} HasField "srcOffsets" VkImageBlit
-         where
-        type FieldType "srcOffsets" VkImageBlit = VkOffset3D
-        type FieldOptional "srcOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcOffsets" VkImageBlit =
-             #{offset VkImageBlit, srcOffsets}
-        type FieldIsArray "srcOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageBlit, srcOffsets}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
-         CanReadFieldArray "srcOffsets" idx VkImageBlit
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "srcOffsets" 0 VkImageBlit #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "srcOffsets" 1 VkImageBlit #-}
-        type FieldArrayLength "srcOffsets" VkImageBlit = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkImageBlit, srcOffsets} +
-                      sizeOf (undefined :: VkOffset3D) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkImageBlit, srcOffsets} +
-                 sizeOf (undefined :: VkOffset3D) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "srcOffsets" idx VkImageBlit) =>
-         CanWriteFieldArray "srcOffsets" idx VkImageBlit
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "srcOffsets" 0 VkImageBlit #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "srcOffsets" 1 VkImageBlit #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkImageBlit, srcOffsets} +
-                 sizeOf (undefined :: VkOffset3D) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageBlit
-         where
-        type FieldType "dstSubresource" VkImageBlit =
-             VkImageSubresourceLayers
-        type FieldOptional "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSubresource" VkImageBlit =
-             #{offset VkImageBlit, dstSubresource}
-        type FieldIsArray "dstSubresource" VkImageBlit = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageBlit, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSubresource" VkImageBlit where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageBlit, dstSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageBlit, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSubresource" VkImageBlit where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageBlit, dstSubresource}
-
-instance {-# OVERLAPPING #-} HasField "dstOffsets" VkImageBlit
-         where
-        type FieldType "dstOffsets" VkImageBlit = VkOffset3D
-        type FieldOptional "dstOffsets" VkImageBlit = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstOffsets" VkImageBlit =
-             #{offset VkImageBlit, dstOffsets}
-        type FieldIsArray "dstOffsets" VkImageBlit = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageBlit, dstOffsets}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
-         CanReadFieldArray "dstOffsets" idx VkImageBlit
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "dstOffsets" 0 VkImageBlit #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "dstOffsets" 1 VkImageBlit #-}
-        type FieldArrayLength "dstOffsets" VkImageBlit = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkImageBlit, dstOffsets} +
-                      sizeOf (undefined :: VkOffset3D) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkImageBlit, dstOffsets} +
-                 sizeOf (undefined :: VkOffset3D) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "dstOffsets" idx VkImageBlit) =>
-         CanWriteFieldArray "dstOffsets" idx VkImageBlit
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "dstOffsets" 0 VkImageBlit #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "dstOffsets" 1 VkImageBlit #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkImageBlit, dstOffsets} +
-                 sizeOf (undefined :: VkOffset3D) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkImageBlit where
-        showsPrec d x
-          = showString "VkImageBlit {" .
-              showString "srcSubresource = " .
-                showsPrec d (getField @"srcSubresource" x) .
-                  showString ", " .
-                    (showString "srcOffsets = [" .
-                       showsPrec d
-                         (let s = sizeOf (undefined :: FieldType "srcOffsets" VkImageBlit)
-                              o = fieldOffset @"srcOffsets" @VkImageBlit
-                              f i
-                                = peekByteOff (unsafePtr x) i ::
-                                    IO (FieldType "srcOffsets" VkImageBlit)
-                            in
-                            unsafeDupablePerformIO . mapM f $
-                              map (\ i -> o + i * s) [0 .. 2 - 1])
-                         . showChar ']')
-                      .
-                      showString ", " .
-                        showString "dstSubresource = " .
-                          showsPrec d (getField @"dstSubresource" x) .
-                            showString ", " .
-                              (showString "dstOffsets = [" .
-                                 showsPrec d
-                                   (let s = sizeOf (undefined :: FieldType "dstOffsets" VkImageBlit)
-                                        o = fieldOffset @"dstOffsets" @VkImageBlit
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO (FieldType "dstOffsets" VkImageBlit)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. 2 - 1])
-                                   . showChar ']')
-                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageCopy.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageCopy.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageCopy.hsc
+++ /dev/null
@@ -1,248 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageCopy (VkImageCopy(..))
-       where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkExtent3D               (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers (VkImageSubresourceLayers)
-import           Graphics.Vulkan.Types.Struct.VkOffset3D               (VkOffset3D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageCopy {
---   >     VkImageSubresourceLayers srcSubresource;
---   >     VkOffset3D             srcOffset;
---   >     VkImageSubresourceLayers dstSubresource;
---   >     VkOffset3D             dstOffset;
---   >     VkExtent3D             extent;
---   > } VkImageCopy;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageCopy.html VkImageCopy registry at www.khronos.org>
-data VkImageCopy = VkImageCopy## Addr## ByteArray##
-
-instance Eq VkImageCopy where
-        (VkImageCopy## a _) == x@(VkImageCopy## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageCopy where
-        (VkImageCopy## a _) `compare` x@(VkImageCopy## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageCopy where
-        sizeOf ~_ = #{size VkImageCopy}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageCopy}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageCopy where
-        unsafeAddr (VkImageCopy## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageCopy## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageCopy## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageCopy where
-        type StructFields VkImageCopy =
-             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
-               "extent"]
-        type CUnionType VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageCopy = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "srcSubresource" VkImageCopy
-         where
-        type FieldType "srcSubresource" VkImageCopy =
-             VkImageSubresourceLayers
-        type FieldOptional "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcSubresource" VkImageCopy =
-             #{offset VkImageCopy, srcSubresource}
-        type FieldIsArray "srcSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCopy, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcSubresource" VkImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCopy, srcSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCopy, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcSubresource" VkImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCopy, srcSubresource}
-
-instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageCopy where
-        type FieldType "srcOffset" VkImageCopy = VkOffset3D
-        type FieldOptional "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcOffset" VkImageCopy =
-             #{offset VkImageCopy, srcOffset}
-        type FieldIsArray "srcOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} CanReadField "srcOffset" VkImageCopy
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCopy, srcOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} CanWriteField "srcOffset" VkImageCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCopy, srcOffset}
-
-instance {-# OVERLAPPING #-} HasField "dstSubresource" VkImageCopy
-         where
-        type FieldType "dstSubresource" VkImageCopy =
-             VkImageSubresourceLayers
-        type FieldOptional "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSubresource" VkImageCopy =
-             #{offset VkImageCopy, dstSubresource}
-        type FieldIsArray "dstSubresource" VkImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCopy, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSubresource" VkImageCopy where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCopy, dstSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCopy, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSubresource" VkImageCopy where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCopy, dstSubresource}
-
-instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageCopy where
-        type FieldType "dstOffset" VkImageCopy = VkOffset3D
-        type FieldOptional "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstOffset" VkImageCopy =
-             #{offset VkImageCopy, dstOffset}
-        type FieldIsArray "dstOffset" VkImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} CanReadField "dstOffset" VkImageCopy
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCopy, dstOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} CanWriteField "dstOffset" VkImageCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCopy, dstOffset}
-
-instance {-# OVERLAPPING #-} HasField "extent" VkImageCopy where
-        type FieldType "extent" VkImageCopy = VkExtent3D
-        type FieldOptional "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkImageCopy =
-             #{offset VkImageCopy, extent}
-        type FieldIsArray "extent" VkImageCopy = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCopy, extent}
-
-instance {-# OVERLAPPING #-} CanReadField "extent" VkImageCopy
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCopy, extent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCopy, extent}
-
-instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageCopy
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCopy, extent}
-
-instance Show VkImageCopy where
-        showsPrec d x
-          = showString "VkImageCopy {" .
-              showString "srcSubresource = " .
-                showsPrec d (getField @"srcSubresource" x) .
-                  showString ", " .
-                    showString "srcOffset = " .
-                      showsPrec d (getField @"srcOffset" x) .
-                        showString ", " .
-                          showString "dstSubresource = " .
-                            showsPrec d (getField @"dstSubresource" x) .
-                              showString ", " .
-                                showString "dstOffset = " .
-                                  showsPrec d (getField @"dstOffset" x) .
-                                    showString ", " .
-                                      showString "extent = " .
-                                        showsPrec d (getField @"extent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageCreateInfo.hsc
+++ /dev/null
@@ -1,651 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-       (VkImageCreateInfo(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormat           (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags (VkImageCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkImageLayout      (VkImageLayout)
-import           Graphics.Vulkan.Types.Enum.VkImageTiling      (VkImageTiling)
-import           Graphics.Vulkan.Types.Enum.VkImageType        (VkImageType)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags  (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkSharingMode      (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D       (VkExtent3D)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkImageCreateFlags     flags;
---   >     VkImageType            imageType;
---   >     VkFormat               format;
---   >     VkExtent3D             extent;
---   >     uint32_t               mipLevels;
---   >     uint32_t               arrayLayers;
---   >     VkSampleCountFlagBits  samples;
---   >     VkImageTiling          tiling;
---   >     VkImageUsageFlags      usage;
---   >     VkSharingMode          sharingMode;
---   >     uint32_t               queueFamilyIndexCount;
---   >     const uint32_t*        pQueueFamilyIndices;
---   >     VkImageLayout          initialLayout;
---   > } VkImageCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageCreateInfo.html VkImageCreateInfo registry at www.khronos.org>
-data VkImageCreateInfo = VkImageCreateInfo## Addr## ByteArray##
-
-instance Eq VkImageCreateInfo where
-        (VkImageCreateInfo## a _) == x@(VkImageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageCreateInfo where
-        (VkImageCreateInfo## a _) `compare` x@(VkImageCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageCreateInfo where
-        sizeOf ~_ = #{size VkImageCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageCreateInfo where
-        unsafeAddr (VkImageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageCreateInfo where
-        type StructFields VkImageCreateInfo =
-             '["sType", "pNext", "flags", "imageType", "format", "extent", -- ' closing tick for hsc2hs
-               "mipLevels", "arrayLayers", "samples", "tiling", "usage",
-               "sharingMode", "queueFamilyIndexCount", "pQueueFamilyIndices",
-               "initialLayout"]
-        type CUnionType VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkImageCreateInfo
-         where
-        type FieldType "sType" VkImageCreateInfo = VkStructureType
-        type FieldOptional "sType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, sType}
-        type FieldIsArray "sType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkImageCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkImageCreateInfo
-         where
-        type FieldType "pNext" VkImageCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, pNext}
-        type FieldIsArray "pNext" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkImageCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkImageCreateInfo
-         where
-        type FieldType "flags" VkImageCreateInfo = VkImageCreateFlags
-        type FieldOptional "flags" VkImageCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, flags}
-        type FieldIsArray "flags" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} CanReadField "flags" VkImageCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} HasField "imageType" VkImageCreateInfo
-         where
-        type FieldType "imageType" VkImageCreateInfo = VkImageType
-        type FieldOptional "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageType" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, imageType}
-        type FieldIsArray "imageType" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, imageType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageType" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, imageType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, imageType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageType" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, imageType}
-
-instance {-# OVERLAPPING #-} HasField "format" VkImageCreateInfo
-         where
-        type FieldType "format" VkImageCreateInfo = VkFormat
-        type FieldOptional "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, format}
-        type FieldIsArray "format" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, format}
-
-instance {-# OVERLAPPING #-} HasField "extent" VkImageCreateInfo
-         where
-        type FieldType "extent" VkImageCreateInfo = VkExtent3D
-        type FieldOptional "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, extent}
-        type FieldIsArray "extent" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, extent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "extent" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, extent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, extent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "extent" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, extent}
-
-instance {-# OVERLAPPING #-} HasField "mipLevels" VkImageCreateInfo
-         where
-        type FieldType "mipLevels" VkImageCreateInfo = Word32
-        type FieldOptional "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipLevels" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, mipLevels}
-        type FieldIsArray "mipLevels" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, mipLevels}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipLevels" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, mipLevels})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, mipLevels}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipLevels" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, mipLevels}
-
-instance {-# OVERLAPPING #-}
-         HasField "arrayLayers" VkImageCreateInfo where
-        type FieldType "arrayLayers" VkImageCreateInfo = Word32
-        type FieldOptional "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "arrayLayers" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, arrayLayers}
-        type FieldIsArray "arrayLayers" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, arrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "arrayLayers" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, arrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, arrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "arrayLayers" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, arrayLayers}
-
-instance {-# OVERLAPPING #-} HasField "samples" VkImageCreateInfo
-         where
-        type FieldType "samples" VkImageCreateInfo = VkSampleCountFlagBits
-        type FieldOptional "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samples" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, samples}
-        type FieldIsArray "samples" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samples" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samples" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, samples}
-
-instance {-# OVERLAPPING #-} HasField "tiling" VkImageCreateInfo
-         where
-        type FieldType "tiling" VkImageCreateInfo = VkImageTiling
-        type FieldOptional "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tiling" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, tiling}
-        type FieldIsArray "tiling" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tiling" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, tiling})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tiling" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, tiling}
-
-instance {-# OVERLAPPING #-} HasField "usage" VkImageCreateInfo
-         where
-        type FieldType "usage" VkImageCreateInfo = VkImageUsageFlags
-        type FieldOptional "usage" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, usage}
-        type FieldIsArray "usage" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, usage}
-
-instance {-# OVERLAPPING #-} CanReadField "usage" VkImageCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "sharingMode" VkImageCreateInfo where
-        type FieldType "sharingMode" VkImageCreateInfo = VkSharingMode
-        type FieldOptional "sharingMode" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sharingMode" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, sharingMode}
-        type FieldIsArray "sharingMode" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sharingMode" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, sharingMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sharingMode" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, sharingMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndexCount" VkImageCreateInfo where
-        type FieldType "queueFamilyIndexCount" VkImageCreateInfo = Word32
-        type FieldOptional "queueFamilyIndexCount" VkImageCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndexCount" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, queueFamilyIndexCount}
-        type FieldIsArray "queueFamilyIndexCount" VkImageCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndexCount" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, queueFamilyIndexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndexCount" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueueFamilyIndices" VkImageCreateInfo where
-        type FieldType "pQueueFamilyIndices" VkImageCreateInfo = Ptr Word32
-        type FieldOptional "pQueueFamilyIndices" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pQueueFamilyIndices" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, pQueueFamilyIndices}
-        type FieldIsArray "pQueueFamilyIndices" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageCreateInfo, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueueFamilyIndices" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, pQueueFamilyIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueueFamilyIndices" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         HasField "initialLayout" VkImageCreateInfo where
-        type FieldType "initialLayout" VkImageCreateInfo = VkImageLayout
-        type FieldOptional "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "initialLayout" VkImageCreateInfo =
-             #{offset VkImageCreateInfo, initialLayout}
-        type FieldIsArray "initialLayout" VkImageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageCreateInfo, initialLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "initialLayout" VkImageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageCreateInfo, initialLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageCreateInfo, initialLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "initialLayout" VkImageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageCreateInfo, initialLayout}
-
-instance Show VkImageCreateInfo where
-        showsPrec d x
-          = showString "VkImageCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "imageType = " .
-                                  showsPrec d (getField @"imageType" x) .
-                                    showString ", " .
-                                      showString "format = " .
-                                        showsPrec d (getField @"format" x) .
-                                          showString ", " .
-                                            showString "extent = " .
-                                              showsPrec d (getField @"extent" x) .
-                                                showString ", " .
-                                                  showString "mipLevels = " .
-                                                    showsPrec d (getField @"mipLevels" x) .
-                                                      showString ", " .
-                                                        showString "arrayLayers = " .
-                                                          showsPrec d (getField @"arrayLayers" x) .
-                                                            showString ", " .
-                                                              showString "samples = " .
-                                                                showsPrec d (getField @"samples" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "tiling = " .
-                                                                      showsPrec d
-                                                                        (getField @"tiling" x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString "usage = " .
-                                                                            showsPrec d
-                                                                              (getField @"usage" x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "sharingMode = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"sharingMode"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "queueFamilyIndexCount = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"queueFamilyIndexCount"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "pQueueFamilyIndices = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"pQueueFamilyIndices"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "initialLayout = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"initialLayout"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showChar
-                                                                                                        '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatListCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatListCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatListCreateInfoKHR.hsc
+++ /dev/null
@@ -1,231 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageFormatListCreateInfoKHR
-       (VkImageFormatListCreateInfoKHR(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormat            (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo (VkImageCreateInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageFormatListCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     uint32_t               viewFormatCount;
---   >     const VkFormat*      pViewFormats;
---   > } VkImageFormatListCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageFormatListCreateInfoKHR.html VkImageFormatListCreateInfoKHR registry at www.khronos.org>
-data VkImageFormatListCreateInfoKHR = VkImageFormatListCreateInfoKHR## Addr##
-                                                                      ByteArray##
-
-instance Eq VkImageFormatListCreateInfoKHR where
-        (VkImageFormatListCreateInfoKHR## a _) ==
-          x@(VkImageFormatListCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageFormatListCreateInfoKHR where
-        (VkImageFormatListCreateInfoKHR## a _) `compare`
-          x@(VkImageFormatListCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageFormatListCreateInfoKHR where
-        sizeOf ~_ = #{size VkImageFormatListCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImageFormatListCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageFormatListCreateInfoKHR where
-        unsafeAddr (VkImageFormatListCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatListCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatListCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageFormatListCreateInfoKHR where
-        type StructFields VkImageFormatListCreateInfoKHR =
-             '["sType", "pNext", "viewFormatCount", "pViewFormats"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageFormatListCreateInfoKHR =
-             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageFormatListCreateInfoKHR where
-        type FieldType "sType" VkImageFormatListCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageFormatListCreateInfoKHR =
-             #{offset VkImageFormatListCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatListCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageFormatListCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageFormatListCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageFormatListCreateInfoKHR where
-        type FieldType "pNext" VkImageFormatListCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageFormatListCreateInfoKHR =
-             #{offset VkImageFormatListCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImageFormatListCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatListCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageFormatListCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageFormatListCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewFormatCount" VkImageFormatListCreateInfoKHR where
-        type FieldType "viewFormatCount" VkImageFormatListCreateInfoKHR =
-             Word32
-        type FieldOptional "viewFormatCount" VkImageFormatListCreateInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "viewFormatCount" VkImageFormatListCreateInfoKHR =
-             #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
-        type FieldIsArray "viewFormatCount" VkImageFormatListCreateInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewFormatCount" VkImageFormatListCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, viewFormatCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewFormatCount" VkImageFormatListCreateInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, viewFormatCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewFormats" VkImageFormatListCreateInfoKHR where
-        type FieldType "pViewFormats" VkImageFormatListCreateInfoKHR =
-             Ptr VkFormat
-        type FieldOptional "pViewFormats" VkImageFormatListCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pViewFormats" VkImageFormatListCreateInfoKHR =
-             #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
-        type FieldIsArray "pViewFormats" VkImageFormatListCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewFormats" VkImageFormatListCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatListCreateInfoKHR, pViewFormats})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewFormats" VkImageFormatListCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatListCreateInfoKHR, pViewFormats}
-
-instance Show VkImageFormatListCreateInfoKHR where
-        showsPrec d x
-          = showString "VkImageFormatListCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "viewFormatCount = " .
-                            showsPrec d (getField @"viewFormatCount" x) .
-                              showString ", " .
-                                showString "pViewFormats = " .
-                                  showsPrec d (getField @"pViewFormats" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties.hsc
+++ /dev/null
@@ -1,260 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-       (VkImageFormatProperties(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags (VkSampleCountFlags)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D       (VkExtent3D)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageFormatProperties {
---   >     VkExtent3D             maxExtent;
---   >     uint32_t               maxMipLevels;
---   >     uint32_t               maxArrayLayers;
---   >     VkSampleCountFlags     sampleCounts;
---   >     VkDeviceSize           maxResourceSize;
---   > } VkImageFormatProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageFormatProperties.html VkImageFormatProperties registry at www.khronos.org>
-data VkImageFormatProperties = VkImageFormatProperties## Addr##
-                                                        ByteArray##
-
-instance Eq VkImageFormatProperties where
-        (VkImageFormatProperties## a _) == x@(VkImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageFormatProperties where
-        (VkImageFormatProperties## a _) `compare`
-          x@(VkImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageFormatProperties where
-        sizeOf ~_ = #{size VkImageFormatProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageFormatProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageFormatProperties where
-        unsafeAddr (VkImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageFormatProperties where
-        type StructFields VkImageFormatProperties =
-             '["maxExtent", "maxMipLevels", "maxArrayLayers", "sampleCounts", -- ' closing tick for hsc2hs
-               "maxResourceSize"]
-        type CUnionType VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkImageFormatProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "maxExtent" VkImageFormatProperties where
-        type FieldType "maxExtent" VkImageFormatProperties = VkExtent3D
-        type FieldOptional "maxExtent" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxExtent" VkImageFormatProperties =
-             #{offset VkImageFormatProperties, maxExtent}
-        type FieldIsArray "maxExtent" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties, maxExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxExtent" VkImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties, maxExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxExtent" VkImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties, maxExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMipLevels" VkImageFormatProperties where
-        type FieldType "maxMipLevels" VkImageFormatProperties = Word32
-        type FieldOptional "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMipLevels" VkImageFormatProperties =
-             #{offset VkImageFormatProperties, maxMipLevels}
-        type FieldIsArray "maxMipLevels" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties, maxMipLevels}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMipLevels" VkImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxMipLevels})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties, maxMipLevels}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMipLevels" VkImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties, maxMipLevels}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxArrayLayers" VkImageFormatProperties where
-        type FieldType "maxArrayLayers" VkImageFormatProperties = Word32
-        type FieldOptional "maxArrayLayers" VkImageFormatProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxArrayLayers" VkImageFormatProperties =
-             #{offset VkImageFormatProperties, maxArrayLayers}
-        type FieldIsArray "maxArrayLayers" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties, maxArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxArrayLayers" VkImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties, maxArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxArrayLayers" VkImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties, maxArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleCounts" VkImageFormatProperties where
-        type FieldType "sampleCounts" VkImageFormatProperties =
-             VkSampleCountFlags
-        type FieldOptional "sampleCounts" VkImageFormatProperties = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampleCounts" VkImageFormatProperties =
-             #{offset VkImageFormatProperties, sampleCounts}
-        type FieldIsArray "sampleCounts" VkImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties, sampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleCounts" VkImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, sampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties, sampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleCounts" VkImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties, sampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxResourceSize" VkImageFormatProperties where
-        type FieldType "maxResourceSize" VkImageFormatProperties =
-             VkDeviceSize
-        type FieldOptional "maxResourceSize" VkImageFormatProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxResourceSize" VkImageFormatProperties =
-             #{offset VkImageFormatProperties, maxResourceSize}
-        type FieldIsArray "maxResourceSize" VkImageFormatProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties, maxResourceSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxResourceSize" VkImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties, maxResourceSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties, maxResourceSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxResourceSize" VkImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties, maxResourceSize}
-
-instance Show VkImageFormatProperties where
-        showsPrec d x
-          = showString "VkImageFormatProperties {" .
-              showString "maxExtent = " .
-                showsPrec d (getField @"maxExtent" x) .
-                  showString ", " .
-                    showString "maxMipLevels = " .
-                      showsPrec d (getField @"maxMipLevels" x) .
-                        showString ", " .
-                          showString "maxArrayLayers = " .
-                            showsPrec d (getField @"maxArrayLayers" x) .
-                              showString ", " .
-                                showString "sampleCounts = " .
-                                  showsPrec d (getField @"sampleCounts" x) .
-                                    showString ", " .
-                                      showString "maxResourceSize = " .
-                                        showsPrec d (getField @"maxResourceSize" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2.hsc
+++ /dev/null
@@ -1,184 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-       (VkImageFormatProperties2(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties (VkImageFormatProperties)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageFormatProperties2 {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     VkImageFormatProperties          imageFormatProperties;
---   > } VkImageFormatProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageFormatProperties2.html VkImageFormatProperties2 registry at www.khronos.org>
-data VkImageFormatProperties2 = VkImageFormatProperties2## Addr##
-                                                          ByteArray##
-
-instance Eq VkImageFormatProperties2 where
-        (VkImageFormatProperties2## a _) ==
-          x@(VkImageFormatProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageFormatProperties2 where
-        (VkImageFormatProperties2## a _) `compare`
-          x@(VkImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageFormatProperties2 where
-        sizeOf ~_ = #{size VkImageFormatProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageFormatProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageFormatProperties2 where
-        unsafeAddr (VkImageFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageFormatProperties2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageFormatProperties2 where
-        type StructFields VkImageFormatProperties2 =
-             '["sType", "pNext", "imageFormatProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageFormatProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkImageFormatProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageFormatProperties2 where
-        type FieldType "sType" VkImageFormatProperties2 = VkStructureType
-        type FieldOptional "sType" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageFormatProperties2 =
-             #{offset VkImageFormatProperties2, sType}
-        type FieldIsArray "sType" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageFormatProperties2 where
-        type FieldType "pNext" VkImageFormatProperties2 = Ptr Void
-        type FieldOptional "pNext" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageFormatProperties2 =
-             #{offset VkImageFormatProperties2, pNext}
-        type FieldIsArray "pNext" VkImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageFormatProperties" VkImageFormatProperties2 where
-        type FieldType "imageFormatProperties" VkImageFormatProperties2 =
-             VkImageFormatProperties
-        type FieldOptional "imageFormatProperties" VkImageFormatProperties2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageFormatProperties" VkImageFormatProperties2 =
-             #{offset VkImageFormatProperties2, imageFormatProperties}
-        type FieldIsArray "imageFormatProperties" VkImageFormatProperties2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageFormatProperties2, imageFormatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageFormatProperties" VkImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageFormatProperties2, imageFormatProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageFormatProperties2, imageFormatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageFormatProperties" VkImageFormatProperties2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageFormatProperties2, imageFormatProperties}
-
-instance Show VkImageFormatProperties2 where
-        showsPrec d x
-          = showString "VkImageFormatProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "imageFormatProperties = " .
-                            showsPrec d (getField @"imageFormatProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageFormatProperties2KHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkImageFormatProperties2KHR
-       (VkImageFormatProperties2(..), VkImageFormatProperties2KHR) where
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2 (VkImageFormatProperties2 (..))
-
--- | Alias for `VkImageFormatProperties2`
-type VkImageFormatProperties2KHR = VkImageFormatProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryBarrier.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryBarrier.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryBarrier.hsc
+++ /dev/null
@@ -1,445 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier
-       (VkImageMemoryBarrier(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags             (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.VkImageLayout             (VkImageLayout)
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                        (VkImage)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceRange (VkImageSubresourceRange)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageMemoryBarrier {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkAccessFlags          srcAccessMask;
---   >     VkAccessFlags          dstAccessMask;
---   >     VkImageLayout          oldLayout;
---   >     VkImageLayout          newLayout;
---   >     uint32_t               srcQueueFamilyIndex;
---   >     uint32_t               dstQueueFamilyIndex;
---   >     VkImage                image;
---   >     VkImageSubresourceRange subresourceRange;
---   > } VkImageMemoryBarrier;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageMemoryBarrier.html VkImageMemoryBarrier registry at www.khronos.org>
-data VkImageMemoryBarrier = VkImageMemoryBarrier## Addr## ByteArray##
-
-instance Eq VkImageMemoryBarrier where
-        (VkImageMemoryBarrier## a _) == x@(VkImageMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageMemoryBarrier where
-        (VkImageMemoryBarrier## a _) `compare` x@(VkImageMemoryBarrier## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageMemoryBarrier where
-        sizeOf ~_ = #{size VkImageMemoryBarrier}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageMemoryBarrier}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageMemoryBarrier where
-        unsafeAddr (VkImageMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageMemoryBarrier where
-        type StructFields VkImageMemoryBarrier =
-             '["sType", "pNext", "srcAccessMask", "dstAccessMask", "oldLayout", -- ' closing tick for hsc2hs
-               "newLayout", "srcQueueFamilyIndex", "dstQueueFamilyIndex", "image",
-               "subresourceRange"]
-        type CUnionType VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageMemoryBarrier = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkImageMemoryBarrier
-         where
-        type FieldType "sType" VkImageMemoryBarrier = VkStructureType
-        type FieldOptional "sType" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, sType}
-        type FieldIsArray "sType" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkImageMemoryBarrier
-         where
-        type FieldType "pNext" VkImageMemoryBarrier = Ptr Void
-        type FieldOptional "pNext" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, pNext}
-        type FieldIsArray "pNext" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcAccessMask" VkImageMemoryBarrier where
-        type FieldType "srcAccessMask" VkImageMemoryBarrier = VkAccessFlags
-        type FieldOptional "srcAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "srcAccessMask" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, srcAccessMask}
-        type FieldIsArray "srcAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcAccessMask" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, srcAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcAccessMask" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstAccessMask" VkImageMemoryBarrier where
-        type FieldType "dstAccessMask" VkImageMemoryBarrier = VkAccessFlags
-        type FieldOptional "dstAccessMask" VkImageMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dstAccessMask" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, dstAccessMask}
-        type FieldIsArray "dstAccessMask" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstAccessMask" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, dstAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstAccessMask" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "oldLayout" VkImageMemoryBarrier where
-        type FieldType "oldLayout" VkImageMemoryBarrier = VkImageLayout
-        type FieldOptional "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "oldLayout" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, oldLayout}
-        type FieldIsArray "oldLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageMemoryBarrier, oldLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "oldLayout" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, oldLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, oldLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "oldLayout" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, oldLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "newLayout" VkImageMemoryBarrier where
-        type FieldType "newLayout" VkImageMemoryBarrier = VkImageLayout
-        type FieldOptional "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "newLayout" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, newLayout}
-        type FieldIsArray "newLayout" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageMemoryBarrier, newLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "newLayout" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, newLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, newLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "newLayout" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, newLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcQueueFamilyIndex" VkImageMemoryBarrier where
-        type FieldType "srcQueueFamilyIndex" VkImageMemoryBarrier = Word32
-        type FieldOptional "srcQueueFamilyIndex" VkImageMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcQueueFamilyIndex" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
-        type FieldIsArray "srcQueueFamilyIndex" VkImageMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcQueueFamilyIndex" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, srcQueueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcQueueFamilyIndex" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, srcQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstQueueFamilyIndex" VkImageMemoryBarrier where
-        type FieldType "dstQueueFamilyIndex" VkImageMemoryBarrier = Word32
-        type FieldOptional "dstQueueFamilyIndex" VkImageMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstQueueFamilyIndex" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
-        type FieldIsArray "dstQueueFamilyIndex" VkImageMemoryBarrier =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstQueueFamilyIndex" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, dstQueueFamilyIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstQueueFamilyIndex" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, dstQueueFamilyIndex}
-
-instance {-# OVERLAPPING #-} HasField "image" VkImageMemoryBarrier
-         where
-        type FieldType "image" VkImageMemoryBarrier = VkImage
-        type FieldOptional "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, image}
-        type FieldIsArray "image" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageMemoryBarrier, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "subresourceRange" VkImageMemoryBarrier where
-        type FieldType "subresourceRange" VkImageMemoryBarrier =
-             VkImageSubresourceRange
-        type FieldOptional "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subresourceRange" VkImageMemoryBarrier =
-             #{offset VkImageMemoryBarrier, subresourceRange}
-        type FieldIsArray "subresourceRange" VkImageMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryBarrier, subresourceRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subresourceRange" VkImageMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryBarrier, subresourceRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryBarrier, subresourceRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subresourceRange" VkImageMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryBarrier, subresourceRange}
-
-instance Show VkImageMemoryBarrier where
-        showsPrec d x
-          = showString "VkImageMemoryBarrier {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcAccessMask = " .
-                            showsPrec d (getField @"srcAccessMask" x) .
-                              showString ", " .
-                                showString "dstAccessMask = " .
-                                  showsPrec d (getField @"dstAccessMask" x) .
-                                    showString ", " .
-                                      showString "oldLayout = " .
-                                        showsPrec d (getField @"oldLayout" x) .
-                                          showString ", " .
-                                            showString "newLayout = " .
-                                              showsPrec d (getField @"newLayout" x) .
-                                                showString ", " .
-                                                  showString "srcQueueFamilyIndex = " .
-                                                    showsPrec d (getField @"srcQueueFamilyIndex" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "dstQueueFamilyIndex = " .
-                                                          showsPrec d
-                                                            (getField @"dstQueueFamilyIndex" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "image = " .
-                                                                showsPrec d (getField @"image" x) .
-                                                                  showString ", " .
-                                                                    showString "subresourceRange = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"subresourceRange"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2.hsc
+++ /dev/null
@@ -1,186 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2
-       (VkImageMemoryRequirementsInfo2(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkImage)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageMemoryRequirementsInfo2 {
---   >     VkStructureType sType;
---   >     const void*                                                          pNext;
---   >     VkImage                                                              image;
---   > } VkImageMemoryRequirementsInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageMemoryRequirementsInfo2.html VkImageMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkImageMemoryRequirementsInfo2 = VkImageMemoryRequirementsInfo2## Addr##
-                                                                      ByteArray##
-
-instance Eq VkImageMemoryRequirementsInfo2 where
-        (VkImageMemoryRequirementsInfo2## a _) ==
-          x@(VkImageMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageMemoryRequirementsInfo2 where
-        (VkImageMemoryRequirementsInfo2## a _) `compare`
-          x@(VkImageMemoryRequirementsInfo2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageMemoryRequirementsInfo2 where
-        sizeOf ~_ = #{size VkImageMemoryRequirementsInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImageMemoryRequirementsInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageMemoryRequirementsInfo2 where
-        unsafeAddr (VkImageMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageMemoryRequirementsInfo2 where
-        type StructFields VkImageMemoryRequirementsInfo2 =
-             '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageMemoryRequirementsInfo2 where
-        type FieldType "sType" VkImageMemoryRequirementsInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageMemoryRequirementsInfo2 =
-             #{offset VkImageMemoryRequirementsInfo2, sType}
-        type FieldIsArray "sType" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageMemoryRequirementsInfo2 where
-        type FieldType "pNext" VkImageMemoryRequirementsInfo2 = Ptr Void
-        type FieldOptional "pNext" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageMemoryRequirementsInfo2 =
-             #{offset VkImageMemoryRequirementsInfo2, pNext}
-        type FieldIsArray "pNext" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkImageMemoryRequirementsInfo2 where
-        type FieldType "image" VkImageMemoryRequirementsInfo2 = VkImage
-        type FieldOptional "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkImageMemoryRequirementsInfo2 =
-             #{offset VkImageMemoryRequirementsInfo2, image}
-        type FieldIsArray "image" VkImageMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageMemoryRequirementsInfo2, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkImageMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageMemoryRequirementsInfo2, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageMemoryRequirementsInfo2, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkImageMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageMemoryRequirementsInfo2, image}
-
-instance Show VkImageMemoryRequirementsInfo2 where
-        showsPrec d x
-          = showString "VkImageMemoryRequirementsInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "image = " .
-                            showsPrec d (getField @"image" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageMemoryRequirementsInfo2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2KHR
-       (VkImageMemoryRequirementsInfo2(..),
-        VkImageMemoryRequirementsInfo2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2 (VkImageMemoryRequirementsInfo2 (..))
-
--- | Alias for `VkImageMemoryRequirementsInfo2`
-type VkImageMemoryRequirementsInfo2KHR =
-     VkImageMemoryRequirementsInfo2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfo.hsc
+++ /dev/null
@@ -1,198 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfo
-       (VkImagePlaneMemoryRequirementsInfo(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags               (VkImageAspectFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2 (VkImageMemoryRequirementsInfo2)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkImagePlaneMemoryRequirementsInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkImageAspectFlagBits            planeAspect;
---   > } VkImagePlaneMemoryRequirementsInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImagePlaneMemoryRequirementsInfo.html VkImagePlaneMemoryRequirementsInfo registry at www.khronos.org>
-data VkImagePlaneMemoryRequirementsInfo = VkImagePlaneMemoryRequirementsInfo## Addr##
-                                                                              ByteArray##
-
-instance Eq VkImagePlaneMemoryRequirementsInfo where
-        (VkImagePlaneMemoryRequirementsInfo## a _) ==
-          x@(VkImagePlaneMemoryRequirementsInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImagePlaneMemoryRequirementsInfo where
-        (VkImagePlaneMemoryRequirementsInfo## a _) `compare`
-          x@(VkImagePlaneMemoryRequirementsInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImagePlaneMemoryRequirementsInfo where
-        sizeOf ~_ = #{size VkImagePlaneMemoryRequirementsInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImagePlaneMemoryRequirementsInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImagePlaneMemoryRequirementsInfo where
-        unsafeAddr (VkImagePlaneMemoryRequirementsInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImagePlaneMemoryRequirementsInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImagePlaneMemoryRequirementsInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImagePlaneMemoryRequirementsInfo where
-        type StructFields VkImagePlaneMemoryRequirementsInfo =
-             '["sType", "pNext", "planeAspect"] -- ' closing tick for hsc2hs
-        type CUnionType VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImagePlaneMemoryRequirementsInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImagePlaneMemoryRequirementsInfo =
-             '[VkImageMemoryRequirementsInfo2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImagePlaneMemoryRequirementsInfo where
-        type FieldType "sType" VkImagePlaneMemoryRequirementsInfo =
-             VkStructureType
-        type FieldOptional "sType" VkImagePlaneMemoryRequirementsInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImagePlaneMemoryRequirementsInfo =
-             #{offset VkImagePlaneMemoryRequirementsInfo, sType}
-        type FieldIsArray "sType" VkImagePlaneMemoryRequirementsInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImagePlaneMemoryRequirementsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImagePlaneMemoryRequirementsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImagePlaneMemoryRequirementsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImagePlaneMemoryRequirementsInfo where
-        type FieldType "pNext" VkImagePlaneMemoryRequirementsInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkImagePlaneMemoryRequirementsInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImagePlaneMemoryRequirementsInfo =
-             #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
-        type FieldIsArray "pNext" VkImagePlaneMemoryRequirementsInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImagePlaneMemoryRequirementsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImagePlaneMemoryRequirementsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "planeAspect" VkImagePlaneMemoryRequirementsInfo where
-        type FieldType "planeAspect" VkImagePlaneMemoryRequirementsInfo =
-             VkImageAspectFlagBits
-        type FieldOptional "planeAspect" VkImagePlaneMemoryRequirementsInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "planeAspect" VkImagePlaneMemoryRequirementsInfo =
-             #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
-        type FieldIsArray "planeAspect" VkImagePlaneMemoryRequirementsInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "planeAspect" VkImagePlaneMemoryRequirementsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "planeAspect" VkImagePlaneMemoryRequirementsInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImagePlaneMemoryRequirementsInfo, planeAspect}
-
-instance Show VkImagePlaneMemoryRequirementsInfo where
-        showsPrec d x
-          = showString "VkImagePlaneMemoryRequirementsInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "planeAspect = " .
-                            showsPrec d (getField @"planeAspect" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImagePlaneMemoryRequirementsInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfoKHR
-       (VkImagePlaneMemoryRequirementsInfo(..),
-        VkImagePlaneMemoryRequirementsInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfo (VkImagePlaneMemoryRequirementsInfo (..))
-
--- | Alias for `VkImagePlaneMemoryRequirementsInfo`
-type VkImagePlaneMemoryRequirementsInfoKHR =
-     VkImagePlaneMemoryRequirementsInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageResolve.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageResolve.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageResolve.hsc
+++ /dev/null
@@ -1,250 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageResolve
-       (VkImageResolve(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkExtent3D               (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers (VkImageSubresourceLayers)
-import           Graphics.Vulkan.Types.Struct.VkOffset3D               (VkOffset3D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageResolve {
---   >     VkImageSubresourceLayers srcSubresource;
---   >     VkOffset3D             srcOffset;
---   >     VkImageSubresourceLayers dstSubresource;
---   >     VkOffset3D             dstOffset;
---   >     VkExtent3D             extent;
---   > } VkImageResolve;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageResolve.html VkImageResolve registry at www.khronos.org>
-data VkImageResolve = VkImageResolve## Addr## ByteArray##
-
-instance Eq VkImageResolve where
-        (VkImageResolve## a _) == x@(VkImageResolve## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageResolve where
-        (VkImageResolve## a _) `compare` x@(VkImageResolve## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageResolve where
-        sizeOf ~_ = #{size VkImageResolve}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageResolve}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageResolve where
-        unsafeAddr (VkImageResolve## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageResolve## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageResolve## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageResolve where
-        type StructFields VkImageResolve =
-             '["srcSubresource", "srcOffset", "dstSubresource", "dstOffset", -- ' closing tick for hsc2hs
-               "extent"]
-        type CUnionType VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageResolve = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "srcSubresource" VkImageResolve where
-        type FieldType "srcSubresource" VkImageResolve =
-             VkImageSubresourceLayers
-        type FieldOptional "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcSubresource" VkImageResolve =
-             #{offset VkImageResolve, srcSubresource}
-        type FieldIsArray "srcSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageResolve, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcSubresource" VkImageResolve where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageResolve, srcSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageResolve, srcSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcSubresource" VkImageResolve where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageResolve, srcSubresource}
-
-instance {-# OVERLAPPING #-} HasField "srcOffset" VkImageResolve
-         where
-        type FieldType "srcOffset" VkImageResolve = VkOffset3D
-        type FieldOptional "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcOffset" VkImageResolve =
-             #{offset VkImageResolve, srcOffset}
-        type FieldIsArray "srcOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageResolve, srcOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcOffset" VkImageResolve where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageResolve, srcOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageResolve, srcOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcOffset" VkImageResolve where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageResolve, srcOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstSubresource" VkImageResolve where
-        type FieldType "dstSubresource" VkImageResolve =
-             VkImageSubresourceLayers
-        type FieldOptional "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSubresource" VkImageResolve =
-             #{offset VkImageResolve, dstSubresource}
-        type FieldIsArray "dstSubresource" VkImageResolve = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageResolve, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSubresource" VkImageResolve where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageResolve, dstSubresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageResolve, dstSubresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSubresource" VkImageResolve where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageResolve, dstSubresource}
-
-instance {-# OVERLAPPING #-} HasField "dstOffset" VkImageResolve
-         where
-        type FieldType "dstOffset" VkImageResolve = VkOffset3D
-        type FieldOptional "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstOffset" VkImageResolve =
-             #{offset VkImageResolve, dstOffset}
-        type FieldIsArray "dstOffset" VkImageResolve = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageResolve, dstOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstOffset" VkImageResolve where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageResolve, dstOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageResolve, dstOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstOffset" VkImageResolve where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageResolve, dstOffset}
-
-instance {-# OVERLAPPING #-} HasField "extent" VkImageResolve where
-        type FieldType "extent" VkImageResolve = VkExtent3D
-        type FieldOptional "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkImageResolve =
-             #{offset VkImageResolve, extent}
-        type FieldIsArray "extent" VkImageResolve = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageResolve, extent}
-
-instance {-# OVERLAPPING #-} CanReadField "extent" VkImageResolve
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageResolve, extent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageResolve, extent}
-
-instance {-# OVERLAPPING #-} CanWriteField "extent" VkImageResolve
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageResolve, extent}
-
-instance Show VkImageResolve where
-        showsPrec d x
-          = showString "VkImageResolve {" .
-              showString "srcSubresource = " .
-                showsPrec d (getField @"srcSubresource" x) .
-                  showString ", " .
-                    showString "srcOffset = " .
-                      showsPrec d (getField @"srcOffset" x) .
-                        showString ", " .
-                          showString "dstSubresource = " .
-                            showsPrec d (getField @"dstSubresource" x) .
-                              showString ", " .
-                                showString "dstOffset = " .
-                                  showsPrec d (getField @"dstOffset" x) .
-                                    showString ", " .
-                                      showString "extent = " .
-                                        showsPrec d (getField @"extent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2.hsc
+++ /dev/null
@@ -1,197 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2
-       (VkImageSparseMemoryRequirementsInfo2(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkImage)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageSparseMemoryRequirementsInfo2 {
---   >     VkStructureType sType;
---   >     const void*                                                          pNext;
---   >     VkImage                                                              image;
---   > } VkImageSparseMemoryRequirementsInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageSparseMemoryRequirementsInfo2.html VkImageSparseMemoryRequirementsInfo2 registry at www.khronos.org>
-data VkImageSparseMemoryRequirementsInfo2 = VkImageSparseMemoryRequirementsInfo2## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkImageSparseMemoryRequirementsInfo2 where
-        (VkImageSparseMemoryRequirementsInfo2## a _) ==
-          x@(VkImageSparseMemoryRequirementsInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageSparseMemoryRequirementsInfo2 where
-        (VkImageSparseMemoryRequirementsInfo2## a _) `compare`
-          x@(VkImageSparseMemoryRequirementsInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageSparseMemoryRequirementsInfo2 where
-        sizeOf ~_
-          = #{size VkImageSparseMemoryRequirementsInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImageSparseMemoryRequirementsInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageSparseMemoryRequirementsInfo2
-         where
-        unsafeAddr (VkImageSparseMemoryRequirementsInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSparseMemoryRequirementsInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSparseMemoryRequirementsInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageSparseMemoryRequirementsInfo2 where
-        type StructFields VkImageSparseMemoryRequirementsInfo2 =
-             '["sType", "pNext", "image"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageSparseMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageSparseMemoryRequirementsInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageSparseMemoryRequirementsInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageSparseMemoryRequirementsInfo2 where
-        type FieldType "sType" VkImageSparseMemoryRequirementsInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageSparseMemoryRequirementsInfo2 =
-             #{offset VkImageSparseMemoryRequirementsInfo2, sType}
-        type FieldIsArray "sType" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSparseMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageSparseMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageSparseMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageSparseMemoryRequirementsInfo2 where
-        type FieldType "pNext" VkImageSparseMemoryRequirementsInfo2 =
-             Ptr Void
-        type FieldOptional "pNext" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageSparseMemoryRequirementsInfo2 =
-             #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
-        type FieldIsArray "pNext" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageSparseMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageSparseMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkImageSparseMemoryRequirementsInfo2 where
-        type FieldType "image" VkImageSparseMemoryRequirementsInfo2 =
-             VkImage
-        type FieldOptional "image" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkImageSparseMemoryRequirementsInfo2 =
-             #{offset VkImageSparseMemoryRequirementsInfo2, image}
-        type FieldIsArray "image" VkImageSparseMemoryRequirementsInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSparseMemoryRequirementsInfo2, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkImageSparseMemoryRequirementsInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSparseMemoryRequirementsInfo2, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkImageSparseMemoryRequirementsInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSparseMemoryRequirementsInfo2, image}
-
-instance Show VkImageSparseMemoryRequirementsInfo2 where
-        showsPrec d x
-          = showString "VkImageSparseMemoryRequirementsInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "image = " .
-                            showsPrec d (getField @"image" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSparseMemoryRequirementsInfo2KHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2KHR
-       (VkImageSparseMemoryRequirementsInfo2(..),
-        VkImageSparseMemoryRequirementsInfo2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2
-                                                                                    (VkImageSparseMemoryRequirementsInfo2 (..))
-
--- | Alias for `VkImageSparseMemoryRequirementsInfo2`
-type VkImageSparseMemoryRequirementsInfo2KHR =
-     VkImageSparseMemoryRequirementsInfo2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresource.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresource.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresource.hsc
+++ /dev/null
@@ -1,176 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageSubresource
-       (VkImageSubresource(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags (VkImageAspectFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageSubresource {
---   >     VkImageAspectFlags     aspectMask;
---   >     uint32_t               mipLevel;
---   >     uint32_t               arrayLayer;
---   > } VkImageSubresource;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageSubresource.html VkImageSubresource registry at www.khronos.org>
-data VkImageSubresource = VkImageSubresource## Addr## ByteArray##
-
-instance Eq VkImageSubresource where
-        (VkImageSubresource## a _) == x@(VkImageSubresource## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageSubresource where
-        (VkImageSubresource## a _) `compare` x@(VkImageSubresource## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageSubresource where
-        sizeOf ~_ = #{size VkImageSubresource}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageSubresource}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageSubresource where
-        unsafeAddr (VkImageSubresource## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresource## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresource## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageSubresource where
-        type StructFields VkImageSubresource =
-             '["aspectMask", "mipLevel", "arrayLayer"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageSubresource = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageSubresource = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageSubresource = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkImageSubresource where
-        type FieldType "aspectMask" VkImageSubresource = VkImageAspectFlags
-        type FieldOptional "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkImageSubresource =
-             #{offset VkImageSubresource, aspectMask}
-        type FieldIsArray "aspectMask" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageSubresource, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkImageSubresource where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresource, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkImageSubresource where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresource, aspectMask}
-
-instance {-# OVERLAPPING #-} HasField "mipLevel" VkImageSubresource
-         where
-        type FieldType "mipLevel" VkImageSubresource = Word32
-        type FieldOptional "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipLevel" VkImageSubresource =
-             #{offset VkImageSubresource, mipLevel}
-        type FieldIsArray "mipLevel" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageSubresource, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipLevel" VkImageSubresource where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, mipLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresource, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipLevel" VkImageSubresource where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresource, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "arrayLayer" VkImageSubresource where
-        type FieldType "arrayLayer" VkImageSubresource = Word32
-        type FieldOptional "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "arrayLayer" VkImageSubresource =
-             #{offset VkImageSubresource, arrayLayer}
-        type FieldIsArray "arrayLayer" VkImageSubresource = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageSubresource, arrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "arrayLayer" VkImageSubresource where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresource, arrayLayer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresource, arrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "arrayLayer" VkImageSubresource where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresource, arrayLayer}
-
-instance Show VkImageSubresource where
-        showsPrec d x
-          = showString "VkImageSubresource {" .
-              showString "aspectMask = " .
-                showsPrec d (getField @"aspectMask" x) .
-                  showString ", " .
-                    showString "mipLevel = " .
-                      showsPrec d (getField @"mipLevel" x) .
-                        showString ", " .
-                          showString "arrayLayer = " .
-                            showsPrec d (getField @"arrayLayer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceLayers.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceLayers.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceLayers.hsc
+++ /dev/null
@@ -1,220 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers
-       (VkImageSubresourceLayers(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags (VkImageAspectFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageSubresourceLayers {
---   >     VkImageAspectFlags     aspectMask;
---   >     uint32_t               mipLevel;
---   >     uint32_t               baseArrayLayer;
---   >     uint32_t               layerCount;
---   > } VkImageSubresourceLayers;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageSubresourceLayers.html VkImageSubresourceLayers registry at www.khronos.org>
-data VkImageSubresourceLayers = VkImageSubresourceLayers## Addr##
-                                                          ByteArray##
-
-instance Eq VkImageSubresourceLayers where
-        (VkImageSubresourceLayers## a _) ==
-          x@(VkImageSubresourceLayers## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageSubresourceLayers where
-        (VkImageSubresourceLayers## a _) `compare`
-          x@(VkImageSubresourceLayers## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageSubresourceLayers where
-        sizeOf ~_ = #{size VkImageSubresourceLayers}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageSubresourceLayers}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageSubresourceLayers where
-        unsafeAddr (VkImageSubresourceLayers## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresourceLayers## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresourceLayers## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageSubresourceLayers where
-        type StructFields VkImageSubresourceLayers =
-             '["aspectMask", "mipLevel", "baseArrayLayer", "layerCount"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageSubresourceLayers = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkImageSubresourceLayers where
-        type FieldType "aspectMask" VkImageSubresourceLayers =
-             VkImageAspectFlags
-        type FieldOptional "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkImageSubresourceLayers =
-             #{offset VkImageSubresourceLayers, aspectMask}
-        type FieldIsArray "aspectMask" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceLayers, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkImageSubresourceLayers where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceLayers, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkImageSubresourceLayers where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceLayers, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "mipLevel" VkImageSubresourceLayers where
-        type FieldType "mipLevel" VkImageSubresourceLayers = Word32
-        type FieldOptional "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipLevel" VkImageSubresourceLayers =
-             #{offset VkImageSubresourceLayers, mipLevel}
-        type FieldIsArray "mipLevel" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceLayers, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipLevel" VkImageSubresourceLayers where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, mipLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceLayers, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipLevel" VkImageSubresourceLayers where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceLayers, mipLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "baseArrayLayer" VkImageSubresourceLayers where
-        type FieldType "baseArrayLayer" VkImageSubresourceLayers = Word32
-        type FieldOptional "baseArrayLayer" VkImageSubresourceLayers =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "baseArrayLayer" VkImageSubresourceLayers =
-             #{offset VkImageSubresourceLayers, baseArrayLayer}
-        type FieldIsArray "baseArrayLayer" VkImageSubresourceLayers =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceLayers, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "baseArrayLayer" VkImageSubresourceLayers where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, baseArrayLayer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceLayers, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "baseArrayLayer" VkImageSubresourceLayers where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceLayers, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         HasField "layerCount" VkImageSubresourceLayers where
-        type FieldType "layerCount" VkImageSubresourceLayers = Word32
-        type FieldOptional "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layerCount" VkImageSubresourceLayers =
-             #{offset VkImageSubresourceLayers, layerCount}
-        type FieldIsArray "layerCount" VkImageSubresourceLayers = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceLayers, layerCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layerCount" VkImageSubresourceLayers where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceLayers, layerCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceLayers, layerCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layerCount" VkImageSubresourceLayers where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceLayers, layerCount}
-
-instance Show VkImageSubresourceLayers where
-        showsPrec d x
-          = showString "VkImageSubresourceLayers {" .
-              showString "aspectMask = " .
-                showsPrec d (getField @"aspectMask" x) .
-                  showString ", " .
-                    showString "mipLevel = " .
-                      showsPrec d (getField @"mipLevel" x) .
-                        showString ", " .
-                          showString "baseArrayLayer = " .
-                            showsPrec d (getField @"baseArrayLayer" x) .
-                              showString ", " .
-                                showString "layerCount = " .
-                                  showsPrec d (getField @"layerCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceRange.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSubresourceRange.hsc
+++ /dev/null
@@ -1,255 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageSubresourceRange
-       (VkImageSubresourceRange(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags (VkImageAspectFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageSubresourceRange {
---   >     VkImageAspectFlags     aspectMask;
---   >     uint32_t               baseMipLevel;
---   >     uint32_t               levelCount;
---   >     uint32_t               baseArrayLayer;
---   >     uint32_t               layerCount;
---   > } VkImageSubresourceRange;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageSubresourceRange.html VkImageSubresourceRange registry at www.khronos.org>
-data VkImageSubresourceRange = VkImageSubresourceRange## Addr##
-                                                        ByteArray##
-
-instance Eq VkImageSubresourceRange where
-        (VkImageSubresourceRange## a _) == x@(VkImageSubresourceRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageSubresourceRange where
-        (VkImageSubresourceRange## a _) `compare`
-          x@(VkImageSubresourceRange## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageSubresourceRange where
-        sizeOf ~_ = #{size VkImageSubresourceRange}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageSubresourceRange}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageSubresourceRange where
-        unsafeAddr (VkImageSubresourceRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSubresourceRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSubresourceRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageSubresourceRange where
-        type StructFields VkImageSubresourceRange =
-             '["aspectMask", "baseMipLevel", "levelCount", "baseArrayLayer", -- ' closing tick for hsc2hs
-               "layerCount"]
-        type CUnionType VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageSubresourceRange = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkImageSubresourceRange where
-        type FieldType "aspectMask" VkImageSubresourceRange =
-             VkImageAspectFlags
-        type FieldOptional "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkImageSubresourceRange =
-             #{offset VkImageSubresourceRange, aspectMask}
-        type FieldIsArray "aspectMask" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceRange, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkImageSubresourceRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceRange, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkImageSubresourceRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceRange, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "baseMipLevel" VkImageSubresourceRange where
-        type FieldType "baseMipLevel" VkImageSubresourceRange = Word32
-        type FieldOptional "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "baseMipLevel" VkImageSubresourceRange =
-             #{offset VkImageSubresourceRange, baseMipLevel}
-        type FieldIsArray "baseMipLevel" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceRange, baseMipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "baseMipLevel" VkImageSubresourceRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, baseMipLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceRange, baseMipLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "baseMipLevel" VkImageSubresourceRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceRange, baseMipLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "levelCount" VkImageSubresourceRange where
-        type FieldType "levelCount" VkImageSubresourceRange = Word32
-        type FieldOptional "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "levelCount" VkImageSubresourceRange =
-             #{offset VkImageSubresourceRange, levelCount}
-        type FieldIsArray "levelCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceRange, levelCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "levelCount" VkImageSubresourceRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, levelCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceRange, levelCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "levelCount" VkImageSubresourceRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceRange, levelCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "baseArrayLayer" VkImageSubresourceRange where
-        type FieldType "baseArrayLayer" VkImageSubresourceRange = Word32
-        type FieldOptional "baseArrayLayer" VkImageSubresourceRange =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "baseArrayLayer" VkImageSubresourceRange =
-             #{offset VkImageSubresourceRange, baseArrayLayer}
-        type FieldIsArray "baseArrayLayer" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceRange, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "baseArrayLayer" VkImageSubresourceRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, baseArrayLayer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceRange, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "baseArrayLayer" VkImageSubresourceRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceRange, baseArrayLayer}
-
-instance {-# OVERLAPPING #-}
-         HasField "layerCount" VkImageSubresourceRange where
-        type FieldType "layerCount" VkImageSubresourceRange = Word32
-        type FieldOptional "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layerCount" VkImageSubresourceRange =
-             #{offset VkImageSubresourceRange, layerCount}
-        type FieldIsArray "layerCount" VkImageSubresourceRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSubresourceRange, layerCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "layerCount" VkImageSubresourceRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSubresourceRange, layerCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSubresourceRange, layerCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "layerCount" VkImageSubresourceRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSubresourceRange, layerCount}
-
-instance Show VkImageSubresourceRange where
-        showsPrec d x
-          = showString "VkImageSubresourceRange {" .
-              showString "aspectMask = " .
-                showsPrec d (getField @"aspectMask" x) .
-                  showString ", " .
-                    showString "baseMipLevel = " .
-                      showsPrec d (getField @"baseMipLevel" x) .
-                        showString ", " .
-                          showString "levelCount = " .
-                            showsPrec d (getField @"levelCount" x) .
-                              showString ", " .
-                                showString "baseArrayLayer = " .
-                                  showsPrec d (getField @"baseArrayLayer" x) .
-                                    showString ", " .
-                                      showString "layerCount = " .
-                                        showsPrec d (getField @"layerCount" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSwapchainCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageSwapchainCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageSwapchainCreateInfoKHR.hsc
+++ /dev/null
@@ -1,191 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR
-       (VkImageSwapchainCreateInfoKHR(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                  (VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.VkImageCreateInfo (VkImageCreateInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageSwapchainCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSwapchainKHR   swapchain;
---   > } VkImageSwapchainCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageSwapchainCreateInfoKHR.html VkImageSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkImageSwapchainCreateInfoKHR = VkImageSwapchainCreateInfoKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkImageSwapchainCreateInfoKHR where
-        (VkImageSwapchainCreateInfoKHR## a _) ==
-          x@(VkImageSwapchainCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageSwapchainCreateInfoKHR where
-        (VkImageSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkImageSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageSwapchainCreateInfoKHR where
-        sizeOf ~_ = #{size VkImageSwapchainCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImageSwapchainCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageSwapchainCreateInfoKHR where
-        unsafeAddr (VkImageSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageSwapchainCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageSwapchainCreateInfoKHR where
-        type StructFields VkImageSwapchainCreateInfoKHR =
-             '["sType", "pNext", "swapchain"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageSwapchainCreateInfoKHR =
-             '[VkImageCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageSwapchainCreateInfoKHR where
-        type FieldType "sType" VkImageSwapchainCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageSwapchainCreateInfoKHR =
-             #{offset VkImageSwapchainCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageSwapchainCreateInfoKHR where
-        type FieldType "pNext" VkImageSwapchainCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageSwapchainCreateInfoKHR =
-             #{offset VkImageSwapchainCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImageSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchain" VkImageSwapchainCreateInfoKHR where
-        type FieldType "swapchain" VkImageSwapchainCreateInfoKHR =
-             VkSwapchainKHR
-        type FieldOptional "swapchain" VkImageSwapchainCreateInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "swapchain" VkImageSwapchainCreateInfoKHR =
-             #{offset VkImageSwapchainCreateInfoKHR, swapchain}
-        type FieldIsArray "swapchain" VkImageSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageSwapchainCreateInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchain" VkImageSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageSwapchainCreateInfoKHR, swapchain})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageSwapchainCreateInfoKHR, swapchain}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchain" VkImageSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageSwapchainCreateInfoKHR, swapchain}
-
-instance Show VkImageSwapchainCreateInfoKHR where
-        showsPrec d x
-          = showString "VkImageSwapchainCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchain = " .
-                            showsPrec d (getField @"swapchain" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewCreateInfo.hsc
+++ /dev/null
@@ -1,367 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo
-       (VkImageViewCreateInfo(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                       (VkImageViewCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkFormat                  (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageViewType           (VkImageViewType)
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                        (VkImage)
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping      (VkComponentMapping)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresourceRange (VkImageSubresourceRange)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageViewCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkImageViewCreateFlags flags;
---   >     VkImage                image;
---   >     VkImageViewType        viewType;
---   >     VkFormat               format;
---   >     VkComponentMapping     components;
---   >     VkImageSubresourceRange subresourceRange;
---   > } VkImageViewCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageViewCreateInfo.html VkImageViewCreateInfo registry at www.khronos.org>
-data VkImageViewCreateInfo = VkImageViewCreateInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkImageViewCreateInfo where
-        (VkImageViewCreateInfo## a _) == x@(VkImageViewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageViewCreateInfo where
-        (VkImageViewCreateInfo## a _) `compare`
-          x@(VkImageViewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageViewCreateInfo where
-        sizeOf ~_ = #{size VkImageViewCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageViewCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageViewCreateInfo where
-        unsafeAddr (VkImageViewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageViewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageViewCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageViewCreateInfo where
-        type StructFields VkImageViewCreateInfo =
-             '["sType", "pNext", "flags", "image", "viewType", "format", -- ' closing tick for hsc2hs
-               "components", "subresourceRange"]
-        type CUnionType VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageViewCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkImageViewCreateInfo
-         where
-        type FieldType "sType" VkImageViewCreateInfo = VkStructureType
-        type FieldOptional "sType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, sType}
-        type FieldIsArray "sType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkImageViewCreateInfo
-         where
-        type FieldType "pNext" VkImageViewCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, pNext}
-        type FieldIsArray "pNext" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkImageViewCreateInfo
-         where
-        type FieldType "flags" VkImageViewCreateInfo =
-             VkImageViewCreateFlags
-        type FieldOptional "flags" VkImageViewCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, flags}
-        type FieldIsArray "flags" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, flags}
-
-instance {-# OVERLAPPING #-} HasField "image" VkImageViewCreateInfo
-         where
-        type FieldType "image" VkImageViewCreateInfo = VkImage
-        type FieldOptional "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, image}
-        type FieldIsArray "image" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewType" VkImageViewCreateInfo where
-        type FieldType "viewType" VkImageViewCreateInfo = VkImageViewType
-        type FieldOptional "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewType" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, viewType}
-        type FieldIsArray "viewType" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, viewType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewType" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, viewType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, viewType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewType" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, viewType}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkImageViewCreateInfo where
-        type FieldType "format" VkImageViewCreateInfo = VkFormat
-        type FieldOptional "format" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, format}
-        type FieldIsArray "format" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImageViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "components" VkImageViewCreateInfo where
-        type FieldType "components" VkImageViewCreateInfo =
-             VkComponentMapping
-        type FieldOptional "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "components" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, components}
-        type FieldIsArray "components" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageViewCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "components" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, components})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "components" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         HasField "subresourceRange" VkImageViewCreateInfo where
-        type FieldType "subresourceRange" VkImageViewCreateInfo =
-             VkImageSubresourceRange
-        type FieldOptional "subresourceRange" VkImageViewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subresourceRange" VkImageViewCreateInfo =
-             #{offset VkImageViewCreateInfo, subresourceRange}
-        type FieldIsArray "subresourceRange" VkImageViewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageViewCreateInfo, subresourceRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subresourceRange" VkImageViewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewCreateInfo, subresourceRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewCreateInfo, subresourceRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subresourceRange" VkImageViewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewCreateInfo, subresourceRange}
-
-instance Show VkImageViewCreateInfo where
-        showsPrec d x
-          = showString "VkImageViewCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "image = " .
-                                  showsPrec d (getField @"image" x) .
-                                    showString ", " .
-                                      showString "viewType = " .
-                                        showsPrec d (getField @"viewType" x) .
-                                          showString ", " .
-                                            showString "format = " .
-                                              showsPrec d (getField @"format" x) .
-                                                showString ", " .
-                                                  showString "components = " .
-                                                    showsPrec d (getField @"components" x) .
-                                                      showString ", " .
-                                                        showString "subresourceRange = " .
-                                                          showsPrec d
-                                                            (getField @"subresourceRange" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfo.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfo
-       (VkImageViewUsageCreateInfo(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags       (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo (VkImageViewCreateInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkImageViewUsageCreateInfo {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkImageUsageFlags usage;
---   > } VkImageViewUsageCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImageViewUsageCreateInfo.html VkImageViewUsageCreateInfo registry at www.khronos.org>
-data VkImageViewUsageCreateInfo = VkImageViewUsageCreateInfo## Addr##
-                                                              ByteArray##
-
-instance Eq VkImageViewUsageCreateInfo where
-        (VkImageViewUsageCreateInfo## a _) ==
-          x@(VkImageViewUsageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImageViewUsageCreateInfo where
-        (VkImageViewUsageCreateInfo## a _) `compare`
-          x@(VkImageViewUsageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImageViewUsageCreateInfo where
-        sizeOf ~_ = #{size VkImageViewUsageCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImageViewUsageCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImageViewUsageCreateInfo where
-        unsafeAddr (VkImageViewUsageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImageViewUsageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImageViewUsageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImageViewUsageCreateInfo where
-        type StructFields VkImageViewUsageCreateInfo =
-             '["sType", "pNext", "usage"] -- ' closing tick for hsc2hs
-        type CUnionType VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImageViewUsageCreateInfo =
-             '[VkImageViewCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImageViewUsageCreateInfo where
-        type FieldType "sType" VkImageViewUsageCreateInfo = VkStructureType
-        type FieldOptional "sType" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImageViewUsageCreateInfo =
-             #{offset VkImageViewUsageCreateInfo, sType}
-        type FieldIsArray "sType" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageViewUsageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImageViewUsageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewUsageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImageViewUsageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImageViewUsageCreateInfo where
-        type FieldType "pNext" VkImageViewUsageCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImageViewUsageCreateInfo =
-             #{offset VkImageViewUsageCreateInfo, pNext}
-        type FieldIsArray "pNext" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageViewUsageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImageViewUsageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewUsageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImageViewUsageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkImageViewUsageCreateInfo where
-        type FieldType "usage" VkImageViewUsageCreateInfo =
-             VkImageUsageFlags
-        type FieldOptional "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkImageViewUsageCreateInfo =
-             #{offset VkImageViewUsageCreateInfo, usage}
-        type FieldIsArray "usage" VkImageViewUsageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImageViewUsageCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkImageViewUsageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImageViewUsageCreateInfo, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImageViewUsageCreateInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkImageViewUsageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImageViewUsageCreateInfo, usage}
-
-instance Show VkImageViewUsageCreateInfo where
-        showsPrec d x
-          = showString "VkImageViewUsageCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "usage = " .
-                            showsPrec d (getField @"usage" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImageViewUsageCreateInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfoKHR
-       (VkImageViewUsageCreateInfo(..), VkImageViewUsageCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfo (VkImageViewUsageCreateInfo (..))
-
--- | Alias for `VkImageViewUsageCreateInfo`
-type VkImageViewUsageCreateInfoKHR = VkImageViewUsageCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportAndroidHardwareBufferInfoANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportAndroidHardwareBufferInfoANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportAndroidHardwareBufferInfoANDROID.hsc
+++ /dev/null
@@ -1,206 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportAndroidHardwareBufferInfoANDROID
-       (VkImportAndroidHardwareBufferInfoANDROID(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Defines                     (AHardwareBuffer)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportAndroidHardwareBufferInfoANDROID {
---   >     VkStructureType sType;
---   >     const void*                        pNext;
---   >     struct AHardwareBuffer*            buffer;
---   > } VkImportAndroidHardwareBufferInfoANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportAndroidHardwareBufferInfoANDROID.html VkImportAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
-data VkImportAndroidHardwareBufferInfoANDROID = VkImportAndroidHardwareBufferInfoANDROID## Addr##
-                                                                                          ByteArray##
-
-instance Eq VkImportAndroidHardwareBufferInfoANDROID where
-        (VkImportAndroidHardwareBufferInfoANDROID## a _) ==
-          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportAndroidHardwareBufferInfoANDROID where
-        (VkImportAndroidHardwareBufferInfoANDROID## a _) `compare`
-          x@(VkImportAndroidHardwareBufferInfoANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportAndroidHardwareBufferInfoANDROID where
-        sizeOf ~_
-          = #{size VkImportAndroidHardwareBufferInfoANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportAndroidHardwareBufferInfoANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportAndroidHardwareBufferInfoANDROID
-         where
-        unsafeAddr (VkImportAndroidHardwareBufferInfoANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportAndroidHardwareBufferInfoANDROID## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportAndroidHardwareBufferInfoANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportAndroidHardwareBufferInfoANDROID
-         where
-        type StructFields VkImportAndroidHardwareBufferInfoANDROID =
-             '["sType", "pNext", "buffer"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportAndroidHardwareBufferInfoANDROID = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportAndroidHardwareBufferInfoANDROID = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportAndroidHardwareBufferInfoANDROID =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportAndroidHardwareBufferInfoANDROID where
-        type FieldType "sType" VkImportAndroidHardwareBufferInfoANDROID =
-             VkStructureType
-        type FieldOptional "sType" VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportAndroidHardwareBufferInfoANDROID =
-             #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
-        type FieldIsArray "sType" VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportAndroidHardwareBufferInfoANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportAndroidHardwareBufferInfoANDROID where
-        type FieldType "pNext" VkImportAndroidHardwareBufferInfoANDROID =
-             Ptr Void
-        type FieldOptional "pNext" VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportAndroidHardwareBufferInfoANDROID =
-             #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
-        type FieldIsArray "pNext" VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportAndroidHardwareBufferInfoANDROID where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkImportAndroidHardwareBufferInfoANDROID where
-        type FieldType "buffer" VkImportAndroidHardwareBufferInfoANDROID =
-             Ptr AHardwareBuffer
-        type FieldOptional "buffer"
-               VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkImportAndroidHardwareBufferInfoANDROID
-             =
-             #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
-        type FieldIsArray "buffer" VkImportAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkImportAndroidHardwareBufferInfoANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkImportAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportAndroidHardwareBufferInfoANDROID, buffer}
-
-instance Show VkImportAndroidHardwareBufferInfoANDROID where
-        showsPrec d x
-          = showString "VkImportAndroidHardwareBufferInfoANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "buffer = " .
-                            showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceFdInfoKHR.hsc
+++ /dev/null
@@ -1,287 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportFenceFdInfoKHR
-       (VkImportFenceFdInfoKHR(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags             (VkFenceImportFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                             (VkFence)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportFenceFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                            pNext;
---   >     VkFence              fence;
---   >     VkFenceImportFlags  flags;
---   >     VkExternalFenceHandleTypeFlagBits   handleType;
---   >     int                                    fd;
---   > } VkImportFenceFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportFenceFdInfoKHR.html VkImportFenceFdInfoKHR registry at www.khronos.org>
-data VkImportFenceFdInfoKHR = VkImportFenceFdInfoKHR## Addr##
-                                                      ByteArray##
-
-instance Eq VkImportFenceFdInfoKHR where
-        (VkImportFenceFdInfoKHR## a _) == x@(VkImportFenceFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportFenceFdInfoKHR where
-        (VkImportFenceFdInfoKHR## a _) `compare`
-          x@(VkImportFenceFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportFenceFdInfoKHR where
-        sizeOf ~_ = #{size VkImportFenceFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImportFenceFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportFenceFdInfoKHR where
-        unsafeAddr (VkImportFenceFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportFenceFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportFenceFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportFenceFdInfoKHR where
-        type StructFields VkImportFenceFdInfoKHR =
-             '["sType", "pNext", "fence", "flags", "handleType", "fd"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportFenceFdInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportFenceFdInfoKHR where
-        type FieldType "sType" VkImportFenceFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, sType}
-        type FieldIsArray "sType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportFenceFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportFenceFdInfoKHR where
-        type FieldType "pNext" VkImportFenceFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportFenceFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "fence" VkImportFenceFdInfoKHR where
-        type FieldType "fence" VkImportFenceFdInfoKHR = VkFence
-        type FieldOptional "fence" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fence" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, fence}
-        type FieldIsArray "fence" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportFenceFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fence" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, fence})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fence" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkImportFenceFdInfoKHR where
-        type FieldType "flags" VkImportFenceFdInfoKHR = VkFenceImportFlags
-        type FieldOptional "flags" VkImportFenceFdInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, flags}
-        type FieldIsArray "flags" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportFenceFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportFenceFdInfoKHR where
-        type FieldType "handleType" VkImportFenceFdInfoKHR =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-} HasField "fd" VkImportFenceFdInfoKHR
-         where
-        type FieldType "fd" VkImportFenceFdInfoKHR = CInt
-        type FieldOptional "fd" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fd" VkImportFenceFdInfoKHR =
-             #{offset VkImportFenceFdInfoKHR, fd}
-        type FieldIsArray "fd" VkImportFenceFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportFenceFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fd" VkImportFenceFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceFdInfoKHR, fd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fd" VkImportFenceFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceFdInfoKHR, fd}
-
-instance Show VkImportFenceFdInfoKHR where
-        showsPrec d x
-          = showString "VkImportFenceFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "fence = " .
-                            showsPrec d (getField @"fence" x) .
-                              showString ", " .
-                                showString "flags = " .
-                                  showsPrec d (getField @"flags" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) .
-                                          showString ", " .
-                                            showString "fd = " .
-                                              showsPrec d (getField @"fd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportFenceWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,339 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportFenceWin32HandleInfoKHR
-       (VkImportFenceWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkFenceImportFlags             (VkFenceImportFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                             (VkFence)
-import           Graphics.Vulkan.Types.Include                             (HANDLE,
-                                                                            LPCWSTR)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportFenceWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                                        pNext;
---   >     VkFence                          fence;
---   >     VkFenceImportFlags              flags;
---   >     VkExternalFenceHandleTypeFlagBits  handleType;
---   >     HANDLE                             handle;
---   >     LPCWSTR                            name;
---   > } VkImportFenceWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportFenceWin32HandleInfoKHR.html VkImportFenceWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportFenceWin32HandleInfoKHR = VkImportFenceWin32HandleInfoKHR## Addr##
-                                                                        ByteArray##
-
-instance Eq VkImportFenceWin32HandleInfoKHR where
-        (VkImportFenceWin32HandleInfoKHR## a _) ==
-          x@(VkImportFenceWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportFenceWin32HandleInfoKHR where
-        (VkImportFenceWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportFenceWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportFenceWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkImportFenceWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportFenceWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportFenceWin32HandleInfoKHR where
-        unsafeAddr (VkImportFenceWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportFenceWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportFenceWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportFenceWin32HandleInfoKHR where
-        type StructFields VkImportFenceWin32HandleInfoKHR =
-             '["sType", "pNext", "fence", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
-               "name"]
-        type CUnionType VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportFenceWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "sType" VkImportFenceWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "pNext" VkImportFenceWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "fence" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "fence" VkImportFenceWin32HandleInfoKHR = VkFence
-        type FieldOptional "fence" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fence" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, fence}
-        type FieldIsArray "fence" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fence" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, fence})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fence" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, fence}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "flags" VkImportFenceWin32HandleInfoKHR =
-             VkFenceImportFlags
-        type FieldOptional "flags" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, flags}
-        type FieldIsArray "flags" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "handleType" VkImportFenceWin32HandleInfoKHR =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportFenceWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportFenceWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "handle" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "handle" VkImportFenceWin32HandleInfoKHR = HANDLE
-        type FieldOptional "handle" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handle" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, handle}
-        type FieldIsArray "handle" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handle" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, handle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handle" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkImportFenceWin32HandleInfoKHR where
-        type FieldType "name" VkImportFenceWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkImportFenceWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkImportFenceWin32HandleInfoKHR =
-             #{offset VkImportFenceWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkImportFenceWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportFenceWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkImportFenceWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportFenceWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportFenceWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkImportFenceWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportFenceWin32HandleInfoKHR, name}
-
-instance Show VkImportFenceWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkImportFenceWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "fence = " .
-                            showsPrec d (getField @"fence" x) .
-                              showString ", " .
-                                showString "flags = " .
-                                  showsPrec d (getField @"flags" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) .
-                                          showString ", " .
-                                            showString "handle = " .
-                                              showsPrec d (getField @"handle" x) .
-                                                showString ", " .
-                                                  showString "name = " .
-                                                    showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryFdInfoKHR.hsc
+++ /dev/null
@@ -1,216 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportMemoryFdInfoKHR
-       (VkImportMemoryFdInfoKHR(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo          (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportMemoryFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   >     int                              fd;
---   > } VkImportMemoryFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportMemoryFdInfoKHR.html VkImportMemoryFdInfoKHR registry at www.khronos.org>
-data VkImportMemoryFdInfoKHR = VkImportMemoryFdInfoKHR## Addr##
-                                                        ByteArray##
-
-instance Eq VkImportMemoryFdInfoKHR where
-        (VkImportMemoryFdInfoKHR## a _) == x@(VkImportMemoryFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportMemoryFdInfoKHR where
-        (VkImportMemoryFdInfoKHR## a _) `compare`
-          x@(VkImportMemoryFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportMemoryFdInfoKHR where
-        sizeOf ~_ = #{size VkImportMemoryFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImportMemoryFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportMemoryFdInfoKHR where
-        unsafeAddr (VkImportMemoryFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportMemoryFdInfoKHR where
-        type StructFields VkImportMemoryFdInfoKHR =
-             '["sType", "pNext", "handleType", "fd"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportMemoryFdInfoKHR =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportMemoryFdInfoKHR where
-        type FieldType "sType" VkImportMemoryFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportMemoryFdInfoKHR =
-             #{offset VkImportMemoryFdInfoKHR, sType}
-        type FieldIsArray "sType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportMemoryFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportMemoryFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportMemoryFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportMemoryFdInfoKHR where
-        type FieldType "pNext" VkImportMemoryFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportMemoryFdInfoKHR =
-             #{offset VkImportMemoryFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportMemoryFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportMemoryFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportMemoryFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportMemoryFdInfoKHR where
-        type FieldType "handleType" VkImportMemoryFdInfoKHR =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportMemoryFdInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportMemoryFdInfoKHR =
-             #{offset VkImportMemoryFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportMemoryFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportMemoryFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-} HasField "fd" VkImportMemoryFdInfoKHR
-         where
-        type FieldType "fd" VkImportMemoryFdInfoKHR = CInt
-        type FieldOptional "fd" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fd" VkImportMemoryFdInfoKHR =
-             #{offset VkImportMemoryFdInfoKHR, fd}
-        type FieldIsArray "fd" VkImportMemoryFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportMemoryFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fd" VkImportMemoryFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryFdInfoKHR, fd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fd" VkImportMemoryFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryFdInfoKHR, fd}
-
-instance Show VkImportMemoryFdInfoKHR where
-        showsPrec d x
-          = showString "VkImportMemoryFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) .
-                              showString ", " .
-                                showString "fd = " . showsPrec d (getField @"fd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryHostPointerInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryHostPointerInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryHostPointerInfoEXT.hsc
+++ /dev/null
@@ -1,233 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportMemoryHostPointerInfoEXT
-       (VkImportMemoryHostPointerInfoEXT(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo          (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportMemoryHostPointerInfoEXT {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   >     void* pHostPointer;
---   > } VkImportMemoryHostPointerInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportMemoryHostPointerInfoEXT.html VkImportMemoryHostPointerInfoEXT registry at www.khronos.org>
-data VkImportMemoryHostPointerInfoEXT = VkImportMemoryHostPointerInfoEXT## Addr##
-                                                                          ByteArray##
-
-instance Eq VkImportMemoryHostPointerInfoEXT where
-        (VkImportMemoryHostPointerInfoEXT## a _) ==
-          x@(VkImportMemoryHostPointerInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportMemoryHostPointerInfoEXT where
-        (VkImportMemoryHostPointerInfoEXT## a _) `compare`
-          x@(VkImportMemoryHostPointerInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportMemoryHostPointerInfoEXT where
-        sizeOf ~_ = #{size VkImportMemoryHostPointerInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportMemoryHostPointerInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportMemoryHostPointerInfoEXT where
-        unsafeAddr (VkImportMemoryHostPointerInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryHostPointerInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryHostPointerInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportMemoryHostPointerInfoEXT where
-        type StructFields VkImportMemoryHostPointerInfoEXT =
-             '["sType", "pNext", "handleType", "pHostPointer"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportMemoryHostPointerInfoEXT =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportMemoryHostPointerInfoEXT where
-        type FieldType "sType" VkImportMemoryHostPointerInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkImportMemoryHostPointerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportMemoryHostPointerInfoEXT =
-             #{offset VkImportMemoryHostPointerInfoEXT, sType}
-        type FieldIsArray "sType" VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryHostPointerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportMemoryHostPointerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportMemoryHostPointerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportMemoryHostPointerInfoEXT where
-        type FieldType "pNext" VkImportMemoryHostPointerInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkImportMemoryHostPointerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportMemoryHostPointerInfoEXT =
-             #{offset VkImportMemoryHostPointerInfoEXT, pNext}
-        type FieldIsArray "pNext" VkImportMemoryHostPointerInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryHostPointerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportMemoryHostPointerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportMemoryHostPointerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportMemoryHostPointerInfoEXT where
-        type FieldType "handleType" VkImportMemoryHostPointerInfoEXT =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportMemoryHostPointerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportMemoryHostPointerInfoEXT =
-             #{offset VkImportMemoryHostPointerInfoEXT, handleType}
-        type FieldIsArray "handleType" VkImportMemoryHostPointerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryHostPointerInfoEXT, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportMemoryHostPointerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportMemoryHostPointerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
-        type FieldType "pHostPointer" VkImportMemoryHostPointerInfoEXT =
-             Ptr Void
-        type FieldOptional "pHostPointer" VkImportMemoryHostPointerInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pHostPointer" VkImportMemoryHostPointerInfoEXT =
-             #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
-        type FieldIsArray "pHostPointer" VkImportMemoryHostPointerInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pHostPointer" VkImportMemoryHostPointerInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryHostPointerInfoEXT, pHostPointer}
-
-instance Show VkImportMemoryHostPointerInfoEXT where
-        showsPrec d x
-          = showString "VkImportMemoryHostPointerInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) .
-                              showString ", " .
-                                showString "pHostPointer = " .
-                                  showsPrec d (getField @"pHostPointer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,270 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoKHR
-       (VkImportMemoryWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Include                              (HANDLE,
-                                                                             LPCWSTR)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo          (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportMemoryWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   >     HANDLE           handle;
---   >     LPCWSTR          name;
---   > } VkImportMemoryWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportMemoryWin32HandleInfoKHR.html VkImportMemoryWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportMemoryWin32HandleInfoKHR = VkImportMemoryWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
-
-instance Eq VkImportMemoryWin32HandleInfoKHR where
-        (VkImportMemoryWin32HandleInfoKHR## a _) ==
-          x@(VkImportMemoryWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportMemoryWin32HandleInfoKHR where
-        (VkImportMemoryWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportMemoryWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportMemoryWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkImportMemoryWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportMemoryWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoKHR where
-        unsafeAddr (VkImportMemoryWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportMemoryWin32HandleInfoKHR where
-        type StructFields VkImportMemoryWin32HandleInfoKHR =
-             '["sType", "pNext", "handleType", "handle", "name"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportMemoryWin32HandleInfoKHR =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportMemoryWin32HandleInfoKHR where
-        type FieldType "sType" VkImportMemoryWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkImportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportMemoryWin32HandleInfoKHR =
-             #{offset VkImportMemoryWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportMemoryWin32HandleInfoKHR where
-        type FieldType "pNext" VkImportMemoryWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportMemoryWin32HandleInfoKHR =
-             #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportMemoryWin32HandleInfoKHR where
-        type FieldType "handleType" VkImportMemoryWin32HandleInfoKHR =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportMemoryWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportMemoryWin32HandleInfoKHR =
-             #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "handle" VkImportMemoryWin32HandleInfoKHR where
-        type FieldType "handle" VkImportMemoryWin32HandleInfoKHR = HANDLE
-        type FieldOptional "handle" VkImportMemoryWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handle" VkImportMemoryWin32HandleInfoKHR =
-             #{offset VkImportMemoryWin32HandleInfoKHR, handle}
-        type FieldIsArray "handle" VkImportMemoryWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handle" VkImportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, handle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handle" VkImportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkImportMemoryWin32HandleInfoKHR where
-        type FieldType "name" VkImportMemoryWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkImportMemoryWin32HandleInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkImportMemoryWin32HandleInfoKHR =
-             #{offset VkImportMemoryWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkImportMemoryWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkImportMemoryWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkImportMemoryWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoKHR, name}
-
-instance Show VkImportMemoryWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkImportMemoryWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) .
-                              showString ", " .
-                                showString "handle = " .
-                                  showsPrec d (getField @"handle" x) .
-                                    showString ", " .
-                                      showString "name = " .
-                                        showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportMemoryWin32HandleInfoNV.hsc
+++ /dev/null
@@ -1,228 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoNV
-       (VkImportMemoryWin32HandleInfoNV(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV (VkExternalMemoryHandleTypeFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Include                                (HANDLE)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo            (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportMemoryWin32HandleInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagsNV handleType;
---   >     HANDLE                           handle;
---   > } VkImportMemoryWin32HandleInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportMemoryWin32HandleInfoNV.html VkImportMemoryWin32HandleInfoNV registry at www.khronos.org>
-data VkImportMemoryWin32HandleInfoNV = VkImportMemoryWin32HandleInfoNV## Addr##
-                                                                        ByteArray##
-
-instance Eq VkImportMemoryWin32HandleInfoNV where
-        (VkImportMemoryWin32HandleInfoNV## a _) ==
-          x@(VkImportMemoryWin32HandleInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportMemoryWin32HandleInfoNV where
-        (VkImportMemoryWin32HandleInfoNV## a _) `compare`
-          x@(VkImportMemoryWin32HandleInfoNV## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportMemoryWin32HandleInfoNV where
-        sizeOf ~_ = #{size VkImportMemoryWin32HandleInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportMemoryWin32HandleInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportMemoryWin32HandleInfoNV where
-        unsafeAddr (VkImportMemoryWin32HandleInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportMemoryWin32HandleInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportMemoryWin32HandleInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportMemoryWin32HandleInfoNV where
-        type StructFields VkImportMemoryWin32HandleInfoNV =
-             '["sType", "pNext", "handleType", "handle"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportMemoryWin32HandleInfoNV =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportMemoryWin32HandleInfoNV where
-        type FieldType "sType" VkImportMemoryWin32HandleInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportMemoryWin32HandleInfoNV =
-             #{offset VkImportMemoryWin32HandleInfoNV, sType}
-        type FieldIsArray "sType" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportMemoryWin32HandleInfoNV where
-        type FieldType "pNext" VkImportMemoryWin32HandleInfoNV = Ptr Void
-        type FieldOptional "pNext" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportMemoryWin32HandleInfoNV =
-             #{offset VkImportMemoryWin32HandleInfoNV, pNext}
-        type FieldIsArray "pNext" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportMemoryWin32HandleInfoNV where
-        type FieldType "handleType" VkImportMemoryWin32HandleInfoNV =
-             VkExternalMemoryHandleTypeFlagsNV
-        type FieldOptional "handleType" VkImportMemoryWin32HandleInfoNV =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportMemoryWin32HandleInfoNV =
-             #{offset VkImportMemoryWin32HandleInfoNV, handleType}
-        type FieldIsArray "handleType" VkImportMemoryWin32HandleInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoNV, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "handle" VkImportMemoryWin32HandleInfoNV where
-        type FieldType "handle" VkImportMemoryWin32HandleInfoNV = HANDLE
-        type FieldOptional "handle" VkImportMemoryWin32HandleInfoNV = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handle" VkImportMemoryWin32HandleInfoNV =
-             #{offset VkImportMemoryWin32HandleInfoNV, handle}
-        type FieldIsArray "handle" VkImportMemoryWin32HandleInfoNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportMemoryWin32HandleInfoNV, handle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handle" VkImportMemoryWin32HandleInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportMemoryWin32HandleInfoNV, handle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handle" VkImportMemoryWin32HandleInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportMemoryWin32HandleInfoNV, handle}
-
-instance Show VkImportMemoryWin32HandleInfoNV where
-        showsPrec d x
-          = showString "VkImportMemoryWin32HandleInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) .
-                              showString ", " .
-                                showString "handle = " .
-                                  showsPrec d (getField @"handle" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreFdInfoKHR.hsc
+++ /dev/null
@@ -1,295 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportSemaphoreFdInfoKHR
-       (VkImportSemaphoreFdInfoKHR(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags             (VkSemaphoreImportFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                 (VkSemaphore)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportSemaphoreFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSemaphore    semaphore;
---   >     VkSemaphoreImportFlags flags;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   >     int                              fd;
---   > } VkImportSemaphoreFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportSemaphoreFdInfoKHR.html VkImportSemaphoreFdInfoKHR registry at www.khronos.org>
-data VkImportSemaphoreFdInfoKHR = VkImportSemaphoreFdInfoKHR## Addr##
-                                                              ByteArray##
-
-instance Eq VkImportSemaphoreFdInfoKHR where
-        (VkImportSemaphoreFdInfoKHR## a _) ==
-          x@(VkImportSemaphoreFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportSemaphoreFdInfoKHR where
-        (VkImportSemaphoreFdInfoKHR## a _) `compare`
-          x@(VkImportSemaphoreFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportSemaphoreFdInfoKHR where
-        sizeOf ~_ = #{size VkImportSemaphoreFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkImportSemaphoreFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportSemaphoreFdInfoKHR where
-        unsafeAddr (VkImportSemaphoreFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportSemaphoreFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportSemaphoreFdInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportSemaphoreFdInfoKHR where
-        type StructFields VkImportSemaphoreFdInfoKHR =
-             '["sType", "pNext", "semaphore", "flags", "handleType", "fd"] -- ' closing tick for hsc2hs
-        type CUnionType VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportSemaphoreFdInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportSemaphoreFdInfoKHR where
-        type FieldType "sType" VkImportSemaphoreFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, sType}
-        type FieldIsArray "sType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportSemaphoreFdInfoKHR where
-        type FieldType "pNext" VkImportSemaphoreFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "semaphore" VkImportSemaphoreFdInfoKHR where
-        type FieldType "semaphore" VkImportSemaphoreFdInfoKHR = VkSemaphore
-        type FieldOptional "semaphore" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "semaphore" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, semaphore}
-        type FieldIsArray "semaphore" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "semaphore" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, semaphore})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "semaphore" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkImportSemaphoreFdInfoKHR where
-        type FieldType "flags" VkImportSemaphoreFdInfoKHR =
-             VkSemaphoreImportFlags
-        type FieldOptional "flags" VkImportSemaphoreFdInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, flags}
-        type FieldIsArray "flags" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportSemaphoreFdInfoKHR where
-        type FieldType "handleType" VkImportSemaphoreFdInfoKHR =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "fd" VkImportSemaphoreFdInfoKHR where
-        type FieldType "fd" VkImportSemaphoreFdInfoKHR = CInt
-        type FieldOptional "fd" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fd" VkImportSemaphoreFdInfoKHR =
-             #{offset VkImportSemaphoreFdInfoKHR, fd}
-        type FieldIsArray "fd" VkImportSemaphoreFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkImportSemaphoreFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fd" VkImportSemaphoreFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreFdInfoKHR, fd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreFdInfoKHR, fd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fd" VkImportSemaphoreFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreFdInfoKHR, fd}
-
-instance Show VkImportSemaphoreFdInfoKHR where
-        showsPrec d x
-          = showString "VkImportSemaphoreFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "semaphore = " .
-                            showsPrec d (getField @"semaphore" x) .
-                              showString ", " .
-                                showString "flags = " .
-                                  showsPrec d (getField @"flags" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) .
-                                          showString ", " .
-                                            showString "fd = " .
-                                              showsPrec d (getField @"fd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkImportSemaphoreWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,357 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkImportSemaphoreWin32HandleInfoKHR
-       (VkImportSemaphoreWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags             (VkSemaphoreImportFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                 (VkSemaphore)
-import           Graphics.Vulkan.Types.Include                                 (HANDLE,
-                                                                                LPCWSTR)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkImportSemaphoreWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSemaphore    semaphore;
---   >     VkSemaphoreImportFlags flags;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   >     HANDLE           handle;
---   >     LPCWSTR          name;
---   > } VkImportSemaphoreWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkImportSemaphoreWin32HandleInfoKHR.html VkImportSemaphoreWin32HandleInfoKHR registry at www.khronos.org>
-data VkImportSemaphoreWin32HandleInfoKHR = VkImportSemaphoreWin32HandleInfoKHR## Addr##
-                                                                                ByteArray##
-
-instance Eq VkImportSemaphoreWin32HandleInfoKHR where
-        (VkImportSemaphoreWin32HandleInfoKHR## a _) ==
-          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkImportSemaphoreWin32HandleInfoKHR where
-        (VkImportSemaphoreWin32HandleInfoKHR## a _) `compare`
-          x@(VkImportSemaphoreWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkImportSemaphoreWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkImportSemaphoreWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkImportSemaphoreWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkImportSemaphoreWin32HandleInfoKHR
-         where
-        unsafeAddr (VkImportSemaphoreWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkImportSemaphoreWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkImportSemaphoreWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkImportSemaphoreWin32HandleInfoKHR where
-        type StructFields VkImportSemaphoreWin32HandleInfoKHR =
-             '["sType", "pNext", "semaphore", "flags", "handleType", "handle", -- ' closing tick for hsc2hs
-               "name"]
-        type CUnionType VkImportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkImportSemaphoreWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkImportSemaphoreWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "sType" VkImportSemaphoreWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "pNext" VkImportSemaphoreWin32HandleInfoKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
-             VkSemaphore
-        type FieldOptional "semaphore" VkImportSemaphoreWin32HandleInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
-        type FieldIsArray "semaphore" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "semaphore" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "flags" VkImportSemaphoreWin32HandleInfoKHR =
-             VkSemaphoreImportFlags
-        type FieldOptional "flags" VkImportSemaphoreWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
-        type FieldIsArray "flags" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "handleType" VkImportSemaphoreWin32HandleInfoKHR =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType" VkImportSemaphoreWin32HandleInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkImportSemaphoreWin32HandleInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkImportSemaphoreWin32HandleInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         HasField "handle" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "handle" VkImportSemaphoreWin32HandleInfoKHR =
-             HANDLE
-        type FieldOptional "handle" VkImportSemaphoreWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "handle" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
-        type FieldIsArray "handle" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handle" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, handle})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handle" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, handle}
-
-instance {-# OVERLAPPING #-}
-         HasField "name" VkImportSemaphoreWin32HandleInfoKHR where
-        type FieldType "name" VkImportSemaphoreWin32HandleInfoKHR = LPCWSTR
-        type FieldOptional "name" VkImportSemaphoreWin32HandleInfoKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "name" VkImportSemaphoreWin32HandleInfoKHR =
-             #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
-        type FieldIsArray "name" VkImportSemaphoreWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "name" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkImportSemaphoreWin32HandleInfoKHR, name})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "name" VkImportSemaphoreWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkImportSemaphoreWin32HandleInfoKHR, name}
-
-instance Show VkImportSemaphoreWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkImportSemaphoreWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "semaphore = " .
-                            showsPrec d (getField @"semaphore" x) .
-                              showString ", " .
-                                showString "flags = " .
-                                  showsPrec d (getField @"flags" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) .
-                                          showString ", " .
-                                            showString "handle = " .
-                                              showsPrec d (getField @"handle" x) .
-                                                showString ", " .
-                                                  showString "name = " .
-                                                    showsPrec d (getField @"name" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutCreateInfoNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutCreateInfoNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutCreateInfoNVX.hsc
+++ /dev/null
@@ -1,338 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutCreateInfoNVX
-       (VkIndirectCommandsLayoutCreateInfoNVX(..)) where
-import           Foreign.Storable
-                                                                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkIndirectCommandsLayoutUsageFlagsNVX
-                                                                                   (VkIndirectCommandsLayoutUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-                                                                                   (VkPipelineBindPoint)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutTokenNVX
-                                                                                   (VkIndirectCommandsLayoutTokenNVX)
-import           System.IO.Unsafe
-                                                                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkPipelineBindPoint                      pipelineBindPoint;
---   >     VkIndirectCommandsLayoutUsageFlagsNVX    flags;
---   >     uint32_t                                 tokenCount;
---   >     const VkIndirectCommandsLayoutTokenNVX*  pTokens;
---   > } VkIndirectCommandsLayoutCreateInfoNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIndirectCommandsLayoutCreateInfoNVX.html VkIndirectCommandsLayoutCreateInfoNVX registry at www.khronos.org>
-data VkIndirectCommandsLayoutCreateInfoNVX = VkIndirectCommandsLayoutCreateInfoNVX## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkIndirectCommandsLayoutCreateInfoNVX where
-        (VkIndirectCommandsLayoutCreateInfoNVX## a _) ==
-          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkIndirectCommandsLayoutCreateInfoNVX where
-        (VkIndirectCommandsLayoutCreateInfoNVX## a _) `compare`
-          x@(VkIndirectCommandsLayoutCreateInfoNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkIndirectCommandsLayoutCreateInfoNVX where
-        sizeOf ~_
-          = #{size VkIndirectCommandsLayoutCreateInfoNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkIndirectCommandsLayoutCreateInfoNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        unsafeAddr (VkIndirectCommandsLayoutCreateInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsLayoutCreateInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsLayoutCreateInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkIndirectCommandsLayoutCreateInfoNVX where
-        type StructFields VkIndirectCommandsLayoutCreateInfoNVX =
-             '["sType", "pNext", "pipelineBindPoint", "flags", "tokenCount", -- ' closing tick for hsc2hs
-               "pTokens"]
-        type CUnionType VkIndirectCommandsLayoutCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkIndirectCommandsLayoutCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkIndirectCommandsLayoutCreateInfoNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
-        type FieldType "sType" VkIndirectCommandsLayoutCreateInfoNVX =
-             VkStructureType
-        type FieldOptional "sType" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkIndirectCommandsLayoutCreateInfoNVX =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
-        type FieldIsArray "sType" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
-        type FieldType "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
-             Ptr Void
-        type FieldOptional "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
-        type FieldIsArray "pNext" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineBindPoint" VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        type FieldType "pipelineBindPoint"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             = VkPipelineBindPoint
-        type FieldOptional "pipelineBindPoint"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineBindPoint"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
-        type FieldIsArray "pipelineBindPoint"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineBindPoint"
-           VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineBindPoint"
-           VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
-        type FieldType "flags" VkIndirectCommandsLayoutCreateInfoNVX =
-             VkIndirectCommandsLayoutUsageFlagsNVX
-        type FieldOptional "flags" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkIndirectCommandsLayoutCreateInfoNVX =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
-        type FieldIsArray "flags" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX where
-        type FieldType "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX =
-             Word32
-        type FieldOptional "tokenCount"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
-             =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
-        type FieldIsArray "tokenCount"
-               VkIndirectCommandsLayoutCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tokenCount" VkIndirectCommandsLayoutCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, tokenCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
-        type FieldType "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
-             Ptr VkIndirectCommandsLayoutTokenNVX
-        type FieldOptional "pTokens" VkIndirectCommandsLayoutCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
-             #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
-        type FieldIsArray "pTokens" VkIndirectCommandsLayoutCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTokens" VkIndirectCommandsLayoutCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutCreateInfoNVX, pTokens}
-
-instance Show VkIndirectCommandsLayoutCreateInfoNVX where
-        showsPrec d x
-          = showString "VkIndirectCommandsLayoutCreateInfoNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pipelineBindPoint = " .
-                            showsPrec d (getField @"pipelineBindPoint" x) .
-                              showString ", " .
-                                showString "flags = " .
-                                  showsPrec d (getField @"flags" x) .
-                                    showString ", " .
-                                      showString "tokenCount = " .
-                                        showsPrec d (getField @"tokenCount" x) .
-                                          showString ", " .
-                                            showString "pTokens = " .
-                                              showsPrec d (getField @"pTokens" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutTokenNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutTokenNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsLayoutTokenNVX.hsc
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutTokenNVX
-       (VkIndirectCommandsLayoutTokenNVX(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX (VkIndirectCommandsTokenTypeNVX)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkIndirectCommandsLayoutTokenNVX {
---   >     VkIndirectCommandsTokenTypeNVX      tokenType;
---   >     uint32_t                         bindingUnit;
---   >     uint32_t                         dynamicCount;
---   >     uint32_t                         divisor;
---   > } VkIndirectCommandsLayoutTokenNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIndirectCommandsLayoutTokenNVX.html VkIndirectCommandsLayoutTokenNVX registry at www.khronos.org>
-data VkIndirectCommandsLayoutTokenNVX = VkIndirectCommandsLayoutTokenNVX## Addr##
-                                                                          ByteArray##
-
-instance Eq VkIndirectCommandsLayoutTokenNVX where
-        (VkIndirectCommandsLayoutTokenNVX## a _) ==
-          x@(VkIndirectCommandsLayoutTokenNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkIndirectCommandsLayoutTokenNVX where
-        (VkIndirectCommandsLayoutTokenNVX## a _) `compare`
-          x@(VkIndirectCommandsLayoutTokenNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkIndirectCommandsLayoutTokenNVX where
-        sizeOf ~_ = #{size VkIndirectCommandsLayoutTokenNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkIndirectCommandsLayoutTokenNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIndirectCommandsLayoutTokenNVX where
-        unsafeAddr (VkIndirectCommandsLayoutTokenNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsLayoutTokenNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsLayoutTokenNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkIndirectCommandsLayoutTokenNVX where
-        type StructFields VkIndirectCommandsLayoutTokenNVX =
-             '["tokenType", "bindingUnit", "dynamicCount", "divisor"] -- ' closing tick for hsc2hs
-        type CUnionType VkIndirectCommandsLayoutTokenNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkIndirectCommandsLayoutTokenNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkIndirectCommandsLayoutTokenNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "tokenType" VkIndirectCommandsLayoutTokenNVX where
-        type FieldType "tokenType" VkIndirectCommandsLayoutTokenNVX =
-             VkIndirectCommandsTokenTypeNVX
-        type FieldOptional "tokenType" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "tokenType" VkIndirectCommandsLayoutTokenNVX =
-             #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
-        type FieldIsArray "tokenType" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tokenType" VkIndirectCommandsLayoutTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, tokenType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tokenType" VkIndirectCommandsLayoutTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         HasField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
-        type FieldType "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
-             Word32
-        type FieldOptional "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
-             #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
-        type FieldIsArray "bindingUnit" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bindingUnit" VkIndirectCommandsLayoutTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, bindingUnit}
-
-instance {-# OVERLAPPING #-}
-         HasField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
-        type FieldType "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
-             Word32
-        type FieldOptional "dynamicCount" VkIndirectCommandsLayoutTokenNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
-             #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
-        type FieldIsArray "dynamicCount" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dynamicCount" VkIndirectCommandsLayoutTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, dynamicCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "divisor" VkIndirectCommandsLayoutTokenNVX where
-        type FieldType "divisor" VkIndirectCommandsLayoutTokenNVX = Word32
-        type FieldOptional "divisor" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "divisor" VkIndirectCommandsLayoutTokenNVX =
-             #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
-        type FieldIsArray "divisor" VkIndirectCommandsLayoutTokenNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "divisor" VkIndirectCommandsLayoutTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsLayoutTokenNVX, divisor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "divisor" VkIndirectCommandsLayoutTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsLayoutTokenNVX, divisor}
-
-instance Show VkIndirectCommandsLayoutTokenNVX where
-        showsPrec d x
-          = showString "VkIndirectCommandsLayoutTokenNVX {" .
-              showString "tokenType = " .
-                showsPrec d (getField @"tokenType" x) .
-                  showString ", " .
-                    showString "bindingUnit = " .
-                      showsPrec d (getField @"bindingUnit" x) .
-                        showString ", " .
-                          showString "dynamicCount = " .
-                            showsPrec d (getField @"dynamicCount" x) .
-                              showString ", " .
-                                showString "divisor = " .
-                                  showsPrec d (getField @"divisor" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsTokenNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsTokenNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkIndirectCommandsTokenNVX.hsc
+++ /dev/null
@@ -1,186 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkIndirectCommandsTokenNVX
-       (VkIndirectCommandsTokenNVX(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                           (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX (VkIndirectCommandsTokenTypeNVX)
-import           Graphics.Vulkan.Types.Handles                             (VkBuffer)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkIndirectCommandsTokenNVX {
---   >     VkIndirectCommandsTokenTypeNVX      tokenType;
---   >     VkBuffer                         buffer;
---   >     VkDeviceSize                     offset;
---   > } VkIndirectCommandsTokenNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkIndirectCommandsTokenNVX.html VkIndirectCommandsTokenNVX registry at www.khronos.org>
-data VkIndirectCommandsTokenNVX = VkIndirectCommandsTokenNVX## Addr##
-                                                              ByteArray##
-
-instance Eq VkIndirectCommandsTokenNVX where
-        (VkIndirectCommandsTokenNVX## a _) ==
-          x@(VkIndirectCommandsTokenNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkIndirectCommandsTokenNVX where
-        (VkIndirectCommandsTokenNVX## a _) `compare`
-          x@(VkIndirectCommandsTokenNVX## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkIndirectCommandsTokenNVX where
-        sizeOf ~_ = #{size VkIndirectCommandsTokenNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkIndirectCommandsTokenNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkIndirectCommandsTokenNVX where
-        unsafeAddr (VkIndirectCommandsTokenNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkIndirectCommandsTokenNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkIndirectCommandsTokenNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkIndirectCommandsTokenNVX where
-        type StructFields VkIndirectCommandsTokenNVX =
-             '["tokenType", "buffer", "offset"] -- ' closing tick for hsc2hs
-        type CUnionType VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkIndirectCommandsTokenNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "tokenType" VkIndirectCommandsTokenNVX where
-        type FieldType "tokenType" VkIndirectCommandsTokenNVX =
-             VkIndirectCommandsTokenTypeNVX
-        type FieldOptional "tokenType" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tokenType" VkIndirectCommandsTokenNVX =
-             #{offset VkIndirectCommandsTokenNVX, tokenType}
-        type FieldIsArray "tokenType" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tokenType" VkIndirectCommandsTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, tokenType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tokenType" VkIndirectCommandsTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, tokenType}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkIndirectCommandsTokenNVX where
-        type FieldType "buffer" VkIndirectCommandsTokenNVX = VkBuffer
-        type FieldOptional "buffer" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkIndirectCommandsTokenNVX =
-             #{offset VkIndirectCommandsTokenNVX, buffer}
-        type FieldIsArray "buffer" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsTokenNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkIndirectCommandsTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkIndirectCommandsTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkIndirectCommandsTokenNVX where
-        type FieldType "offset" VkIndirectCommandsTokenNVX = VkDeviceSize
-        type FieldOptional "offset" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkIndirectCommandsTokenNVX =
-             #{offset VkIndirectCommandsTokenNVX, offset}
-        type FieldIsArray "offset" VkIndirectCommandsTokenNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkIndirectCommandsTokenNVX, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkIndirectCommandsTokenNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkIndirectCommandsTokenNVX, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkIndirectCommandsTokenNVX, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkIndirectCommandsTokenNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkIndirectCommandsTokenNVX, offset}
-
-instance Show VkIndirectCommandsTokenNVX where
-        showsPrec d x
-          = showString "VkIndirectCommandsTokenNVX {" .
-              showString "tokenType = " .
-                showsPrec d (getField @"tokenType" x) .
-                  showString ", " .
-                    showString "buffer = " .
-                      showsPrec d (getField @"buffer" x) .
-                        showString ", " .
-                          showString "offset = " .
-                            showsPrec d (getField @"offset" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReference.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReference.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReference.hsc
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference
-       (VkInputAttachmentAspectReference(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags (VkImageAspectFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkInputAttachmentAspectReference {
---   >     uint32_t                        subpass;
---   >     uint32_t                        inputAttachmentIndex;
---   >     VkImageAspectFlags              aspectMask;
---   > } VkInputAttachmentAspectReference;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkInputAttachmentAspectReference.html VkInputAttachmentAspectReference registry at www.khronos.org>
-data VkInputAttachmentAspectReference = VkInputAttachmentAspectReference## Addr##
-                                                                          ByteArray##
-
-instance Eq VkInputAttachmentAspectReference where
-        (VkInputAttachmentAspectReference## a _) ==
-          x@(VkInputAttachmentAspectReference## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkInputAttachmentAspectReference where
-        (VkInputAttachmentAspectReference## a _) `compare`
-          x@(VkInputAttachmentAspectReference## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkInputAttachmentAspectReference where
-        sizeOf ~_ = #{size VkInputAttachmentAspectReference}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkInputAttachmentAspectReference}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkInputAttachmentAspectReference where
-        unsafeAddr (VkInputAttachmentAspectReference## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkInputAttachmentAspectReference## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkInputAttachmentAspectReference##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkInputAttachmentAspectReference where
-        type StructFields VkInputAttachmentAspectReference =
-             '["subpass", "inputAttachmentIndex", "aspectMask"] -- ' closing tick for hsc2hs
-        type CUnionType VkInputAttachmentAspectReference = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkInputAttachmentAspectReference = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkInputAttachmentAspectReference = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "subpass" VkInputAttachmentAspectReference where
-        type FieldType "subpass" VkInputAttachmentAspectReference = Word32
-        type FieldOptional "subpass" VkInputAttachmentAspectReference =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subpass" VkInputAttachmentAspectReference =
-             #{offset VkInputAttachmentAspectReference, subpass}
-        type FieldIsArray "subpass" VkInputAttachmentAspectReference =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInputAttachmentAspectReference, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpass" VkInputAttachmentAspectReference where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, subpass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInputAttachmentAspectReference, subpass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpass" VkInputAttachmentAspectReference where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInputAttachmentAspectReference, subpass}
-
-instance {-# OVERLAPPING #-}
-         HasField "inputAttachmentIndex" VkInputAttachmentAspectReference
-         where
-        type FieldType "inputAttachmentIndex"
-               VkInputAttachmentAspectReference
-             = Word32
-        type FieldOptional "inputAttachmentIndex"
-               VkInputAttachmentAspectReference
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "inputAttachmentIndex"
-               VkInputAttachmentAspectReference
-             =
-             #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
-        type FieldIsArray "inputAttachmentIndex"
-               VkInputAttachmentAspectReference
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "inputAttachmentIndex"
-           VkInputAttachmentAspectReference
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, inputAttachmentIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "inputAttachmentIndex"
-           VkInputAttachmentAspectReference
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInputAttachmentAspectReference, inputAttachmentIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkInputAttachmentAspectReference where
-        type FieldType "aspectMask" VkInputAttachmentAspectReference =
-             VkImageAspectFlags
-        type FieldOptional "aspectMask" VkInputAttachmentAspectReference =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkInputAttachmentAspectReference =
-             #{offset VkInputAttachmentAspectReference, aspectMask}
-        type FieldIsArray "aspectMask" VkInputAttachmentAspectReference =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInputAttachmentAspectReference, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkInputAttachmentAspectReference where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInputAttachmentAspectReference, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInputAttachmentAspectReference, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkInputAttachmentAspectReference where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInputAttachmentAspectReference, aspectMask}
-
-instance Show VkInputAttachmentAspectReference where
-        showsPrec d x
-          = showString "VkInputAttachmentAspectReference {" .
-              showString "subpass = " .
-                showsPrec d (getField @"subpass" x) .
-                  showString ", " .
-                    showString "inputAttachmentIndex = " .
-                      showsPrec d (getField @"inputAttachmentIndex" x) .
-                        showString ", " .
-                          showString "aspectMask = " .
-                            showsPrec d (getField @"aspectMask" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReferenceKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReferenceKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkInputAttachmentAspectReferenceKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReferenceKHR
-       (VkInputAttachmentAspectReference(..),
-        VkInputAttachmentAspectReferenceKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference (VkInputAttachmentAspectReference (..))
-
--- | Alias for `VkInputAttachmentAspectReference`
-type VkInputAttachmentAspectReferenceKHR =
-     VkInputAttachmentAspectReference
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkInstanceCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkInstanceCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkInstanceCreateInfo.hsc
+++ /dev/null
@@ -1,374 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
-       (VkInstanceCreateInfo(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                 (VkInstanceCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkApplicationInfo (VkApplicationInfo)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkInstanceCreateInfo {
---   >     VkStructureType sType;
---   >     const void*     pNext;
---   >     VkInstanceCreateFlags  flags;
---   >     const VkApplicationInfo* pApplicationInfo;
---   >     uint32_t               enabledLayerCount;
---   >     const char* const*      ppEnabledLayerNames;
---   >     uint32_t               enabledExtensionCount;
---   >     const char* const*      ppEnabledExtensionNames;
---   > } VkInstanceCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkInstanceCreateInfo.html VkInstanceCreateInfo registry at www.khronos.org>
-data VkInstanceCreateInfo = VkInstanceCreateInfo## Addr## ByteArray##
-
-instance Eq VkInstanceCreateInfo where
-        (VkInstanceCreateInfo## a _) == x@(VkInstanceCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkInstanceCreateInfo where
-        (VkInstanceCreateInfo## a _) `compare` x@(VkInstanceCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkInstanceCreateInfo where
-        sizeOf ~_ = #{size VkInstanceCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkInstanceCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkInstanceCreateInfo where
-        unsafeAddr (VkInstanceCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkInstanceCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkInstanceCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkInstanceCreateInfo where
-        type StructFields VkInstanceCreateInfo =
-             '["sType", "pNext", "flags", "pApplicationInfo", -- ' closing tick for hsc2hs
-               "enabledLayerCount", "ppEnabledLayerNames",
-               "enabledExtensionCount", "ppEnabledExtensionNames"]
-        type CUnionType VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkInstanceCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkInstanceCreateInfo
-         where
-        type FieldType "sType" VkInstanceCreateInfo = VkStructureType
-        type FieldOptional "sType" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, sType}
-        type FieldIsArray "sType" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkInstanceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkInstanceCreateInfo
-         where
-        type FieldType "pNext" VkInstanceCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, pNext}
-        type FieldIsArray "pNext" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkInstanceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkInstanceCreateInfo
-         where
-        type FieldType "flags" VkInstanceCreateInfo = VkInstanceCreateFlags
-        type FieldOptional "flags" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, flags}
-        type FieldIsArray "flags" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkInstanceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pApplicationInfo" VkInstanceCreateInfo where
-        type FieldType "pApplicationInfo" VkInstanceCreateInfo =
-             Ptr VkApplicationInfo
-        type FieldOptional "pApplicationInfo" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pApplicationInfo" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, pApplicationInfo}
-        type FieldIsArray "pApplicationInfo" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInstanceCreateInfo, pApplicationInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pApplicationInfo" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, pApplicationInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, pApplicationInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pApplicationInfo" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, pApplicationInfo}
-
-instance {-# OVERLAPPING #-}
-         HasField "enabledLayerCount" VkInstanceCreateInfo where
-        type FieldType "enabledLayerCount" VkInstanceCreateInfo = Word32
-        type FieldOptional "enabledLayerCount" VkInstanceCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "enabledLayerCount" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, enabledLayerCount}
-        type FieldIsArray "enabledLayerCount" VkInstanceCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInstanceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "enabledLayerCount" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, enabledLayerCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "enabledLayerCount" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, enabledLayerCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "ppEnabledLayerNames" VkInstanceCreateInfo where
-        type FieldType "ppEnabledLayerNames" VkInstanceCreateInfo =
-             Ptr CString
-        type FieldOptional "ppEnabledLayerNames" VkInstanceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "ppEnabledLayerNames" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
-        type FieldIsArray "ppEnabledLayerNames" VkInstanceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ppEnabledLayerNames" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, ppEnabledLayerNames})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ppEnabledLayerNames" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, ppEnabledLayerNames}
-
-instance {-# OVERLAPPING #-}
-         HasField "enabledExtensionCount" VkInstanceCreateInfo where
-        type FieldType "enabledExtensionCount" VkInstanceCreateInfo =
-             Word32
-        type FieldOptional "enabledExtensionCount" VkInstanceCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "enabledExtensionCount" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, enabledExtensionCount}
-        type FieldIsArray "enabledExtensionCount" VkInstanceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInstanceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "enabledExtensionCount" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, enabledExtensionCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "enabledExtensionCount" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, enabledExtensionCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "ppEnabledExtensionNames" VkInstanceCreateInfo where
-        type FieldType "ppEnabledExtensionNames" VkInstanceCreateInfo =
-             Ptr CString
-        type FieldOptional "ppEnabledExtensionNames" VkInstanceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "ppEnabledExtensionNames" VkInstanceCreateInfo =
-             #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
-        type FieldIsArray "ppEnabledExtensionNames" VkInstanceCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ppEnabledExtensionNames" VkInstanceCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkInstanceCreateInfo, ppEnabledExtensionNames})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ppEnabledExtensionNames" VkInstanceCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkInstanceCreateInfo, ppEnabledExtensionNames}
-
-instance Show VkInstanceCreateInfo where
-        showsPrec d x
-          = showString "VkInstanceCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pApplicationInfo = " .
-                                  showsPrec d (getField @"pApplicationInfo" x) .
-                                    showString ", " .
-                                      showString "enabledLayerCount = " .
-                                        showsPrec d (getField @"enabledLayerCount" x) .
-                                          showString ", " .
-                                            showString "ppEnabledLayerNames = " .
-                                              showsPrec d (getField @"ppEnabledLayerNames" x) .
-                                                showString ", " .
-                                                  showString "enabledExtensionCount = " .
-                                                    showsPrec d
-                                                      (getField @"enabledExtensionCount" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "ppEnabledExtensionNames = " .
-                                                          showsPrec d
-                                                            (getField @"ppEnabledExtensionNames" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkLayerProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkLayerProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkLayerProperties.hsc
+++ /dev/null
@@ -1,333 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkLayerProperties
-       (VkLayerProperties(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                     (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants        (VK_MAX_DESCRIPTION_SIZE, pattern VK_MAX_DESCRIPTION_SIZE,
-                                                   VK_MAX_EXTENSION_NAME_SIZE,
-                                                   pattern VK_MAX_EXTENSION_NAME_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkLayerProperties {
---   >     char            layerName[VK_MAX_EXTENSION_NAME_SIZE];
---   >     uint32_t        specVersion;
---   >     uint32_t        implementationVersion;
---   >     char            description[VK_MAX_DESCRIPTION_SIZE];
---   > } VkLayerProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkLayerProperties.html VkLayerProperties registry at www.khronos.org>
-data VkLayerProperties = VkLayerProperties## Addr## ByteArray##
-
-instance Eq VkLayerProperties where
-        (VkLayerProperties## a _) == x@(VkLayerProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkLayerProperties where
-        (VkLayerProperties## a _) `compare` x@(VkLayerProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkLayerProperties where
-        sizeOf ~_ = #{size VkLayerProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkLayerProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkLayerProperties where
-        unsafeAddr (VkLayerProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkLayerProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkLayerProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkLayerProperties where
-        type StructFields VkLayerProperties =
-             '["layerName", "specVersion", "implementationVersion", -- ' closing tick for hsc2hs
-               "description"]
-        type CUnionType VkLayerProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkLayerProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkLayerProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "layerName" VkLayerProperties
-         where
-        type FieldType "layerName" VkLayerProperties = CChar
-        type FieldOptional "layerName" VkLayerProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layerName" VkLayerProperties =
-             #{offset VkLayerProperties, layerName}
-        type FieldIsArray "layerName" VkLayerProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkLayerProperties, layerName}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>
-         CanReadFieldArray "layerName" idx VkLayerProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "layerName" 0 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "layerName" 1 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "layerName" 2 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "layerName" 3 VkLayerProperties #-}
-        type FieldArrayLength "layerName" VkLayerProperties =
-             VK_MAX_EXTENSION_NAME_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_EXTENSION_NAME_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkLayerProperties, layerName} +
-                      sizeOf (undefined :: CChar) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkLayerProperties, layerName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx, IndexInBounds "layerName" idx VkLayerProperties) =>
-         CanWriteFieldArray "layerName" idx VkLayerProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "layerName" 0 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "layerName" 1 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "layerName" 2 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "layerName" 3 VkLayerProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkLayerProperties, layerName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "specVersion" VkLayerProperties where
-        type FieldType "specVersion" VkLayerProperties = Word32
-        type FieldOptional "specVersion" VkLayerProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "specVersion" VkLayerProperties =
-             #{offset VkLayerProperties, specVersion}
-        type FieldIsArray "specVersion" VkLayerProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkLayerProperties, specVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "specVersion" VkLayerProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkLayerProperties, specVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkLayerProperties, specVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "specVersion" VkLayerProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkLayerProperties, specVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "implementationVersion" VkLayerProperties where
-        type FieldType "implementationVersion" VkLayerProperties = Word32
-        type FieldOptional "implementationVersion" VkLayerProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "implementationVersion" VkLayerProperties =
-             #{offset VkLayerProperties, implementationVersion}
-        type FieldIsArray "implementationVersion" VkLayerProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkLayerProperties, implementationVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "implementationVersion" VkLayerProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkLayerProperties, implementationVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkLayerProperties, implementationVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "implementationVersion" VkLayerProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkLayerProperties, implementationVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "description" VkLayerProperties where
-        type FieldType "description" VkLayerProperties = CChar
-        type FieldOptional "description" VkLayerProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "description" VkLayerProperties =
-             #{offset VkLayerProperties, description}
-        type FieldIsArray "description" VkLayerProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkLayerProperties, description}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "description" idx VkLayerProperties) =>
-         CanReadFieldArray "description" idx VkLayerProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "description" 0 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "description" 1 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "description" 2 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "description" 3 VkLayerProperties #-}
-        type FieldArrayLength "description" VkLayerProperties =
-             VK_MAX_DESCRIPTION_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_DESCRIPTION_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkLayerProperties, description} +
-                      sizeOf (undefined :: CChar) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkLayerProperties, description} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "description" idx VkLayerProperties) =>
-         CanWriteFieldArray "description" idx VkLayerProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "description" 0 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "description" 1 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "description" 2 VkLayerProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "description" 3 VkLayerProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkLayerProperties, description} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkLayerProperties where
-        showsPrec d x
-          = showString "VkLayerProperties {" .
-              (showString "layerName = [" .
-                 showsPrec d
-                   (let s = sizeOf
-                              (undefined :: FieldType "layerName" VkLayerProperties)
-                        o = fieldOffset @"layerName" @VkLayerProperties
-                        f i
-                          = peekByteOff (unsafePtr x) i ::
-                              IO (FieldType "layerName" VkLayerProperties)
-                      in
-                      unsafeDupablePerformIO . mapM f $
-                        map (\ i -> o + i * s) [0 .. VK_MAX_EXTENSION_NAME_SIZE - 1])
-                   . showChar ']')
-                .
-                showString ", " .
-                  showString "specVersion = " .
-                    showsPrec d (getField @"specVersion" x) .
-                      showString ", " .
-                        showString "implementationVersion = " .
-                          showsPrec d (getField @"implementationVersion" x) .
-                            showString ", " .
-                              (showString "description = [" .
-                                 showsPrec d
-                                   (let s = sizeOf
-                                              (undefined ::
-                                                 FieldType "description" VkLayerProperties)
-                                        o = fieldOffset @"description" @VkLayerProperties
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO (FieldType "description" VkLayerProperties)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. VK_MAX_DESCRIPTION_SIZE - 1])
-                                   . showChar ']')
-                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMacOSSurfaceCreateInfoMVK.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMacOSSurfaceCreateInfoMVK.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMacOSSurfaceCreateInfoMVK.hsc
+++ /dev/null
@@ -1,222 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMacOSSurfaceCreateInfoMVK
-       (VkMacOSSurfaceCreateInfoMVK(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkMacOSSurfaceCreateFlagsMVK)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMacOSSurfaceCreateInfoMVK {
---   >     VkStructureType sType;
---   >     const void*                                    pNext;
---   >     VkMacOSSurfaceCreateFlagsMVK   flags;
---   >     const void*                                    pView;
---   > } VkMacOSSurfaceCreateInfoMVK;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMacOSSurfaceCreateInfoMVK.html VkMacOSSurfaceCreateInfoMVK registry at www.khronos.org>
-data VkMacOSSurfaceCreateInfoMVK = VkMacOSSurfaceCreateInfoMVK## Addr##
-                                                                ByteArray##
-
-instance Eq VkMacOSSurfaceCreateInfoMVK where
-        (VkMacOSSurfaceCreateInfoMVK## a _) ==
-          x@(VkMacOSSurfaceCreateInfoMVK## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMacOSSurfaceCreateInfoMVK where
-        (VkMacOSSurfaceCreateInfoMVK## a _) `compare`
-          x@(VkMacOSSurfaceCreateInfoMVK## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMacOSSurfaceCreateInfoMVK where
-        sizeOf ~_ = #{size VkMacOSSurfaceCreateInfoMVK}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMacOSSurfaceCreateInfoMVK}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMacOSSurfaceCreateInfoMVK where
-        unsafeAddr (VkMacOSSurfaceCreateInfoMVK## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMacOSSurfaceCreateInfoMVK## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMacOSSurfaceCreateInfoMVK##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMacOSSurfaceCreateInfoMVK where
-        type StructFields VkMacOSSurfaceCreateInfoMVK =
-             '["sType", "pNext", "flags", "pView"] -- ' closing tick for hsc2hs
-        type CUnionType VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMacOSSurfaceCreateInfoMVK = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMacOSSurfaceCreateInfoMVK where
-        type FieldType "sType" VkMacOSSurfaceCreateInfoMVK =
-             VkStructureType
-        type FieldOptional "sType" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMacOSSurfaceCreateInfoMVK =
-             #{offset VkMacOSSurfaceCreateInfoMVK, sType}
-        type FieldIsArray "sType" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMacOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMacOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMacOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMacOSSurfaceCreateInfoMVK where
-        type FieldType "pNext" VkMacOSSurfaceCreateInfoMVK = Ptr Void
-        type FieldOptional "pNext" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMacOSSurfaceCreateInfoMVK =
-             #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
-        type FieldIsArray "pNext" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMacOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMacOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkMacOSSurfaceCreateInfoMVK where
-        type FieldType "flags" VkMacOSSurfaceCreateInfoMVK =
-             VkMacOSSurfaceCreateFlagsMVK
-        type FieldOptional "flags" VkMacOSSurfaceCreateInfoMVK = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkMacOSSurfaceCreateInfoMVK =
-             #{offset VkMacOSSurfaceCreateInfoMVK, flags}
-        type FieldIsArray "flags" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMacOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkMacOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkMacOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pView" VkMacOSSurfaceCreateInfoMVK where
-        type FieldType "pView" VkMacOSSurfaceCreateInfoMVK = Ptr Void
-        type FieldOptional "pView" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pView" VkMacOSSurfaceCreateInfoMVK =
-             #{offset VkMacOSSurfaceCreateInfoMVK, pView}
-        type FieldIsArray "pView" VkMacOSSurfaceCreateInfoMVK = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMacOSSurfaceCreateInfoMVK, pView}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pView" VkMacOSSurfaceCreateInfoMVK where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMacOSSurfaceCreateInfoMVK, pView})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pView}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pView" VkMacOSSurfaceCreateInfoMVK where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMacOSSurfaceCreateInfoMVK, pView}
-
-instance Show VkMacOSSurfaceCreateInfoMVK where
-        showsPrec d x
-          = showString "VkMacOSSurfaceCreateInfoMVK {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "pView = " .
-                                  showsPrec d (getField @"pView" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMappedMemoryRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMappedMemoryRange.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMappedMemoryRange.hsc
+++ /dev/null
@@ -1,248 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMappedMemoryRange
-       (VkMappedMemoryRange(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDeviceMemory)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMappedMemoryRange {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDeviceMemory         memory;
---   >     VkDeviceSize           offset;
---   >     VkDeviceSize           size;
---   > } VkMappedMemoryRange;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMappedMemoryRange.html VkMappedMemoryRange registry at www.khronos.org>
-data VkMappedMemoryRange = VkMappedMemoryRange## Addr## ByteArray##
-
-instance Eq VkMappedMemoryRange where
-        (VkMappedMemoryRange## a _) == x@(VkMappedMemoryRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMappedMemoryRange where
-        (VkMappedMemoryRange## a _) `compare` x@(VkMappedMemoryRange## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMappedMemoryRange where
-        sizeOf ~_ = #{size VkMappedMemoryRange}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMappedMemoryRange}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMappedMemoryRange where
-        unsafeAddr (VkMappedMemoryRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMappedMemoryRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMappedMemoryRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMappedMemoryRange where
-        type StructFields VkMappedMemoryRange =
-             '["sType", "pNext", "memory", "offset", "size"] -- ' closing tick for hsc2hs
-        type CUnionType VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMappedMemoryRange = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkMappedMemoryRange
-         where
-        type FieldType "sType" VkMappedMemoryRange = VkStructureType
-        type FieldOptional "sType" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMappedMemoryRange =
-             #{offset VkMappedMemoryRange, sType}
-        type FieldIsArray "sType" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMappedMemoryRange, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMappedMemoryRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMappedMemoryRange, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMappedMemoryRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMappedMemoryRange, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkMappedMemoryRange
-         where
-        type FieldType "pNext" VkMappedMemoryRange = Ptr Void
-        type FieldOptional "pNext" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMappedMemoryRange =
-             #{offset VkMappedMemoryRange, pNext}
-        type FieldIsArray "pNext" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMappedMemoryRange, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMappedMemoryRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMappedMemoryRange, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMappedMemoryRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMappedMemoryRange, pNext}
-
-instance {-# OVERLAPPING #-} HasField "memory" VkMappedMemoryRange
-         where
-        type FieldType "memory" VkMappedMemoryRange = VkDeviceMemory
-        type FieldOptional "memory" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkMappedMemoryRange =
-             #{offset VkMappedMemoryRange, memory}
-        type FieldIsArray "memory" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMappedMemoryRange, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkMappedMemoryRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMappedMemoryRange, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkMappedMemoryRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMappedMemoryRange, memory}
-
-instance {-# OVERLAPPING #-} HasField "offset" VkMappedMemoryRange
-         where
-        type FieldType "offset" VkMappedMemoryRange = VkDeviceSize
-        type FieldOptional "offset" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkMappedMemoryRange =
-             #{offset VkMappedMemoryRange, offset}
-        type FieldIsArray "offset" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMappedMemoryRange, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkMappedMemoryRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMappedMemoryRange, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkMappedMemoryRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMappedMemoryRange, offset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkMappedMemoryRange
-         where
-        type FieldType "size" VkMappedMemoryRange = VkDeviceSize
-        type FieldOptional "size" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkMappedMemoryRange =
-             #{offset VkMappedMemoryRange, size}
-        type FieldIsArray "size" VkMappedMemoryRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMappedMemoryRange, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkMappedMemoryRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMappedMemoryRange, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMappedMemoryRange, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkMappedMemoryRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMappedMemoryRange, size}
-
-instance Show VkMappedMemoryRange where
-        showsPrec d x
-          = showString "VkMappedMemoryRange {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memory = " .
-                            showsPrec d (getField @"memory" x) .
-                              showString ", " .
-                                showString "offset = " .
-                                  showsPrec d (getField @"offset" x) .
-                                    showString ", " .
-                                      showString "size = " .
-                                        showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfo.hsc
+++ /dev/null
@@ -1,221 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfo
-       (VkMemoryAllocateFlagsInfo(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags  (VkMemoryAllocateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryAllocateFlagsInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkMemoryAllocateFlags flags;
---   >     uint32_t                         deviceMask;
---   > } VkMemoryAllocateFlagsInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryAllocateFlagsInfo.html VkMemoryAllocateFlagsInfo registry at www.khronos.org>
-data VkMemoryAllocateFlagsInfo = VkMemoryAllocateFlagsInfo## Addr##
-                                                            ByteArray##
-
-instance Eq VkMemoryAllocateFlagsInfo where
-        (VkMemoryAllocateFlagsInfo## a _) ==
-          x@(VkMemoryAllocateFlagsInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryAllocateFlagsInfo where
-        (VkMemoryAllocateFlagsInfo## a _) `compare`
-          x@(VkMemoryAllocateFlagsInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryAllocateFlagsInfo where
-        sizeOf ~_ = #{size VkMemoryAllocateFlagsInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryAllocateFlagsInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryAllocateFlagsInfo where
-        unsafeAddr (VkMemoryAllocateFlagsInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryAllocateFlagsInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryAllocateFlagsInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryAllocateFlagsInfo where
-        type StructFields VkMemoryAllocateFlagsInfo =
-             '["sType", "pNext", "flags", "deviceMask"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryAllocateFlagsInfo =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryAllocateFlagsInfo where
-        type FieldType "sType" VkMemoryAllocateFlagsInfo = VkStructureType
-        type FieldOptional "sType" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryAllocateFlagsInfo =
-             #{offset VkMemoryAllocateFlagsInfo, sType}
-        type FieldIsArray "sType" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateFlagsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryAllocateFlagsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryAllocateFlagsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryAllocateFlagsInfo where
-        type FieldType "pNext" VkMemoryAllocateFlagsInfo = Ptr Void
-        type FieldOptional "pNext" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryAllocateFlagsInfo =
-             #{offset VkMemoryAllocateFlagsInfo, pNext}
-        type FieldIsArray "pNext" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateFlagsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryAllocateFlagsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryAllocateFlagsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkMemoryAllocateFlagsInfo where
-        type FieldType "flags" VkMemoryAllocateFlagsInfo =
-             VkMemoryAllocateFlags
-        type FieldOptional "flags" VkMemoryAllocateFlagsInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkMemoryAllocateFlagsInfo =
-             #{offset VkMemoryAllocateFlagsInfo, flags}
-        type FieldIsArray "flags" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateFlagsInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkMemoryAllocateFlagsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkMemoryAllocateFlagsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceMask" VkMemoryAllocateFlagsInfo where
-        type FieldType "deviceMask" VkMemoryAllocateFlagsInfo = Word32
-        type FieldOptional "deviceMask" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceMask" VkMemoryAllocateFlagsInfo =
-             #{offset VkMemoryAllocateFlagsInfo, deviceMask}
-        type FieldIsArray "deviceMask" VkMemoryAllocateFlagsInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateFlagsInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceMask" VkMemoryAllocateFlagsInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateFlagsInfo, deviceMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateFlagsInfo, deviceMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceMask" VkMemoryAllocateFlagsInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateFlagsInfo, deviceMask}
-
-instance Show VkMemoryAllocateFlagsInfo where
-        showsPrec d x
-          = showString "VkMemoryAllocateFlagsInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "deviceMask = " .
-                                  showsPrec d (getField @"deviceMask" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateFlagsInfoKHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfoKHR
-       (VkMemoryAllocateFlagsInfo(..), VkMemoryAllocateFlagsInfoKHR) where
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfo (VkMemoryAllocateFlagsInfo (..))
-
--- | Alias for `VkMemoryAllocateFlagsInfo`
-type VkMemoryAllocateFlagsInfoKHR = VkMemoryAllocateFlagsInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryAllocateInfo.hsc
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-       (VkMemoryAllocateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryAllocateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDeviceSize           allocationSize;
---   >     uint32_t               memoryTypeIndex;
---   > } VkMemoryAllocateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryAllocateInfo.html VkMemoryAllocateInfo registry at www.khronos.org>
-data VkMemoryAllocateInfo = VkMemoryAllocateInfo## Addr## ByteArray##
-
-instance Eq VkMemoryAllocateInfo where
-        (VkMemoryAllocateInfo## a _) == x@(VkMemoryAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryAllocateInfo where
-        (VkMemoryAllocateInfo## a _) `compare` x@(VkMemoryAllocateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryAllocateInfo where
-        sizeOf ~_ = #{size VkMemoryAllocateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryAllocateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryAllocateInfo where
-        unsafeAddr (VkMemoryAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryAllocateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryAllocateInfo where
-        type StructFields VkMemoryAllocateInfo =
-             '["sType", "pNext", "allocationSize", "memoryTypeIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryAllocateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkMemoryAllocateInfo
-         where
-        type FieldType "sType" VkMemoryAllocateInfo = VkStructureType
-        type FieldOptional "sType" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryAllocateInfo =
-             #{offset VkMemoryAllocateInfo, sType}
-        type FieldIsArray "sType" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryAllocateInfo
-         where
-        type FieldType "pNext" VkMemoryAllocateInfo = Ptr Void
-        type FieldOptional "pNext" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryAllocateInfo =
-             #{offset VkMemoryAllocateInfo, pNext}
-        type FieldIsArray "pNext" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "allocationSize" VkMemoryAllocateInfo where
-        type FieldType "allocationSize" VkMemoryAllocateInfo = VkDeviceSize
-        type FieldOptional "allocationSize" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "allocationSize" VkMemoryAllocateInfo =
-             #{offset VkMemoryAllocateInfo, allocationSize}
-        type FieldIsArray "allocationSize" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateInfo, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "allocationSize" VkMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, allocationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateInfo, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "allocationSize" VkMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateInfo, allocationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeIndex" VkMemoryAllocateInfo where
-        type FieldType "memoryTypeIndex" VkMemoryAllocateInfo = Word32
-        type FieldOptional "memoryTypeIndex" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeIndex" VkMemoryAllocateInfo =
-             #{offset VkMemoryAllocateInfo, memoryTypeIndex}
-        type FieldIsArray "memoryTypeIndex" VkMemoryAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryAllocateInfo, memoryTypeIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeIndex" VkMemoryAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryAllocateInfo, memoryTypeIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryAllocateInfo, memoryTypeIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeIndex" VkMemoryAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryAllocateInfo, memoryTypeIndex}
-
-instance Show VkMemoryAllocateInfo where
-        showsPrec d x
-          = showString "VkMemoryAllocateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "allocationSize = " .
-                            showsPrec d (getField @"allocationSize" x) .
-                              showString ", " .
-                                showString "memoryTypeIndex = " .
-                                  showsPrec d (getField @"memoryTypeIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryBarrier.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryBarrier.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryBarrier.hsc
+++ /dev/null
@@ -1,210 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryBarrier
-       (VkMemoryBarrier(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags   (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryBarrier {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkAccessFlags          srcAccessMask;
---   >     VkAccessFlags          dstAccessMask;
---   > } VkMemoryBarrier;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryBarrier.html VkMemoryBarrier registry at www.khronos.org>
-data VkMemoryBarrier = VkMemoryBarrier## Addr## ByteArray##
-
-instance Eq VkMemoryBarrier where
-        (VkMemoryBarrier## a _) == x@(VkMemoryBarrier## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryBarrier where
-        (VkMemoryBarrier## a _) `compare` x@(VkMemoryBarrier## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryBarrier where
-        sizeOf ~_ = #{size VkMemoryBarrier}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryBarrier}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryBarrier where
-        unsafeAddr (VkMemoryBarrier## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryBarrier## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryBarrier## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryBarrier where
-        type StructFields VkMemoryBarrier =
-             '["sType", "pNext", "srcAccessMask", "dstAccessMask"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryBarrier = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkMemoryBarrier where
-        type FieldType "sType" VkMemoryBarrier = VkStructureType
-        type FieldOptional "sType" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryBarrier =
-             #{offset VkMemoryBarrier, sType}
-        type FieldIsArray "sType" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkMemoryBarrier
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-} CanWriteField "sType" VkMemoryBarrier
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryBarrier, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryBarrier where
-        type FieldType "pNext" VkMemoryBarrier = Ptr Void
-        type FieldOptional "pNext" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryBarrier =
-             #{offset VkMemoryBarrier, pNext}
-        type FieldIsArray "pNext" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkMemoryBarrier
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-} CanWriteField "pNext" VkMemoryBarrier
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryBarrier, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcAccessMask" VkMemoryBarrier where
-        type FieldType "srcAccessMask" VkMemoryBarrier = VkAccessFlags
-        type FieldOptional "srcAccessMask" VkMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "srcAccessMask" VkMemoryBarrier =
-             #{offset VkMemoryBarrier, srcAccessMask}
-        type FieldIsArray "srcAccessMask" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcAccessMask" VkMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, srcAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcAccessMask" VkMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryBarrier, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstAccessMask" VkMemoryBarrier where
-        type FieldType "dstAccessMask" VkMemoryBarrier = VkAccessFlags
-        type FieldOptional "dstAccessMask" VkMemoryBarrier = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dstAccessMask" VkMemoryBarrier =
-             #{offset VkMemoryBarrier, dstAccessMask}
-        type FieldIsArray "dstAccessMask" VkMemoryBarrier = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstAccessMask" VkMemoryBarrier where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryBarrier, dstAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryBarrier, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstAccessMask" VkMemoryBarrier where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryBarrier, dstAccessMask}
-
-instance Show VkMemoryBarrier where
-        showsPrec d x
-          = showString "VkMemoryBarrier {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcAccessMask = " .
-                            showsPrec d (getField @"srcAccessMask" x) .
-                              showString ", " .
-                                showString "dstAccessMask = " .
-                                  showsPrec d (getField @"dstAccessMask" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfo.hsc
+++ /dev/null
@@ -1,225 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfo
-       (VkMemoryDedicatedAllocateInfo(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                     (VkBuffer,
-                                                                    VkImage)
-import           Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo (VkMemoryAllocateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryDedicatedAllocateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkImage          image;
---   >     VkBuffer         buffer;
---   > } VkMemoryDedicatedAllocateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryDedicatedAllocateInfo.html VkMemoryDedicatedAllocateInfo registry at www.khronos.org>
-data VkMemoryDedicatedAllocateInfo = VkMemoryDedicatedAllocateInfo## Addr##
-                                                                    ByteArray##
-
-instance Eq VkMemoryDedicatedAllocateInfo where
-        (VkMemoryDedicatedAllocateInfo## a _) ==
-          x@(VkMemoryDedicatedAllocateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryDedicatedAllocateInfo where
-        (VkMemoryDedicatedAllocateInfo## a _) `compare`
-          x@(VkMemoryDedicatedAllocateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryDedicatedAllocateInfo where
-        sizeOf ~_ = #{size VkMemoryDedicatedAllocateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryDedicatedAllocateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryDedicatedAllocateInfo where
-        unsafeAddr (VkMemoryDedicatedAllocateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryDedicatedAllocateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryDedicatedAllocateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryDedicatedAllocateInfo where
-        type StructFields VkMemoryDedicatedAllocateInfo =
-             '["sType", "pNext", "image", "buffer"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryDedicatedAllocateInfo =
-             '[VkMemoryAllocateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryDedicatedAllocateInfo where
-        type FieldType "sType" VkMemoryDedicatedAllocateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryDedicatedAllocateInfo =
-             #{offset VkMemoryDedicatedAllocateInfo, sType}
-        type FieldIsArray "sType" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryDedicatedAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryDedicatedAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryDedicatedAllocateInfo where
-        type FieldType "pNext" VkMemoryDedicatedAllocateInfo = Ptr Void
-        type FieldOptional "pNext" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryDedicatedAllocateInfo =
-             #{offset VkMemoryDedicatedAllocateInfo, pNext}
-        type FieldIsArray "pNext" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryDedicatedAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryDedicatedAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkMemoryDedicatedAllocateInfo where
-        type FieldType "image" VkMemoryDedicatedAllocateInfo = VkImage
-        type FieldOptional "image" VkMemoryDedicatedAllocateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkMemoryDedicatedAllocateInfo =
-             #{offset VkMemoryDedicatedAllocateInfo, image}
-        type FieldIsArray "image" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedAllocateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkMemoryDedicatedAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkMemoryDedicatedAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkMemoryDedicatedAllocateInfo where
-        type FieldType "buffer" VkMemoryDedicatedAllocateInfo = VkBuffer
-        type FieldOptional "buffer" VkMemoryDedicatedAllocateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkMemoryDedicatedAllocateInfo =
-             #{offset VkMemoryDedicatedAllocateInfo, buffer}
-        type FieldIsArray "buffer" VkMemoryDedicatedAllocateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedAllocateInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkMemoryDedicatedAllocateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedAllocateInfo, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedAllocateInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkMemoryDedicatedAllocateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedAllocateInfo, buffer}
-
-instance Show VkMemoryDedicatedAllocateInfo where
-        showsPrec d x
-          = showString "VkMemoryDedicatedAllocateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "image = " .
-                            showsPrec d (getField @"image" x) .
-                              showString ", " .
-                                showString "buffer = " .
-                                  showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedAllocateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfoKHR
-       (VkMemoryDedicatedAllocateInfo(..),
-        VkMemoryDedicatedAllocateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfo (VkMemoryDedicatedAllocateInfo (..))
-
--- | Alias for `VkMemoryDedicatedAllocateInfo`
-type VkMemoryDedicatedAllocateInfoKHR =
-     VkMemoryDedicatedAllocateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirements.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirements.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirements.hsc
+++ /dev/null
@@ -1,253 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirements
-       (VkMemoryDedicatedRequirements(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                    (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements2 (VkMemoryRequirements2)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryDedicatedRequirements {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         prefersDedicatedAllocation;
---   >     VkBool32                         requiresDedicatedAllocation;
---   > } VkMemoryDedicatedRequirements;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryDedicatedRequirements.html VkMemoryDedicatedRequirements registry at www.khronos.org>
-data VkMemoryDedicatedRequirements = VkMemoryDedicatedRequirements## Addr##
-                                                                    ByteArray##
-
-instance Eq VkMemoryDedicatedRequirements where
-        (VkMemoryDedicatedRequirements## a _) ==
-          x@(VkMemoryDedicatedRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryDedicatedRequirements where
-        (VkMemoryDedicatedRequirements## a _) `compare`
-          x@(VkMemoryDedicatedRequirements## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryDedicatedRequirements where
-        sizeOf ~_ = #{size VkMemoryDedicatedRequirements}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryDedicatedRequirements}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryDedicatedRequirements where
-        unsafeAddr (VkMemoryDedicatedRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryDedicatedRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryDedicatedRequirements##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryDedicatedRequirements where
-        type StructFields VkMemoryDedicatedRequirements =
-             '["sType", "pNext", "prefersDedicatedAllocation", -- ' closing tick for hsc2hs
-               "requiresDedicatedAllocation"]
-        type CUnionType VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryDedicatedRequirements = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryDedicatedRequirements =
-             '[VkMemoryRequirements2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryDedicatedRequirements where
-        type FieldType "sType" VkMemoryDedicatedRequirements =
-             VkStructureType
-        type FieldOptional "sType" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryDedicatedRequirements =
-             #{offset VkMemoryDedicatedRequirements, sType}
-        type FieldIsArray "sType" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedRequirements, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryDedicatedRequirements where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedRequirements, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryDedicatedRequirements where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryDedicatedRequirements where
-        type FieldType "pNext" VkMemoryDedicatedRequirements = Ptr Void
-        type FieldOptional "pNext" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryDedicatedRequirements =
-             #{offset VkMemoryDedicatedRequirements, pNext}
-        type FieldIsArray "pNext" VkMemoryDedicatedRequirements = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedRequirements, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryDedicatedRequirements where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedRequirements, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryDedicatedRequirements where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "prefersDedicatedAllocation" VkMemoryDedicatedRequirements
-         where
-        type FieldType "prefersDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = VkBool32
-        type FieldOptional "prefersDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "prefersDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             =
-             #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
-        type FieldIsArray "prefersDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "prefersDedicatedAllocation"
-           VkMemoryDedicatedRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "prefersDedicatedAllocation"
-           VkMemoryDedicatedRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, prefersDedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         HasField "requiresDedicatedAllocation"
-           VkMemoryDedicatedRequirements
-         where
-        type FieldType "requiresDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = VkBool32
-        type FieldOptional "requiresDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "requiresDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             =
-             #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
-        type FieldIsArray "requiresDedicatedAllocation"
-               VkMemoryDedicatedRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "requiresDedicatedAllocation"
-           VkMemoryDedicatedRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "requiresDedicatedAllocation"
-           VkMemoryDedicatedRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryDedicatedRequirements, requiresDedicatedAllocation}
-
-instance Show VkMemoryDedicatedRequirements where
-        showsPrec d x
-          = showString "VkMemoryDedicatedRequirements {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "prefersDedicatedAllocation = " .
-                            showsPrec d (getField @"prefersDedicatedAllocation" x) .
-                              showString ", " .
-                                showString "requiresDedicatedAllocation = " .
-                                  showsPrec d (getField @"requiresDedicatedAllocation" x) .
-                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirementsKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirementsKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryDedicatedRequirementsKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirementsKHR
-       (VkMemoryDedicatedRequirements(..),
-        VkMemoryDedicatedRequirementsKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirements (VkMemoryDedicatedRequirements (..))
-
--- | Alias for `VkMemoryDedicatedRequirements`
-type VkMemoryDedicatedRequirementsKHR =
-     VkMemoryDedicatedRequirements
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryFdPropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryFdPropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryFdPropertiesKHR.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryFdPropertiesKHR
-       (VkMemoryFdPropertiesKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryFdPropertiesKHR {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         memoryTypeBits;
---   > } VkMemoryFdPropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryFdPropertiesKHR.html VkMemoryFdPropertiesKHR registry at www.khronos.org>
-data VkMemoryFdPropertiesKHR = VkMemoryFdPropertiesKHR## Addr##
-                                                        ByteArray##
-
-instance Eq VkMemoryFdPropertiesKHR where
-        (VkMemoryFdPropertiesKHR## a _) == x@(VkMemoryFdPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryFdPropertiesKHR where
-        (VkMemoryFdPropertiesKHR## a _) `compare`
-          x@(VkMemoryFdPropertiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryFdPropertiesKHR where
-        sizeOf ~_ = #{size VkMemoryFdPropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryFdPropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryFdPropertiesKHR where
-        unsafeAddr (VkMemoryFdPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryFdPropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryFdPropertiesKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryFdPropertiesKHR where
-        type StructFields VkMemoryFdPropertiesKHR =
-             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryFdPropertiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryFdPropertiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryFdPropertiesKHR where
-        type FieldType "sType" VkMemoryFdPropertiesKHR = VkStructureType
-        type FieldOptional "sType" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryFdPropertiesKHR =
-             #{offset VkMemoryFdPropertiesKHR, sType}
-        type FieldIsArray "sType" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryFdPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryFdPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryFdPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryFdPropertiesKHR where
-        type FieldType "pNext" VkMemoryFdPropertiesKHR = Ptr Void
-        type FieldOptional "pNext" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryFdPropertiesKHR =
-             #{offset VkMemoryFdPropertiesKHR, pNext}
-        type FieldIsArray "pNext" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryFdPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryFdPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryFdPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeBits" VkMemoryFdPropertiesKHR where
-        type FieldType "memoryTypeBits" VkMemoryFdPropertiesKHR = Word32
-        type FieldOptional "memoryTypeBits" VkMemoryFdPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeBits" VkMemoryFdPropertiesKHR =
-             #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
-        type FieldIsArray "memoryTypeBits" VkMemoryFdPropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeBits" VkMemoryFdPropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryFdPropertiesKHR, memoryTypeBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeBits" VkMemoryFdPropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryFdPropertiesKHR, memoryTypeBits}
-
-instance Show VkMemoryFdPropertiesKHR where
-        showsPrec d x
-          = showString "VkMemoryFdPropertiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryTypeBits = " .
-                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetAndroidHardwareBufferInfoANDROID.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetAndroidHardwareBufferInfoANDROID.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetAndroidHardwareBufferInfoANDROID.hsc
+++ /dev/null
@@ -1,221 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryGetAndroidHardwareBufferInfoANDROID
-       (VkMemoryGetAndroidHardwareBufferInfoANDROID(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDeviceMemory)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
---   >     VkStructureType sType;
---   >     const void*                        pNext;
---   >     VkDeviceMemory                     memory;
---   > } VkMemoryGetAndroidHardwareBufferInfoANDROID;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryGetAndroidHardwareBufferInfoANDROID.html VkMemoryGetAndroidHardwareBufferInfoANDROID registry at www.khronos.org>
-data VkMemoryGetAndroidHardwareBufferInfoANDROID = VkMemoryGetAndroidHardwareBufferInfoANDROID## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) ==
-          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) `compare`
-          x@(VkMemoryGetAndroidHardwareBufferInfoANDROID## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        sizeOf ~_
-          = #{size VkMemoryGetAndroidHardwareBufferInfoANDROID}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryGetAndroidHardwareBufferInfoANDROID}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        unsafeAddr (VkMemoryGetAndroidHardwareBufferInfoANDROID## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetAndroidHardwareBufferInfoANDROID## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetAndroidHardwareBufferInfoANDROID##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        type StructFields VkMemoryGetAndroidHardwareBufferInfoANDROID =
-             '["sType", "pNext", "memory"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryGetAndroidHardwareBufferInfoANDROID =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryGetAndroidHardwareBufferInfoANDROID =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryGetAndroidHardwareBufferInfoANDROID =
-             '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        type FieldType "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = VkStructureType
-        type FieldOptional "sType"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             =
-             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
-        type FieldIsArray "sType"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        type FieldType "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             =
-             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
-        type FieldIsArray "pNext"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        type FieldType "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = VkDeviceMemory
-        type FieldOptional "memory"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             =
-             #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
-        type FieldIsArray "memory"
-               VkMemoryGetAndroidHardwareBufferInfoANDROID
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkMemoryGetAndroidHardwareBufferInfoANDROID
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetAndroidHardwareBufferInfoANDROID, memory}
-
-instance Show VkMemoryGetAndroidHardwareBufferInfoANDROID where
-        showsPrec d x
-          = showString "VkMemoryGetAndroidHardwareBufferInfoANDROID {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memory = " .
-                            showsPrec d (getField @"memory" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetFdInfoKHR.hsc
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryGetFdInfoKHR
-       (VkMemoryGetFdInfoKHR(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                              (VkDeviceMemory)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryGetFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDeviceMemory                   memory;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkMemoryGetFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryGetFdInfoKHR.html VkMemoryGetFdInfoKHR registry at www.khronos.org>
-data VkMemoryGetFdInfoKHR = VkMemoryGetFdInfoKHR## Addr## ByteArray##
-
-instance Eq VkMemoryGetFdInfoKHR where
-        (VkMemoryGetFdInfoKHR## a _) == x@(VkMemoryGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryGetFdInfoKHR where
-        (VkMemoryGetFdInfoKHR## a _) `compare` x@(VkMemoryGetFdInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryGetFdInfoKHR where
-        sizeOf ~_ = #{size VkMemoryGetFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryGetFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryGetFdInfoKHR where
-        unsafeAddr (VkMemoryGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryGetFdInfoKHR where
-        type StructFields VkMemoryGetFdInfoKHR =
-             '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkMemoryGetFdInfoKHR
-         where
-        type FieldType "sType" VkMemoryGetFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryGetFdInfoKHR =
-             #{offset VkMemoryGetFdInfoKHR, sType}
-        type FieldIsArray "sType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryGetFdInfoKHR
-         where
-        type FieldType "pNext" VkMemoryGetFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryGetFdInfoKHR =
-             #{offset VkMemoryGetFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-} HasField "memory" VkMemoryGetFdInfoKHR
-         where
-        type FieldType "memory" VkMemoryGetFdInfoKHR = VkDeviceMemory
-        type FieldOptional "memory" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkMemoryGetFdInfoKHR =
-             #{offset VkMemoryGetFdInfoKHR, memory}
-        type FieldIsArray "memory" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryGetFdInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkMemoryGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkMemoryGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkMemoryGetFdInfoKHR where
-        type FieldType "handleType" VkMemoryGetFdInfoKHR =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkMemoryGetFdInfoKHR =
-             #{offset VkMemoryGetFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkMemoryGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkMemoryGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkMemoryGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetFdInfoKHR, handleType}
-
-instance Show VkMemoryGetFdInfoKHR where
-        showsPrec d x
-          = showString "VkMemoryGetFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memory = " .
-                            showsPrec d (getField @"memory" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryGetWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,227 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryGetWin32HandleInfoKHR
-       (VkMemoryGetWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                              (VkDeviceMemory)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryGetWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkDeviceMemory                   memory;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkMemoryGetWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryGetWin32HandleInfoKHR.html VkMemoryGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkMemoryGetWin32HandleInfoKHR = VkMemoryGetWin32HandleInfoKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkMemoryGetWin32HandleInfoKHR where
-        (VkMemoryGetWin32HandleInfoKHR## a _) ==
-          x@(VkMemoryGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryGetWin32HandleInfoKHR where
-        (VkMemoryGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkMemoryGetWin32HandleInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryGetWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkMemoryGetWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryGetWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryGetWin32HandleInfoKHR where
-        unsafeAddr (VkMemoryGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryGetWin32HandleInfoKHR where
-        type StructFields VkMemoryGetWin32HandleInfoKHR =
-             '["sType", "pNext", "memory", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryGetWin32HandleInfoKHR where
-        type FieldType "sType" VkMemoryGetWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryGetWin32HandleInfoKHR =
-             #{offset VkMemoryGetWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryGetWin32HandleInfoKHR where
-        type FieldType "pNext" VkMemoryGetWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryGetWin32HandleInfoKHR =
-             #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memory" VkMemoryGetWin32HandleInfoKHR where
-        type FieldType "memory" VkMemoryGetWin32HandleInfoKHR =
-             VkDeviceMemory
-        type FieldOptional "memory" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkMemoryGetWin32HandleInfoKHR =
-             #{offset VkMemoryGetWin32HandleInfoKHR, memory}
-        type FieldIsArray "memory" VkMemoryGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetWin32HandleInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkMemoryGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkMemoryGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkMemoryGetWin32HandleInfoKHR where
-        type FieldType "handleType" VkMemoryGetWin32HandleInfoKHR =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkMemoryGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkMemoryGetWin32HandleInfoKHR =
-             #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkMemoryGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkMemoryGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryGetWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkMemoryGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryGetWin32HandleInfoKHR, handleType}
-
-instance Show VkMemoryGetWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkMemoryGetWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memory = " .
-                            showsPrec d (getField @"memory" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHeap.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHeap.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHeap.hsc
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryHeap (VkMemoryHeap(..))
-       where
-import           Foreign.Storable                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes              (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags (VkMemoryHeapFlags)
-import           System.IO.Unsafe                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryHeap {
---   >     VkDeviceSize           size;
---   >     VkMemoryHeapFlags      flags;
---   > } VkMemoryHeap;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryHeap.html VkMemoryHeap registry at www.khronos.org>
-data VkMemoryHeap = VkMemoryHeap## Addr## ByteArray##
-
-instance Eq VkMemoryHeap where
-        (VkMemoryHeap## a _) == x@(VkMemoryHeap## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryHeap where
-        (VkMemoryHeap## a _) `compare` x@(VkMemoryHeap## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryHeap where
-        sizeOf ~_ = #{size VkMemoryHeap}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryHeap}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryHeap where
-        unsafeAddr (VkMemoryHeap## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryHeap## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryHeap## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryHeap where
-        type StructFields VkMemoryHeap = '["size", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryHeap = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryHeap = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryHeap = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "size" VkMemoryHeap where
-        type FieldType "size" VkMemoryHeap = VkDeviceSize
-        type FieldOptional "size" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkMemoryHeap =
-             #{offset VkMemoryHeap, size}
-        type FieldIsArray "size" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryHeap, size}
-
-instance {-# OVERLAPPING #-} CanReadField "size" VkMemoryHeap where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryHeap, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryHeap, size}
-
-instance {-# OVERLAPPING #-} CanWriteField "size" VkMemoryHeap
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryHeap, size}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkMemoryHeap where
-        type FieldType "flags" VkMemoryHeap = VkMemoryHeapFlags
-        type FieldOptional "flags" VkMemoryHeap = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkMemoryHeap =
-             #{offset VkMemoryHeap, flags}
-        type FieldIsArray "flags" VkMemoryHeap = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryHeap, flags}
-
-instance {-# OVERLAPPING #-} CanReadField "flags" VkMemoryHeap
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryHeap, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryHeap, flags}
-
-instance {-# OVERLAPPING #-} CanWriteField "flags" VkMemoryHeap
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryHeap, flags}
-
-instance Show VkMemoryHeap where
-        showsPrec d x
-          = showString "VkMemoryHeap {" .
-              showString "size = " .
-                showsPrec d (getField @"size" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHostPointerPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHostPointerPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryHostPointerPropertiesEXT.hsc
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryHostPointerPropertiesEXT
-       (VkMemoryHostPointerPropertiesEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryHostPointerPropertiesEXT {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     uint32_t memoryTypeBits;
---   > } VkMemoryHostPointerPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryHostPointerPropertiesEXT.html VkMemoryHostPointerPropertiesEXT registry at www.khronos.org>
-data VkMemoryHostPointerPropertiesEXT = VkMemoryHostPointerPropertiesEXT## Addr##
-                                                                          ByteArray##
-
-instance Eq VkMemoryHostPointerPropertiesEXT where
-        (VkMemoryHostPointerPropertiesEXT## a _) ==
-          x@(VkMemoryHostPointerPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryHostPointerPropertiesEXT where
-        (VkMemoryHostPointerPropertiesEXT## a _) `compare`
-          x@(VkMemoryHostPointerPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryHostPointerPropertiesEXT where
-        sizeOf ~_ = #{size VkMemoryHostPointerPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryHostPointerPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryHostPointerPropertiesEXT where
-        unsafeAddr (VkMemoryHostPointerPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryHostPointerPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryHostPointerPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryHostPointerPropertiesEXT where
-        type StructFields VkMemoryHostPointerPropertiesEXT =
-             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryHostPointerPropertiesEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryHostPointerPropertiesEXT where
-        type FieldType "sType" VkMemoryHostPointerPropertiesEXT =
-             VkStructureType
-        type FieldOptional "sType" VkMemoryHostPointerPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryHostPointerPropertiesEXT =
-             #{offset VkMemoryHostPointerPropertiesEXT, sType}
-        type FieldIsArray "sType" VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryHostPointerPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryHostPointerPropertiesEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryHostPointerPropertiesEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryHostPointerPropertiesEXT where
-        type FieldType "pNext" VkMemoryHostPointerPropertiesEXT = Ptr Void
-        type FieldOptional "pNext" VkMemoryHostPointerPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryHostPointerPropertiesEXT =
-             #{offset VkMemoryHostPointerPropertiesEXT, pNext}
-        type FieldIsArray "pNext" VkMemoryHostPointerPropertiesEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryHostPointerPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryHostPointerPropertiesEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryHostPointerPropertiesEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT where
-        type FieldType "memoryTypeBits" VkMemoryHostPointerPropertiesEXT =
-             Word32
-        type FieldOptional "memoryTypeBits"
-               VkMemoryHostPointerPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
-             =
-             #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
-        type FieldIsArray "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeBits" VkMemoryHostPointerPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryHostPointerPropertiesEXT, memoryTypeBits}
-
-instance Show VkMemoryHostPointerPropertiesEXT where
-        showsPrec d x
-          = showString "VkMemoryHostPointerPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryTypeBits = " .
-                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements.hsc
+++ /dev/null
@@ -1,177 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryRequirements
-       (VkMemoryRequirements(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryRequirements {
---   >     VkDeviceSize           size;
---   >     VkDeviceSize           alignment;
---   >     uint32_t               memoryTypeBits;
---   > } VkMemoryRequirements;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryRequirements.html VkMemoryRequirements registry at www.khronos.org>
-data VkMemoryRequirements = VkMemoryRequirements## Addr## ByteArray##
-
-instance Eq VkMemoryRequirements where
-        (VkMemoryRequirements## a _) == x@(VkMemoryRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryRequirements where
-        (VkMemoryRequirements## a _) `compare` x@(VkMemoryRequirements## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryRequirements where
-        sizeOf ~_ = #{size VkMemoryRequirements}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryRequirements}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryRequirements where
-        unsafeAddr (VkMemoryRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryRequirements## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryRequirements where
-        type StructFields VkMemoryRequirements =
-             '["size", "alignment", "memoryTypeBits"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryRequirements = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryRequirements = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "size" VkMemoryRequirements
-         where
-        type FieldType "size" VkMemoryRequirements = VkDeviceSize
-        type FieldOptional "size" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkMemoryRequirements =
-             #{offset VkMemoryRequirements, size}
-        type FieldIsArray "size" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryRequirements, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkMemoryRequirements where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkMemoryRequirements where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements, size}
-
-instance {-# OVERLAPPING #-}
-         HasField "alignment" VkMemoryRequirements where
-        type FieldType "alignment" VkMemoryRequirements = VkDeviceSize
-        type FieldOptional "alignment" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "alignment" VkMemoryRequirements =
-             #{offset VkMemoryRequirements, alignment}
-        type FieldIsArray "alignment" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryRequirements, alignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alignment" VkMemoryRequirements where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, alignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements, alignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alignment" VkMemoryRequirements where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements, alignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeBits" VkMemoryRequirements where
-        type FieldType "memoryTypeBits" VkMemoryRequirements = Word32
-        type FieldOptional "memoryTypeBits" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeBits" VkMemoryRequirements =
-             #{offset VkMemoryRequirements, memoryTypeBits}
-        type FieldIsArray "memoryTypeBits" VkMemoryRequirements = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryRequirements, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeBits" VkMemoryRequirements where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements, memoryTypeBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeBits" VkMemoryRequirements where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements, memoryTypeBits}
-
-instance Show VkMemoryRequirements where
-        showsPrec d x
-          = showString "VkMemoryRequirements {" .
-              showString "size = " .
-                showsPrec d (getField @"size" x) .
-                  showString ", " .
-                    showString "alignment = " .
-                      showsPrec d (getField @"alignment" x) .
-                        showString ", " .
-                          showString "memoryTypeBits = " .
-                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2.hsc
+++ /dev/null
@@ -1,182 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryRequirements2
-       (VkMemoryRequirements2(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements (VkMemoryRequirements)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryRequirements2 {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     VkMemoryRequirements                                                 memoryRequirements;
---   > } VkMemoryRequirements2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryRequirements2.html VkMemoryRequirements2 registry at www.khronos.org>
-data VkMemoryRequirements2 = VkMemoryRequirements2## Addr##
-                                                    ByteArray##
-
-instance Eq VkMemoryRequirements2 where
-        (VkMemoryRequirements2## a _) == x@(VkMemoryRequirements2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryRequirements2 where
-        (VkMemoryRequirements2## a _) `compare`
-          x@(VkMemoryRequirements2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryRequirements2 where
-        sizeOf ~_ = #{size VkMemoryRequirements2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryRequirements2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryRequirements2 where
-        unsafeAddr (VkMemoryRequirements2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryRequirements2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryRequirements2## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryRequirements2 where
-        type StructFields VkMemoryRequirements2 =
-             '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryRequirements2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryRequirements2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkMemoryRequirements2
-         where
-        type FieldType "sType" VkMemoryRequirements2 = VkStructureType
-        type FieldOptional "sType" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryRequirements2 =
-             #{offset VkMemoryRequirements2, sType}
-        type FieldIsArray "sType" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryRequirements2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryRequirements2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkMemoryRequirements2
-         where
-        type FieldType "pNext" VkMemoryRequirements2 = Ptr Void
-        type FieldOptional "pNext" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryRequirements2 =
-             #{offset VkMemoryRequirements2, pNext}
-        type FieldIsArray "pNext" VkMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryRequirements2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryRequirements2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryRequirements" VkMemoryRequirements2 where
-        type FieldType "memoryRequirements" VkMemoryRequirements2 =
-             VkMemoryRequirements
-        type FieldOptional "memoryRequirements" VkMemoryRequirements2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryRequirements" VkMemoryRequirements2 =
-             #{offset VkMemoryRequirements2, memoryRequirements}
-        type FieldIsArray "memoryRequirements" VkMemoryRequirements2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryRequirements2, memoryRequirements}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryRequirements" VkMemoryRequirements2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryRequirements2, memoryRequirements})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryRequirements2, memoryRequirements}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryRequirements" VkMemoryRequirements2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryRequirements2, memoryRequirements}
-
-instance Show VkMemoryRequirements2 where
-        showsPrec d x
-          = showString "VkMemoryRequirements2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryRequirements = " .
-                            showsPrec d (getField @"memoryRequirements" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryRequirements2KHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryRequirements2KHR
-       (VkMemoryRequirements2(..), VkMemoryRequirements2KHR) where
-import           Graphics.Vulkan.Types.Struct.VkMemoryRequirements2 (VkMemoryRequirements2 (..))
-
--- | Alias for `VkMemoryRequirements2`
-type VkMemoryRequirements2KHR = VkMemoryRequirements2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryType.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryType.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryType.hsc
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryType (VkMemoryType(..))
-       where
-import           Foreign.Storable                                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags (VkMemoryPropertyFlags)
-import           System.IO.Unsafe                                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryType {
---   >     VkMemoryPropertyFlags  propertyFlags;
---   >     uint32_t               heapIndex;
---   > } VkMemoryType;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryType.html VkMemoryType registry at www.khronos.org>
-data VkMemoryType = VkMemoryType## Addr## ByteArray##
-
-instance Eq VkMemoryType where
-        (VkMemoryType## a _) == x@(VkMemoryType## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryType where
-        (VkMemoryType## a _) `compare` x@(VkMemoryType## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryType where
-        sizeOf ~_ = #{size VkMemoryType}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMemoryType}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryType where
-        unsafeAddr (VkMemoryType## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryType## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryType## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryType where
-        type StructFields VkMemoryType = '["propertyFlags", "heapIndex"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryType = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryType = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryType = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "propertyFlags" VkMemoryType
-         where
-        type FieldType "propertyFlags" VkMemoryType = VkMemoryPropertyFlags
-        type FieldOptional "propertyFlags" VkMemoryType = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "propertyFlags" VkMemoryType =
-             #{offset VkMemoryType, propertyFlags}
-        type FieldIsArray "propertyFlags" VkMemoryType = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryType, propertyFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "propertyFlags" VkMemoryType where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryType, propertyFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryType, propertyFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "propertyFlags" VkMemoryType where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryType, propertyFlags}
-
-instance {-# OVERLAPPING #-} HasField "heapIndex" VkMemoryType
-         where
-        type FieldType "heapIndex" VkMemoryType = Word32
-        type FieldOptional "heapIndex" VkMemoryType = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "heapIndex" VkMemoryType =
-             #{offset VkMemoryType, heapIndex}
-        type FieldIsArray "heapIndex" VkMemoryType = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkMemoryType, heapIndex}
-
-instance {-# OVERLAPPING #-} CanReadField "heapIndex" VkMemoryType
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryType, heapIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryType, heapIndex}
-
-instance {-# OVERLAPPING #-} CanWriteField "heapIndex" VkMemoryType
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryType, heapIndex}
-
-instance Show VkMemoryType where
-        showsPrec d x
-          = showString "VkMemoryType {" .
-              showString "propertyFlags = " .
-                showsPrec d (getField @"propertyFlags" x) .
-                  showString ", " .
-                    showString "heapIndex = " .
-                      showsPrec d (getField @"heapIndex" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryWin32HandlePropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryWin32HandlePropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMemoryWin32HandlePropertiesKHR.hsc
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMemoryWin32HandlePropertiesKHR
-       (VkMemoryWin32HandlePropertiesKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMemoryWin32HandlePropertiesKHR {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         memoryTypeBits;
---   > } VkMemoryWin32HandlePropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMemoryWin32HandlePropertiesKHR.html VkMemoryWin32HandlePropertiesKHR registry at www.khronos.org>
-data VkMemoryWin32HandlePropertiesKHR = VkMemoryWin32HandlePropertiesKHR## Addr##
-                                                                          ByteArray##
-
-instance Eq VkMemoryWin32HandlePropertiesKHR where
-        (VkMemoryWin32HandlePropertiesKHR## a _) ==
-          x@(VkMemoryWin32HandlePropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMemoryWin32HandlePropertiesKHR where
-        (VkMemoryWin32HandlePropertiesKHR## a _) `compare`
-          x@(VkMemoryWin32HandlePropertiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMemoryWin32HandlePropertiesKHR where
-        sizeOf ~_ = #{size VkMemoryWin32HandlePropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkMemoryWin32HandlePropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMemoryWin32HandlePropertiesKHR where
-        unsafeAddr (VkMemoryWin32HandlePropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMemoryWin32HandlePropertiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMemoryWin32HandlePropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMemoryWin32HandlePropertiesKHR where
-        type StructFields VkMemoryWin32HandlePropertiesKHR =
-             '["sType", "pNext", "memoryTypeBits"] -- ' closing tick for hsc2hs
-        type CUnionType VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMemoryWin32HandlePropertiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMemoryWin32HandlePropertiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMemoryWin32HandlePropertiesKHR where
-        type FieldType "sType" VkMemoryWin32HandlePropertiesKHR =
-             VkStructureType
-        type FieldOptional "sType" VkMemoryWin32HandlePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMemoryWin32HandlePropertiesKHR =
-             #{offset VkMemoryWin32HandlePropertiesKHR, sType}
-        type FieldIsArray "sType" VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryWin32HandlePropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMemoryWin32HandlePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMemoryWin32HandlePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMemoryWin32HandlePropertiesKHR where
-        type FieldType "pNext" VkMemoryWin32HandlePropertiesKHR = Ptr Void
-        type FieldOptional "pNext" VkMemoryWin32HandlePropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMemoryWin32HandlePropertiesKHR =
-             #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
-        type FieldIsArray "pNext" VkMemoryWin32HandlePropertiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMemoryWin32HandlePropertiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMemoryWin32HandlePropertiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR where
-        type FieldType "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR =
-             Word32
-        type FieldOptional "memoryTypeBits"
-               VkMemoryWin32HandlePropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
-             =
-             #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
-        type FieldIsArray "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeBits" VkMemoryWin32HandlePropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMemoryWin32HandlePropertiesKHR, memoryTypeBits}
-
-instance Show VkMemoryWin32HandlePropertiesKHR where
-        showsPrec d x
-          = showString "VkMemoryWin32HandlePropertiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryTypeBits = " .
-                            showsPrec d (getField @"memoryTypeBits" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMirSurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMirSurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMirSurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,259 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMirSurfaceCreateInfoKHR
-       (VkMirSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkMirSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include              (MirConnection,
-                                                             MirSurface)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMirSurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkMirSurfaceCreateFlagsKHR   flags;
---   >     MirConnection*                   connection;
---   >     MirSurface*                      mirSurface;
---   > } VkMirSurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMirSurfaceCreateInfoKHR.html VkMirSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkMirSurfaceCreateInfoKHR = VkMirSurfaceCreateInfoKHR## Addr##
-                                                            ByteArray##
-
-instance Eq VkMirSurfaceCreateInfoKHR where
-        (VkMirSurfaceCreateInfoKHR## a _) ==
-          x@(VkMirSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMirSurfaceCreateInfoKHR where
-        (VkMirSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkMirSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMirSurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkMirSurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMirSurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMirSurfaceCreateInfoKHR where
-        unsafeAddr (VkMirSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMirSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMirSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMirSurfaceCreateInfoKHR where
-        type StructFields VkMirSurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "connection", "mirSurface"] -- ' closing tick for hsc2hs
-        type CUnionType VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkMirSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMirSurfaceCreateInfoKHR where
-        type FieldType "sType" VkMirSurfaceCreateInfoKHR = VkStructureType
-        type FieldOptional "sType" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMirSurfaceCreateInfoKHR =
-             #{offset VkMirSurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMirSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMirSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMirSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMirSurfaceCreateInfoKHR where
-        type FieldType "pNext" VkMirSurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMirSurfaceCreateInfoKHR =
-             #{offset VkMirSurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMirSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMirSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMirSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkMirSurfaceCreateInfoKHR where
-        type FieldType "flags" VkMirSurfaceCreateInfoKHR =
-             VkMirSurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkMirSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkMirSurfaceCreateInfoKHR =
-             #{offset VkMirSurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMirSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkMirSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkMirSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "connection" VkMirSurfaceCreateInfoKHR where
-        type FieldType "connection" VkMirSurfaceCreateInfoKHR =
-             Ptr MirConnection
-        type FieldOptional "connection" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "connection" VkMirSurfaceCreateInfoKHR =
-             #{offset VkMirSurfaceCreateInfoKHR, connection}
-        type FieldIsArray "connection" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMirSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "connection" VkMirSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, connection})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "connection" VkMirSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         HasField "mirSurface" VkMirSurfaceCreateInfoKHR where
-        type FieldType "mirSurface" VkMirSurfaceCreateInfoKHR =
-             Ptr MirSurface
-        type FieldOptional "mirSurface" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mirSurface" VkMirSurfaceCreateInfoKHR =
-             #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
-        type FieldIsArray "mirSurface" VkMirSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mirSurface" VkMirSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMirSurfaceCreateInfoKHR, mirSurface})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mirSurface" VkMirSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMirSurfaceCreateInfoKHR, mirSurface}
-
-instance Show VkMirSurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkMirSurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "connection = " .
-                                  showsPrec d (getField @"connection" x) .
-                                    showString ", " .
-                                      showString "mirSurface = " .
-                                        showsPrec d (getField @"mirSurface" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkMultisamplePropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkMultisamplePropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkMultisamplePropertiesEXT.hsc
+++ /dev/null
@@ -1,197 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkMultisamplePropertiesEXT
-       (VkMultisamplePropertiesEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D    (VkExtent2D)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkMultisamplePropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkExtent2D                       maxSampleLocationGridSize;
---   > } VkMultisamplePropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMultisamplePropertiesEXT.html VkMultisamplePropertiesEXT registry at www.khronos.org>
-data VkMultisamplePropertiesEXT = VkMultisamplePropertiesEXT## Addr##
-                                                              ByteArray##
-
-instance Eq VkMultisamplePropertiesEXT where
-        (VkMultisamplePropertiesEXT## a _) ==
-          x@(VkMultisamplePropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkMultisamplePropertiesEXT where
-        (VkMultisamplePropertiesEXT## a _) `compare`
-          x@(VkMultisamplePropertiesEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkMultisamplePropertiesEXT where
-        sizeOf ~_ = #{size VkMultisamplePropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkMultisamplePropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkMultisamplePropertiesEXT where
-        unsafeAddr (VkMultisamplePropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkMultisamplePropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkMultisamplePropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkMultisamplePropertiesEXT where
-        type StructFields VkMultisamplePropertiesEXT =
-             '["sType", "pNext", "maxSampleLocationGridSize"] -- ' closing tick for hsc2hs
-        type CUnionType VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkMultisamplePropertiesEXT = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkMultisamplePropertiesEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkMultisamplePropertiesEXT where
-        type FieldType "sType" VkMultisamplePropertiesEXT = VkStructureType
-        type FieldOptional "sType" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkMultisamplePropertiesEXT =
-             #{offset VkMultisamplePropertiesEXT, sType}
-        type FieldIsArray "sType" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMultisamplePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkMultisamplePropertiesEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMultisamplePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkMultisamplePropertiesEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkMultisamplePropertiesEXT where
-        type FieldType "pNext" VkMultisamplePropertiesEXT = Ptr Void
-        type FieldOptional "pNext" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkMultisamplePropertiesEXT =
-             #{offset VkMultisamplePropertiesEXT, pNext}
-        type FieldIsArray "pNext" VkMultisamplePropertiesEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMultisamplePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkMultisamplePropertiesEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMultisamplePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkMultisamplePropertiesEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampleLocationGridSize" VkMultisamplePropertiesEXT
-         where
-        type FieldType "maxSampleLocationGridSize"
-               VkMultisamplePropertiesEXT
-             = VkExtent2D
-        type FieldOptional "maxSampleLocationGridSize"
-               VkMultisamplePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampleLocationGridSize"
-               VkMultisamplePropertiesEXT
-             =
-             #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
-        type FieldIsArray "maxSampleLocationGridSize"
-               VkMultisamplePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampleLocationGridSize" VkMultisamplePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampleLocationGridSize"
-           VkMultisamplePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkMultisamplePropertiesEXT, maxSampleLocationGridSize}
-
-instance Show VkMultisamplePropertiesEXT where
-        showsPrec d x
-          = showString "VkMultisamplePropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxSampleLocationGridSize = " .
-                            showsPrec d (getField @"maxSampleLocationGridSize" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableCreateInfoNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableCreateInfoNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableCreateInfoNVX.hsc
+++ /dev/null
@@ -1,576 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTableCreateInfoNVX
-       (VkObjectTableCreateInfoNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTableCreateInfoNVX {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                                          objectCount;
---   >     const VkObjectEntryTypeNVX*       pObjectEntryTypes;
---   >     const uint32_t*                   pObjectEntryCounts;
---   >     const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
---   >     uint32_t maxUniformBuffersPerDescriptor;
---   >     uint32_t maxStorageBuffersPerDescriptor;
---   >     uint32_t maxStorageImagesPerDescriptor;
---   >     uint32_t maxSampledImagesPerDescriptor;
---   >     uint32_t maxPipelineLayouts;
---   > } VkObjectTableCreateInfoNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTableCreateInfoNVX.html VkObjectTableCreateInfoNVX registry at www.khronos.org>
-data VkObjectTableCreateInfoNVX = VkObjectTableCreateInfoNVX## Addr##
-                                                              ByteArray##
-
-instance Eq VkObjectTableCreateInfoNVX where
-        (VkObjectTableCreateInfoNVX## a _) ==
-          x@(VkObjectTableCreateInfoNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTableCreateInfoNVX where
-        (VkObjectTableCreateInfoNVX## a _) `compare`
-          x@(VkObjectTableCreateInfoNVX## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTableCreateInfoNVX where
-        sizeOf ~_ = #{size VkObjectTableCreateInfoNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkObjectTableCreateInfoNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableCreateInfoNVX where
-        unsafeAddr (VkObjectTableCreateInfoNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableCreateInfoNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableCreateInfoNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTableCreateInfoNVX where
-        type StructFields VkObjectTableCreateInfoNVX =
-             '["sType", "pNext", "objectCount", "pObjectEntryTypes", -- ' closing tick for hsc2hs
-               "pObjectEntryCounts", "pObjectEntryUsageFlags",
-               "maxUniformBuffersPerDescriptor", "maxStorageBuffersPerDescriptor",
-               "maxStorageImagesPerDescriptor", "maxSampledImagesPerDescriptor",
-               "maxPipelineLayouts"]
-        type CUnionType VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTableCreateInfoNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkObjectTableCreateInfoNVX where
-        type FieldType "sType" VkObjectTableCreateInfoNVX = VkStructureType
-        type FieldOptional "sType" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, sType}
-        type FieldIsArray "sType" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkObjectTableCreateInfoNVX where
-        type FieldType "pNext" VkObjectTableCreateInfoNVX = Ptr Void
-        type FieldOptional "pNext" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, pNext}
-        type FieldIsArray "pNext" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "objectCount" VkObjectTableCreateInfoNVX where
-        type FieldType "objectCount" VkObjectTableCreateInfoNVX = Word32
-        type FieldOptional "objectCount" VkObjectTableCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "objectCount" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, objectCount}
-        type FieldIsArray "objectCount" VkObjectTableCreateInfoNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, objectCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "objectCount" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, objectCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, objectCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "objectCount" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, objectCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
-        type FieldType "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
-             Ptr VkObjectEntryTypeNVX
-        type FieldOptional "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
-        type FieldIsArray "pObjectEntryTypes" VkObjectTableCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjectEntryTypes" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryTypes}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
-        type FieldType "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
-             Ptr Word32
-        type FieldOptional "pObjectEntryCounts" VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
-        type FieldIsArray "pObjectEntryCounts" VkObjectTableCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjectEntryCounts" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX where
-        type FieldType "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
-             = Ptr VkObjectEntryUsageFlagsNVX
-        type FieldOptional "pObjectEntryUsageFlags"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pObjectEntryUsageFlags"
-               VkObjectTableCreateInfoNVX
-             =
-             #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
-        type FieldIsArray "pObjectEntryUsageFlags"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pObjectEntryUsageFlags" VkObjectTableCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, pObjectEntryUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxUniformBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        type FieldType "maxUniformBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = Word32
-        type FieldOptional "maxUniformBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxUniformBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             =
-             #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
-        type FieldIsArray "maxUniformBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxUniformBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxUniformBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxUniformBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxStorageBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        type FieldType "maxStorageBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = Word32
-        type FieldOptional "maxStorageBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxStorageBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             =
-             #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
-        type FieldIsArray "maxStorageBuffersPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxStorageBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxStorageBuffersPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageBuffersPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxStorageImagesPerDescriptor" VkObjectTableCreateInfoNVX
-         where
-        type FieldType "maxStorageImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = Word32
-        type FieldOptional "maxStorageImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxStorageImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             =
-             #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
-        type FieldIsArray "maxStorageImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxStorageImagesPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxStorageImagesPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxStorageImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampledImagesPerDescriptor" VkObjectTableCreateInfoNVX
-         where
-        type FieldType "maxSampledImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = Word32
-        type FieldOptional "maxSampledImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampledImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             =
-             #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
-        type FieldIsArray "maxSampledImagesPerDescriptor"
-               VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampledImagesPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampledImagesPerDescriptor"
-           VkObjectTableCreateInfoNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxSampledImagesPerDescriptor}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
-        type FieldType "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
-             Word32
-        type FieldOptional "maxPipelineLayouts" VkObjectTableCreateInfoNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
-             #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
-        type FieldIsArray "maxPipelineLayouts" VkObjectTableCreateInfoNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPipelineLayouts" VkObjectTableCreateInfoNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableCreateInfoNVX, maxPipelineLayouts}
-
-instance Show VkObjectTableCreateInfoNVX where
-        showsPrec d x
-          = showString "VkObjectTableCreateInfoNVX {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "objectCount = " .
-                            showsPrec d (getField @"objectCount" x) .
-                              showString ", " .
-                                showString "pObjectEntryTypes = " .
-                                  showsPrec d (getField @"pObjectEntryTypes" x) .
-                                    showString ", " .
-                                      showString "pObjectEntryCounts = " .
-                                        showsPrec d (getField @"pObjectEntryCounts" x) .
-                                          showString ", " .
-                                            showString "pObjectEntryUsageFlags = " .
-                                              showsPrec d (getField @"pObjectEntryUsageFlags" x) .
-                                                showString ", " .
-                                                  showString "maxUniformBuffersPerDescriptor = " .
-                                                    showsPrec d
-                                                      (getField @"maxUniformBuffersPerDescriptor" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "maxStorageBuffersPerDescriptor = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"maxStorageBuffersPerDescriptor"
-                                                               x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "maxStorageImagesPerDescriptor = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"maxStorageImagesPerDescriptor"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "maxSampledImagesPerDescriptor = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"maxSampledImagesPerDescriptor"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "maxPipelineLayouts = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"maxPipelineLayouts"
-                                                                                 x)
-                                                                              . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableDescriptorSetEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableDescriptorSetEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableDescriptorSetEntryNVX.hsc
+++ /dev/null
@@ -1,247 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTableDescriptorSetEntryNVX
-       (VkObjectTableDescriptorSetEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Handles                         (VkDescriptorSet,
-                                                                        VkPipelineLayout)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTableDescriptorSetEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   >     VkPipelineLayout             pipelineLayout;
---   >     VkDescriptorSet              descriptorSet;
---   > } VkObjectTableDescriptorSetEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTableDescriptorSetEntryNVX.html VkObjectTableDescriptorSetEntryNVX registry at www.khronos.org>
-data VkObjectTableDescriptorSetEntryNVX = VkObjectTableDescriptorSetEntryNVX## Addr##
-                                                                              ByteArray##
-
-instance Eq VkObjectTableDescriptorSetEntryNVX where
-        (VkObjectTableDescriptorSetEntryNVX## a _) ==
-          x@(VkObjectTableDescriptorSetEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTableDescriptorSetEntryNVX where
-        (VkObjectTableDescriptorSetEntryNVX## a _) `compare`
-          x@(VkObjectTableDescriptorSetEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTableDescriptorSetEntryNVX where
-        sizeOf ~_ = #{size VkObjectTableDescriptorSetEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkObjectTableDescriptorSetEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableDescriptorSetEntryNVX where
-        unsafeAddr (VkObjectTableDescriptorSetEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableDescriptorSetEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableDescriptorSetEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTableDescriptorSetEntryNVX where
-        type StructFields VkObjectTableDescriptorSetEntryNVX =
-             '["type", "flags", "pipelineLayout", "descriptorSet"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTableDescriptorSetEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTableDescriptorSetEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTableDescriptorSetEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkObjectTableDescriptorSetEntryNVX where
-        type FieldType "type" VkObjectTableDescriptorSetEntryNVX =
-             VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTableDescriptorSetEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTableDescriptorSetEntryNVX =
-             #{offset VkObjectTableDescriptorSetEntryNVX, type}
-        type FieldIsArray "type" VkObjectTableDescriptorSetEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableDescriptorSetEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTableDescriptorSetEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTableDescriptorSetEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkObjectTableDescriptorSetEntryNVX where
-        type FieldType "flags" VkObjectTableDescriptorSetEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTableDescriptorSetEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTableDescriptorSetEntryNVX =
-             #{offset VkObjectTableDescriptorSetEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTableDescriptorSetEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableDescriptorSetEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTableDescriptorSetEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTableDescriptorSetEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX where
-        type FieldType "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
-             = VkPipelineLayout
-        type FieldOptional "pipelineLayout"
-               VkObjectTableDescriptorSetEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineLayout"
-               VkObjectTableDescriptorSetEntryNVX
-             =
-             #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
-        type FieldIsArray "pipelineLayout"
-               VkObjectTableDescriptorSetEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineLayout" VkObjectTableDescriptorSetEntryNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorSet" VkObjectTableDescriptorSetEntryNVX where
-        type FieldType "descriptorSet" VkObjectTableDescriptorSetEntryNVX =
-             VkDescriptorSet
-        type FieldOptional "descriptorSet"
-               VkObjectTableDescriptorSetEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorSet" VkObjectTableDescriptorSetEntryNVX
-             =
-             #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
-        type FieldIsArray "descriptorSet"
-               VkObjectTableDescriptorSetEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorSet" VkObjectTableDescriptorSetEntryNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorSet" VkObjectTableDescriptorSetEntryNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableDescriptorSetEntryNVX, descriptorSet}
-
-instance Show VkObjectTableDescriptorSetEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTableDescriptorSetEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) .
-                        showString ", " .
-                          showString "pipelineLayout = " .
-                            showsPrec d (getField @"pipelineLayout" x) .
-                              showString ", " .
-                                showString "descriptorSet = " .
-                                  showsPrec d (getField @"descriptorSet" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableEntryNVX.hsc
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTableEntryNVX
-       (VkObjectTableEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTableEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   > } VkObjectTableEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTableEntryNVX.html VkObjectTableEntryNVX registry at www.khronos.org>
-data VkObjectTableEntryNVX = VkObjectTableEntryNVX## Addr##
-                                                    ByteArray##
-
-instance Eq VkObjectTableEntryNVX where
-        (VkObjectTableEntryNVX## a _) == x@(VkObjectTableEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTableEntryNVX where
-        (VkObjectTableEntryNVX## a _) `compare`
-          x@(VkObjectTableEntryNVX## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTableEntryNVX where
-        sizeOf ~_ = #{size VkObjectTableEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkObjectTableEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableEntryNVX where
-        unsafeAddr (VkObjectTableEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableEntryNVX## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTableEntryNVX where
-        type StructFields VkObjectTableEntryNVX = '["type", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTableEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "type" VkObjectTableEntryNVX
-         where
-        type FieldType "type" VkObjectTableEntryNVX = VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTableEntryNVX =
-             #{offset VkObjectTableEntryNVX, type}
-        type FieldIsArray "type" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkObjectTableEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTableEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTableEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableEntryNVX, type}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkObjectTableEntryNVX
-         where
-        type FieldType "flags" VkObjectTableEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTableEntryNVX =
-             #{offset VkObjectTableEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTableEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkObjectTableEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTableEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTableEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableEntryNVX, flags}
-
-instance Show VkObjectTableEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTableEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableIndexBufferEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableIndexBufferEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableIndexBufferEntryNVX.hsc
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTableIndexBufferEntryNVX
-       (VkObjectTableIndexBufferEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkIndexType                (VkIndexType)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Handles                         (VkBuffer)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTableIndexBufferEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   >     VkBuffer                     buffer;
---   >     VkIndexType                  indexType;
---   > } VkObjectTableIndexBufferEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTableIndexBufferEntryNVX.html VkObjectTableIndexBufferEntryNVX registry at www.khronos.org>
-data VkObjectTableIndexBufferEntryNVX = VkObjectTableIndexBufferEntryNVX## Addr##
-                                                                          ByteArray##
-
-instance Eq VkObjectTableIndexBufferEntryNVX where
-        (VkObjectTableIndexBufferEntryNVX## a _) ==
-          x@(VkObjectTableIndexBufferEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTableIndexBufferEntryNVX where
-        (VkObjectTableIndexBufferEntryNVX## a _) `compare`
-          x@(VkObjectTableIndexBufferEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTableIndexBufferEntryNVX where
-        sizeOf ~_ = #{size VkObjectTableIndexBufferEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkObjectTableIndexBufferEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableIndexBufferEntryNVX where
-        unsafeAddr (VkObjectTableIndexBufferEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableIndexBufferEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableIndexBufferEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTableIndexBufferEntryNVX where
-        type StructFields VkObjectTableIndexBufferEntryNVX =
-             '["type", "flags", "buffer", "indexType"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTableIndexBufferEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkObjectTableIndexBufferEntryNVX where
-        type FieldType "type" VkObjectTableIndexBufferEntryNVX =
-             VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTableIndexBufferEntryNVX =
-             #{offset VkObjectTableIndexBufferEntryNVX, type}
-        type FieldIsArray "type" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableIndexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTableIndexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTableIndexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkObjectTableIndexBufferEntryNVX where
-        type FieldType "flags" VkObjectTableIndexBufferEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTableIndexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTableIndexBufferEntryNVX =
-             #{offset VkObjectTableIndexBufferEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTableIndexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableIndexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTableIndexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTableIndexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkObjectTableIndexBufferEntryNVX where
-        type FieldType "buffer" VkObjectTableIndexBufferEntryNVX = VkBuffer
-        type FieldOptional "buffer" VkObjectTableIndexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkObjectTableIndexBufferEntryNVX =
-             #{offset VkObjectTableIndexBufferEntryNVX, buffer}
-        type FieldIsArray "buffer" VkObjectTableIndexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableIndexBufferEntryNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkObjectTableIndexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkObjectTableIndexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "indexType" VkObjectTableIndexBufferEntryNVX where
-        type FieldType "indexType" VkObjectTableIndexBufferEntryNVX =
-             VkIndexType
-        type FieldOptional "indexType" VkObjectTableIndexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "indexType" VkObjectTableIndexBufferEntryNVX =
-             #{offset VkObjectTableIndexBufferEntryNVX, indexType}
-        type FieldIsArray "indexType" VkObjectTableIndexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableIndexBufferEntryNVX, indexType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "indexType" VkObjectTableIndexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableIndexBufferEntryNVX, indexType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableIndexBufferEntryNVX, indexType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "indexType" VkObjectTableIndexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableIndexBufferEntryNVX, indexType}
-
-instance Show VkObjectTableIndexBufferEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTableIndexBufferEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) .
-                        showString ", " .
-                          showString "buffer = " .
-                            showsPrec d (getField @"buffer" x) .
-                              showString ", " .
-                                showString "indexType = " .
-                                  showsPrec d (getField @"indexType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePipelineEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePipelineEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePipelineEntryNVX.hsc
+++ /dev/null
@@ -1,190 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTablePipelineEntryNVX
-       (VkObjectTablePipelineEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Handles                         (VkPipeline)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTablePipelineEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   >     VkPipeline                   pipeline;
---   > } VkObjectTablePipelineEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTablePipelineEntryNVX.html VkObjectTablePipelineEntryNVX registry at www.khronos.org>
-data VkObjectTablePipelineEntryNVX = VkObjectTablePipelineEntryNVX## Addr##
-                                                                    ByteArray##
-
-instance Eq VkObjectTablePipelineEntryNVX where
-        (VkObjectTablePipelineEntryNVX## a _) ==
-          x@(VkObjectTablePipelineEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTablePipelineEntryNVX where
-        (VkObjectTablePipelineEntryNVX## a _) `compare`
-          x@(VkObjectTablePipelineEntryNVX## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTablePipelineEntryNVX where
-        sizeOf ~_ = #{size VkObjectTablePipelineEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkObjectTablePipelineEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTablePipelineEntryNVX where
-        unsafeAddr (VkObjectTablePipelineEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTablePipelineEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTablePipelineEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTablePipelineEntryNVX where
-        type StructFields VkObjectTablePipelineEntryNVX =
-             '["type", "flags", "pipeline"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTablePipelineEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkObjectTablePipelineEntryNVX where
-        type FieldType "type" VkObjectTablePipelineEntryNVX =
-             VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTablePipelineEntryNVX =
-             #{offset VkObjectTablePipelineEntryNVX, type}
-        type FieldIsArray "type" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePipelineEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTablePipelineEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTablePipelineEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkObjectTablePipelineEntryNVX where
-        type FieldType "flags" VkObjectTablePipelineEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTablePipelineEntryNVX =
-             #{offset VkObjectTablePipelineEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePipelineEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTablePipelineEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTablePipelineEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipeline" VkObjectTablePipelineEntryNVX where
-        type FieldType "pipeline" VkObjectTablePipelineEntryNVX =
-             VkPipeline
-        type FieldOptional "pipeline" VkObjectTablePipelineEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipeline" VkObjectTablePipelineEntryNVX =
-             #{offset VkObjectTablePipelineEntryNVX, pipeline}
-        type FieldIsArray "pipeline" VkObjectTablePipelineEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePipelineEntryNVX, pipeline}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipeline" VkObjectTablePipelineEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePipelineEntryNVX, pipeline})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePipelineEntryNVX, pipeline}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipeline" VkObjectTablePipelineEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePipelineEntryNVX, pipeline}
-
-instance Show VkObjectTablePipelineEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTablePipelineEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) .
-                        showString ", " .
-                          showString "pipeline = " .
-                            showsPrec d (getField @"pipeline" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePushConstantEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePushConstantEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTablePushConstantEntryNVX.hsc
+++ /dev/null
@@ -1,240 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTablePushConstantEntryNVX
-       (VkObjectTablePushConstantEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags         (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Handles                         (VkPipelineLayout)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTablePushConstantEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   >     VkPipelineLayout             pipelineLayout;
---   >     VkShaderStageFlags           stageFlags;
---   > } VkObjectTablePushConstantEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTablePushConstantEntryNVX.html VkObjectTablePushConstantEntryNVX registry at www.khronos.org>
-data VkObjectTablePushConstantEntryNVX = VkObjectTablePushConstantEntryNVX## Addr##
-                                                                            ByteArray##
-
-instance Eq VkObjectTablePushConstantEntryNVX where
-        (VkObjectTablePushConstantEntryNVX## a _) ==
-          x@(VkObjectTablePushConstantEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTablePushConstantEntryNVX where
-        (VkObjectTablePushConstantEntryNVX## a _) `compare`
-          x@(VkObjectTablePushConstantEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTablePushConstantEntryNVX where
-        sizeOf ~_ = #{size VkObjectTablePushConstantEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkObjectTablePushConstantEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTablePushConstantEntryNVX where
-        unsafeAddr (VkObjectTablePushConstantEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTablePushConstantEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTablePushConstantEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTablePushConstantEntryNVX where
-        type StructFields VkObjectTablePushConstantEntryNVX =
-             '["type", "flags", "pipelineLayout", "stageFlags"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTablePushConstantEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkObjectTablePushConstantEntryNVX where
-        type FieldType "type" VkObjectTablePushConstantEntryNVX =
-             VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTablePushConstantEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTablePushConstantEntryNVX =
-             #{offset VkObjectTablePushConstantEntryNVX, type}
-        type FieldIsArray "type" VkObjectTablePushConstantEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePushConstantEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTablePushConstantEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTablePushConstantEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkObjectTablePushConstantEntryNVX where
-        type FieldType "flags" VkObjectTablePushConstantEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTablePushConstantEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTablePushConstantEntryNVX =
-             #{offset VkObjectTablePushConstantEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTablePushConstantEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePushConstantEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTablePushConstantEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTablePushConstantEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineLayout" VkObjectTablePushConstantEntryNVX where
-        type FieldType "pipelineLayout" VkObjectTablePushConstantEntryNVX =
-             VkPipelineLayout
-        type FieldOptional "pipelineLayout"
-               VkObjectTablePushConstantEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineLayout" VkObjectTablePushConstantEntryNVX
-             =
-             #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
-        type FieldIsArray "pipelineLayout"
-               VkObjectTablePushConstantEntryNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineLayout" VkObjectTablePushConstantEntryNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineLayout" VkObjectTablePushConstantEntryNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, pipelineLayout}
-
-instance {-# OVERLAPPING #-}
-         HasField "stageFlags" VkObjectTablePushConstantEntryNVX where
-        type FieldType "stageFlags" VkObjectTablePushConstantEntryNVX =
-             VkShaderStageFlags
-        type FieldOptional "stageFlags" VkObjectTablePushConstantEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stageFlags" VkObjectTablePushConstantEntryNVX =
-             #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
-        type FieldIsArray "stageFlags" VkObjectTablePushConstantEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stageFlags" VkObjectTablePushConstantEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTablePushConstantEntryNVX, stageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stageFlags" VkObjectTablePushConstantEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTablePushConstantEntryNVX, stageFlags}
-
-instance Show VkObjectTablePushConstantEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTablePushConstantEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) .
-                        showString ", " .
-                          showString "pipelineLayout = " .
-                            showsPrec d (getField @"pipelineLayout" x) .
-                              showString ", " .
-                                showString "stageFlags = " .
-                                  showsPrec d (getField @"stageFlags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableVertexBufferEntryNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableVertexBufferEntryNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkObjectTableVertexBufferEntryNVX.hsc
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkObjectTableVertexBufferEntryNVX
-       (VkObjectTableVertexBufferEntryNVX(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX       (VkObjectEntryTypeNVX)
-import           Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX (VkObjectEntryUsageFlagsNVX)
-import           Graphics.Vulkan.Types.Handles                         (VkBuffer)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkObjectTableVertexBufferEntryNVX {
---   >     VkObjectEntryTypeNVX         type;
---   >     VkObjectEntryUsageFlagsNVX   flags;
---   >     VkBuffer                     buffer;
---   > } VkObjectTableVertexBufferEntryNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkObjectTableVertexBufferEntryNVX.html VkObjectTableVertexBufferEntryNVX registry at www.khronos.org>
-data VkObjectTableVertexBufferEntryNVX = VkObjectTableVertexBufferEntryNVX## Addr##
-                                                                            ByteArray##
-
-instance Eq VkObjectTableVertexBufferEntryNVX where
-        (VkObjectTableVertexBufferEntryNVX## a _) ==
-          x@(VkObjectTableVertexBufferEntryNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkObjectTableVertexBufferEntryNVX where
-        (VkObjectTableVertexBufferEntryNVX## a _) `compare`
-          x@(VkObjectTableVertexBufferEntryNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkObjectTableVertexBufferEntryNVX where
-        sizeOf ~_ = #{size VkObjectTableVertexBufferEntryNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkObjectTableVertexBufferEntryNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkObjectTableVertexBufferEntryNVX where
-        unsafeAddr (VkObjectTableVertexBufferEntryNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkObjectTableVertexBufferEntryNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkObjectTableVertexBufferEntryNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkObjectTableVertexBufferEntryNVX where
-        type StructFields VkObjectTableVertexBufferEntryNVX =
-             '["type", "flags", "buffer"] -- ' closing tick for hsc2hs
-        type CUnionType VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkObjectTableVertexBufferEntryNVX = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkObjectTableVertexBufferEntryNVX where
-        type FieldType "type" VkObjectTableVertexBufferEntryNVX =
-             VkObjectEntryTypeNVX
-        type FieldOptional "type" VkObjectTableVertexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkObjectTableVertexBufferEntryNVX =
-             #{offset VkObjectTableVertexBufferEntryNVX, type}
-        type FieldIsArray "type" VkObjectTableVertexBufferEntryNVX = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableVertexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkObjectTableVertexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkObjectTableVertexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkObjectTableVertexBufferEntryNVX where
-        type FieldType "flags" VkObjectTableVertexBufferEntryNVX =
-             VkObjectEntryUsageFlagsNVX
-        type FieldOptional "flags" VkObjectTableVertexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkObjectTableVertexBufferEntryNVX =
-             #{offset VkObjectTableVertexBufferEntryNVX, flags}
-        type FieldIsArray "flags" VkObjectTableVertexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableVertexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkObjectTableVertexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkObjectTableVertexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkObjectTableVertexBufferEntryNVX where
-        type FieldType "buffer" VkObjectTableVertexBufferEntryNVX =
-             VkBuffer
-        type FieldOptional "buffer" VkObjectTableVertexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkObjectTableVertexBufferEntryNVX =
-             #{offset VkObjectTableVertexBufferEntryNVX, buffer}
-        type FieldIsArray "buffer" VkObjectTableVertexBufferEntryNVX =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkObjectTableVertexBufferEntryNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkObjectTableVertexBufferEntryNVX where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkObjectTableVertexBufferEntryNVX, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkObjectTableVertexBufferEntryNVX, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkObjectTableVertexBufferEntryNVX where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkObjectTableVertexBufferEntryNVX, buffer}
-
-instance Show VkObjectTableVertexBufferEntryNVX where
-        showsPrec d x
-          = showString "VkObjectTableVertexBufferEntryNVX {" .
-              showString "type = " .
-                showsPrec d (getField @"type" x) .
-                  showString ", " .
-                    showString "flags = " .
-                      showsPrec d (getField @"flags" x) .
-                        showString ", " .
-                          showString "buffer = " .
-                            showsPrec d (getField @"buffer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkOffset2D.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkOffset2D.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkOffset2D.hsc
+++ /dev/null
@@ -1,128 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkOffset2D (VkOffset2D(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkOffset2D {
---   >     int32_t        x;
---   >     int32_t        y;
---   > } VkOffset2D;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkOffset2D.html VkOffset2D registry at www.khronos.org>
-data VkOffset2D = VkOffset2D## Addr## ByteArray##
-
-instance Eq VkOffset2D where
-        (VkOffset2D## a _) == x@(VkOffset2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkOffset2D where
-        (VkOffset2D## a _) `compare` x@(VkOffset2D## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkOffset2D where
-        sizeOf ~_ = #{size VkOffset2D}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkOffset2D}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkOffset2D where
-        unsafeAddr (VkOffset2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkOffset2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkOffset2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkOffset2D where
-        type StructFields VkOffset2D = '["x", "y"] -- ' closing tick for hsc2hs
-        type CUnionType VkOffset2D = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkOffset2D = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkOffset2D = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkOffset2D where
-        type FieldType "x" VkOffset2D = Int32
-        type FieldOptional "x" VkOffset2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkOffset2D =
-             #{offset VkOffset2D, x}
-        type FieldIsArray "x" VkOffset2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkOffset2D, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkOffset2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkOffset2D, x})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkOffset2D, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkOffset2D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkOffset2D, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkOffset2D where
-        type FieldType "y" VkOffset2D = Int32
-        type FieldOptional "y" VkOffset2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkOffset2D =
-             #{offset VkOffset2D, y}
-        type FieldIsArray "y" VkOffset2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkOffset2D, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkOffset2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkOffset2D, y})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkOffset2D, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkOffset2D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkOffset2D, y}
-
-instance Show VkOffset2D where
-        showsPrec d x
-          = showString "VkOffset2D {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkOffset3D.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkOffset3D.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkOffset3D.hsc
+++ /dev/null
@@ -1,158 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkOffset3D (VkOffset3D(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkOffset3D {
---   >     int32_t        x;
---   >     int32_t        y;
---   >     int32_t        z;
---   > } VkOffset3D;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkOffset3D.html VkOffset3D registry at www.khronos.org>
-data VkOffset3D = VkOffset3D## Addr## ByteArray##
-
-instance Eq VkOffset3D where
-        (VkOffset3D## a _) == x@(VkOffset3D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkOffset3D where
-        (VkOffset3D## a _) `compare` x@(VkOffset3D## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkOffset3D where
-        sizeOf ~_ = #{size VkOffset3D}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkOffset3D}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkOffset3D where
-        unsafeAddr (VkOffset3D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkOffset3D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkOffset3D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkOffset3D where
-        type StructFields VkOffset3D = '["x", "y", "z"] -- ' closing tick for hsc2hs
-        type CUnionType VkOffset3D = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkOffset3D = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkOffset3D = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkOffset3D where
-        type FieldType "x" VkOffset3D = Int32
-        type FieldOptional "x" VkOffset3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkOffset3D =
-             #{offset VkOffset3D, x}
-        type FieldIsArray "x" VkOffset3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkOffset3D, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkOffset3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkOffset3D, x})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkOffset3D, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkOffset3D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkOffset3D, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkOffset3D where
-        type FieldType "y" VkOffset3D = Int32
-        type FieldOptional "y" VkOffset3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkOffset3D =
-             #{offset VkOffset3D, y}
-        type FieldIsArray "y" VkOffset3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkOffset3D, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkOffset3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkOffset3D, y})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkOffset3D, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkOffset3D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkOffset3D, y}
-
-instance {-# OVERLAPPING #-} HasField "z" VkOffset3D where
-        type FieldType "z" VkOffset3D = Int32
-        type FieldOptional "z" VkOffset3D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "z" VkOffset3D =
-             #{offset VkOffset3D, z}
-        type FieldIsArray "z" VkOffset3D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkOffset3D, z}
-
-instance {-# OVERLAPPING #-} CanReadField "z" VkOffset3D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkOffset3D, z})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkOffset3D, z}
-
-instance {-# OVERLAPPING #-} CanWriteField "z" VkOffset3D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkOffset3D, z}
-
-instance Show VkOffset3D where
-        showsPrec d x
-          = showString "VkOffset3D {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " .
-                      showsPrec d (getField @"y" x) .
-                        showString ", " .
-                          showString "z = " . showsPrec d (getField @"z" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPastPresentationTimingGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPastPresentationTimingGOOGLE.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPastPresentationTimingGOOGLE.hsc
+++ /dev/null
@@ -1,287 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPastPresentationTimingGOOGLE
-       (VkPastPresentationTimingGOOGLE(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPastPresentationTimingGOOGLE {
---   >     uint32_t                         presentID;
---   >     uint64_t                         desiredPresentTime;
---   >     uint64_t                         actualPresentTime;
---   >     uint64_t                         earliestPresentTime;
---   >     uint64_t                         presentMargin;
---   > } VkPastPresentationTimingGOOGLE;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPastPresentationTimingGOOGLE.html VkPastPresentationTimingGOOGLE registry at www.khronos.org>
-data VkPastPresentationTimingGOOGLE = VkPastPresentationTimingGOOGLE## Addr##
-                                                                      ByteArray##
-
-instance Eq VkPastPresentationTimingGOOGLE where
-        (VkPastPresentationTimingGOOGLE## a _) ==
-          x@(VkPastPresentationTimingGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPastPresentationTimingGOOGLE where
-        (VkPastPresentationTimingGOOGLE## a _) `compare`
-          x@(VkPastPresentationTimingGOOGLE## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPastPresentationTimingGOOGLE where
-        sizeOf ~_ = #{size VkPastPresentationTimingGOOGLE}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPastPresentationTimingGOOGLE}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPastPresentationTimingGOOGLE where
-        unsafeAddr (VkPastPresentationTimingGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPastPresentationTimingGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPastPresentationTimingGOOGLE##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPastPresentationTimingGOOGLE where
-        type StructFields VkPastPresentationTimingGOOGLE =
-             '["presentID", "desiredPresentTime", "actualPresentTime", -- ' closing tick for hsc2hs
-               "earliestPresentTime", "presentMargin"]
-        type CUnionType VkPastPresentationTimingGOOGLE = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPastPresentationTimingGOOGLE = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPastPresentationTimingGOOGLE = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "presentID" VkPastPresentationTimingGOOGLE where
-        type FieldType "presentID" VkPastPresentationTimingGOOGLE = Word32
-        type FieldOptional "presentID" VkPastPresentationTimingGOOGLE =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "presentID" VkPastPresentationTimingGOOGLE =
-             #{offset VkPastPresentationTimingGOOGLE, presentID}
-        type FieldIsArray "presentID" VkPastPresentationTimingGOOGLE =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPastPresentationTimingGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "presentID" VkPastPresentationTimingGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, presentID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "presentID" VkPastPresentationTimingGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         HasField "desiredPresentTime" VkPastPresentationTimingGOOGLE where
-        type FieldType "desiredPresentTime" VkPastPresentationTimingGOOGLE
-             = Word64
-        type FieldOptional "desiredPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "desiredPresentTime"
-               VkPastPresentationTimingGOOGLE
-             =
-             #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
-        type FieldIsArray "desiredPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "desiredPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "desiredPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, desiredPresentTime}
-
-instance {-# OVERLAPPING #-}
-         HasField "actualPresentTime" VkPastPresentationTimingGOOGLE where
-        type FieldType "actualPresentTime" VkPastPresentationTimingGOOGLE =
-             Word64
-        type FieldOptional "actualPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "actualPresentTime" VkPastPresentationTimingGOOGLE
-             =
-             #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
-        type FieldIsArray "actualPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "actualPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, actualPresentTime})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "actualPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, actualPresentTime}
-
-instance {-# OVERLAPPING #-}
-         HasField "earliestPresentTime" VkPastPresentationTimingGOOGLE where
-        type FieldType "earliestPresentTime" VkPastPresentationTimingGOOGLE
-             = Word64
-        type FieldOptional "earliestPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "earliestPresentTime"
-               VkPastPresentationTimingGOOGLE
-             =
-             #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
-        type FieldIsArray "earliestPresentTime"
-               VkPastPresentationTimingGOOGLE
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "earliestPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "earliestPresentTime" VkPastPresentationTimingGOOGLE
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, earliestPresentTime}
-
-instance {-# OVERLAPPING #-}
-         HasField "presentMargin" VkPastPresentationTimingGOOGLE where
-        type FieldType "presentMargin" VkPastPresentationTimingGOOGLE =
-             Word64
-        type FieldOptional "presentMargin" VkPastPresentationTimingGOOGLE =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "presentMargin" VkPastPresentationTimingGOOGLE =
-             #{offset VkPastPresentationTimingGOOGLE, presentMargin}
-        type FieldIsArray "presentMargin" VkPastPresentationTimingGOOGLE =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPastPresentationTimingGOOGLE, presentMargin}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "presentMargin" VkPastPresentationTimingGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPastPresentationTimingGOOGLE, presentMargin})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPastPresentationTimingGOOGLE, presentMargin}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "presentMargin" VkPastPresentationTimingGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPastPresentationTimingGOOGLE, presentMargin}
-
-instance Show VkPastPresentationTimingGOOGLE where
-        showsPrec d x
-          = showString "VkPastPresentationTimingGOOGLE {" .
-              showString "presentID = " .
-                showsPrec d (getField @"presentID" x) .
-                  showString ", " .
-                    showString "desiredPresentTime = " .
-                      showsPrec d (getField @"desiredPresentTime" x) .
-                        showString ", " .
-                          showString "actualPresentTime = " .
-                            showsPrec d (getField @"actualPresentTime" x) .
-                              showString ", " .
-                                showString "earliestPresentTime = " .
-                                  showsPrec d (getField @"earliestPresentTime" x) .
-                                    showString ", " .
-                                      showString "presentMargin = " .
-                                        showsPrec d (getField @"presentMargin" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeatures.hsc
+++ /dev/null
@@ -1,364 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeatures
-       (VkPhysicalDevice16BitStorageFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo        (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDevice16BitStorageFeatures {
---   >     VkStructureType sType;
---   >     void*      pNext;
---   >     VkBool32                         storageBuffer16BitAccess;
---   >     VkBool32                         uniformAndStorageBuffer16BitAccess;
---   >     VkBool32                         storagePushConstant16;
---   >     VkBool32                         storageInputOutput16;
---   > } VkPhysicalDevice16BitStorageFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDevice16BitStorageFeatures.html VkPhysicalDevice16BitStorageFeatures registry at www.khronos.org>
-data VkPhysicalDevice16BitStorageFeatures = VkPhysicalDevice16BitStorageFeatures## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkPhysicalDevice16BitStorageFeatures where
-        (VkPhysicalDevice16BitStorageFeatures## a _) ==
-          x@(VkPhysicalDevice16BitStorageFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevice16BitStorageFeatures where
-        (VkPhysicalDevice16BitStorageFeatures## a _) `compare`
-          x@(VkPhysicalDevice16BitStorageFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevice16BitStorageFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDevice16BitStorageFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevice16BitStorageFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDevice16BitStorageFeatures
-         where
-        unsafeAddr (VkPhysicalDevice16BitStorageFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevice16BitStorageFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevice16BitStorageFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevice16BitStorageFeatures where
-        type StructFields VkPhysicalDevice16BitStorageFeatures =
-             '["sType", "pNext", "storageBuffer16BitAccess", -- ' closing tick for hsc2hs
-               "uniformAndStorageBuffer16BitAccess", "storagePushConstant16",
-               "storageInputOutput16"]
-        type CUnionType VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevice16BitStorageFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevice16BitStorageFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevice16BitStorageFeatures where
-        type FieldType "sType" VkPhysicalDevice16BitStorageFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDevice16BitStorageFeatures =
-             #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevice16BitStorageFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevice16BitStorageFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        type FieldType "pNext" VkPhysicalDevice16BitStorageFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDevice16BitStorageFeatures =
-             #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDevice16BitStorageFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevice16BitStorageFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-        type FieldIsArray "storageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-        type FieldIsArray "uniformAndStorageBuffer16BitAccess"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "uniformAndStorageBuffer16BitAccess"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, uniformAndStorageBuffer16BitAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-        type FieldIsArray "storagePushConstant16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storagePushConstant16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storagePushConstant16}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        type FieldType "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = VkBool32
-        type FieldOptional "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             =
-             #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-        type FieldIsArray "storageInputOutput16"
-               VkPhysicalDevice16BitStorageFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageInputOutput16"
-           VkPhysicalDevice16BitStorageFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevice16BitStorageFeatures, storageInputOutput16}
-
-instance Show VkPhysicalDevice16BitStorageFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDevice16BitStorageFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "storageBuffer16BitAccess = " .
-                            showsPrec d (getField @"storageBuffer16BitAccess" x) .
-                              showString ", " .
-                                showString "uniformAndStorageBuffer16BitAccess = " .
-                                  showsPrec d (getField @"uniformAndStorageBuffer16BitAccess" x) .
-                                    showString ", " .
-                                      showString "storagePushConstant16 = " .
-                                        showsPrec d (getField @"storagePushConstant16" x) .
-                                          showString ", " .
-                                            showString "storageInputOutput16 = " .
-                                              showsPrec d (getField @"storageInputOutput16" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeaturesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeaturesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevice16BitStorageFeaturesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeaturesKHR
-       (VkPhysicalDevice16BitStorageFeatures(..),
-        VkPhysicalDevice16BitStorageFeaturesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeatures
-                                                                                    (VkPhysicalDevice16BitStorageFeatures (..))
-
--- | Alias for `VkPhysicalDevice16BitStorageFeatures`
-type VkPhysicalDevice16BitStorageFeaturesKHR =
-     VkPhysicalDevice16BitStorageFeatures
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.hsc
+++ /dev/null
@@ -1,243 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-       (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         advancedBlendCoherentOperations;
---   > } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.html VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT registry at www.khronos.org>
-data VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## Addr##
-                                                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT where
-        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) ==
-          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _) `compare`
-          x@(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type StructFields VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = '["sType", "pNext", "advancedBlendCoherentOperations"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        type FieldType "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-        type FieldIsArray "advancedBlendCoherentOperations"
-               VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendCoherentOperations"
-           VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, advancedBlendCoherentOperations}
-
-instance Show VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-         where
-        showsPrec d x
-          = showString "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "advancedBlendCoherentOperations = " .
-                            showsPrec d (getField @"advancedBlendCoherentOperations" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.hsc
+++ /dev/null
@@ -1,515 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-       (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         advancedBlendMaxColorAttachments;
---   >     VkBool32                         advancedBlendIndependentBlend;
---   >     VkBool32                         advancedBlendNonPremultipliedSrcColor;
---   >     VkBool32                         advancedBlendNonPremultipliedDstColor;
---   >     VkBool32                         advancedBlendCorrelatedOverlap;
---   >     VkBool32                         advancedBlendAllOperations;
---   > } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT.html VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## Addr##
-                                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type StructFields
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             '["sType", "pNext", "advancedBlendMaxColorAttachments", -- ' closing tick for hsc2hs
-               "advancedBlendIndependentBlend",
-               "advancedBlendNonPremultipliedSrcColor",
-               "advancedBlendNonPremultipliedDstColor",
-               "advancedBlendCorrelatedOverlap", "advancedBlendAllOperations"]
-        type CUnionType VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = Word32
-        type FieldOptional "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-        type FieldIsArray "advancedBlendMaxColorAttachments"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendMaxColorAttachments"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendMaxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-        type FieldIsArray "advancedBlendIndependentBlend"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendIndependentBlend"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendIndependentBlend}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-        type FieldIsArray "advancedBlendNonPremultipliedSrcColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendNonPremultipliedSrcColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedSrcColor}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-        type FieldIsArray "advancedBlendNonPremultipliedDstColor"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendNonPremultipliedDstColor"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendNonPremultipliedDstColor}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-        type FieldIsArray "advancedBlendCorrelatedOverlap"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendCorrelatedOverlap"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendCorrelatedOverlap}
-
-instance {-# OVERLAPPING #-}
-         HasField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        type FieldType "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = VkBool32
-        type FieldOptional "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-        type FieldIsArray "advancedBlendAllOperations"
-               VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "advancedBlendAllOperations"
-           VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, advancedBlendAllOperations}
-
-instance Show VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "advancedBlendMaxColorAttachments = " .
-                            showsPrec d (getField @"advancedBlendMaxColorAttachments" x) .
-                              showString ", " .
-                                showString "advancedBlendIndependentBlend = " .
-                                  showsPrec d (getField @"advancedBlendIndependentBlend" x) .
-                                    showString ", " .
-                                      showString "advancedBlendNonPremultipliedSrcColor = " .
-                                        showsPrec d
-                                          (getField @"advancedBlendNonPremultipliedSrcColor" x)
-                                          .
-                                          showString ", " .
-                                            showString "advancedBlendNonPremultipliedDstColor = " .
-                                              showsPrec d
-                                                (getField @"advancedBlendNonPremultipliedDstColor"
-                                                   x)
-                                                .
-                                                showString ", " .
-                                                  showString "advancedBlendCorrelatedOverlap = " .
-                                                    showsPrec d
-                                                      (getField @"advancedBlendCorrelatedOverlap" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "advancedBlendAllOperations = " .
-                                                          showsPrec d
-                                                            (getField @"advancedBlendAllOperations"
-                                                               x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.hsc
+++ /dev/null
@@ -1,693 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-       (VkPhysicalDeviceConservativeRasterizationPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     float                  primitiveOverestimationSize;
---   >     float                  maxExtraPrimitiveOverestimationSize;
---   >     float                  extraPrimitiveOverestimationSizeGranularity;
---   >     VkBool32               primitiveUnderestimation;
---   >     VkBool32               conservativePointAndLineRasterization;
---   >     VkBool32               degenerateTrianglesRasterized;
---   >     VkBool32               degenerateLinesRasterized;
---   >     VkBool32               fullyCoveredFragmentShaderInputVariable;
---   >     VkBool32               conservativeRasterizationPostDepthCoverage;
---   > } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceConservativeRasterizationPropertiesEXT.html VkPhysicalDeviceConservativeRasterizationPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceConservativeRasterizationPropertiesEXT = VkPhysicalDeviceConservativeRasterizationPropertiesEXT## Addr##
-                                                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceConservativeRasterizationPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceConservativeRasterizationPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceConservativeRasterizationPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceConservativeRasterizationPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type StructFields
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             '["sType", "pNext", "primitiveOverestimationSize", -- ' closing tick for hsc2hs
-               "maxExtraPrimitiveOverestimationSize",
-               "extraPrimitiveOverestimationSizeGranularity",
-               "primitiveUnderestimation",
-               "conservativePointAndLineRasterization",
-               "degenerateTrianglesRasterized", "degenerateLinesRasterized",
-               "fullyCoveredFragmentShaderInputVariable",
-               "conservativeRasterizationPostDepthCoverage"]
-        type CUnionType
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-        type FieldIsArray "primitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "primitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-        type FieldIsArray "maxExtraPrimitiveOverestimationSize"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxExtraPrimitiveOverestimationSize"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, maxExtraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = #{type float}
-        type FieldOptional "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-        type FieldIsArray "extraPrimitiveOverestimationSizeGranularity"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "extraPrimitiveOverestimationSizeGranularity"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, extraPrimitiveOverestimationSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-        type FieldIsArray "primitiveUnderestimation"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "primitiveUnderestimation"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, primitiveUnderestimation}
-
-instance {-# OVERLAPPING #-}
-         HasField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-        type FieldIsArray "conservativePointAndLineRasterization"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conservativePointAndLineRasterization"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativePointAndLineRasterization}
-
-instance {-# OVERLAPPING #-}
-         HasField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-        type FieldIsArray "degenerateTrianglesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "degenerateTrianglesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateTrianglesRasterized}
-
-instance {-# OVERLAPPING #-}
-         HasField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-        type FieldIsArray "degenerateLinesRasterized"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "degenerateLinesRasterized"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, degenerateLinesRasterized}
-
-instance {-# OVERLAPPING #-}
-         HasField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-        type FieldIsArray "fullyCoveredFragmentShaderInputVariable"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fullyCoveredFragmentShaderInputVariable"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, fullyCoveredFragmentShaderInputVariable}
-
-instance {-# OVERLAPPING #-}
-         HasField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        type FieldType "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = VkBool32
-        type FieldOptional "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-        type FieldIsArray "conservativeRasterizationPostDepthCoverage"
-               VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conservativeRasterizationPostDepthCoverage"
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceConservativeRasterizationPropertiesEXT, conservativeRasterizationPostDepthCoverage}
-
-instance Show
-           VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceConservativeRasterizationPropertiesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "primitiveOverestimationSize = " .
-                            showsPrec d (getField @"primitiveOverestimationSize" x) .
-                              showString ", " .
-                                showString "maxExtraPrimitiveOverestimationSize = " .
-                                  showsPrec d (getField @"maxExtraPrimitiveOverestimationSize" x) .
-                                    showString ", " .
-                                      showString "extraPrimitiveOverestimationSizeGranularity = " .
-                                        showsPrec d
-                                          (getField @"extraPrimitiveOverestimationSizeGranularity"
-                                             x)
-                                          .
-                                          showString ", " .
-                                            showString "primitiveUnderestimation = " .
-                                              showsPrec d (getField @"primitiveUnderestimation" x) .
-                                                showString ", " .
-                                                  showString
-                                                    "conservativePointAndLineRasterization = "
-                                                    .
-                                                    showsPrec d
-                                                      (getField
-                                                         @"conservativePointAndLineRasterization"
-                                                         x)
-                                                      .
-                                                      showString ", " .
-                                                        showString
-                                                          "degenerateTrianglesRasterized = "
-                                                          .
-                                                          showsPrec d
-                                                            (getField
-                                                               @"degenerateTrianglesRasterized"
-                                                               x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "degenerateLinesRasterized = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"degenerateLinesRasterized"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "fullyCoveredFragmentShaderInputVariable = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"fullyCoveredFragmentShaderInputVariable"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "conservativeRasterizationPostDepthCoverage = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"conservativeRasterizationPostDepthCoverage"
-                                                                                 x)
-                                                                              . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceDiscardRectanglePropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceDiscardRectanglePropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceDiscardRectanglePropertiesEXT.hsc
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceDiscardRectanglePropertiesEXT
-       (VkPhysicalDeviceDiscardRectanglePropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     uint32_t               maxDiscardRectangles;
---   > } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceDiscardRectanglePropertiesEXT.html VkPhysicalDeviceDiscardRectanglePropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceDiscardRectanglePropertiesEXT = VkPhysicalDeviceDiscardRectanglePropertiesEXT## Addr##
-                                                                                                    ByteArray##
-
-instance Eq VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceDiscardRectanglePropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceDiscardRectanglePropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceDiscardRectanglePropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceDiscardRectanglePropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceDiscardRectanglePropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceDiscardRectanglePropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             '["sType", "pNext", "maxDiscardRectangles"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceDiscardRectanglePropertiesEXT =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        type FieldType "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = Word32
-        type FieldOptional "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             =
-             #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-        type FieldIsArray "maxDiscardRectangles"
-               VkPhysicalDeviceDiscardRectanglePropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDiscardRectangles"
-           VkPhysicalDeviceDiscardRectanglePropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceDiscardRectanglePropertiesEXT, maxDiscardRectangles}
-
-instance Show VkPhysicalDeviceDiscardRectanglePropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceDiscardRectanglePropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxDiscardRectangles = " .
-                            showsPrec d (getField @"maxDiscardRectangles" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfo.hsc
+++ /dev/null
@@ -1,275 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo
-       (VkPhysicalDeviceExternalBufferInfo(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkBufferCreateFlags             (VkBufferCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkBufferUsageFlags              (VkBufferUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceExternalBufferInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBufferCreateFlags flags;
---   >     VkBufferUsageFlags               usage;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalBufferInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceExternalBufferInfo.html VkPhysicalDeviceExternalBufferInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalBufferInfo = VkPhysicalDeviceExternalBufferInfo## Addr##
-                                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceExternalBufferInfo where
-        (VkPhysicalDeviceExternalBufferInfo## a _) ==
-          x@(VkPhysicalDeviceExternalBufferInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalBufferInfo where
-        (VkPhysicalDeviceExternalBufferInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalBufferInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalBufferInfo where
-        sizeOf ~_ = #{size VkPhysicalDeviceExternalBufferInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalBufferInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalBufferInfo where
-        unsafeAddr (VkPhysicalDeviceExternalBufferInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalBufferInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalBufferInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalBufferInfo where
-        type StructFields VkPhysicalDeviceExternalBufferInfo =
-             '["sType", "pNext", "flags", "usage", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalBufferInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalBufferInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalBufferInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalBufferInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "flags" VkPhysicalDeviceExternalBufferInfo =
-             VkBufferCreateFlags
-        type FieldOptional "flags" VkPhysicalDeviceExternalBufferInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-        type FieldIsArray "flags" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "usage" VkPhysicalDeviceExternalBufferInfo =
-             VkBufferUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalBufferInfo =
-             VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType" VkPhysicalDeviceExternalBufferInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalBufferInfo =
-             #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-        type FieldIsArray "handleType" VkPhysicalDeviceExternalBufferInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalBufferInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalBufferInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalBufferInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalBufferInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalBufferInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "usage = " .
-                                  showsPrec d (getField @"usage" x) .
-                                    showString ", " .
-                                      showString "handleType = " .
-                                        showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalBufferInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfoKHR
-       (VkPhysicalDeviceExternalBufferInfo(..),
-        VkPhysicalDeviceExternalBufferInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo (VkPhysicalDeviceExternalBufferInfo (..))
-
--- | Alias for `VkPhysicalDeviceExternalBufferInfo`
-type VkPhysicalDeviceExternalBufferInfoKHR =
-     VkPhysicalDeviceExternalBufferInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfo.hsc
+++ /dev/null
@@ -1,194 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo
-       (VkPhysicalDeviceExternalFenceInfo(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags (VkExternalFenceHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceExternalFenceInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalFenceHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalFenceInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceExternalFenceInfo.html VkPhysicalDeviceExternalFenceInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalFenceInfo = VkPhysicalDeviceExternalFenceInfo## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceExternalFenceInfo where
-        (VkPhysicalDeviceExternalFenceInfo## a _) ==
-          x@(VkPhysicalDeviceExternalFenceInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalFenceInfo where
-        (VkPhysicalDeviceExternalFenceInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalFenceInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalFenceInfo where
-        sizeOf ~_ = #{size VkPhysicalDeviceExternalFenceInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalFenceInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalFenceInfo where
-        unsafeAddr (VkPhysicalDeviceExternalFenceInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalFenceInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalFenceInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalFenceInfo where
-        type StructFields VkPhysicalDeviceExternalFenceInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalFenceInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalFenceInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalFenceInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalFenceInfo = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalFenceInfo =
-             VkExternalFenceHandleTypeFlagBits
-        type FieldOptional "handleType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalFenceInfo =
-             #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-        type FieldIsArray "handleType" VkPhysicalDeviceExternalFenceInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalFenceInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalFenceInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalFenceInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalFenceInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalFenceInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalFenceInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfoKHR
-       (VkPhysicalDeviceExternalFenceInfo(..),
-        VkPhysicalDeviceExternalFenceInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo (VkPhysicalDeviceExternalFenceInfo (..))
-
--- | Alias for `VkPhysicalDeviceExternalFenceInfo`
-type VkPhysicalDeviceExternalFenceInfoKHR =
-     VkPhysicalDeviceExternalFenceInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfo.hsc
+++ /dev/null
@@ -1,206 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfo
-       (VkPhysicalDeviceExternalImageFormatInfo(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags    (VkExternalMemoryHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2 (VkPhysicalDeviceImageFormatInfo2)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceExternalImageFormatInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalMemoryHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalImageFormatInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceExternalImageFormatInfo.html VkPhysicalDeviceExternalImageFormatInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalImageFormatInfo = VkPhysicalDeviceExternalImageFormatInfo## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceExternalImageFormatInfo where
-        (VkPhysicalDeviceExternalImageFormatInfo## a _) ==
-          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalImageFormatInfo where
-        (VkPhysicalDeviceExternalImageFormatInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalImageFormatInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalImageFormatInfo where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalImageFormatInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalImageFormatInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalImageFormatInfo
-         where
-        unsafeAddr (VkPhysicalDeviceExternalImageFormatInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalImageFormatInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalImageFormatInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalImageFormatInfo
-         where
-        type StructFields VkPhysicalDeviceExternalImageFormatInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalImageFormatInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalImageFormatInfo =
-             '[VkPhysicalDeviceImageFormatInfo2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalImageFormatInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalImageFormatInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalImageFormatInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalImageFormatInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalImageFormatInfo
-             = VkExternalMemoryHandleTypeFlagBits
-        type FieldOptional "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             =
-             #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-        type FieldIsArray "handleType"
-               VkPhysicalDeviceExternalImageFormatInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalImageFormatInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalImageFormatInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalImageFormatInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalImageFormatInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalImageFormatInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalImageFormatInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfoKHR
-       (VkPhysicalDeviceExternalImageFormatInfo(..),
-        VkPhysicalDeviceExternalImageFormatInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfo
-                                                                                       (VkPhysicalDeviceExternalImageFormatInfo (..))
-
--- | Alias for `VkPhysicalDeviceExternalImageFormatInfo`
-type VkPhysicalDeviceExternalImageFormatInfoKHR =
-     VkPhysicalDeviceExternalImageFormatInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.hsc
+++ /dev/null
@@ -1,239 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-       (VkPhysicalDeviceExternalMemoryHostPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     VkDeviceSize minImportedHostPointerAlignment;
---   > } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceExternalMemoryHostPropertiesEXT.html VkPhysicalDeviceExternalMemoryHostPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceExternalMemoryHostPropertiesEXT = VkPhysicalDeviceExternalMemoryHostPropertiesEXT## Addr##
-                                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceExternalMemoryHostPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalMemoryHostPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceExternalMemoryHostPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalMemoryHostPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             '["sType", "pNext", "minImportedHostPointerAlignment"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalMemoryHostPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        type FieldType "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = VkDeviceSize
-        type FieldOptional "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-        type FieldIsArray "minImportedHostPointerAlignment"
-               VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImportedHostPointerAlignment"
-           VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalMemoryHostPropertiesEXT, minImportedHostPointerAlignment}
-
-instance Show VkPhysicalDeviceExternalMemoryHostPropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalMemoryHostPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "minImportedHostPointerAlignment = " .
-                            showsPrec d (getField @"minImportedHostPointerAlignment" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfo.hsc
+++ /dev/null
@@ -1,202 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo
-       (VkPhysicalDeviceExternalSemaphoreInfo(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   > } VkPhysicalDeviceExternalSemaphoreInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html VkPhysicalDeviceExternalSemaphoreInfo registry at www.khronos.org>
-data VkPhysicalDeviceExternalSemaphoreInfo = VkPhysicalDeviceExternalSemaphoreInfo## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkPhysicalDeviceExternalSemaphoreInfo where
-        (VkPhysicalDeviceExternalSemaphoreInfo## a _) ==
-          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceExternalSemaphoreInfo where
-        (VkPhysicalDeviceExternalSemaphoreInfo## a _) `compare`
-          x@(VkPhysicalDeviceExternalSemaphoreInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceExternalSemaphoreInfo where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceExternalSemaphoreInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceExternalSemaphoreInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        unsafeAddr (VkPhysicalDeviceExternalSemaphoreInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceExternalSemaphoreInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceExternalSemaphoreInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceExternalSemaphoreInfo where
-        type StructFields VkPhysicalDeviceExternalSemaphoreInfo =
-             '["sType", "pNext", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceExternalSemaphoreInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceExternalSemaphoreInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceExternalSemaphoreInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceExternalSemaphoreInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkPhysicalDeviceExternalSemaphoreInfo where
-        type FieldType "handleType" VkPhysicalDeviceExternalSemaphoreInfo =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType"
-               VkPhysicalDeviceExternalSemaphoreInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-             =
-             #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-        type FieldIsArray "handleType"
-               VkPhysicalDeviceExternalSemaphoreInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkPhysicalDeviceExternalSemaphoreInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceExternalSemaphoreInfo, handleType}
-
-instance Show VkPhysicalDeviceExternalSemaphoreInfo where
-        showsPrec d x
-          = showString "VkPhysicalDeviceExternalSemaphoreInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "handleType = " .
-                            showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceExternalSemaphoreInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfoKHR
-       (VkPhysicalDeviceExternalSemaphoreInfo(..),
-        VkPhysicalDeviceExternalSemaphoreInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo
-                                                                                     (VkPhysicalDeviceExternalSemaphoreInfo (..))
-
--- | Alias for `VkPhysicalDeviceExternalSemaphoreInfo`
-type VkPhysicalDeviceExternalSemaphoreInfoKHR =
-     VkPhysicalDeviceExternalSemaphoreInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures.hsc
+++ /dev/null
@@ -1,2801 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-       (VkPhysicalDeviceFeatures(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkBool32)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceFeatures {
---   >     VkBool32               robustBufferAccess;
---   >     VkBool32               fullDrawIndexUint32;
---   >     VkBool32               imageCubeArray;
---   >     VkBool32               independentBlend;
---   >     VkBool32               geometryShader;
---   >     VkBool32               tessellationShader;
---   >     VkBool32               sampleRateShading;
---   >     VkBool32               dualSrcBlend;
---   >     VkBool32               logicOp;
---   >     VkBool32               multiDrawIndirect;
---   >     VkBool32               drawIndirectFirstInstance;
---   >     VkBool32               depthClamp;
---   >     VkBool32               depthBiasClamp;
---   >     VkBool32               fillModeNonSolid;
---   >     VkBool32               depthBounds;
---   >     VkBool32               wideLines;
---   >     VkBool32               largePoints;
---   >     VkBool32               alphaToOne;
---   >     VkBool32               multiViewport;
---   >     VkBool32               samplerAnisotropy;
---   >     VkBool32               textureCompressionETC2;
---   >     VkBool32               textureCompressionASTC_LDR;
---   >     VkBool32               textureCompressionBC;
---   >     VkBool32               occlusionQueryPrecise;
---   >     VkBool32               pipelineStatisticsQuery;
---   >     VkBool32               vertexPipelineStoresAndAtomics;
---   >     VkBool32               fragmentStoresAndAtomics;
---   >     VkBool32               shaderTessellationAndGeometryPointSize;
---   >     VkBool32               shaderImageGatherExtended;
---   >     VkBool32               shaderStorageImageExtendedFormats;
---   >     VkBool32               shaderStorageImageMultisample;
---   >     VkBool32               shaderStorageImageReadWithoutFormat;
---   >     VkBool32               shaderStorageImageWriteWithoutFormat;
---   >     VkBool32               shaderUniformBufferArrayDynamicIndexing;
---   >     VkBool32               shaderSampledImageArrayDynamicIndexing;
---   >     VkBool32               shaderStorageBufferArrayDynamicIndexing;
---   >     VkBool32               shaderStorageImageArrayDynamicIndexing;
---   >     VkBool32               shaderClipDistance;
---   >     VkBool32               shaderCullDistance;
---   >     VkBool32               shaderFloat64;
---   >     VkBool32               shaderInt64;
---   >     VkBool32               shaderInt16;
---   >     VkBool32               shaderResourceResidency;
---   >     VkBool32               shaderResourceMinLod;
---   >     VkBool32               sparseBinding;
---   >     VkBool32               sparseResidencyBuffer;
---   >     VkBool32               sparseResidencyImage2D;
---   >     VkBool32               sparseResidencyImage3D;
---   >     VkBool32               sparseResidency2Samples;
---   >     VkBool32               sparseResidency4Samples;
---   >     VkBool32               sparseResidency8Samples;
---   >     VkBool32               sparseResidency16Samples;
---   >     VkBool32               sparseResidencyAliased;
---   >     VkBool32               variableMultisampleRate;
---   >     VkBool32               inheritedQueries;
---   > } VkPhysicalDeviceFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceFeatures.html VkPhysicalDeviceFeatures registry at www.khronos.org>
-data VkPhysicalDeviceFeatures = VkPhysicalDeviceFeatures## Addr##
-                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceFeatures where
-        (VkPhysicalDeviceFeatures## a _) ==
-          x@(VkPhysicalDeviceFeatures## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceFeatures where
-        (VkPhysicalDeviceFeatures## a _) `compare`
-          x@(VkPhysicalDeviceFeatures## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceFeatures where
-        sizeOf ~_ = #{size VkPhysicalDeviceFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceFeatures where
-        unsafeAddr (VkPhysicalDeviceFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceFeatures## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceFeatures where
-        type StructFields VkPhysicalDeviceFeatures =
-             '["robustBufferAccess", "fullDrawIndexUint32", "imageCubeArray", -- ' closing tick for hsc2hs
-               "independentBlend", "geometryShader", "tessellationShader",
-               "sampleRateShading", "dualSrcBlend", "logicOp",
-               "multiDrawIndirect", "drawIndirectFirstInstance", "depthClamp",
-               "depthBiasClamp", "fillModeNonSolid", "depthBounds", "wideLines",
-               "largePoints", "alphaToOne", "multiViewport", "samplerAnisotropy",
-               "textureCompressionETC2", "textureCompressionASTC_LDR",
-               "textureCompressionBC", "occlusionQueryPrecise",
-               "pipelineStatisticsQuery", "vertexPipelineStoresAndAtomics",
-               "fragmentStoresAndAtomics",
-               "shaderTessellationAndGeometryPointSize",
-               "shaderImageGatherExtended", "shaderStorageImageExtendedFormats",
-               "shaderStorageImageMultisample",
-               "shaderStorageImageReadWithoutFormat",
-               "shaderStorageImageWriteWithoutFormat",
-               "shaderUniformBufferArrayDynamicIndexing",
-               "shaderSampledImageArrayDynamicIndexing",
-               "shaderStorageBufferArrayDynamicIndexing",
-               "shaderStorageImageArrayDynamicIndexing", "shaderClipDistance",
-               "shaderCullDistance", "shaderFloat64", "shaderInt64",
-               "shaderInt16", "shaderResourceResidency", "shaderResourceMinLod",
-               "sparseBinding", "sparseResidencyBuffer", "sparseResidencyImage2D",
-               "sparseResidencyImage3D", "sparseResidency2Samples",
-               "sparseResidency4Samples", "sparseResidency8Samples",
-               "sparseResidency16Samples", "sparseResidencyAliased",
-               "variableMultisampleRate", "inheritedQueries"]
-        type CUnionType VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceFeatures = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "robustBufferAccess" VkPhysicalDeviceFeatures where
-        type FieldType "robustBufferAccess" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "robustBufferAccess" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "robustBufferAccess" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
-        type FieldIsArray "robustBufferAccess" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "robustBufferAccess" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, robustBufferAccess})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "robustBufferAccess" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, robustBufferAccess}
-
-instance {-# OVERLAPPING #-}
-         HasField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
-        type FieldType "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
-        type FieldIsArray "fullDrawIndexUint32" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fullDrawIndexUint32" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fullDrawIndexUint32}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageCubeArray" VkPhysicalDeviceFeatures where
-        type FieldType "imageCubeArray" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "imageCubeArray" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageCubeArray" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, imageCubeArray}
-        type FieldIsArray "imageCubeArray" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, imageCubeArray}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageCubeArray" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, imageCubeArray})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, imageCubeArray}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageCubeArray" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, imageCubeArray}
-
-instance {-# OVERLAPPING #-}
-         HasField "independentBlend" VkPhysicalDeviceFeatures where
-        type FieldType "independentBlend" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "independentBlend" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "independentBlend" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, independentBlend}
-        type FieldIsArray "independentBlend" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, independentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "independentBlend" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, independentBlend})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, independentBlend}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "independentBlend" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, independentBlend}
-
-instance {-# OVERLAPPING #-}
-         HasField "geometryShader" VkPhysicalDeviceFeatures where
-        type FieldType "geometryShader" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "geometryShader" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "geometryShader" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, geometryShader}
-        type FieldIsArray "geometryShader" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, geometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "geometryShader" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, geometryShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, geometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "geometryShader" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, geometryShader}
-
-instance {-# OVERLAPPING #-}
-         HasField "tessellationShader" VkPhysicalDeviceFeatures where
-        type FieldType "tessellationShader" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "tessellationShader" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "tessellationShader" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, tessellationShader}
-        type FieldIsArray "tessellationShader" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, tessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tessellationShader" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, tessellationShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, tessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tessellationShader" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, tessellationShader}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleRateShading" VkPhysicalDeviceFeatures where
-        type FieldType "sampleRateShading" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sampleRateShading" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleRateShading" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, sampleRateShading}
-        type FieldIsArray "sampleRateShading" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sampleRateShading}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleRateShading" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sampleRateShading})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sampleRateShading}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleRateShading" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sampleRateShading}
-
-instance {-# OVERLAPPING #-}
-         HasField "dualSrcBlend" VkPhysicalDeviceFeatures where
-        type FieldType "dualSrcBlend" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "dualSrcBlend" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dualSrcBlend" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
-        type FieldIsArray "dualSrcBlend" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dualSrcBlend" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, dualSrcBlend})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dualSrcBlend" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, dualSrcBlend}
-
-instance {-# OVERLAPPING #-}
-         HasField "logicOp" VkPhysicalDeviceFeatures where
-        type FieldType "logicOp" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "logicOp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "logicOp" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, logicOp}
-        type FieldIsArray "logicOp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, logicOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "logicOp" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, logicOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, logicOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "logicOp" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, logicOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiDrawIndirect" VkPhysicalDeviceFeatures where
-        type FieldType "multiDrawIndirect" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "multiDrawIndirect" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiDrawIndirect" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
-        type FieldIsArray "multiDrawIndirect" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiDrawIndirect" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, multiDrawIndirect})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiDrawIndirect" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, multiDrawIndirect}
-
-instance {-# OVERLAPPING #-}
-         HasField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures where
-        type FieldType "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "drawIndirectFirstInstance"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "drawIndirectFirstInstance"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
-        type FieldIsArray "drawIndirectFirstInstance"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "drawIndirectFirstInstance" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, drawIndirectFirstInstance}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthClamp" VkPhysicalDeviceFeatures where
-        type FieldType "depthClamp" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "depthClamp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthClamp" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, depthClamp}
-        type FieldIsArray "depthClamp" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, depthClamp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthClamp" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthClamp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthClamp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthClamp" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthClamp}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBiasClamp" VkPhysicalDeviceFeatures where
-        type FieldType "depthBiasClamp" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "depthBiasClamp" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBiasClamp" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
-        type FieldIsArray "depthBiasClamp" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBiasClamp" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthBiasClamp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBiasClamp" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         HasField "fillModeNonSolid" VkPhysicalDeviceFeatures where
-        type FieldType "fillModeNonSolid" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "fillModeNonSolid" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "fillModeNonSolid" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
-        type FieldIsArray "fillModeNonSolid" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fillModeNonSolid" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fillModeNonSolid})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fillModeNonSolid" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fillModeNonSolid}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBounds" VkPhysicalDeviceFeatures where
-        type FieldType "depthBounds" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "depthBounds" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBounds" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, depthBounds}
-        type FieldIsArray "depthBounds" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, depthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBounds" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, depthBounds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, depthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBounds" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, depthBounds}
-
-instance {-# OVERLAPPING #-}
-         HasField "wideLines" VkPhysicalDeviceFeatures where
-        type FieldType "wideLines" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "wideLines" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "wideLines" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, wideLines}
-        type FieldIsArray "wideLines" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, wideLines}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "wideLines" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, wideLines})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, wideLines}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "wideLines" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, wideLines}
-
-instance {-# OVERLAPPING #-}
-         HasField "largePoints" VkPhysicalDeviceFeatures where
-        type FieldType "largePoints" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "largePoints" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "largePoints" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, largePoints}
-        type FieldIsArray "largePoints" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, largePoints}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "largePoints" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, largePoints})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, largePoints}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "largePoints" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, largePoints}
-
-instance {-# OVERLAPPING #-}
-         HasField "alphaToOne" VkPhysicalDeviceFeatures where
-        type FieldType "alphaToOne" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "alphaToOne" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "alphaToOne" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, alphaToOne}
-        type FieldIsArray "alphaToOne" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, alphaToOne}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alphaToOne" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, alphaToOne})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, alphaToOne}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alphaToOne" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, alphaToOne}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiViewport" VkPhysicalDeviceFeatures where
-        type FieldType "multiViewport" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "multiViewport" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiViewport" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, multiViewport}
-        type FieldIsArray "multiViewport" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, multiViewport}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiViewport" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, multiViewport})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, multiViewport}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiViewport" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, multiViewport}
-
-instance {-# OVERLAPPING #-}
-         HasField "samplerAnisotropy" VkPhysicalDeviceFeatures where
-        type FieldType "samplerAnisotropy" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "samplerAnisotropy" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "samplerAnisotropy" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
-        type FieldIsArray "samplerAnisotropy" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samplerAnisotropy" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, samplerAnisotropy})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samplerAnisotropy" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, samplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         HasField "textureCompressionETC2" VkPhysicalDeviceFeatures where
-        type FieldType "textureCompressionETC2" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "textureCompressionETC2"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "textureCompressionETC2" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
-        type FieldIsArray "textureCompressionETC2" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "textureCompressionETC2" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionETC2})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "textureCompressionETC2" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionETC2}
-
-instance {-# OVERLAPPING #-}
-         HasField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
-         where
-        type FieldType "textureCompressionASTC_LDR"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "textureCompressionASTC_LDR"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "textureCompressionASTC_LDR"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
-        type FieldIsArray "textureCompressionASTC_LDR"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "textureCompressionASTC_LDR" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionASTC_LDR}
-
-instance {-# OVERLAPPING #-}
-         HasField "textureCompressionBC" VkPhysicalDeviceFeatures where
-        type FieldType "textureCompressionBC" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "textureCompressionBC" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "textureCompressionBC" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
-        type FieldIsArray "textureCompressionBC" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "textureCompressionBC" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, textureCompressionBC})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "textureCompressionBC" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, textureCompressionBC}
-
-instance {-# OVERLAPPING #-}
-         HasField "occlusionQueryPrecise" VkPhysicalDeviceFeatures where
-        type FieldType "occlusionQueryPrecise" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "occlusionQueryPrecise" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "occlusionQueryPrecise" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
-        type FieldIsArray "occlusionQueryPrecise" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "occlusionQueryPrecise" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "occlusionQueryPrecise" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, occlusionQueryPrecise}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures where
-        type FieldType "pipelineStatisticsQuery" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "pipelineStatisticsQuery"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
-        type FieldIsArray "pipelineStatisticsQuery"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineStatisticsQuery" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, pipelineStatisticsQuery}
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexPipelineStoresAndAtomics" VkPhysicalDeviceFeatures
-         where
-        type FieldType "vertexPipelineStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "vertexPipelineStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vertexPipelineStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
-        type FieldIsArray "vertexPipelineStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexPipelineStoresAndAtomics"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexPipelineStoresAndAtomics"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         HasField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures where
-        type FieldType "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "fragmentStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "fragmentStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
-        type FieldIsArray "fragmentStoresAndAtomics"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "fragmentStoresAndAtomics" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, fragmentStoresAndAtomics}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderTessellationAndGeometryPointSize"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderTessellationAndGeometryPointSize"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderTessellationAndGeometryPointSize"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderTessellationAndGeometryPointSize"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
-        type FieldIsArray "shaderTessellationAndGeometryPointSize"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderTessellationAndGeometryPointSize"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderTessellationAndGeometryPointSize"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderImageGatherExtended" VkPhysicalDeviceFeatures where
-        type FieldType "shaderImageGatherExtended" VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderImageGatherExtended"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderImageGatherExtended"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
-        type FieldIsArray "shaderImageGatherExtended"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderImageGatherExtended" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderImageGatherExtended" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderImageGatherExtended}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageExtendedFormats"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageImageExtendedFormats"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageImageExtendedFormats"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageExtendedFormats"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
-        type FieldIsArray "shaderStorageImageExtendedFormats"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageExtendedFormats"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageExtendedFormats"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageMultisample" VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageImageMultisample"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageImageMultisample"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageMultisample"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
-        type FieldIsArray "shaderStorageImageMultisample"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageMultisample"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageMultisample"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageMultisample}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageReadWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageImageReadWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageImageReadWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageReadWithoutFormat"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
-        type FieldIsArray "shaderStorageImageReadWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageReadWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageReadWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageWriteWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageImageWriteWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageImageWriteWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageWriteWithoutFormat"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
-        type FieldIsArray "shaderStorageImageWriteWithoutFormat"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageWriteWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageWriteWithoutFormat"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderUniformBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderUniformBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderUniformBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderUniformBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
-        type FieldIsArray "shaderUniformBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderUniformBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderUniformBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderSampledImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderSampledImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderSampledImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderSampledImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
-        type FieldIsArray "shaderSampledImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderSampledImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderSampledImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
-        type FieldIsArray "shaderStorageBufferArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageBufferArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStorageImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        type FieldType "shaderStorageImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "shaderStorageImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStorageImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
-        type FieldIsArray "shaderStorageImageArrayDynamicIndexing"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStorageImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStorageImageArrayDynamicIndexing"
-           VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderClipDistance" VkPhysicalDeviceFeatures where
-        type FieldType "shaderClipDistance" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "shaderClipDistance" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderClipDistance" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
-        type FieldIsArray "shaderClipDistance" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderClipDistance" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderClipDistance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderClipDistance" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderClipDistance}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderCullDistance" VkPhysicalDeviceFeatures where
-        type FieldType "shaderCullDistance" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "shaderCullDistance" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderCullDistance" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
-        type FieldIsArray "shaderCullDistance" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderCullDistance" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderCullDistance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderCullDistance" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderCullDistance}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderFloat64" VkPhysicalDeviceFeatures where
-        type FieldType "shaderFloat64" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "shaderFloat64" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderFloat64" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderFloat64}
-        type FieldIsArray "shaderFloat64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderFloat64}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderFloat64" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderFloat64})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderFloat64}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderFloat64" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderFloat64}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderInt64" VkPhysicalDeviceFeatures where
-        type FieldType "shaderInt64" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "shaderInt64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderInt64" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderInt64}
-        type FieldIsArray "shaderInt64" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderInt64}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderInt64" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderInt64})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt64}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderInt64" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt64}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderInt16" VkPhysicalDeviceFeatures where
-        type FieldType "shaderInt16" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "shaderInt16" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderInt16" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderInt16}
-        type FieldIsArray "shaderInt16" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderInt16}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderInt16" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderInt16})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt16}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderInt16" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderInt16}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderResourceResidency" VkPhysicalDeviceFeatures where
-        type FieldType "shaderResourceResidency" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "shaderResourceResidency"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderResourceResidency" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
-        type FieldIsArray "shaderResourceResidency"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderResourceResidency" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderResourceResidency})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderResourceResidency" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceResidency}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
-        type FieldType "shaderResourceMinLod" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "shaderResourceMinLod" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderResourceMinLod" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
-        type FieldIsArray "shaderResourceMinLod" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderResourceMinLod" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, shaderResourceMinLod}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseBinding" VkPhysicalDeviceFeatures where
-        type FieldType "sparseBinding" VkPhysicalDeviceFeatures = VkBool32
-        type FieldOptional "sparseBinding" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseBinding" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, sparseBinding}
-        type FieldIsArray "sparseBinding" VkPhysicalDeviceFeatures = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseBinding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseBinding" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseBinding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseBinding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseBinding" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseBinding}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidencyBuffer" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidencyBuffer" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidencyBuffer" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidencyBuffer" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
-        type FieldIsArray "sparseResidencyBuffer" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidencyBuffer" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidencyBuffer" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidencyImage2D" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidencyImage2D" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidencyImage2D"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidencyImage2D" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
-        type FieldIsArray "sparseResidencyImage2D" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidencyImage2D" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidencyImage2D" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage2D}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidencyImage3D" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidencyImage3D" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidencyImage3D"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidencyImage3D" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
-        type FieldIsArray "sparseResidencyImage3D" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidencyImage3D" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidencyImage3D" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyImage3D}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidency2Samples" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidency2Samples" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidency2Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidency2Samples" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
-        type FieldIsArray "sparseResidency2Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidency2Samples" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidency2Samples" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency2Samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidency4Samples" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidency4Samples" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidency4Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidency4Samples" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
-        type FieldIsArray "sparseResidency4Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidency4Samples" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidency4Samples" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency4Samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidency8Samples" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidency8Samples" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidency8Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidency8Samples" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
-        type FieldIsArray "sparseResidency8Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidency8Samples" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidency8Samples" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency8Samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidency16Samples" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidency16Samples" VkPhysicalDeviceFeatures
-             = VkBool32
-        type FieldOptional "sparseResidency16Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidency16Samples"
-               VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
-        type FieldIsArray "sparseResidency16Samples"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidency16Samples" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidency16Samples" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidency16Samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseResidencyAliased" VkPhysicalDeviceFeatures where
-        type FieldType "sparseResidencyAliased" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "sparseResidencyAliased"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseResidencyAliased" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
-        type FieldIsArray "sparseResidencyAliased" VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseResidencyAliased" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseResidencyAliased" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, sparseResidencyAliased}
-
-instance {-# OVERLAPPING #-}
-         HasField "variableMultisampleRate" VkPhysicalDeviceFeatures where
-        type FieldType "variableMultisampleRate" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "variableMultisampleRate"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variableMultisampleRate" VkPhysicalDeviceFeatures
-             =
-             #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
-        type FieldIsArray "variableMultisampleRate"
-               VkPhysicalDeviceFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variableMultisampleRate" VkPhysicalDeviceFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, variableMultisampleRate})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variableMultisampleRate" VkPhysicalDeviceFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, variableMultisampleRate}
-
-instance {-# OVERLAPPING #-}
-         HasField "inheritedQueries" VkPhysicalDeviceFeatures where
-        type FieldType "inheritedQueries" VkPhysicalDeviceFeatures =
-             VkBool32
-        type FieldOptional "inheritedQueries" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "inheritedQueries" VkPhysicalDeviceFeatures =
-             #{offset VkPhysicalDeviceFeatures, inheritedQueries}
-        type FieldIsArray "inheritedQueries" VkPhysicalDeviceFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures, inheritedQueries}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "inheritedQueries" VkPhysicalDeviceFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures, inheritedQueries})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures, inheritedQueries}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "inheritedQueries" VkPhysicalDeviceFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures, inheritedQueries}
-
-instance Show VkPhysicalDeviceFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceFeatures {" .
-              showString "robustBufferAccess = " .
-                showsPrec d (getField @"robustBufferAccess" x) .
-                  showString ", " .
-                    showString "fullDrawIndexUint32 = " .
-                      showsPrec d (getField @"fullDrawIndexUint32" x) .
-                        showString ", " .
-                          showString "imageCubeArray = " .
-                            showsPrec d (getField @"imageCubeArray" x) .
-                              showString ", " .
-                                showString "independentBlend = " .
-                                  showsPrec d (getField @"independentBlend" x) .
-                                    showString ", " .
-                                      showString "geometryShader = " .
-                                        showsPrec d (getField @"geometryShader" x) .
-                                          showString ", " .
-                                            showString "tessellationShader = " .
-                                              showsPrec d (getField @"tessellationShader" x) .
-                                                showString ", " .
-                                                  showString "sampleRateShading = " .
-                                                    showsPrec d (getField @"sampleRateShading" x) .
-                                                      showString ", " .
-                                                        showString "dualSrcBlend = " .
-                                                          showsPrec d (getField @"dualSrcBlend" x) .
-                                                            showString ", " .
-                                                              showString "logicOp = " .
-                                                                showsPrec d (getField @"logicOp" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "multiDrawIndirect = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"multiDrawIndirect"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "drawIndirectFirstInstance = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"drawIndirectFirstInstance"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "depthClamp = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"depthClamp"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "depthBiasClamp = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"depthBiasClamp"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "fillModeNonSolid = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"fillModeNonSolid"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "depthBounds = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"depthBounds"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "wideLines = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"wideLines"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "largePoints = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"largePoints"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "alphaToOne = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"alphaToOne"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "multiViewport = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"multiViewport"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showString
-                                                                                                                                ", "
-                                                                                                                                .
-                                                                                                                                showString
-                                                                                                                                  "samplerAnisotropy = "
-                                                                                                                                  .
-                                                                                                                                  showsPrec
-                                                                                                                                    d
-                                                                                                                                    (getField
-                                                                                                                                       @"samplerAnisotropy"
-                                                                                                                                       x)
-                                                                                                                                    .
-                                                                                                                                    showString
-                                                                                                                                      ", "
-                                                                                                                                      .
-                                                                                                                                      showString
-                                                                                                                                        "textureCompressionETC2 = "
-                                                                                                                                        .
-                                                                                                                                        showsPrec
-                                                                                                                                          d
-                                                                                                                                          (getField
-                                                                                                                                             @"textureCompressionETC2"
-                                                                                                                                             x)
-                                                                                                                                          .
-                                                                                                                                          showString
-                                                                                                                                            ", "
-                                                                                                                                            .
-                                                                                                                                            showString
-                                                                                                                                              "textureCompressionASTC_LDR = "
-                                                                                                                                              .
-                                                                                                                                              showsPrec
-                                                                                                                                                d
-                                                                                                                                                (getField
-                                                                                                                                                   @"textureCompressionASTC_LDR"
-                                                                                                                                                   x)
-                                                                                                                                                .
-                                                                                                                                                showString
-                                                                                                                                                  ", "
-                                                                                                                                                  .
-                                                                                                                                                  showString
-                                                                                                                                                    "textureCompressionBC = "
-                                                                                                                                                    .
-                                                                                                                                                    showsPrec
-                                                                                                                                                      d
-                                                                                                                                                      (getField
-                                                                                                                                                         @"textureCompressionBC"
-                                                                                                                                                         x)
-                                                                                                                                                      .
-                                                                                                                                                      showString
-                                                                                                                                                        ", "
-                                                                                                                                                        .
-                                                                                                                                                        showString
-                                                                                                                                                          "occlusionQueryPrecise = "
-                                                                                                                                                          .
-                                                                                                                                                          showsPrec
-                                                                                                                                                            d
-                                                                                                                                                            (getField
-                                                                                                                                                               @"occlusionQueryPrecise"
-                                                                                                                                                               x)
-                                                                                                                                                            .
-                                                                                                                                                            showString
-                                                                                                                                                              ", "
-                                                                                                                                                              .
-                                                                                                                                                              showString
-                                                                                                                                                                "pipelineStatisticsQuery = "
-                                                                                                                                                                .
-                                                                                                                                                                showsPrec
-                                                                                                                                                                  d
-                                                                                                                                                                  (getField
-                                                                                                                                                                     @"pipelineStatisticsQuery"
-                                                                                                                                                                     x)
-                                                                                                                                                                  .
-                                                                                                                                                                  showString
-                                                                                                                                                                    ", "
-                                                                                                                                                                    .
-                                                                                                                                                                    showString
-                                                                                                                                                                      "vertexPipelineStoresAndAtomics = "
-                                                                                                                                                                      .
-                                                                                                                                                                      showsPrec
-                                                                                                                                                                        d
-                                                                                                                                                                        (getField
-                                                                                                                                                                           @"vertexPipelineStoresAndAtomics"
-                                                                                                                                                                           x)
-                                                                                                                                                                        .
-                                                                                                                                                                        showString
-                                                                                                                                                                          ", "
-                                                                                                                                                                          .
-                                                                                                                                                                          showString
-                                                                                                                                                                            "fragmentStoresAndAtomics = "
-                                                                                                                                                                            .
-                                                                                                                                                                            showsPrec
-                                                                                                                                                                              d
-                                                                                                                                                                              (getField
-                                                                                                                                                                                 @"fragmentStoresAndAtomics"
-                                                                                                                                                                                 x)
-                                                                                                                                                                              .
-                                                                                                                                                                              showString
-                                                                                                                                                                                ", "
-                                                                                                                                                                                .
-                                                                                                                                                                                showString
-                                                                                                                                                                                  "shaderTessellationAndGeometryPointSize = "
-                                                                                                                                                                                  .
-                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                    d
-                                                                                                                                                                                    (getField
-                                                                                                                                                                                       @"shaderTessellationAndGeometryPointSize"
-                                                                                                                                                                                       x)
-                                                                                                                                                                                    .
-                                                                                                                                                                                    showString
-                                                                                                                                                                                      ", "
-                                                                                                                                                                                      .
-                                                                                                                                                                                      showString
-                                                                                                                                                                                        "shaderImageGatherExtended = "
-                                                                                                                                                                                        .
-                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                          d
-                                                                                                                                                                                          (getField
-                                                                                                                                                                                             @"shaderImageGatherExtended"
-                                                                                                                                                                                             x)
-                                                                                                                                                                                          .
-                                                                                                                                                                                          showString
-                                                                                                                                                                                            ", "
-                                                                                                                                                                                            .
-                                                                                                                                                                                            showString
-                                                                                                                                                                                              "shaderStorageImageExtendedFormats = "
-                                                                                                                                                                                              .
-                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                d
-                                                                                                                                                                                                (getField
-                                                                                                                                                                                                   @"shaderStorageImageExtendedFormats"
-                                                                                                                                                                                                   x)
-                                                                                                                                                                                                .
-                                                                                                                                                                                                showString
-                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                  .
-                                                                                                                                                                                                  showString
-                                                                                                                                                                                                    "shaderStorageImageMultisample = "
-                                                                                                                                                                                                    .
-                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                      d
-                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                         @"shaderStorageImageMultisample"
-                                                                                                                                                                                                         x)
-                                                                                                                                                                                                      .
-                                                                                                                                                                                                      showString
-                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                        .
-                                                                                                                                                                                                        showString
-                                                                                                                                                                                                          "shaderStorageImageReadWithoutFormat = "
-                                                                                                                                                                                                          .
-                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                            d
-                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                               @"shaderStorageImageReadWithoutFormat"
-                                                                                                                                                                                                               x)
-                                                                                                                                                                                                            .
-                                                                                                                                                                                                            showString
-                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                              .
-                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                "shaderStorageImageWriteWithoutFormat = "
-                                                                                                                                                                                                                .
-                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                     @"shaderStorageImageWriteWithoutFormat"
-                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                      "shaderUniformBufferArrayDynamicIndexing = "
-                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                           @"shaderUniformBufferArrayDynamicIndexing"
-                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                            "shaderSampledImageArrayDynamicIndexing = "
-                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                 @"shaderSampledImageArrayDynamicIndexing"
-                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                  "shaderStorageBufferArrayDynamicIndexing = "
-                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                       @"shaderStorageBufferArrayDynamicIndexing"
-                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                        "shaderStorageImageArrayDynamicIndexing = "
-                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                             @"shaderStorageImageArrayDynamicIndexing"
-                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                              "shaderClipDistance = "
-                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                   @"shaderClipDistance"
-                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                    "shaderCullDistance = "
-                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                         @"shaderCullDistance"
-                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                          "shaderFloat64 = "
-                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                               @"shaderFloat64"
-                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                "shaderInt64 = "
-                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                     @"shaderInt64"
-                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                      "shaderInt16 = "
-                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                           @"shaderInt16"
-                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                            "shaderResourceResidency = "
-                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                 @"shaderResourceResidency"
-                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                  "shaderResourceMinLod = "
-                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                       @"shaderResourceMinLod"
-                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                        "sparseBinding = "
-                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                             @"sparseBinding"
-                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                              "sparseResidencyBuffer = "
-                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                   @"sparseResidencyBuffer"
-                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                    "sparseResidencyImage2D = "
-                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                         @"sparseResidencyImage2D"
-                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                          "sparseResidencyImage3D = "
-                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                               @"sparseResidencyImage3D"
-                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                "sparseResidency2Samples = "
-                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                     @"sparseResidency2Samples"
-                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                      "sparseResidency4Samples = "
-                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                           @"sparseResidency4Samples"
-                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                            "sparseResidency8Samples = "
-                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                 @"sparseResidency8Samples"
-                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                  "sparseResidency16Samples = "
-                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                       @"sparseResidency16Samples"
-                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                        "sparseResidencyAliased = "
-                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                             @"sparseResidencyAliased"
-                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                              "variableMultisampleRate = "
-                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                   @"variableMultisampleRate"
-                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                    "inheritedQueries = "
-                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                         @"inheritedQueries"
-                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                      showChar
-                                                                                                                                                                                                                                                                                                                                                        '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2.hsc
+++ /dev/null
@@ -1,185 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2
-       (VkPhysicalDeviceFeatures2(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo       (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceFeatures2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceFeatures         features;
---   > } VkPhysicalDeviceFeatures2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceFeatures2.html VkPhysicalDeviceFeatures2 registry at www.khronos.org>
-data VkPhysicalDeviceFeatures2 = VkPhysicalDeviceFeatures2## Addr##
-                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceFeatures2 where
-        (VkPhysicalDeviceFeatures2## a _) ==
-          x@(VkPhysicalDeviceFeatures2## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceFeatures2 where
-        (VkPhysicalDeviceFeatures2## a _) `compare`
-          x@(VkPhysicalDeviceFeatures2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceFeatures2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceFeatures2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceFeatures2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceFeatures2 where
-        unsafeAddr (VkPhysicalDeviceFeatures2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceFeatures2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceFeatures2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceFeatures2 where
-        type StructFields VkPhysicalDeviceFeatures2 =
-             '["sType", "pNext", "features"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceFeatures2 =
-             '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceFeatures2 where
-        type FieldType "sType" VkPhysicalDeviceFeatures2 = VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceFeatures2 where
-        type FieldType "pNext" VkPhysicalDeviceFeatures2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "features" VkPhysicalDeviceFeatures2 where
-        type FieldType "features" VkPhysicalDeviceFeatures2 =
-             VkPhysicalDeviceFeatures
-        type FieldOptional "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "features" VkPhysicalDeviceFeatures2 =
-             #{offset VkPhysicalDeviceFeatures2, features}
-        type FieldIsArray "features" VkPhysicalDeviceFeatures2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceFeatures2, features}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "features" VkPhysicalDeviceFeatures2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceFeatures2, features})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceFeatures2, features}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "features" VkPhysicalDeviceFeatures2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceFeatures2, features}
-
-instance Show VkPhysicalDeviceFeatures2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceFeatures2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "features = " .
-                            showsPrec d (getField @"features" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceFeatures2KHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2KHR
-       (VkPhysicalDeviceFeatures2(..), VkPhysicalDeviceFeatures2KHR) where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2 (..))
-
--- | Alias for `VkPhysicalDeviceFeatures2`
-type VkPhysicalDeviceFeatures2KHR = VkPhysicalDeviceFeatures2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupProperties.hsc
+++ /dev/null
@@ -1,377 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties
-       (VkPhysicalDeviceGroupProperties(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                               (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                  (VK_MAX_DEVICE_GROUP_SIZE,
-                                                             pattern VK_MAX_DEVICE_GROUP_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkPhysicalDevice)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceGroupProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         physicalDeviceCount;
---   >     VkPhysicalDevice                 physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
---   >     VkBool32                         subsetAllocation;
---   > } VkPhysicalDeviceGroupProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceGroupProperties.html VkPhysicalDeviceGroupProperties registry at www.khronos.org>
-data VkPhysicalDeviceGroupProperties = VkPhysicalDeviceGroupProperties## Addr##
-                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceGroupProperties where
-        (VkPhysicalDeviceGroupProperties## a _) ==
-          x@(VkPhysicalDeviceGroupProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceGroupProperties where
-        (VkPhysicalDeviceGroupProperties## a _) `compare`
-          x@(VkPhysicalDeviceGroupProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceGroupProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceGroupProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceGroupProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceGroupProperties where
-        unsafeAddr (VkPhysicalDeviceGroupProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceGroupProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceGroupProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceGroupProperties where
-        type StructFields VkPhysicalDeviceGroupProperties =
-             '["sType", "pNext", "physicalDeviceCount", "physicalDevices", -- ' closing tick for hsc2hs
-               "subsetAllocation"]
-        type CUnionType VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceGroupProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceGroupProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceGroupProperties where
-        type FieldType "sType" VkPhysicalDeviceGroupProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceGroupProperties =
-             #{offset VkPhysicalDeviceGroupProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceGroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceGroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceGroupProperties where
-        type FieldType "pNext" VkPhysicalDeviceGroupProperties = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceGroupProperties =
-             #{offset VkPhysicalDeviceGroupProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceGroupProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceGroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceGroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        type FieldType "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = Word32
-        type FieldOptional "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-        type FieldIsArray "physicalDeviceCount"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "physicalDeviceCount" VkPhysicalDeviceGroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, physicalDeviceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "physicalDevices" VkPhysicalDeviceGroupProperties where
-        type FieldType "physicalDevices" VkPhysicalDeviceGroupProperties =
-             VkPhysicalDevice
-        type FieldOptional "physicalDevices"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "physicalDevices" VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-        type FieldIsArray "physicalDevices" VkPhysicalDeviceGroupProperties
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "physicalDevices" idx
-            VkPhysicalDeviceGroupProperties) =>
-         CanReadFieldArray "physicalDevices" idx
-           VkPhysicalDeviceGroupProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "physicalDevices" 0
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "physicalDevices" 1
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "physicalDevices" 2
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "physicalDevices" 3
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-        type FieldArrayLength "physicalDevices"
-               VkPhysicalDeviceGroupProperties
-             = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_DEVICE_GROUP_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                      +
-                      sizeOf (undefined :: VkPhysicalDevice) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                 +
-                 sizeOf (undefined :: VkPhysicalDevice) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "physicalDevices" idx
-            VkPhysicalDeviceGroupProperties) =>
-         CanWriteFieldArray "physicalDevices" idx
-           VkPhysicalDeviceGroupProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "physicalDevices" 0
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "physicalDevices" 1
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "physicalDevices" 2
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "physicalDevices" 3
-                         VkPhysicalDeviceGroupProperties
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceGroupProperties, physicalDevices}
-                 +
-                 sizeOf (undefined :: VkPhysicalDevice) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "subsetAllocation" VkPhysicalDeviceGroupProperties where
-        type FieldType "subsetAllocation" VkPhysicalDeviceGroupProperties =
-             VkBool32
-        type FieldOptional "subsetAllocation"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subsetAllocation" VkPhysicalDeviceGroupProperties
-             =
-             #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-        type FieldIsArray "subsetAllocation"
-               VkPhysicalDeviceGroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subsetAllocation" VkPhysicalDeviceGroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceGroupProperties, subsetAllocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subsetAllocation" VkPhysicalDeviceGroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceGroupProperties, subsetAllocation}
-
-instance Show VkPhysicalDeviceGroupProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceGroupProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "physicalDeviceCount = " .
-                            showsPrec d (getField @"physicalDeviceCount" x) .
-                              showString ", " .
-                                (showString "physicalDevices = [" .
-                                   showsPrec d
-                                     (let s = sizeOf
-                                                (undefined ::
-                                                   FieldType "physicalDevices"
-                                                     VkPhysicalDeviceGroupProperties)
-                                          o = fieldOffset @"physicalDevices"
-                                                @VkPhysicalDeviceGroupProperties
-                                          f i
-                                            = peekByteOff (unsafePtr x) i ::
-                                                IO
-                                                  (FieldType "physicalDevices"
-                                                     VkPhysicalDeviceGroupProperties)
-                                        in
-                                        unsafeDupablePerformIO . mapM f $
-                                          map (\ i -> o + i * s)
-                                            [0 .. VK_MAX_DEVICE_GROUP_SIZE - 1])
-                                     . showChar ']')
-                                  .
-                                  showString ", " .
-                                    showString "subsetAllocation = " .
-                                      showsPrec d (getField @"subsetAllocation" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceGroupPropertiesKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupPropertiesKHR
-       (VkPhysicalDeviceGroupProperties(..),
-        VkPhysicalDeviceGroupPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties (VkPhysicalDeviceGroupProperties (..))
-
--- | Alias for `VkPhysicalDeviceGroupProperties`
-type VkPhysicalDeviceGroupPropertiesKHR =
-     VkPhysicalDeviceGroupProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDProperties.hsc
+++ /dev/null
@@ -1,531 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDProperties
-       (VkPhysicalDeviceIDProperties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                             (KnownNat,
-                                                                           natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                                (VK_LUID_SIZE,
-                                                                           pattern VK_LUID_SIZE,
-                                                                           VK_UUID_SIZE,
-                                                                           pattern VK_UUID_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceIDProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint8_t                          deviceUUID[VK_UUID_SIZE];
---   >     uint8_t                          driverUUID[VK_UUID_SIZE];
---   >     uint8_t                          deviceLUID[VK_LUID_SIZE];
---   >     uint32_t                         deviceNodeMask;
---   >     VkBool32                         deviceLUIDValid;
---   > } VkPhysicalDeviceIDProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceIDProperties.html VkPhysicalDeviceIDProperties registry at www.khronos.org>
-data VkPhysicalDeviceIDProperties = VkPhysicalDeviceIDProperties## Addr##
-                                                                  ByteArray##
-
-instance Eq VkPhysicalDeviceIDProperties where
-        (VkPhysicalDeviceIDProperties## a _) ==
-          x@(VkPhysicalDeviceIDProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceIDProperties where
-        (VkPhysicalDeviceIDProperties## a _) `compare`
-          x@(VkPhysicalDeviceIDProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceIDProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceIDProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceIDProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceIDProperties where
-        unsafeAddr (VkPhysicalDeviceIDProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceIDProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceIDProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceIDProperties where
-        type StructFields VkPhysicalDeviceIDProperties =
-             '["sType", "pNext", "deviceUUID", "driverUUID", "deviceLUID", -- ' closing tick for hsc2hs
-               "deviceNodeMask", "deviceLUIDValid"]
-        type CUnionType VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceIDProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceIDProperties where
-        type FieldType "sType" VkPhysicalDeviceIDProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceIDProperties where
-        type FieldType "pNext" VkPhysicalDeviceIDProperties = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceIDProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceUUID" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceUUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "deviceUUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceUUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceUUID}
-        type FieldIsArray "deviceUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceUUID}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>
-         CanReadFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}
-        type FieldArrayLength "deviceUUID" VkPhysicalDeviceIDProperties =
-             VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                      sizeOf (undefined :: Word8) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceUUID" idx VkPhysicalDeviceIDProperties) =>
-         CanWriteFieldArray "deviceUUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceUUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceUUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceUUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceUUID" 3 VkPhysicalDeviceIDProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceUUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "driverUUID" VkPhysicalDeviceIDProperties where
-        type FieldType "driverUUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "driverUUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "driverUUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, driverUUID}
-        type FieldIsArray "driverUUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, driverUUID}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>
-         CanReadFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}
-        type FieldArrayLength "driverUUID" VkPhysicalDeviceIDProperties =
-             VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                      sizeOf (undefined :: Word8) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "driverUUID" idx VkPhysicalDeviceIDProperties) =>
-         CanWriteFieldArray "driverUUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "driverUUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "driverUUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "driverUUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "driverUUID" 3 VkPhysicalDeviceIDProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, driverUUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceLUID" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceLUID" VkPhysicalDeviceIDProperties = Word8
-        type FieldOptional "deviceLUID" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceLUID" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceLUID}
-        type FieldIsArray "deviceLUID" VkPhysicalDeviceIDProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceLUID}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>
-         CanReadFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}
-        type FieldArrayLength "deviceLUID" VkPhysicalDeviceIDProperties =
-             VK_LUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_LUID_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                      sizeOf (undefined :: Word8) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceLUID" idx VkPhysicalDeviceIDProperties) =>
-         CanWriteFieldArray "deviceLUID" idx VkPhysicalDeviceIDProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceLUID" 0 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceLUID" 1 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceLUID" 2 VkPhysicalDeviceIDProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceLUID" 3 VkPhysicalDeviceIDProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceIDProperties, deviceLUID} +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             Word32
-        type FieldOptional "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-        type FieldIsArray "deviceNodeMask" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceNodeMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceNodeMask" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceNodeMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        type FieldType "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             VkBool32
-        type FieldOptional "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-        type FieldIsArray "deviceLUIDValid" VkPhysicalDeviceIDProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceLUIDValid" VkPhysicalDeviceIDProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceIDProperties, deviceLUIDValid}
-
-instance Show VkPhysicalDeviceIDProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceIDProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          (showString "deviceUUID = [" .
-                             showsPrec d
-                               (let s = sizeOf
-                                          (undefined ::
-                                             FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
-                                    o = fieldOffset @"deviceUUID" @VkPhysicalDeviceIDProperties
-                                    f i
-                                      = peekByteOff (unsafePtr x) i ::
-                                          IO (FieldType "deviceUUID" VkPhysicalDeviceIDProperties)
-                                  in
-                                  unsafeDupablePerformIO . mapM f $
-                                    map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
-                               . showChar ']')
-                            .
-                            showString ", " .
-                              (showString "driverUUID = [" .
-                                 showsPrec d
-                                   (let s = sizeOf
-                                              (undefined ::
-                                                 FieldType "driverUUID"
-                                                   VkPhysicalDeviceIDProperties)
-                                        o = fieldOffset @"driverUUID" @VkPhysicalDeviceIDProperties
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO
-                                                (FieldType "driverUUID"
-                                                   VkPhysicalDeviceIDProperties)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. VK_UUID_SIZE - 1])
-                                   . showChar ']')
-                                .
-                                showString ", " .
-                                  (showString "deviceLUID = [" .
-                                     showsPrec d
-                                       (let s = sizeOf
-                                                  (undefined ::
-                                                     FieldType "deviceLUID"
-                                                       VkPhysicalDeviceIDProperties)
-                                            o = fieldOffset @"deviceLUID"
-                                                  @VkPhysicalDeviceIDProperties
-                                            f i
-                                              = peekByteOff (unsafePtr x) i ::
-                                                  IO
-                                                    (FieldType "deviceLUID"
-                                                       VkPhysicalDeviceIDProperties)
-                                          in
-                                          unsafeDupablePerformIO . mapM f $
-                                            map (\ i -> o + i * s) [0 .. VK_LUID_SIZE - 1])
-                                       . showChar ']')
-                                    .
-                                    showString ", " .
-                                      showString "deviceNodeMask = " .
-                                        showsPrec d (getField @"deviceNodeMask" x) .
-                                          showString ", " .
-                                            showString "deviceLUIDValid = " .
-                                              showsPrec d (getField @"deviceLUIDValid" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceIDPropertiesKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR
-       (VkPhysicalDeviceIDProperties(..), VkPhysicalDeviceIDPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDProperties (VkPhysicalDeviceIDProperties (..))
-
--- | Alias for `VkPhysicalDeviceIDProperties`
-type VkPhysicalDeviceIDPropertiesKHR = VkPhysicalDeviceIDProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2.hsc
+++ /dev/null
@@ -1,346 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2
-       (VkPhysicalDeviceImageFormatInfo2(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormat           (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageCreateFlags (VkImageCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkImageTiling      (VkImageTiling)
-import           Graphics.Vulkan.Types.Enum.VkImageType        (VkImageType)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags  (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceImageFormatInfo2 {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkFormat                         format;
---   >     VkImageType                      type;
---   >     VkImageTiling                    tiling;
---   >     VkImageUsageFlags                usage;
---   >     VkImageCreateFlags flags;
---   > } VkPhysicalDeviceImageFormatInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceImageFormatInfo2.html VkPhysicalDeviceImageFormatInfo2 registry at www.khronos.org>
-data VkPhysicalDeviceImageFormatInfo2 = VkPhysicalDeviceImageFormatInfo2## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceImageFormatInfo2 where
-        (VkPhysicalDeviceImageFormatInfo2## a _) ==
-          x@(VkPhysicalDeviceImageFormatInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceImageFormatInfo2 where
-        (VkPhysicalDeviceImageFormatInfo2## a _) `compare`
-          x@(VkPhysicalDeviceImageFormatInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceImageFormatInfo2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceImageFormatInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceImageFormatInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceImageFormatInfo2 where
-        unsafeAddr (VkPhysicalDeviceImageFormatInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceImageFormatInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceImageFormatInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceImageFormatInfo2 where
-        type StructFields VkPhysicalDeviceImageFormatInfo2 =
-             '["sType", "pNext", "format", "type", "tiling", "usage", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "sType" VkPhysicalDeviceImageFormatInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "pNext" VkPhysicalDeviceImageFormatInfo2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "format" VkPhysicalDeviceImageFormatInfo2 = VkFormat
-        type FieldOptional "format" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, format}
-        type FieldIsArray "format" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "type" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageType
-        type FieldOptional "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, type}
-        type FieldIsArray "type" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageTiling
-        type FieldOptional "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-        type FieldIsArray "tiling" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, tiling})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tiling" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "usage" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        type FieldType "flags" VkPhysicalDeviceImageFormatInfo2 =
-             VkImageCreateFlags
-        type FieldOptional "flags" VkPhysicalDeviceImageFormatInfo2 = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPhysicalDeviceImageFormatInfo2 =
-             #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-        type FieldIsArray "flags" VkPhysicalDeviceImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceImageFormatInfo2, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPhysicalDeviceImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceImageFormatInfo2, flags}
-
-instance Show VkPhysicalDeviceImageFormatInfo2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceImageFormatInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "type = " .
-                                  showsPrec d (getField @"type" x) .
-                                    showString ", " .
-                                      showString "tiling = " .
-                                        showsPrec d (getField @"tiling" x) .
-                                          showString ", " .
-                                            showString "usage = " .
-                                              showsPrec d (getField @"usage" x) .
-                                                showString ", " .
-                                                  showString "flags = " .
-                                                    showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceImageFormatInfo2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2KHR
-       (VkPhysicalDeviceImageFormatInfo2(..),
-        VkPhysicalDeviceImageFormatInfo2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2 (VkPhysicalDeviceImageFormatInfo2 (..))
-
--- | Alias for `VkPhysicalDeviceImageFormatInfo2`
-type VkPhysicalDeviceImageFormatInfo2KHR =
-     VkPhysicalDeviceImageFormatInfo2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceLimits.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceLimits.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceLimits.hsc
+++ /dev/null
@@ -1,6100 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-       (VkPhysicalDeviceLimits(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                  (KnownNat,
-                                                                natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkBool32,
-                                                                VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags (VkSampleCountFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceLimits {
---   >     uint32_t               maxImageDimension1D;
---   >     uint32_t               maxImageDimension2D;
---   >     uint32_t               maxImageDimension3D;
---   >     uint32_t               maxImageDimensionCube;
---   >     uint32_t               maxImageArrayLayers;
---   >     uint32_t               maxTexelBufferElements;
---   >     uint32_t               maxUniformBufferRange;
---   >     uint32_t               maxStorageBufferRange;
---   >     uint32_t               maxPushConstantsSize;
---   >     uint32_t               maxMemoryAllocationCount;
---   >     uint32_t               maxSamplerAllocationCount;
---   >     VkDeviceSize           bufferImageGranularity;
---   >     VkDeviceSize           sparseAddressSpaceSize;
---   >     uint32_t               maxBoundDescriptorSets;
---   >     uint32_t               maxPerStageDescriptorSamplers;
---   >     uint32_t               maxPerStageDescriptorUniformBuffers;
---   >     uint32_t               maxPerStageDescriptorStorageBuffers;
---   >     uint32_t               maxPerStageDescriptorSampledImages;
---   >     uint32_t               maxPerStageDescriptorStorageImages;
---   >     uint32_t               maxPerStageDescriptorInputAttachments;
---   >     uint32_t               maxPerStageResources;
---   >     uint32_t               maxDescriptorSetSamplers;
---   >     uint32_t               maxDescriptorSetUniformBuffers;
---   >     uint32_t               maxDescriptorSetUniformBuffersDynamic;
---   >     uint32_t               maxDescriptorSetStorageBuffers;
---   >     uint32_t               maxDescriptorSetStorageBuffersDynamic;
---   >     uint32_t               maxDescriptorSetSampledImages;
---   >     uint32_t               maxDescriptorSetStorageImages;
---   >     uint32_t               maxDescriptorSetInputAttachments;
---   >     uint32_t               maxVertexInputAttributes;
---   >     uint32_t               maxVertexInputBindings;
---   >     uint32_t               maxVertexInputAttributeOffset;
---   >     uint32_t               maxVertexInputBindingStride;
---   >     uint32_t               maxVertexOutputComponents;
---   >     uint32_t               maxTessellationGenerationLevel;
---   >     uint32_t               maxTessellationPatchSize;
---   >     uint32_t               maxTessellationControlPerVertexInputComponents;
---   >     uint32_t               maxTessellationControlPerVertexOutputComponents;
---   >     uint32_t               maxTessellationControlPerPatchOutputComponents;
---   >     uint32_t               maxTessellationControlTotalOutputComponents;
---   >     uint32_t               maxTessellationEvaluationInputComponents;
---   >     uint32_t               maxTessellationEvaluationOutputComponents;
---   >     uint32_t               maxGeometryShaderInvocations;
---   >     uint32_t               maxGeometryInputComponents;
---   >     uint32_t               maxGeometryOutputComponents;
---   >     uint32_t               maxGeometryOutputVertices;
---   >     uint32_t               maxGeometryTotalOutputComponents;
---   >     uint32_t               maxFragmentInputComponents;
---   >     uint32_t               maxFragmentOutputAttachments;
---   >     uint32_t               maxFragmentDualSrcAttachments;
---   >     uint32_t               maxFragmentCombinedOutputResources;
---   >     uint32_t               maxComputeSharedMemorySize;
---   >     uint32_t               maxComputeWorkGroupCount[3];
---   >     uint32_t               maxComputeWorkGroupInvocations;
---   >     uint32_t               maxComputeWorkGroupSize[3];
---   >     uint32_t               subPixelPrecisionBits;
---   >     uint32_t               subTexelPrecisionBits;
---   >     uint32_t               mipmapPrecisionBits;
---   >     uint32_t               maxDrawIndexedIndexValue;
---   >     uint32_t               maxDrawIndirectCount;
---   >     float                  maxSamplerLodBias;
---   >     float                  maxSamplerAnisotropy;
---   >     uint32_t               maxViewports;
---   >     uint32_t               maxViewportDimensions[2];
---   >     float                  viewportBoundsRange[2];
---   >     uint32_t               viewportSubPixelBits;
---   >     size_t                 minMemoryMapAlignment;
---   >     VkDeviceSize           minTexelBufferOffsetAlignment;
---   >     VkDeviceSize           minUniformBufferOffsetAlignment;
---   >     VkDeviceSize           minStorageBufferOffsetAlignment;
---   >     int32_t                minTexelOffset;
---   >     uint32_t               maxTexelOffset;
---   >     int32_t                minTexelGatherOffset;
---   >     uint32_t               maxTexelGatherOffset;
---   >     float                  minInterpolationOffset;
---   >     float                  maxInterpolationOffset;
---   >     uint32_t               subPixelInterpolationOffsetBits;
---   >     uint32_t               maxFramebufferWidth;
---   >     uint32_t               maxFramebufferHeight;
---   >     uint32_t               maxFramebufferLayers;
---   >     VkSampleCountFlags     framebufferColorSampleCounts;
---   >     VkSampleCountFlags     framebufferDepthSampleCounts;
---   >     VkSampleCountFlags     framebufferStencilSampleCounts;
---   >     VkSampleCountFlags     framebufferNoAttachmentsSampleCounts;
---   >     uint32_t               maxColorAttachments;
---   >     VkSampleCountFlags     sampledImageColorSampleCounts;
---   >     VkSampleCountFlags     sampledImageIntegerSampleCounts;
---   >     VkSampleCountFlags     sampledImageDepthSampleCounts;
---   >     VkSampleCountFlags     sampledImageStencilSampleCounts;
---   >     VkSampleCountFlags     storageImageSampleCounts;
---   >     uint32_t               maxSampleMaskWords;
---   >     VkBool32               timestampComputeAndGraphics;
---   >     float                  timestampPeriod;
---   >     uint32_t               maxClipDistances;
---   >     uint32_t               maxCullDistances;
---   >     uint32_t               maxCombinedClipAndCullDistances;
---   >     uint32_t               discreteQueuePriorities;
---   >     float                  pointSizeRange[2];
---   >     float                  lineWidthRange[2];
---   >     float                  pointSizeGranularity;
---   >     float                  lineWidthGranularity;
---   >     VkBool32               strictLines;
---   >     VkBool32               standardSampleLocations;
---   >     VkDeviceSize           optimalBufferCopyOffsetAlignment;
---   >     VkDeviceSize           optimalBufferCopyRowPitchAlignment;
---   >     VkDeviceSize           nonCoherentAtomSize;
---   > } VkPhysicalDeviceLimits;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceLimits.html VkPhysicalDeviceLimits registry at www.khronos.org>
-data VkPhysicalDeviceLimits = VkPhysicalDeviceLimits## Addr##
-                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceLimits where
-        (VkPhysicalDeviceLimits## a _) == x@(VkPhysicalDeviceLimits## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceLimits where
-        (VkPhysicalDeviceLimits## a _) `compare`
-          x@(VkPhysicalDeviceLimits## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceLimits where
-        sizeOf ~_ = #{size VkPhysicalDeviceLimits}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceLimits}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceLimits where
-        unsafeAddr (VkPhysicalDeviceLimits## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceLimits## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceLimits## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceLimits where
-        type StructFields VkPhysicalDeviceLimits =
-             '["maxImageDimension1D", "maxImageDimension2D", -- ' closing tick for hsc2hs
-               "maxImageDimension3D", "maxImageDimensionCube",
-               "maxImageArrayLayers", "maxTexelBufferElements",
-               "maxUniformBufferRange", "maxStorageBufferRange",
-               "maxPushConstantsSize", "maxMemoryAllocationCount",
-               "maxSamplerAllocationCount", "bufferImageGranularity",
-               "sparseAddressSpaceSize", "maxBoundDescriptorSets",
-               "maxPerStageDescriptorSamplers",
-               "maxPerStageDescriptorUniformBuffers",
-               "maxPerStageDescriptorStorageBuffers",
-               "maxPerStageDescriptorSampledImages",
-               "maxPerStageDescriptorStorageImages",
-               "maxPerStageDescriptorInputAttachments", "maxPerStageResources",
-               "maxDescriptorSetSamplers", "maxDescriptorSetUniformBuffers",
-               "maxDescriptorSetUniformBuffersDynamic",
-               "maxDescriptorSetStorageBuffers",
-               "maxDescriptorSetStorageBuffersDynamic",
-               "maxDescriptorSetSampledImages", "maxDescriptorSetStorageImages",
-               "maxDescriptorSetInputAttachments", "maxVertexInputAttributes",
-               "maxVertexInputBindings", "maxVertexInputAttributeOffset",
-               "maxVertexInputBindingStride", "maxVertexOutputComponents",
-               "maxTessellationGenerationLevel", "maxTessellationPatchSize",
-               "maxTessellationControlPerVertexInputComponents",
-               "maxTessellationControlPerVertexOutputComponents",
-               "maxTessellationControlPerPatchOutputComponents",
-               "maxTessellationControlTotalOutputComponents",
-               "maxTessellationEvaluationInputComponents",
-               "maxTessellationEvaluationOutputComponents",
-               "maxGeometryShaderInvocations", "maxGeometryInputComponents",
-               "maxGeometryOutputComponents", "maxGeometryOutputVertices",
-               "maxGeometryTotalOutputComponents", "maxFragmentInputComponents",
-               "maxFragmentOutputAttachments", "maxFragmentDualSrcAttachments",
-               "maxFragmentCombinedOutputResources", "maxComputeSharedMemorySize",
-               "maxComputeWorkGroupCount", "maxComputeWorkGroupInvocations",
-               "maxComputeWorkGroupSize", "subPixelPrecisionBits",
-               "subTexelPrecisionBits", "mipmapPrecisionBits",
-               "maxDrawIndexedIndexValue", "maxDrawIndirectCount",
-               "maxSamplerLodBias", "maxSamplerAnisotropy", "maxViewports",
-               "maxViewportDimensions", "viewportBoundsRange",
-               "viewportSubPixelBits", "minMemoryMapAlignment",
-               "minTexelBufferOffsetAlignment", "minUniformBufferOffsetAlignment",
-               "minStorageBufferOffsetAlignment", "minTexelOffset",
-               "maxTexelOffset", "minTexelGatherOffset", "maxTexelGatherOffset",
-               "minInterpolationOffset", "maxInterpolationOffset",
-               "subPixelInterpolationOffsetBits", "maxFramebufferWidth",
-               "maxFramebufferHeight", "maxFramebufferLayers",
-               "framebufferColorSampleCounts", "framebufferDepthSampleCounts",
-               "framebufferStencilSampleCounts",
-               "framebufferNoAttachmentsSampleCounts", "maxColorAttachments",
-               "sampledImageColorSampleCounts", "sampledImageIntegerSampleCounts",
-               "sampledImageDepthSampleCounts", "sampledImageStencilSampleCounts",
-               "storageImageSampleCounts", "maxSampleMaskWords",
-               "timestampComputeAndGraphics", "timestampPeriod",
-               "maxClipDistances", "maxCullDistances",
-               "maxCombinedClipAndCullDistances", "discreteQueuePriorities",
-               "pointSizeRange", "lineWidthRange", "pointSizeGranularity",
-               "lineWidthGranularity", "strictLines", "standardSampleLocations",
-               "optimalBufferCopyOffsetAlignment",
-               "optimalBufferCopyRowPitchAlignment", "nonCoherentAtomSize"]
-        type CUnionType VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceLimits = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension1D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension1D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension1D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-        type FieldIsArray "maxImageDimension1D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension1D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension1D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension1D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension2D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension2D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension2D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-        type FieldIsArray "maxImageDimension2D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension2D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension2D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension2D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimension3D" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimension3D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimension3D" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-        type FieldIsArray "maxImageDimension3D" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimension3D})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimension3D" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimension3D}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        type FieldType "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-        type FieldIsArray "maxImageDimensionCube" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageDimensionCube})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageDimensionCube" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageDimensionCube}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        type FieldType "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-        type FieldIsArray "maxImageArrayLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxImageArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageArrayLayers" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTexelBufferElements" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-        type FieldIsArray "maxTexelBufferElements" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelBufferElements})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelBufferElements" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelBufferElements}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        type FieldType "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-        type FieldIsArray "maxUniformBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxUniformBufferRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxUniformBufferRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxUniformBufferRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        type FieldType "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-        type FieldIsArray "maxStorageBufferRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxStorageBufferRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxStorageBufferRange" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxStorageBufferRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        type FieldType "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-        type FieldIsArray "maxPushConstantsSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPushConstantsSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPushConstantsSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPushConstantsSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMemoryAllocationCount" VkPhysicalDeviceLimits where
-        type FieldType "maxMemoryAllocationCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxMemoryAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-        type FieldIsArray "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMemoryAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxMemoryAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerAllocationCount" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerAllocationCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxSamplerAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-        type FieldIsArray "maxSamplerAllocationCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerAllocationCount" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAllocationCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        type FieldType "bufferImageGranularity" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "bufferImageGranularity" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bufferImageGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-        type FieldIsArray "bufferImageGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, bufferImageGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bufferImageGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, bufferImageGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        type FieldType "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "sparseAddressSpaceSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-        type FieldIsArray "sparseAddressSpaceSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseAddressSpaceSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sparseAddressSpaceSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        type FieldType "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxBoundDescriptorSets" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-        type FieldIsArray "maxBoundDescriptorSets" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxBoundDescriptorSets" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxBoundDescriptorSets}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-        type FieldIsArray "maxPerStageDescriptorSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorSamplers" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorSamplers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-        type FieldIsArray "maxPerStageDescriptorUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-        type FieldIsArray "maxPerStageDescriptorStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-        type FieldIsArray "maxPerStageDescriptorSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-        type FieldIsArray "maxPerStageDescriptorStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-        type FieldIsArray "maxPerStageDescriptorInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageDescriptorInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerStageResources" VkPhysicalDeviceLimits where
-        type FieldType "maxPerStageResources" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxPerStageResources" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerStageResources" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-        type FieldIsArray "maxPerStageResources" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerStageResources" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxPerStageResources})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerStageResources" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxPerStageResources}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits where
-        type FieldType "maxDescriptorSetSamplers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDescriptorSetSamplers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-        type FieldIsArray "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetSamplers" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSamplers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUniformBuffers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-        type FieldIsArray "maxDescriptorSetUniformBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUniformBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-        type FieldIsArray "maxDescriptorSetUniformBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetUniformBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageBuffers" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-        type FieldIsArray "maxDescriptorSetStorageBuffers"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageBuffers"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-        type FieldIsArray "maxDescriptorSetStorageBuffersDynamic"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageBuffersDynamic"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-        type FieldIsArray "maxDescriptorSetSampledImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetSampledImages" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetSampledImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetSampledImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-        type FieldIsArray "maxDescriptorSetStorageImages"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetStorageImages" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetStorageImages"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetStorageImages}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDescriptorSetInputAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-        type FieldIsArray "maxDescriptorSetInputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDescriptorSetInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDescriptorSetInputAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputAttributes" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputAttributes" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexInputAttributes"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputAttributes" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-        type FieldIsArray "maxVertexInputAttributes" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputAttributes" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputAttributes" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributes}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexInputBindings" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-        type FieldIsArray "maxVertexInputBindings" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindings})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputBindings" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindings}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-        type FieldIsArray "maxVertexInputAttributeOffset"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputAttributeOffset" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputAttributeOffset"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputAttributeOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexInputBindingStride" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-        type FieldIsArray "maxVertexInputBindingStride"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexInputBindingStride" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexInputBindingStride}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexOutputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxVertexOutputComponents" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexOutputComponents" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-        type FieldIsArray "maxVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationGenerationLevel" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-        type FieldIsArray "maxTessellationGenerationLevel"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationGenerationLevel"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationGenerationLevel"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationGenerationLevel}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationPatchSize" VkPhysicalDeviceLimits where
-        type FieldType "maxTessellationPatchSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTessellationPatchSize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationPatchSize" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-        type FieldIsArray "maxTessellationPatchSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationPatchSize" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationPatchSize" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationPatchSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-        type FieldIsArray "maxTessellationControlPerVertexInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerVertexInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional
-               "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-        type FieldIsArray "maxTessellationControlPerVertexOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerVertexOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-        type FieldIsArray "maxTessellationControlPerPatchOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlPerPatchOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-        type FieldIsArray "maxTessellationControlTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationControlTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-        type FieldIsArray "maxTessellationEvaluationInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationEvaluationInputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-        type FieldIsArray "maxTessellationEvaluationOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTessellationEvaluationOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-        type FieldIsArray "maxGeometryShaderInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryShaderInvocations" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryShaderInvocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryInputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryInputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-        type FieldIsArray "maxGeometryInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryOutputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-        type FieldIsArray "maxGeometryOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryOutputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryOutputVertices" VkPhysicalDeviceLimits where
-        type FieldType "maxGeometryOutputVertices" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxGeometryOutputVertices"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-        type FieldIsArray "maxGeometryOutputVertices"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryOutputVertices" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryOutputVertices}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxGeometryTotalOutputComponents" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-        type FieldIsArray "maxGeometryTotalOutputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxGeometryTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxGeometryTotalOutputComponents"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentInputComponents" VkPhysicalDeviceLimits where
-        type FieldType "maxFragmentInputComponents" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-        type FieldIsArray "maxFragmentInputComponents"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentInputComponents" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentInputComponents}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-        type FieldIsArray "maxFragmentOutputAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentOutputAttachments" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentOutputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-        type FieldIsArray "maxFragmentDualSrcAttachments"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentDualSrcAttachments" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentDualSrcAttachments"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-        type FieldIsArray "maxFragmentCombinedOutputResources"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFragmentCombinedOutputResources"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-        type FieldIsArray "maxComputeSharedMemorySize"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxComputeSharedMemorySize" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeSharedMemorySize}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupCount" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeWorkGroupCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxComputeWorkGroupCount"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-        type FieldIsArray "maxComputeWorkGroupCount" VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxComputeWorkGroupCount" idx
-            VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "maxComputeWorkGroupCount" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupCount" 0
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupCount" 1
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupCount" 2
-                         VkPhysicalDeviceLimits
-                       #-}
-        type FieldArrayLength "maxComputeWorkGroupCount"
-               VkPhysicalDeviceLimits
-             = 3
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 3
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                      +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxComputeWorkGroupCount" idx
-            VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "maxComputeWorkGroupCount" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupCount" 0
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupCount" 1
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupCount" 2
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupCount}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupInvocations" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-        type FieldIsArray "maxComputeWorkGroupInvocations"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxComputeWorkGroupInvocations"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxComputeWorkGroupInvocations"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxComputeWorkGroupSize" VkPhysicalDeviceLimits where
-        type FieldType "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxComputeWorkGroupSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-        type FieldIsArray "maxComputeWorkGroupSize" VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxComputeWorkGroupSize" idx
-            VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "maxComputeWorkGroupSize" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupSize" 0
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupSize" 1
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxComputeWorkGroupSize" 2
-                         VkPhysicalDeviceLimits
-                       #-}
-        type FieldArrayLength "maxComputeWorkGroupSize"
-               VkPhysicalDeviceLimits
-             = 3
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 3
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                      +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxComputeWorkGroupSize" idx
-            VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "maxComputeWorkGroupSize" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupSize" 0
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupSize" 1
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxComputeWorkGroupSize" 2
-                         VkPhysicalDeviceLimits
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxComputeWorkGroupSize}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-        type FieldIsArray "subPixelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subPixelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-        type FieldIsArray "subTexelPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subTexelPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subTexelPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        type FieldType "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-        type FieldIsArray "mipmapPrecisionBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipmapPrecisionBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, mipmapPrecisionBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits where
-        type FieldType "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDrawIndexedIndexValue"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-        type FieldIsArray "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDrawIndexedIndexValue" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndexedIndexValue}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        type FieldType "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-        type FieldIsArray "maxDrawIndirectCount" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDrawIndirectCount" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxDrawIndirectCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-        type FieldIsArray "maxSamplerLodBias" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerLodBias})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerLodBias" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerLodBias}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        type FieldType "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-        type FieldIsArray "maxSamplerAnisotropy" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSamplerAnisotropy" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSamplerAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxViewports" VkPhysicalDeviceLimits where
-        type FieldType "maxViewports" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxViewports" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxViewports}
-        type FieldIsArray "maxViewports" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxViewports" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxViewports})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxViewports" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxViewports}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxViewportDimensions" VkPhysicalDeviceLimits where
-        type FieldType "maxViewportDimensions" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxViewportDimensions" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxViewportDimensions" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-        type FieldIsArray "maxViewportDimensions" VkPhysicalDeviceLimits =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxViewportDimensions" idx
-            VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "maxViewportDimensions" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits
-                       #-}
-        type FieldArrayLength "maxViewportDimensions"
-               VkPhysicalDeviceLimits
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                      +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "maxViewportDimensions" idx
-            VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "maxViewportDimensions" idx
-           VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxViewportDimensions" 0 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "maxViewportDimensions" 1 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, maxViewportDimensions}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportBoundsRange" VkPhysicalDeviceLimits where
-        type FieldType "viewportBoundsRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "viewportBoundsRange" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportBoundsRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-        type FieldIsArray "viewportBoundsRange" VkPhysicalDeviceLimits =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits
-                       #-}
-        type FieldArrayLength "viewportBoundsRange" VkPhysicalDeviceLimits
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                      +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "viewportBoundsRange" idx VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "viewportBoundsRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "viewportBoundsRange" 0 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "viewportBoundsRange" 1 VkPhysicalDeviceLimits
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, viewportBoundsRange}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        type FieldType "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-        type FieldIsArray "viewportSubPixelBits" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, viewportSubPixelBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportSubPixelBits" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, viewportSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        type FieldType "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             CSize
-        type FieldOptional "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-        type FieldIsArray "minMemoryMapAlignment" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minMemoryMapAlignment" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minMemoryMapAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-        type FieldIsArray "minTexelBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minUniformBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-        type FieldIsArray "minUniformBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minUniformBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minUniformBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minStorageBufferOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-        type FieldIsArray "minStorageBufferOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minStorageBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minStorageBufferOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelOffset" VkPhysicalDeviceLimits where
-        type FieldType "minTexelOffset" VkPhysicalDeviceLimits = Int32
-        type FieldOptional "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minTexelOffset}
-        type FieldIsArray "minTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelOffset" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-        type FieldIsArray "maxTexelOffset" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        type FieldType "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             Int32
-        type FieldOptional "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-        type FieldIsArray "minTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minTexelGatherOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-        type FieldIsArray "maxTexelGatherOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxTexelGatherOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxTexelGatherOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        type FieldType "minInterpolationOffset" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "minInterpolationOffset" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minInterpolationOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-        type FieldIsArray "minInterpolationOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, minInterpolationOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, minInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        type FieldType "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "maxInterpolationOffset" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-        type FieldIsArray "maxInterpolationOffset" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxInterpolationOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxInterpolationOffset" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxInterpolationOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "subPixelInterpolationOffsetBits" VkPhysicalDeviceLimits
-         where
-        type FieldType "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-        type FieldIsArray "subPixelInterpolationOffsetBits"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subPixelInterpolationOffsetBits"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subPixelInterpolationOffsetBits"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-        type FieldIsArray "maxFramebufferWidth" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferWidth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferWidth" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferWidth}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-        type FieldIsArray "maxFramebufferHeight" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferHeight})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferHeight" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferHeight}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        type FieldType "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-        type FieldIsArray "maxFramebufferLayers" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxFramebufferLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxFramebufferLayers" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxFramebufferLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-        type FieldIsArray "framebufferColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-        type FieldIsArray "framebufferDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferStencilSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-        type FieldIsArray "framebufferStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-        type FieldIsArray "framebufferNoAttachmentsSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebufferNoAttachmentsSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxColorAttachments" VkPhysicalDeviceLimits where
-        type FieldType "maxColorAttachments" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "maxColorAttachments" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxColorAttachments" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-        type FieldIsArray "maxColorAttachments" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxColorAttachments" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxColorAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxColorAttachments" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-        type FieldIsArray "sampledImageColorSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageColorSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageColorSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageColorSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageIntegerSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-        type FieldIsArray "sampledImageIntegerSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageIntegerSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageIntegerSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-        type FieldIsArray "sampledImageDepthSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageDepthSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageDepthSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageDepthSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampledImageStencilSampleCounts" VkPhysicalDeviceLimits
-         where
-        type FieldType "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = VkSampleCountFlags
-        type FieldOptional "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-        type FieldIsArray "sampledImageStencilSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampledImageStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampledImageStencilSampleCounts"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, sampledImageStencilSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "storageImageSampleCounts" VkPhysicalDeviceLimits where
-        type FieldType "storageImageSampleCounts" VkPhysicalDeviceLimits =
-             VkSampleCountFlags
-        type FieldOptional "storageImageSampleCounts"
-               VkPhysicalDeviceLimits
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "storageImageSampleCounts" VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-        type FieldIsArray "storageImageSampleCounts" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "storageImageSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, storageImageSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "storageImageSampleCounts" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, storageImageSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        type FieldType "maxSampleMaskWords" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-        type FieldIsArray "maxSampleMaskWords" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxSampleMaskWords})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampleMaskWords" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxSampleMaskWords}
-
-instance {-# OVERLAPPING #-}
-         HasField "timestampComputeAndGraphics" VkPhysicalDeviceLimits where
-        type FieldType "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-             = VkBool32
-        type FieldOptional "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-        type FieldIsArray "timestampComputeAndGraphics"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timestampComputeAndGraphics" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampComputeAndGraphics}
-
-instance {-# OVERLAPPING #-}
-         HasField "timestampPeriod" VkPhysicalDeviceLimits where
-        type FieldType "timestampPeriod" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "timestampPeriod" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "timestampPeriod" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, timestampPeriod}
-        type FieldIsArray "timestampPeriod" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timestampPeriod" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, timestampPeriod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timestampPeriod" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, timestampPeriod}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxClipDistances" VkPhysicalDeviceLimits where
-        type FieldType "maxClipDistances" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxClipDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxClipDistances" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxClipDistances}
-        type FieldIsArray "maxClipDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxClipDistances" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxClipDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxClipDistances" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxClipDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxCullDistances" VkPhysicalDeviceLimits where
-        type FieldType "maxCullDistances" VkPhysicalDeviceLimits = Word32
-        type FieldOptional "maxCullDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxCullDistances" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, maxCullDistances}
-        type FieldIsArray "maxCullDistances" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxCullDistances" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCullDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxCullDistances" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCullDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxCombinedClipAndCullDistances" VkPhysicalDeviceLimits
-         where
-        type FieldType "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = Word32
-        type FieldOptional "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-        type FieldIsArray "maxCombinedClipAndCullDistances"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxCombinedClipAndCullDistances"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxCombinedClipAndCullDistances"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances}
-
-instance {-# OVERLAPPING #-}
-         HasField "discreteQueuePriorities" VkPhysicalDeviceLimits where
-        type FieldType "discreteQueuePriorities" VkPhysicalDeviceLimits =
-             Word32
-        type FieldOptional "discreteQueuePriorities" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "discreteQueuePriorities" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-        type FieldIsArray "discreteQueuePriorities" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "discreteQueuePriorities" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, discreteQueuePriorities})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "discreteQueuePriorities" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, discreteQueuePriorities}
-
-instance {-# OVERLAPPING #-}
-         HasField "pointSizeRange" VkPhysicalDeviceLimits where
-        type FieldType "pointSizeRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "pointSizeRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointSizeRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, pointSizeRange}
-        type FieldIsArray "pointSizeRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, pointSizeRange}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}
-        type FieldArrayLength "pointSizeRange" VkPhysicalDeviceLimits = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "pointSizeRange" idx VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "pointSizeRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pointSizeRange" 0 VkPhysicalDeviceLimits #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pointSizeRange" 1 VkPhysicalDeviceLimits #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, pointSizeRange} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "lineWidthRange" VkPhysicalDeviceLimits where
-        type FieldType "lineWidthRange" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "lineWidthRange" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "lineWidthRange" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, lineWidthRange}
-        type FieldIsArray "lineWidthRange" VkPhysicalDeviceLimits = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, lineWidthRange}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>
-         CanReadFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}
-        type FieldArrayLength "lineWidthRange" VkPhysicalDeviceLimits = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "lineWidthRange" idx VkPhysicalDeviceLimits) =>
-         CanWriteFieldArray "lineWidthRange" idx VkPhysicalDeviceLimits
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "lineWidthRange" 0 VkPhysicalDeviceLimits #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "lineWidthRange" 1 VkPhysicalDeviceLimits #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceLimits, lineWidthRange} +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        type FieldType "pointSizeGranularity" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "pointSizeGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointSizeGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-        type FieldIsArray "pointSizeGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, pointSizeGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pointSizeGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, pointSizeGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        type FieldType "lineWidthGranularity" VkPhysicalDeviceLimits =
-             #{type float}
-        type FieldOptional "lineWidthGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "lineWidthGranularity" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-        type FieldIsArray "lineWidthGranularity" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, lineWidthGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "lineWidthGranularity" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, lineWidthGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "strictLines" VkPhysicalDeviceLimits where
-        type FieldType "strictLines" VkPhysicalDeviceLimits = VkBool32
-        type FieldOptional "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "strictLines" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, strictLines}
-        type FieldIsArray "strictLines" VkPhysicalDeviceLimits = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "strictLines" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, strictLines})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "strictLines" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, strictLines}
-
-instance {-# OVERLAPPING #-}
-         HasField "standardSampleLocations" VkPhysicalDeviceLimits where
-        type FieldType "standardSampleLocations" VkPhysicalDeviceLimits =
-             VkBool32
-        type FieldOptional "standardSampleLocations" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "standardSampleLocations" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-        type FieldIsArray "standardSampleLocations" VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "standardSampleLocations" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, standardSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "standardSampleLocations" VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, standardSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "optimalBufferCopyOffsetAlignment" VkPhysicalDeviceLimits
-         where
-        type FieldType "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-        type FieldIsArray "optimalBufferCopyOffsetAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "optimalBufferCopyOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "optimalBufferCopyOffsetAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        type FieldType "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = VkDeviceSize
-        type FieldOptional "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             =
-             #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-        type FieldIsArray "optimalBufferCopyRowPitchAlignment"
-               VkPhysicalDeviceLimits
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "optimalBufferCopyRowPitchAlignment"
-           VkPhysicalDeviceLimits
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment}
-
-instance {-# OVERLAPPING #-}
-         HasField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        type FieldType "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             VkDeviceSize
-        type FieldOptional "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-        type FieldIsArray "nonCoherentAtomSize" VkPhysicalDeviceLimits =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "nonCoherentAtomSize" VkPhysicalDeviceLimits where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceLimits, nonCoherentAtomSize}
-
-instance Show VkPhysicalDeviceLimits where
-        showsPrec d x
-          = showString "VkPhysicalDeviceLimits {" .
-              showString "maxImageDimension1D = " .
-                showsPrec d (getField @"maxImageDimension1D" x) .
-                  showString ", " .
-                    showString "maxImageDimension2D = " .
-                      showsPrec d (getField @"maxImageDimension2D" x) .
-                        showString ", " .
-                          showString "maxImageDimension3D = " .
-                            showsPrec d (getField @"maxImageDimension3D" x) .
-                              showString ", " .
-                                showString "maxImageDimensionCube = " .
-                                  showsPrec d (getField @"maxImageDimensionCube" x) .
-                                    showString ", " .
-                                      showString "maxImageArrayLayers = " .
-                                        showsPrec d (getField @"maxImageArrayLayers" x) .
-                                          showString ", " .
-                                            showString "maxTexelBufferElements = " .
-                                              showsPrec d (getField @"maxTexelBufferElements" x) .
-                                                showString ", " .
-                                                  showString "maxUniformBufferRange = " .
-                                                    showsPrec d
-                                                      (getField @"maxUniformBufferRange" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "maxStorageBufferRange = " .
-                                                          showsPrec d
-                                                            (getField @"maxStorageBufferRange" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "maxPushConstantsSize = " .
-                                                                showsPrec d
-                                                                  (getField @"maxPushConstantsSize"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "maxMemoryAllocationCount = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"maxMemoryAllocationCount"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "maxSamplerAllocationCount = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"maxSamplerAllocationCount"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "bufferImageGranularity = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"bufferImageGranularity"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "sparseAddressSpaceSize = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"sparseAddressSpaceSize"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "maxBoundDescriptorSets = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"maxBoundDescriptorSets"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "maxPerStageDescriptorSamplers = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"maxPerStageDescriptorSamplers"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "maxPerStageDescriptorUniformBuffers = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"maxPerStageDescriptorUniformBuffers"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "maxPerStageDescriptorStorageBuffers = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"maxPerStageDescriptorStorageBuffers"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "maxPerStageDescriptorSampledImages = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"maxPerStageDescriptorSampledImages"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showString
-                                                                                                                          ", "
-                                                                                                                          .
-                                                                                                                          showString
-                                                                                                                            "maxPerStageDescriptorStorageImages = "
-                                                                                                                            .
-                                                                                                                            showsPrec
-                                                                                                                              d
-                                                                                                                              (getField
-                                                                                                                                 @"maxPerStageDescriptorStorageImages"
-                                                                                                                                 x)
-                                                                                                                              .
-                                                                                                                              showString
-                                                                                                                                ", "
-                                                                                                                                .
-                                                                                                                                showString
-                                                                                                                                  "maxPerStageDescriptorInputAttachments = "
-                                                                                                                                  .
-                                                                                                                                  showsPrec
-                                                                                                                                    d
-                                                                                                                                    (getField
-                                                                                                                                       @"maxPerStageDescriptorInputAttachments"
-                                                                                                                                       x)
-                                                                                                                                    .
-                                                                                                                                    showString
-                                                                                                                                      ", "
-                                                                                                                                      .
-                                                                                                                                      showString
-                                                                                                                                        "maxPerStageResources = "
-                                                                                                                                        .
-                                                                                                                                        showsPrec
-                                                                                                                                          d
-                                                                                                                                          (getField
-                                                                                                                                             @"maxPerStageResources"
-                                                                                                                                             x)
-                                                                                                                                          .
-                                                                                                                                          showString
-                                                                                                                                            ", "
-                                                                                                                                            .
-                                                                                                                                            showString
-                                                                                                                                              "maxDescriptorSetSamplers = "
-                                                                                                                                              .
-                                                                                                                                              showsPrec
-                                                                                                                                                d
-                                                                                                                                                (getField
-                                                                                                                                                   @"maxDescriptorSetSamplers"
-                                                                                                                                                   x)
-                                                                                                                                                .
-                                                                                                                                                showString
-                                                                                                                                                  ", "
-                                                                                                                                                  .
-                                                                                                                                                  showString
-                                                                                                                                                    "maxDescriptorSetUniformBuffers = "
-                                                                                                                                                    .
-                                                                                                                                                    showsPrec
-                                                                                                                                                      d
-                                                                                                                                                      (getField
-                                                                                                                                                         @"maxDescriptorSetUniformBuffers"
-                                                                                                                                                         x)
-                                                                                                                                                      .
-                                                                                                                                                      showString
-                                                                                                                                                        ", "
-                                                                                                                                                        .
-                                                                                                                                                        showString
-                                                                                                                                                          "maxDescriptorSetUniformBuffersDynamic = "
-                                                                                                                                                          .
-                                                                                                                                                          showsPrec
-                                                                                                                                                            d
-                                                                                                                                                            (getField
-                                                                                                                                                               @"maxDescriptorSetUniformBuffersDynamic"
-                                                                                                                                                               x)
-                                                                                                                                                            .
-                                                                                                                                                            showString
-                                                                                                                                                              ", "
-                                                                                                                                                              .
-                                                                                                                                                              showString
-                                                                                                                                                                "maxDescriptorSetStorageBuffers = "
-                                                                                                                                                                .
-                                                                                                                                                                showsPrec
-                                                                                                                                                                  d
-                                                                                                                                                                  (getField
-                                                                                                                                                                     @"maxDescriptorSetStorageBuffers"
-                                                                                                                                                                     x)
-                                                                                                                                                                  .
-                                                                                                                                                                  showString
-                                                                                                                                                                    ", "
-                                                                                                                                                                    .
-                                                                                                                                                                    showString
-                                                                                                                                                                      "maxDescriptorSetStorageBuffersDynamic = "
-                                                                                                                                                                      .
-                                                                                                                                                                      showsPrec
-                                                                                                                                                                        d
-                                                                                                                                                                        (getField
-                                                                                                                                                                           @"maxDescriptorSetStorageBuffersDynamic"
-                                                                                                                                                                           x)
-                                                                                                                                                                        .
-                                                                                                                                                                        showString
-                                                                                                                                                                          ", "
-                                                                                                                                                                          .
-                                                                                                                                                                          showString
-                                                                                                                                                                            "maxDescriptorSetSampledImages = "
-                                                                                                                                                                            .
-                                                                                                                                                                            showsPrec
-                                                                                                                                                                              d
-                                                                                                                                                                              (getField
-                                                                                                                                                                                 @"maxDescriptorSetSampledImages"
-                                                                                                                                                                                 x)
-                                                                                                                                                                              .
-                                                                                                                                                                              showString
-                                                                                                                                                                                ", "
-                                                                                                                                                                                .
-                                                                                                                                                                                showString
-                                                                                                                                                                                  "maxDescriptorSetStorageImages = "
-                                                                                                                                                                                  .
-                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                    d
-                                                                                                                                                                                    (getField
-                                                                                                                                                                                       @"maxDescriptorSetStorageImages"
-                                                                                                                                                                                       x)
-                                                                                                                                                                                    .
-                                                                                                                                                                                    showString
-                                                                                                                                                                                      ", "
-                                                                                                                                                                                      .
-                                                                                                                                                                                      showString
-                                                                                                                                                                                        "maxDescriptorSetInputAttachments = "
-                                                                                                                                                                                        .
-                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                          d
-                                                                                                                                                                                          (getField
-                                                                                                                                                                                             @"maxDescriptorSetInputAttachments"
-                                                                                                                                                                                             x)
-                                                                                                                                                                                          .
-                                                                                                                                                                                          showString
-                                                                                                                                                                                            ", "
-                                                                                                                                                                                            .
-                                                                                                                                                                                            showString
-                                                                                                                                                                                              "maxVertexInputAttributes = "
-                                                                                                                                                                                              .
-                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                d
-                                                                                                                                                                                                (getField
-                                                                                                                                                                                                   @"maxVertexInputAttributes"
-                                                                                                                                                                                                   x)
-                                                                                                                                                                                                .
-                                                                                                                                                                                                showString
-                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                  .
-                                                                                                                                                                                                  showString
-                                                                                                                                                                                                    "maxVertexInputBindings = "
-                                                                                                                                                                                                    .
-                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                      d
-                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                         @"maxVertexInputBindings"
-                                                                                                                                                                                                         x)
-                                                                                                                                                                                                      .
-                                                                                                                                                                                                      showString
-                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                        .
-                                                                                                                                                                                                        showString
-                                                                                                                                                                                                          "maxVertexInputAttributeOffset = "
-                                                                                                                                                                                                          .
-                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                            d
-                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                               @"maxVertexInputAttributeOffset"
-                                                                                                                                                                                                               x)
-                                                                                                                                                                                                            .
-                                                                                                                                                                                                            showString
-                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                              .
-                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                "maxVertexInputBindingStride = "
-                                                                                                                                                                                                                .
-                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                     @"maxVertexInputBindingStride"
-                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                      "maxVertexOutputComponents = "
-                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                           @"maxVertexOutputComponents"
-                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                            "maxTessellationGenerationLevel = "
-                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                 @"maxTessellationGenerationLevel"
-                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                  "maxTessellationPatchSize = "
-                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                       @"maxTessellationPatchSize"
-                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                        "maxTessellationControlPerVertexInputComponents = "
-                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                             @"maxTessellationControlPerVertexInputComponents"
-                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                              "maxTessellationControlPerVertexOutputComponents = "
-                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                   @"maxTessellationControlPerVertexOutputComponents"
-                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                    "maxTessellationControlPerPatchOutputComponents = "
-                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                         @"maxTessellationControlPerPatchOutputComponents"
-                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                          "maxTessellationControlTotalOutputComponents = "
-                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                               @"maxTessellationControlTotalOutputComponents"
-                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                "maxTessellationEvaluationInputComponents = "
-                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                     @"maxTessellationEvaluationInputComponents"
-                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                      "maxTessellationEvaluationOutputComponents = "
-                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                           @"maxTessellationEvaluationOutputComponents"
-                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                            "maxGeometryShaderInvocations = "
-                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                 @"maxGeometryShaderInvocations"
-                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                  "maxGeometryInputComponents = "
-                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                       @"maxGeometryInputComponents"
-                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                        "maxGeometryOutputComponents = "
-                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                             @"maxGeometryOutputComponents"
-                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                              "maxGeometryOutputVertices = "
-                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                   @"maxGeometryOutputVertices"
-                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                    "maxGeometryTotalOutputComponents = "
-                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                         @"maxGeometryTotalOutputComponents"
-                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                          "maxFragmentInputComponents = "
-                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                               @"maxFragmentInputComponents"
-                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                "maxFragmentOutputAttachments = "
-                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                     @"maxFragmentOutputAttachments"
-                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                      "maxFragmentDualSrcAttachments = "
-                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                           @"maxFragmentDualSrcAttachments"
-                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                            "maxFragmentCombinedOutputResources = "
-                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                 @"maxFragmentCombinedOutputResources"
-                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                  "maxComputeSharedMemorySize = "
-                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                       @"maxComputeSharedMemorySize"
-                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                      (showString
-                                                                                                                                                                                                                                                                                                                                         "maxComputeWorkGroupCount = ["
-                                                                                                                                                                                                                                                                                                                                         .
-                                                                                                                                                                                                                                                                                                                                         showsPrec
-                                                                                                                                                                                                                                                                                                                                           d
-                                                                                                                                                                                                                                                                                                                                           (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                      (undefined
-                                                                                                                                                                                                                                                                                                                                                         ::
-                                                                                                                                                                                                                                                                                                                                                         FieldType
-                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                      @"maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                      @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                f i
-                                                                                                                                                                                                                                                                                                                                                  = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                      (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                      i
-                                                                                                                                                                                                                                                                                                                                                      ::
-                                                                                                                                                                                                                                                                                                                                                      IO
-                                                                                                                                                                                                                                                                                                                                                        (FieldType
-                                                                                                                                                                                                                                                                                                                                                           "maxComputeWorkGroupCount"
-                                                                                                                                                                                                                                                                                                                                                           VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                              in
-                                                                                                                                                                                                                                                                                                                                              unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                mapM
-                                                                                                                                                                                                                                                                                                                                                  f
-                                                                                                                                                                                                                                                                                                                                                $
-                                                                                                                                                                                                                                                                                                                                                map
-                                                                                                                                                                                                                                                                                                                                                  (\ i
-                                                                                                                                                                                                                                                                                                                                                     ->
-                                                                                                                                                                                                                                                                                                                                                     o +
-                                                                                                                                                                                                                                                                                                                                                       i *
-                                                                                                                                                                                                                                                                                                                                                         s)
-                                                                                                                                                                                                                                                                                                                                                  [0
-                                                                                                                                                                                                                                                                                                                                                   ..
-                                                                                                                                                                                                                                                                                                                                                   3 -
-                                                                                                                                                                                                                                                                                                                                                     1])
-                                                                                                                                                                                                                                                                                                                                           .
-                                                                                                                                                                                                                                                                                                                                           showChar
-                                                                                                                                                                                                                                                                                                                                             ']')
-                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                            "maxComputeWorkGroupInvocations = "
-                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                 @"maxComputeWorkGroupInvocations"
-                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                (showString
-                                                                                                                                                                                                                                                                                                                                                   "maxComputeWorkGroupSize = ["
-                                                                                                                                                                                                                                                                                                                                                   .
-                                                                                                                                                                                                                                                                                                                                                   showsPrec
-                                                                                                                                                                                                                                                                                                                                                     d
-                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                (undefined
-                                                                                                                                                                                                                                                                                                                                                                   ::
-                                                                                                                                                                                                                                                                                                                                                                   FieldType
-                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                @"maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                          f i
-                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                i
-                                                                                                                                                                                                                                                                                                                                                                ::
-                                                                                                                                                                                                                                                                                                                                                                IO
-                                                                                                                                                                                                                                                                                                                                                                  (FieldType
-                                                                                                                                                                                                                                                                                                                                                                     "maxComputeWorkGroupSize"
-                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                        in
-                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                          mapM
-                                                                                                                                                                                                                                                                                                                                                            f
-                                                                                                                                                                                                                                                                                                                                                          $
-                                                                                                                                                                                                                                                                                                                                                          map
-                                                                                                                                                                                                                                                                                                                                                            (\ i
-                                                                                                                                                                                                                                                                                                                                                               ->
-                                                                                                                                                                                                                                                                                                                                                               o +
-                                                                                                                                                                                                                                                                                                                                                                 i *
-                                                                                                                                                                                                                                                                                                                                                                   s)
-                                                                                                                                                                                                                                                                                                                                                            [0
-                                                                                                                                                                                                                                                                                                                                                             ..
-                                                                                                                                                                                                                                                                                                                                                             3 -
-                                                                                                                                                                                                                                                                                                                                                               1])
-                                                                                                                                                                                                                                                                                                                                                     .
-                                                                                                                                                                                                                                                                                                                                                     showChar
-                                                                                                                                                                                                                                                                                                                                                       ']')
-                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                      "subPixelPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                           @"subPixelPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                            "subTexelPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                 @"subTexelPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                  "mipmapPrecisionBits = "
-                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                       @"mipmapPrecisionBits"
-                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                        "maxDrawIndexedIndexValue = "
-                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                             @"maxDrawIndexedIndexValue"
-                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                              "maxDrawIndirectCount = "
-                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                   @"maxDrawIndirectCount"
-                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                    "maxSamplerLodBias = "
-                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                         @"maxSamplerLodBias"
-                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                          "maxSamplerAnisotropy = "
-                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                               @"maxSamplerAnisotropy"
-                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                "maxViewports = "
-                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                     @"maxViewports"
-                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                    (showString
-                                                                                                                                                                                                                                                                                                                                                                                                       "maxViewportDimensions = ["
-                                                                                                                                                                                                                                                                                                                                                                                                       .
-                                                                                                                                                                                                                                                                                                                                                                                                       showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                         d
-                                                                                                                                                                                                                                                                                                                                                                                                         (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                    (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                       ::
-                                                                                                                                                                                                                                                                                                                                                                                                                       FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                              o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                    @"maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                    @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                              f i
-                                                                                                                                                                                                                                                                                                                                                                                                                = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                    (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                    i
-                                                                                                                                                                                                                                                                                                                                                                                                                    ::
-                                                                                                                                                                                                                                                                                                                                                                                                                    IO
-                                                                                                                                                                                                                                                                                                                                                                                                                      (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                         "maxViewportDimensions"
-                                                                                                                                                                                                                                                                                                                                                                                                                         VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                            in
-                                                                                                                                                                                                                                                                                                                                                                                                            unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                              mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                f
-                                                                                                                                                                                                                                                                                                                                                                                                              $
-                                                                                                                                                                                                                                                                                                                                                                                                              map
-                                                                                                                                                                                                                                                                                                                                                                                                                (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                   ->
-                                                                                                                                                                                                                                                                                                                                                                                                                   o +
-                                                                                                                                                                                                                                                                                                                                                                                                                     i *
-                                                                                                                                                                                                                                                                                                                                                                                                                       s)
-                                                                                                                                                                                                                                                                                                                                                                                                                [0
-                                                                                                                                                                                                                                                                                                                                                                                                                 ..
-                                                                                                                                                                                                                                                                                                                                                                                                                 2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                   1])
-                                                                                                                                                                                                                                                                                                                                                                                                         .
-                                                                                                                                                                                                                                                                                                                                                                                                         showChar
-                                                                                                                                                                                                                                                                                                                                                                                                           ']')
-                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                        (showString
-                                                                                                                                                                                                                                                                                                                                                                                                           "viewportBoundsRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                           .
-                                                                                                                                                                                                                                                                                                                                                                                                           showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                             d
-                                                                                                                                                                                                                                                                                                                                                                                                             (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                        (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                           ::
-                                                                                                                                                                                                                                                                                                                                                                                                                           FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                  o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                        @"viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                        @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                  f i
-                                                                                                                                                                                                                                                                                                                                                                                                                    = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                        (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                        i
-                                                                                                                                                                                                                                                                                                                                                                                                                        ::
-                                                                                                                                                                                                                                                                                                                                                                                                                        IO
-                                                                                                                                                                                                                                                                                                                                                                                                                          (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                             "viewportBoundsRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                             VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                in
-                                                                                                                                                                                                                                                                                                                                                                                                                unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                  mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                    f
-                                                                                                                                                                                                                                                                                                                                                                                                                  $
-                                                                                                                                                                                                                                                                                                                                                                                                                  map
-                                                                                                                                                                                                                                                                                                                                                                                                                    (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                       ->
-                                                                                                                                                                                                                                                                                                                                                                                                                       o +
-                                                                                                                                                                                                                                                                                                                                                                                                                         i *
-                                                                                                                                                                                                                                                                                                                                                                                                                           s)
-                                                                                                                                                                                                                                                                                                                                                                                                                    [0
-                                                                                                                                                                                                                                                                                                                                                                                                                     ..
-                                                                                                                                                                                                                                                                                                                                                                                                                     2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                       1])
-                                                                                                                                                                                                                                                                                                                                                                                                             .
-                                                                                                                                                                                                                                                                                                                                                                                                             showChar
-                                                                                                                                                                                                                                                                                                                                                                                                               ']')
-                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                              "viewportSubPixelBits = "
-                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                   @"viewportSubPixelBits"
-                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                    "minMemoryMapAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                         @"minMemoryMapAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                          "minTexelBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                               @"minTexelBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                "minUniformBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                     @"minUniformBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                      "minStorageBufferOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                           @"minStorageBufferOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                            "minTexelOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"minTexelOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxTexelOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxTexelOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        "minTexelGatherOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"minTexelGatherOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              "maxTexelGatherOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"maxTexelGatherOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "minInterpolationOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"minInterpolationOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "maxInterpolationOffset = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"maxInterpolationOffset"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "subPixelInterpolationOffsetBits = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"subPixelInterpolationOffsetBits"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxFramebufferWidth = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxFramebufferWidth"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxFramebufferHeight = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxFramebufferHeight"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxFramebufferLayers = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxFramebufferLayers"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "framebufferColorSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"framebufferColorSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "framebufferDepthSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"framebufferDepthSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "framebufferStencilSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"framebufferStencilSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "framebufferNoAttachmentsSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"framebufferNoAttachmentsSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "maxColorAttachments = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"maxColorAttachments"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "sampledImageColorSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"sampledImageColorSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "sampledImageIntegerSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"sampledImageIntegerSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "sampledImageDepthSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"sampledImageDepthSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "sampledImageStencilSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"sampledImageStencilSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "storageImageSampleCounts = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"storageImageSampleCounts"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "maxSampleMaskWords = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"maxSampleMaskWords"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "timestampComputeAndGraphics = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"timestampComputeAndGraphics"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                "timestampPeriod = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @"timestampPeriod"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "maxClipDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"maxClipDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "maxCullDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"maxCullDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "maxCombinedClipAndCullDistances = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"maxCombinedClipAndCullDistances"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "discreteQueuePriorities = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"discreteQueuePriorities"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               "pointSizeRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @"pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      f i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            IO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "pointSizeRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        f
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      $
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           o +
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             i *
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               s)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        [0
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ..
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           1])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ']')
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "lineWidthRange = ["
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (let s = sizeOf
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (undefined
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          o = fieldOffset
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @"lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                @VkPhysicalDeviceLimits
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          f i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            = peekByteOff
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (unsafePtr
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ::
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                IO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (FieldType
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "lineWidthRange"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     VkPhysicalDeviceLimits)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        unsafeDupablePerformIO
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          mapM
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            f
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          $
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          map
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (\ i
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ->
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               o +
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 i *
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   s)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            [0
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ..
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             2 -
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ']')
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "pointSizeGranularity = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @"pointSizeGranularity"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "lineWidthGranularity = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @"lineWidthGranularity"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "strictLines = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       @"strictLines"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "standardSampleLocations = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             @"standardSampleLocations"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              "optimalBufferCopyOffsetAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @"optimalBufferCopyOffsetAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    "optimalBufferCopyRowPitchAlignment = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @"optimalBufferCopyRowPitchAlignment"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ", "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        showString
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "nonCoherentAtomSize = "
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          showsPrec
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            d
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            (getField
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @"nonCoherentAtomSize"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               x)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            .
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            showChar
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3Properties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3Properties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3Properties.hsc
+++ /dev/null
@@ -1,261 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3Properties
-       (VkPhysicalDeviceMaintenance3Properties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMaintenance3Properties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxPerSetDescriptors;
---   >     VkDeviceSize                     maxMemoryAllocationSize;
---   > } VkPhysicalDeviceMaintenance3Properties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMaintenance3Properties.html VkPhysicalDeviceMaintenance3Properties registry at www.khronos.org>
-data VkPhysicalDeviceMaintenance3Properties = VkPhysicalDeviceMaintenance3Properties## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceMaintenance3Properties where
-        (VkPhysicalDeviceMaintenance3Properties## a _) ==
-          x@(VkPhysicalDeviceMaintenance3Properties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMaintenance3Properties where
-        (VkPhysicalDeviceMaintenance3Properties## a _) `compare`
-          x@(VkPhysicalDeviceMaintenance3Properties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMaintenance3Properties where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceMaintenance3Properties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMaintenance3Properties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMaintenance3Properties
-         where
-        unsafeAddr (VkPhysicalDeviceMaintenance3Properties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMaintenance3Properties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMaintenance3Properties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMaintenance3Properties where
-        type StructFields VkPhysicalDeviceMaintenance3Properties =
-             '["sType", "pNext", "maxPerSetDescriptors", -- ' closing tick for hsc2hs
-               "maxMemoryAllocationSize"]
-        type CUnionType VkPhysicalDeviceMaintenance3Properties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMaintenance3Properties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMaintenance3Properties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMaintenance3Properties where
-        type FieldType "sType" VkPhysicalDeviceMaintenance3Properties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMaintenance3Properties =
-             #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMaintenance3Properties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMaintenance3Properties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        type FieldType "pNext" VkPhysicalDeviceMaintenance3Properties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMaintenance3Properties =
-             #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMaintenance3Properties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMaintenance3Properties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        type FieldType "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = Word32
-        type FieldOptional "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             =
-             #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-        type FieldIsArray "maxPerSetDescriptors"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPerSetDescriptors"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxPerSetDescriptors}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        type FieldType "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = VkDeviceSize
-        type FieldOptional "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             =
-             #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-        type FieldIsArray "maxMemoryAllocationSize"
-               VkPhysicalDeviceMaintenance3Properties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMemoryAllocationSize"
-           VkPhysicalDeviceMaintenance3Properties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMaintenance3Properties, maxMemoryAllocationSize}
-
-instance Show VkPhysicalDeviceMaintenance3Properties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMaintenance3Properties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxPerSetDescriptors = " .
-                            showsPrec d (getField @"maxPerSetDescriptors" x) .
-                              showString ", " .
-                                showString "maxMemoryAllocationSize = " .
-                                  showsPrec d (getField @"maxMemoryAllocationSize" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3PropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3PropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMaintenance3PropertiesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3PropertiesKHR
-       (VkPhysicalDeviceMaintenance3Properties(..),
-        VkPhysicalDeviceMaintenance3PropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3Properties
-                                                                                      (VkPhysicalDeviceMaintenance3Properties (..))
-
--- | Alias for `VkPhysicalDeviceMaintenance3Properties`
-type VkPhysicalDeviceMaintenance3PropertiesKHR =
-     VkPhysicalDeviceMaintenance3Properties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties.hsc
+++ /dev/null
@@ -1,403 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties
-       (VkPhysicalDeviceMemoryProperties(..)) where
-import           Foreign.Storable                          (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                              (KnownNat, natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                 (VK_MAX_MEMORY_HEAPS, pattern VK_MAX_MEMORY_HEAPS,
-                                                            VK_MAX_MEMORY_TYPES,
-                                                            pattern VK_MAX_MEMORY_TYPES)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkMemoryHeap (VkMemoryHeap)
-import           Graphics.Vulkan.Types.Struct.VkMemoryType (VkMemoryType)
-import           System.IO.Unsafe                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMemoryProperties {
---   >     uint32_t               memoryTypeCount;
---   >     VkMemoryType           memoryTypes[VK_MAX_MEMORY_TYPES];
---   >     uint32_t               memoryHeapCount;
---   >     VkMemoryHeap           memoryHeaps[VK_MAX_MEMORY_HEAPS];
---   > } VkPhysicalDeviceMemoryProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMemoryProperties.html VkPhysicalDeviceMemoryProperties registry at www.khronos.org>
-data VkPhysicalDeviceMemoryProperties = VkPhysicalDeviceMemoryProperties## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceMemoryProperties where
-        (VkPhysicalDeviceMemoryProperties## a _) ==
-          x@(VkPhysicalDeviceMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMemoryProperties where
-        (VkPhysicalDeviceMemoryProperties## a _) `compare`
-          x@(VkPhysicalDeviceMemoryProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMemoryProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMemoryProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties where
-        unsafeAddr (VkPhysicalDeviceMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMemoryProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMemoryProperties where
-        type StructFields VkPhysicalDeviceMemoryProperties =
-             '["memoryTypeCount", "memoryTypes", "memoryHeapCount", -- ' closing tick for hsc2hs
-               "memoryHeaps"]
-        type CUnionType VkPhysicalDeviceMemoryProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMemoryProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMemoryProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypeCount" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryTypeCount" VkPhysicalDeviceMemoryProperties =
-             Word32
-        type FieldOptional "memoryTypeCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-             =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-        type FieldIsArray "memoryTypeCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryTypeCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryTypeCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryTypes" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             VkMemoryType
-        type FieldOptional "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-        type FieldIsArray "memoryTypes" VkPhysicalDeviceMemoryProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "memoryTypes" idx
-            VkPhysicalDeviceMemoryProperties) =>
-         CanReadFieldArray "memoryTypes" idx
-           VkPhysicalDeviceMemoryProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties
-                       #-}
-        type FieldArrayLength "memoryTypes"
-               VkPhysicalDeviceMemoryProperties
-             = VK_MAX_MEMORY_TYPES
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_MEMORY_TYPES
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                      +
-                      sizeOf (undefined :: VkMemoryType) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                 +
-                 sizeOf (undefined :: VkMemoryType) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "memoryTypes" idx
-            VkPhysicalDeviceMemoryProperties) =>
-         CanWriteFieldArray "memoryTypes" idx
-           VkPhysicalDeviceMemoryProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryTypes" 0 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryTypes" 1 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryTypes" 2 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryTypes" 3 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryTypes}
-                 +
-                 sizeOf (undefined :: VkMemoryType) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryHeapCount" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryHeapCount" VkPhysicalDeviceMemoryProperties =
-             Word32
-        type FieldOptional "memoryHeapCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-             =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-        type FieldIsArray "memoryHeapCount"
-               VkPhysicalDeviceMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryHeapCount" VkPhysicalDeviceMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties, memoryHeapCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryHeaps" VkPhysicalDeviceMemoryProperties where
-        type FieldType "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             VkMemoryHeap
-        type FieldOptional "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-        type FieldIsArray "memoryHeaps" VkPhysicalDeviceMemoryProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "memoryHeaps" idx
-            VkPhysicalDeviceMemoryProperties) =>
-         CanReadFieldArray "memoryHeaps" idx
-           VkPhysicalDeviceMemoryProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties
-                       #-}
-        type FieldArrayLength "memoryHeaps"
-               VkPhysicalDeviceMemoryProperties
-             = VK_MAX_MEMORY_HEAPS
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_MEMORY_HEAPS
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                      +
-                      sizeOf (undefined :: VkMemoryHeap) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                 +
-                 sizeOf (undefined :: VkMemoryHeap) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "memoryHeaps" idx
-            VkPhysicalDeviceMemoryProperties) =>
-         CanWriteFieldArray "memoryHeaps" idx
-           VkPhysicalDeviceMemoryProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryHeaps" 0 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryHeaps" 1 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryHeaps" 2 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "memoryHeaps" 3 VkPhysicalDeviceMemoryProperties
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceMemoryProperties, memoryHeaps}
-                 +
-                 sizeOf (undefined :: VkMemoryHeap) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkPhysicalDeviceMemoryProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMemoryProperties {" .
-              showString "memoryTypeCount = " .
-                showsPrec d (getField @"memoryTypeCount" x) .
-                  showString ", " .
-                    (showString "memoryTypes = [" .
-                       showsPrec d
-                         (let s = sizeOf
-                                    (undefined ::
-                                       FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
-                              o = fieldOffset @"memoryTypes" @VkPhysicalDeviceMemoryProperties
-                              f i
-                                = peekByteOff (unsafePtr x) i ::
-                                    IO (FieldType "memoryTypes" VkPhysicalDeviceMemoryProperties)
-                            in
-                            unsafeDupablePerformIO . mapM f $
-                              map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_TYPES - 1])
-                         . showChar ']')
-                      .
-                      showString ", " .
-                        showString "memoryHeapCount = " .
-                          showsPrec d (getField @"memoryHeapCount" x) .
-                            showString ", " .
-                              (showString "memoryHeaps = [" .
-                                 showsPrec d
-                                   (let s = sizeOf
-                                              (undefined ::
-                                                 FieldType "memoryHeaps"
-                                                   VkPhysicalDeviceMemoryProperties)
-                                        o = fieldOffset @"memoryHeaps"
-                                              @VkPhysicalDeviceMemoryProperties
-                                        f i
-                                          = peekByteOff (unsafePtr x) i ::
-                                              IO
-                                                (FieldType "memoryHeaps"
-                                                   VkPhysicalDeviceMemoryProperties)
-                                      in
-                                      unsafeDupablePerformIO . mapM f $
-                                        map (\ i -> o + i * s) [0 .. VK_MAX_MEMORY_HEAPS - 1])
-                                   . showChar ']')
-                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2.hsc
+++ /dev/null
@@ -1,200 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2
-       (VkPhysicalDeviceMemoryProperties2(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties (VkPhysicalDeviceMemoryProperties)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMemoryProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceMemoryProperties memoryProperties;
---   > } VkPhysicalDeviceMemoryProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMemoryProperties2.html VkPhysicalDeviceMemoryProperties2 registry at www.khronos.org>
-data VkPhysicalDeviceMemoryProperties2 = VkPhysicalDeviceMemoryProperties2## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceMemoryProperties2 where
-        (VkPhysicalDeviceMemoryProperties2## a _) ==
-          x@(VkPhysicalDeviceMemoryProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMemoryProperties2 where
-        (VkPhysicalDeviceMemoryProperties2## a _) `compare`
-          x@(VkPhysicalDeviceMemoryProperties2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMemoryProperties2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceMemoryProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMemoryProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMemoryProperties2 where
-        unsafeAddr (VkPhysicalDeviceMemoryProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMemoryProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMemoryProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMemoryProperties2 where
-        type StructFields VkPhysicalDeviceMemoryProperties2 =
-             '["sType", "pNext", "memoryProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceMemoryProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMemoryProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMemoryProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "sType" VkPhysicalDeviceMemoryProperties2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMemoryProperties2 =
-             #{offset VkPhysicalDeviceMemoryProperties2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMemoryProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMemoryProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "pNext" VkPhysicalDeviceMemoryProperties2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMemoryProperties2 =
-             #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMemoryProperties2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMemoryProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryProperties" VkPhysicalDeviceMemoryProperties2 where
-        type FieldType "memoryProperties" VkPhysicalDeviceMemoryProperties2
-             = VkPhysicalDeviceMemoryProperties
-        type FieldOptional "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             =
-             #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-        type FieldIsArray "memoryProperties"
-               VkPhysicalDeviceMemoryProperties2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryProperties" VkPhysicalDeviceMemoryProperties2
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryProperties" VkPhysicalDeviceMemoryProperties2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMemoryProperties2, memoryProperties}
-
-instance Show VkPhysicalDeviceMemoryProperties2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMemoryProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryProperties = " .
-                            showsPrec d (getField @"memoryProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMemoryProperties2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2KHR
-       (VkPhysicalDeviceMemoryProperties2(..),
-        VkPhysicalDeviceMemoryProperties2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2 (VkPhysicalDeviceMemoryProperties2 (..))
-
--- | Alias for `VkPhysicalDeviceMemoryProperties2`
-type VkPhysicalDeviceMemoryProperties2KHR =
-     VkPhysicalDeviceMemoryProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeatures.hsc
+++ /dev/null
@@ -1,299 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeatures
-       (VkPhysicalDeviceMultiviewFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo        (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMultiviewFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         multiview;
---   >     VkBool32                         multiviewGeometryShader;
---   >     VkBool32                         multiviewTessellationShader;
---   > } VkPhysicalDeviceMultiviewFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMultiviewFeatures.html VkPhysicalDeviceMultiviewFeatures registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewFeatures = VkPhysicalDeviceMultiviewFeatures## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewFeatures where
-        (VkPhysicalDeviceMultiviewFeatures## a _) ==
-          x@(VkPhysicalDeviceMultiviewFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMultiviewFeatures where
-        (VkPhysicalDeviceMultiviewFeatures## a _) `compare`
-          x@(VkPhysicalDeviceMultiviewFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMultiviewFeatures where
-        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMultiviewFeatures where
-        unsafeAddr (VkPhysicalDeviceMultiviewFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMultiviewFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMultiviewFeatures where
-        type StructFields VkPhysicalDeviceMultiviewFeatures =
-             '["sType", "pNext", "multiview", "multiviewGeometryShader", -- ' closing tick for hsc2hs
-               "multiviewTessellationShader"]
-        type CUnionType VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMultiviewFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMultiviewFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "sType" VkPhysicalDeviceMultiviewFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "pNext" VkPhysicalDeviceMultiviewFeatures = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        type FieldType "multiview" VkPhysicalDeviceMultiviewFeatures =
-             VkBool32
-        type FieldOptional "multiview" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiview" VkPhysicalDeviceMultiviewFeatures =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-        type FieldIsArray "multiview" VkPhysicalDeviceMultiviewFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiview})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiview" VkPhysicalDeviceMultiviewFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiview}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        type FieldType "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = VkBool32
-        type FieldOptional "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-        type FieldIsArray "multiviewGeometryShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiviewGeometryShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewGeometryShader}
-
-instance {-# OVERLAPPING #-}
-         HasField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        type FieldType "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = VkBool32
-        type FieldOptional "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             =
-             #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-        type FieldIsArray "multiviewTessellationShader"
-               VkPhysicalDeviceMultiviewFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "multiviewTessellationShader"
-           VkPhysicalDeviceMultiviewFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewFeatures, multiviewTessellationShader}
-
-instance Show VkPhysicalDeviceMultiviewFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMultiviewFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "multiview = " .
-                            showsPrec d (getField @"multiview" x) .
-                              showString ", " .
-                                showString "multiviewGeometryShader = " .
-                                  showsPrec d (getField @"multiviewGeometryShader" x) .
-                                    showString ", " .
-                                      showString "multiviewTessellationShader = " .
-                                        showsPrec d (getField @"multiviewTessellationShader" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeaturesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeaturesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewFeaturesKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeaturesKHR
-       (VkPhysicalDeviceMultiviewFeatures(..),
-        VkPhysicalDeviceMultiviewFeaturesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeatures (VkPhysicalDeviceMultiviewFeatures (..))
-
--- | Alias for `VkPhysicalDeviceMultiviewFeatures`
-type VkPhysicalDeviceMultiviewFeaturesKHR =
-     VkPhysicalDeviceMultiviewFeatures
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.hsc
+++ /dev/null
@@ -1,254 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-       (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         perViewPositionAllComponents;
---   > } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX.html VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## Addr##
-                                                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) ==
-          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _)
-          `compare`
-          x@(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        unsafeAddr
-          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type StructFields
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = '["sType", "pNext", "perViewPositionAllComponents"] -- ' closing tick for hsc2hs
-        type CUnionType
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        type FieldType "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = VkBool32
-        type FieldOptional "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             =
-             #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-        type FieldIsArray "perViewPositionAllComponents"
-               VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "perViewPositionAllComponents"
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, perViewPositionAllComponents}
-
-instance Show
-           VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "perViewPositionAllComponents = " .
-                            showsPrec d (getField @"perViewPositionAllComponents" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewProperties.hsc
+++ /dev/null
@@ -1,260 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewProperties
-       (VkPhysicalDeviceMultiviewProperties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceMultiviewProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxMultiviewViewCount;
---   >     uint32_t                         maxMultiviewInstanceIndex;
---   > } VkPhysicalDeviceMultiviewProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceMultiviewProperties.html VkPhysicalDeviceMultiviewProperties registry at www.khronos.org>
-data VkPhysicalDeviceMultiviewProperties = VkPhysicalDeviceMultiviewProperties## Addr##
-                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceMultiviewProperties where
-        (VkPhysicalDeviceMultiviewProperties## a _) ==
-          x@(VkPhysicalDeviceMultiviewProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceMultiviewProperties where
-        (VkPhysicalDeviceMultiviewProperties## a _) `compare`
-          x@(VkPhysicalDeviceMultiviewProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceMultiviewProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceMultiviewProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceMultiviewProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceMultiviewProperties
-         where
-        unsafeAddr (VkPhysicalDeviceMultiviewProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceMultiviewProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceMultiviewProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceMultiviewProperties where
-        type StructFields VkPhysicalDeviceMultiviewProperties =
-             '["sType", "pNext", "maxMultiviewViewCount", -- ' closing tick for hsc2hs
-               "maxMultiviewInstanceIndex"]
-        type CUnionType VkPhysicalDeviceMultiviewProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceMultiviewProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceMultiviewProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceMultiviewProperties where
-        type FieldType "sType" VkPhysicalDeviceMultiviewProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceMultiviewProperties =
-             #{offset VkPhysicalDeviceMultiviewProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceMultiviewProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceMultiviewProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceMultiviewProperties where
-        type FieldType "pNext" VkPhysicalDeviceMultiviewProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceMultiviewProperties =
-             #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceMultiviewProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceMultiviewProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceMultiviewProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        type FieldType "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = Word32
-        type FieldOptional "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             =
-             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-        type FieldIsArray "maxMultiviewViewCount"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMultiviewViewCount"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewViewCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        type FieldType "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = Word32
-        type FieldOptional "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             =
-             #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-        type FieldIsArray "maxMultiviewInstanceIndex"
-               VkPhysicalDeviceMultiviewProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxMultiviewInstanceIndex"
-           VkPhysicalDeviceMultiviewProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceMultiviewProperties, maxMultiviewInstanceIndex}
-
-instance Show VkPhysicalDeviceMultiviewProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceMultiviewProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxMultiviewViewCount = " .
-                            showsPrec d (getField @"maxMultiviewViewCount" x) .
-                              showString ", " .
-                                showString "maxMultiviewInstanceIndex = " .
-                                  showsPrec d (getField @"maxMultiviewInstanceIndex" x) .
-                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceMultiviewPropertiesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPropertiesKHR
-       (VkPhysicalDeviceMultiviewProperties(..),
-        VkPhysicalDeviceMultiviewPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewProperties
-                                                                                   (VkPhysicalDeviceMultiviewProperties (..))
-
--- | Alias for `VkPhysicalDeviceMultiviewProperties`
-type VkPhysicalDeviceMultiviewPropertiesKHR =
-     VkPhysicalDeviceMultiviewProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingProperties.hsc
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingProperties
-       (VkPhysicalDevicePointClippingProperties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPointClippingBehavior       (VkPointClippingBehavior)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDevicePointClippingProperties {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPointClippingBehavior      pointClippingBehavior;
---   > } VkPhysicalDevicePointClippingProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDevicePointClippingProperties.html VkPhysicalDevicePointClippingProperties registry at www.khronos.org>
-data VkPhysicalDevicePointClippingProperties = VkPhysicalDevicePointClippingProperties## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDevicePointClippingProperties where
-        (VkPhysicalDevicePointClippingProperties## a _) ==
-          x@(VkPhysicalDevicePointClippingProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevicePointClippingProperties where
-        (VkPhysicalDevicePointClippingProperties## a _) `compare`
-          x@(VkPhysicalDevicePointClippingProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevicePointClippingProperties where
-        sizeOf ~_
-          = #{size VkPhysicalDevicePointClippingProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevicePointClippingProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDevicePointClippingProperties
-         where
-        unsafeAddr (VkPhysicalDevicePointClippingProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevicePointClippingProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevicePointClippingProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevicePointClippingProperties
-         where
-        type StructFields VkPhysicalDevicePointClippingProperties =
-             '["sType", "pNext", "pointClippingBehavior"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDevicePointClippingProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevicePointClippingProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevicePointClippingProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevicePointClippingProperties where
-        type FieldType "sType" VkPhysicalDevicePointClippingProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDevicePointClippingProperties =
-             #{offset VkPhysicalDevicePointClippingProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDevicePointClippingProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevicePointClippingProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevicePointClippingProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevicePointClippingProperties where
-        type FieldType "pNext" VkPhysicalDevicePointClippingProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDevicePointClippingProperties =
-             #{offset VkPhysicalDevicePointClippingProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDevicePointClippingProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevicePointClippingProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevicePointClippingProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        type FieldType "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = VkPointClippingBehavior
-        type FieldOptional "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             =
-             #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-        type FieldIsArray "pointClippingBehavior"
-               VkPhysicalDevicePointClippingProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pointClippingBehavior"
-           VkPhysicalDevicePointClippingProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePointClippingProperties, pointClippingBehavior}
-
-instance Show VkPhysicalDevicePointClippingProperties where
-        showsPrec d x
-          = showString "VkPhysicalDevicePointClippingProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "pointClippingBehavior = " .
-                            showsPrec d (getField @"pointClippingBehavior" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePointClippingPropertiesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingPropertiesKHR
-       (VkPhysicalDevicePointClippingProperties(..),
-        VkPhysicalDevicePointClippingPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingProperties
-                                                                                       (VkPhysicalDevicePointClippingProperties (..))
-
--- | Alias for `VkPhysicalDevicePointClippingProperties`
-type VkPhysicalDevicePointClippingPropertiesKHR =
-     VkPhysicalDevicePointClippingProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties.hsc
+++ /dev/null
@@ -1,565 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-       (VkPhysicalDeviceProperties(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                                  (KnownNat,
-                                                                                natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Constants                                     (VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
-                                                                                pattern VK_MAX_PHYSICAL_DEVICE_NAME_SIZE,
-                                                                                VK_UUID_SIZE,
-                                                                                pattern VK_UUID_SIZE)
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType               (VkPhysicalDeviceType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits           (VkPhysicalDeviceLimits)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties (VkPhysicalDeviceSparseProperties)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceProperties {
---   >     uint32_t       apiVersion;
---   >     uint32_t       driverVersion;
---   >     uint32_t       vendorID;
---   >     uint32_t       deviceID;
---   >     VkPhysicalDeviceType deviceType;
---   >     char           deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
---   >     uint8_t        pipelineCacheUUID[VK_UUID_SIZE];
---   >     VkPhysicalDeviceLimits limits;
---   >     VkPhysicalDeviceSparseProperties sparseProperties;
---   > } VkPhysicalDeviceProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceProperties.html VkPhysicalDeviceProperties registry at www.khronos.org>
-data VkPhysicalDeviceProperties = VkPhysicalDeviceProperties## Addr##
-                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceProperties where
-        (VkPhysicalDeviceProperties## a _) ==
-          x@(VkPhysicalDeviceProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProperties where
-        (VkPhysicalDeviceProperties## a _) `compare`
-          x@(VkPhysicalDeviceProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProperties where
-        unsafeAddr (VkPhysicalDeviceProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProperties where
-        type StructFields VkPhysicalDeviceProperties =
-             '["apiVersion", "driverVersion", "vendorID", "deviceID", -- ' closing tick for hsc2hs
-               "deviceType", "deviceName", "pipelineCacheUUID", "limits",
-               "sparseProperties"]
-        type CUnionType VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "apiVersion" VkPhysicalDeviceProperties where
-        type FieldType "apiVersion" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "apiVersion" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, apiVersion}
-        type FieldIsArray "apiVersion" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "apiVersion" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, apiVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "apiVersion" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, apiVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "driverVersion" VkPhysicalDeviceProperties where
-        type FieldType "driverVersion" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "driverVersion" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "driverVersion" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, driverVersion}
-        type FieldIsArray "driverVersion" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "driverVersion" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, driverVersion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "driverVersion" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, driverVersion}
-
-instance {-# OVERLAPPING #-}
-         HasField "vendorID" VkPhysicalDeviceProperties where
-        type FieldType "vendorID" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vendorID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, vendorID}
-        type FieldIsArray "vendorID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vendorID" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, vendorID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vendorID" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, vendorID}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceID" VkPhysicalDeviceProperties where
-        type FieldType "deviceID" VkPhysicalDeviceProperties = Word32
-        type FieldOptional "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceID}
-        type FieldIsArray "deviceID" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceID" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceID" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceID}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceType" VkPhysicalDeviceProperties where
-        type FieldType "deviceType" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceType
-        type FieldOptional "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceType" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceType}
-        type FieldIsArray "deviceType" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "deviceType" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, deviceType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "deviceType" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, deviceType}
-
-instance {-# OVERLAPPING #-}
-         HasField "deviceName" VkPhysicalDeviceProperties where
-        type FieldType "deviceName" VkPhysicalDeviceProperties = CChar
-        type FieldOptional "deviceName" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "deviceName" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, deviceName}
-        type FieldIsArray "deviceName" VkPhysicalDeviceProperties = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, deviceName}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>
-         CanReadFieldArray "deviceName" idx VkPhysicalDeviceProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}
-        type FieldArrayLength "deviceName" VkPhysicalDeviceProperties =
-             VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceProperties, deviceName} +
-                      sizeOf (undefined :: CChar) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceProperties, deviceName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "deviceName" idx VkPhysicalDeviceProperties) =>
-         CanWriteFieldArray "deviceName" idx VkPhysicalDeviceProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceName" 0 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceName" 1 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceName" 2 VkPhysicalDeviceProperties #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "deviceName" 3 VkPhysicalDeviceProperties #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceProperties, deviceName} +
-                 sizeOf (undefined :: CChar) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineCacheUUID" VkPhysicalDeviceProperties where
-        type FieldType "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             Word8
-        type FieldOptional "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-        type FieldIsArray "pipelineCacheUUID" VkPhysicalDeviceProperties =
-             'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "pipelineCacheUUID" idx
-            VkPhysicalDeviceProperties) =>
-         CanReadFieldArray "pipelineCacheUUID" idx
-           VkPhysicalDeviceProperties
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties
-                       #-}
-        type FieldArrayLength "pipelineCacheUUID"
-               VkPhysicalDeviceProperties
-             = VK_UUID_SIZE
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = VK_UUID_SIZE
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                      +
-                      sizeOf (undefined :: Word8) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                 +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "pipelineCacheUUID" idx
-            VkPhysicalDeviceProperties) =>
-         CanWriteFieldArray "pipelineCacheUUID" idx
-           VkPhysicalDeviceProperties
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pipelineCacheUUID" 0 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pipelineCacheUUID" 1 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pipelineCacheUUID" 2 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "pipelineCacheUUID" 3 VkPhysicalDeviceProperties
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceProperties, pipelineCacheUUID}
-                 +
-                 sizeOf (undefined :: Word8) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "limits" VkPhysicalDeviceProperties where
-        type FieldType "limits" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceLimits
-        type FieldOptional "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "limits" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, limits}
-        type FieldIsArray "limits" VkPhysicalDeviceProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "limits" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, limits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "limits" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, limits}
-
-instance {-# OVERLAPPING #-}
-         HasField "sparseProperties" VkPhysicalDeviceProperties where
-        type FieldType "sparseProperties" VkPhysicalDeviceProperties =
-             VkPhysicalDeviceSparseProperties
-        type FieldOptional "sparseProperties" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sparseProperties" VkPhysicalDeviceProperties =
-             #{offset VkPhysicalDeviceProperties, sparseProperties}
-        type FieldIsArray "sparseProperties" VkPhysicalDeviceProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sparseProperties" VkPhysicalDeviceProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties, sparseProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sparseProperties" VkPhysicalDeviceProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties, sparseProperties}
-
-instance Show VkPhysicalDeviceProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProperties {" .
-              showString "apiVersion = " .
-                showsPrec d (getField @"apiVersion" x) .
-                  showString ", " .
-                    showString "driverVersion = " .
-                      showsPrec d (getField @"driverVersion" x) .
-                        showString ", " .
-                          showString "vendorID = " .
-                            showsPrec d (getField @"vendorID" x) .
-                              showString ", " .
-                                showString "deviceID = " .
-                                  showsPrec d (getField @"deviceID" x) .
-                                    showString ", " .
-                                      showString "deviceType = " .
-                                        showsPrec d (getField @"deviceType" x) .
-                                          showString ", " .
-                                            (showString "deviceName = [" .
-                                               showsPrec d
-                                                 (let s = sizeOf
-                                                            (undefined ::
-                                                               FieldType "deviceName"
-                                                                 VkPhysicalDeviceProperties)
-                                                      o = fieldOffset @"deviceName"
-                                                            @VkPhysicalDeviceProperties
-                                                      f i
-                                                        = peekByteOff (unsafePtr x) i ::
-                                                            IO
-                                                              (FieldType "deviceName"
-                                                                 VkPhysicalDeviceProperties)
-                                                    in
-                                                    unsafeDupablePerformIO . mapM f $
-                                                      map (\ i -> o + i * s)
-                                                        [0 .. VK_MAX_PHYSICAL_DEVICE_NAME_SIZE - 1])
-                                                 . showChar ']')
-                                              .
-                                              showString ", " .
-                                                (showString "pipelineCacheUUID = [" .
-                                                   showsPrec d
-                                                     (let s = sizeOf
-                                                                (undefined ::
-                                                                   FieldType "pipelineCacheUUID"
-                                                                     VkPhysicalDeviceProperties)
-                                                          o = fieldOffset @"pipelineCacheUUID"
-                                                                @VkPhysicalDeviceProperties
-                                                          f i
-                                                            = peekByteOff (unsafePtr x) i ::
-                                                                IO
-                                                                  (FieldType "pipelineCacheUUID"
-                                                                     VkPhysicalDeviceProperties)
-                                                        in
-                                                        unsafeDupablePerformIO . mapM f $
-                                                          map (\ i -> o + i * s)
-                                                            [0 .. VK_UUID_SIZE - 1])
-                                                     . showChar ']')
-                                                  .
-                                                  showString ", " .
-                                                    showString "limits = " .
-                                                      showsPrec d (getField @"limits" x) .
-                                                        showString ", " .
-                                                          showString "sparseProperties = " .
-                                                            showsPrec d
-                                                              (getField @"sparseProperties" x)
-                                                              . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-       (VkPhysicalDeviceProperties2(..)) where
-import           Foreign.Storable                                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType              (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties (VkPhysicalDeviceProperties)
-import           System.IO.Unsafe                                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkPhysicalDeviceProperties       properties;
---   > } VkPhysicalDeviceProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceProperties2.html VkPhysicalDeviceProperties2 registry at www.khronos.org>
-data VkPhysicalDeviceProperties2 = VkPhysicalDeviceProperties2## Addr##
-                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceProperties2 where
-        (VkPhysicalDeviceProperties2## a _) ==
-          x@(VkPhysicalDeviceProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProperties2 where
-        (VkPhysicalDeviceProperties2## a _) `compare`
-          x@(VkPhysicalDeviceProperties2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProperties2 where
-        sizeOf ~_ = #{size VkPhysicalDeviceProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPhysicalDeviceProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProperties2 where
-        unsafeAddr (VkPhysicalDeviceProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProperties2 where
-        type StructFields VkPhysicalDeviceProperties2 =
-             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProperties2 where
-        type FieldType "sType" VkPhysicalDeviceProperties2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProperties2 where
-        type FieldType "pNext" VkPhysicalDeviceProperties2 = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "properties" VkPhysicalDeviceProperties2 where
-        type FieldType "properties" VkPhysicalDeviceProperties2 =
-             VkPhysicalDeviceProperties
-        type FieldOptional "properties" VkPhysicalDeviceProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "properties" VkPhysicalDeviceProperties2 =
-             #{offset VkPhysicalDeviceProperties2, properties}
-        type FieldIsArray "properties" VkPhysicalDeviceProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "properties" VkPhysicalDeviceProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProperties2, properties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "properties" VkPhysicalDeviceProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProperties2, properties}
-
-instance Show VkPhysicalDeviceProperties2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "properties = " .
-                            showsPrec d (getField @"properties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProperties2KHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2KHR
-       (VkPhysicalDeviceProperties2(..), VkPhysicalDeviceProperties2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2 (..))
-
--- | Alias for `VkPhysicalDeviceProperties2`
-type VkPhysicalDeviceProperties2KHR = VkPhysicalDeviceProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryFeatures.hsc
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryFeatures
-       (VkPhysicalDeviceProtectedMemoryFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo        (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
---   >     VkStructureType sType;
---   >     void*                               pNext;
---   >     VkBool32                            protectedMemory;
---   > } VkPhysicalDeviceProtectedMemoryFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceProtectedMemoryFeatures.html VkPhysicalDeviceProtectedMemoryFeatures registry at www.khronos.org>
-data VkPhysicalDeviceProtectedMemoryFeatures = VkPhysicalDeviceProtectedMemoryFeatures## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceProtectedMemoryFeatures where
-        (VkPhysicalDeviceProtectedMemoryFeatures## a _) ==
-          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProtectedMemoryFeatures where
-        (VkPhysicalDeviceProtectedMemoryFeatures## a _) `compare`
-          x@(VkPhysicalDeviceProtectedMemoryFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProtectedMemoryFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceProtectedMemoryFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceProtectedMemoryFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceProtectedMemoryFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProtectedMemoryFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProtectedMemoryFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        type StructFields VkPhysicalDeviceProtectedMemoryFeatures =
-             '["sType", "pNext", "protectedMemory"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProtectedMemoryFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProtectedMemoryFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        type FieldType "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "protectedMemory" VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        type FieldType "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = VkBool32
-        type FieldOptional "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-        type FieldIsArray "protectedMemory"
-               VkPhysicalDeviceProtectedMemoryFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "protectedMemory"
-           VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "protectedMemory"
-           VkPhysicalDeviceProtectedMemoryFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryFeatures, protectedMemory}
-
-instance Show VkPhysicalDeviceProtectedMemoryFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProtectedMemoryFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "protectedMemory = " .
-                            showsPrec d (getField @"protectedMemory" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceProtectedMemoryProperties.hsc
+++ /dev/null
@@ -1,222 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryProperties
-       (VkPhysicalDeviceProtectedMemoryProperties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceProtectedMemoryProperties {
---   >     VkStructureType sType;
---   >     void*                               pNext;
---   >     VkBool32                            protectedNoFault;
---   > } VkPhysicalDeviceProtectedMemoryProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceProtectedMemoryProperties.html VkPhysicalDeviceProtectedMemoryProperties registry at www.khronos.org>
-data VkPhysicalDeviceProtectedMemoryProperties = VkPhysicalDeviceProtectedMemoryProperties## Addr##
-                                                                                            ByteArray##
-
-instance Eq VkPhysicalDeviceProtectedMemoryProperties where
-        (VkPhysicalDeviceProtectedMemoryProperties## a _) ==
-          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceProtectedMemoryProperties where
-        (VkPhysicalDeviceProtectedMemoryProperties## a _) `compare`
-          x@(VkPhysicalDeviceProtectedMemoryProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceProtectedMemoryProperties where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceProtectedMemoryProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceProtectedMemoryProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        unsafeAddr (VkPhysicalDeviceProtectedMemoryProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceProtectedMemoryProperties## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceProtectedMemoryProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceProtectedMemoryProperties
-         where
-        type StructFields VkPhysicalDeviceProtectedMemoryProperties =
-             '["sType", "pNext", "protectedNoFault"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceProtectedMemoryProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceProtectedMemoryProperties =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceProtectedMemoryProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceProtectedMemoryProperties where
-        type FieldType "sType" VkPhysicalDeviceProtectedMemoryProperties =
-             VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceProtectedMemoryProperties where
-        type FieldType "pNext" VkPhysicalDeviceProtectedMemoryProperties =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        type FieldType "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = VkBool32
-        type FieldOptional "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             =
-             #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-        type FieldIsArray "protectedNoFault"
-               VkPhysicalDeviceProtectedMemoryProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "protectedNoFault"
-           VkPhysicalDeviceProtectedMemoryProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceProtectedMemoryProperties, protectedNoFault}
-
-instance Show VkPhysicalDeviceProtectedMemoryProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceProtectedMemoryProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "protectedNoFault = " .
-                            showsPrec d (getField @"protectedNoFault" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePushDescriptorPropertiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePushDescriptorPropertiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDevicePushDescriptorPropertiesKHR.hsc
+++ /dev/null
@@ -1,226 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDevicePushDescriptorPropertiesKHR
-       (VkPhysicalDevicePushDescriptorPropertiesKHR(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         maxPushDescriptors;
---   > } VkPhysicalDevicePushDescriptorPropertiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDevicePushDescriptorPropertiesKHR.html VkPhysicalDevicePushDescriptorPropertiesKHR registry at www.khronos.org>
-data VkPhysicalDevicePushDescriptorPropertiesKHR = VkPhysicalDevicePushDescriptorPropertiesKHR## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPhysicalDevicePushDescriptorPropertiesKHR where
-        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) ==
-          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDevicePushDescriptorPropertiesKHR where
-        (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) `compare`
-          x@(VkPhysicalDevicePushDescriptorPropertiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDevicePushDescriptorPropertiesKHR where
-        sizeOf ~_
-          = #{size VkPhysicalDevicePushDescriptorPropertiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDevicePushDescriptorPropertiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        unsafeAddr (VkPhysicalDevicePushDescriptorPropertiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDevicePushDescriptorPropertiesKHR## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDevicePushDescriptorPropertiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        type StructFields VkPhysicalDevicePushDescriptorPropertiesKHR =
-             '["sType", "pNext", "maxPushDescriptors"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDevicePushDescriptorPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDevicePushDescriptorPropertiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDevicePushDescriptorPropertiesKHR =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR where
-        type FieldType "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR where
-        type FieldType "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        type FieldType "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = Word32
-        type FieldOptional "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             =
-             #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-        type FieldIsArray "maxPushDescriptors"
-               VkPhysicalDevicePushDescriptorPropertiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxPushDescriptors"
-           VkPhysicalDevicePushDescriptorPropertiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDevicePushDescriptorPropertiesKHR, maxPushDescriptors}
-
-instance Show VkPhysicalDevicePushDescriptorPropertiesKHR where
-        showsPrec d x
-          = showString "VkPhysicalDevicePushDescriptorPropertiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxPushDescriptors = " .
-                            showsPrec d (getField @"maxPushDescriptors" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSampleLocationsPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSampleLocationsPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSampleLocationsPropertiesEXT.hsc
+++ /dev/null
@@ -1,501 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSampleLocationsPropertiesEXT
-       (VkPhysicalDeviceSampleLocationsPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                             (KnownNat,
-                                                                           natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags            (VkSampleCountFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D                  (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkSampleCountFlags               sampleLocationSampleCounts;
---   >     VkExtent2D                       maxSampleLocationGridSize;
---   >     float                            sampleLocationCoordinateRange[2];
---   >     uint32_t                         sampleLocationSubPixelBits;
---   >     VkBool32                         variableSampleLocations;
---   > } VkPhysicalDeviceSampleLocationsPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSampleLocationsPropertiesEXT.html VkPhysicalDeviceSampleLocationsPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceSampleLocationsPropertiesEXT = VkPhysicalDeviceSampleLocationsPropertiesEXT## Addr##
-                                                                                                  ByteArray##
-
-instance Eq VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceSampleLocationsPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSampleLocationsPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSampleLocationsPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceSampleLocationsPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSampleLocationsPropertiesEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSampleLocationsPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             '["sType", "pNext", "sampleLocationSampleCounts", -- ' closing tick for hsc2hs
-               "maxSampleLocationGridSize", "sampleLocationCoordinateRange",
-               "sampleLocationSubPixelBits", "variableSampleLocations"]
-        type CUnionType VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSampleLocationsPropertiesEXT =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        type FieldType "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        type FieldType "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkSampleCountFlags
-        type FieldOptional "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-        type FieldIsArray "sampleLocationSampleCounts"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationSampleCounts"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSampleCounts}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkExtent2D
-        type FieldOptional "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-        type FieldIsArray "maxSampleLocationGridSize"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxSampleLocationGridSize"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, maxSampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationCoordinateRange"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = #{type float}
-        type FieldOptional "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-        type FieldIsArray "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "sampleLocationCoordinateRange" idx
-            VkPhysicalDeviceSampleLocationsPropertiesEXT) =>
-         CanReadFieldArray "sampleLocationCoordinateRange" idx
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "sampleLocationCoordinateRange" 0
-                         VkPhysicalDeviceSampleLocationsPropertiesEXT
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "sampleLocationCoordinateRange" 1
-                         VkPhysicalDeviceSampleLocationsPropertiesEXT
-                       #-}
-        type FieldArrayLength "sampleLocationCoordinateRange"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 2
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 2
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                      +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "sampleLocationCoordinateRange" idx
-            VkPhysicalDeviceSampleLocationsPropertiesEXT) =>
-         CanWriteFieldArray "sampleLocationCoordinateRange" idx
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "sampleLocationCoordinateRange" 0
-                         VkPhysicalDeviceSampleLocationsPropertiesEXT
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "sampleLocationCoordinateRange" 1
-                         VkPhysicalDeviceSampleLocationsPropertiesEXT
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationCoordinateRange}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = Word32
-        type FieldOptional "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-        type FieldIsArray "sampleLocationSubPixelBits"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationSubPixelBits"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, sampleLocationSubPixelBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        type FieldType "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = VkBool32
-        type FieldOptional "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-        type FieldIsArray "variableSampleLocations"
-               VkPhysicalDeviceSampleLocationsPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variableSampleLocations"
-           VkPhysicalDeviceSampleLocationsPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSampleLocationsPropertiesEXT, variableSampleLocations}
-
-instance Show VkPhysicalDeviceSampleLocationsPropertiesEXT where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSampleLocationsPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "sampleLocationSampleCounts = " .
-                            showsPrec d (getField @"sampleLocationSampleCounts" x) .
-                              showString ", " .
-                                showString "maxSampleLocationGridSize = " .
-                                  showsPrec d (getField @"maxSampleLocationGridSize" x) .
-                                    showString ", " .
-                                      (showString "sampleLocationCoordinateRange = [" .
-                                         showsPrec d
-                                           (let s = sizeOf
-                                                      (undefined ::
-                                                         FieldType "sampleLocationCoordinateRange"
-                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
-                                                o = fieldOffset @"sampleLocationCoordinateRange"
-                                                      @VkPhysicalDeviceSampleLocationsPropertiesEXT
-                                                f i
-                                                  = peekByteOff (unsafePtr x) i ::
-                                                      IO
-                                                        (FieldType "sampleLocationCoordinateRange"
-                                                           VkPhysicalDeviceSampleLocationsPropertiesEXT)
-                                              in
-                                              unsafeDupablePerformIO . mapM f $
-                                                map (\ i -> o + i * s) [0 .. 2 - 1])
-                                           . showChar ']')
-                                        .
-                                        showString ", " .
-                                          showString "sampleLocationSubPixelBits = " .
-                                            showsPrec d (getField @"sampleLocationSubPixelBits" x) .
-                                              showString ", " .
-                                                showString "variableSampleLocations = " .
-                                                  showsPrec d
-                                                    (getField @"variableSampleLocations" x)
-                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.hsc
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-       (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     VkBool32               filterMinmaxSingleComponentFormats;
---   >     VkBool32               filterMinmaxImageComponentMapping;
---   > } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT.html VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## Addr##
-                                                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
-        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT where
-        (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _) `compare`
-          x@(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        unsafeAddr (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type StructFields VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             '["sType", "pNext", "filterMinmaxSingleComponentFormats", -- ' closing tick for hsc2hs
-               "filterMinmaxImageComponentMapping"]
-        type CUnionType VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkBool32
-        type FieldOptional "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-        type FieldIsArray "filterMinmaxSingleComponentFormats"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "filterMinmaxSingleComponentFormats"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxSingleComponentFormats}
-
-instance {-# OVERLAPPING #-}
-         HasField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        type FieldType "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = VkBool32
-        type FieldOptional "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-        type FieldIsArray "filterMinmaxImageComponentMapping"
-               VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "filterMinmaxImageComponentMapping"
-           VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, filterMinmaxImageComponentMapping}
-
-instance Show VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-         where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "filterMinmaxSingleComponentFormats = " .
-                            showsPrec d (getField @"filterMinmaxSingleComponentFormats" x) .
-                              showString ", " .
-                                showString "filterMinmaxImageComponentMapping = " .
-                                  showsPrec d (getField @"filterMinmaxImageComponentMapping" x) .
-                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeatures.hsc
+++ /dev/null
@@ -1,237 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeatures
-       (VkPhysicalDeviceSamplerYcbcrConversionFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo        (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
---   >     VkStructureType sType;
---   >     void*      pNext;
---   >     VkBool32                         samplerYcbcrConversion;
---   > } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSamplerYcbcrConversionFeatures.html VkPhysicalDeviceSamplerYcbcrConversionFeatures registry at www.khronos.org>
-data VkPhysicalDeviceSamplerYcbcrConversionFeatures = VkPhysicalDeviceSamplerYcbcrConversionFeatures## Addr##
-                                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) ==
-          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _) `compare`
-          x@(VkPhysicalDeviceSamplerYcbcrConversionFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSamplerYcbcrConversionFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSamplerYcbcrConversionFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceSamplerYcbcrConversionFeatures## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceSamplerYcbcrConversionFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSamplerYcbcrConversionFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type StructFields VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             '["sType", "pNext", "samplerYcbcrConversion"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSamplerYcbcrConversionFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        type FieldType "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = VkBool32
-        type FieldOptional "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             =
-             #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-        type FieldIsArray "samplerYcbcrConversion"
-               VkPhysicalDeviceSamplerYcbcrConversionFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samplerYcbcrConversion"
-           VkPhysicalDeviceSamplerYcbcrConversionFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSamplerYcbcrConversionFeatures, samplerYcbcrConversion}
-
-instance Show VkPhysicalDeviceSamplerYcbcrConversionFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSamplerYcbcrConversionFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "samplerYcbcrConversion = " .
-                            showsPrec d (getField @"samplerYcbcrConversion" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR
-       (VkPhysicalDeviceSamplerYcbcrConversionFeatures(..),
-        VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeatures
-                                                                                              (VkPhysicalDeviceSamplerYcbcrConversionFeatures (..))
-
--- | Alias for `VkPhysicalDeviceSamplerYcbcrConversionFeatures`
-type VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
-     VkPhysicalDeviceSamplerYcbcrConversionFeatures
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceShaderDrawParameterFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceShaderDrawParameterFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceShaderDrawParameterFeatures.hsc
+++ /dev/null
@@ -1,227 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceShaderDrawParameterFeatures
-       (VkPhysicalDeviceShaderDrawParameterFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceShaderDrawParameterFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         shaderDrawParameters;
---   > } VkPhysicalDeviceShaderDrawParameterFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceShaderDrawParameterFeatures.html VkPhysicalDeviceShaderDrawParameterFeatures registry at www.khronos.org>
-data VkPhysicalDeviceShaderDrawParameterFeatures = VkPhysicalDeviceShaderDrawParameterFeatures## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceShaderDrawParameterFeatures where
-        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) ==
-          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceShaderDrawParameterFeatures where
-        (VkPhysicalDeviceShaderDrawParameterFeatures## a _) `compare`
-          x@(VkPhysicalDeviceShaderDrawParameterFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceShaderDrawParameterFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceShaderDrawParameterFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceShaderDrawParameterFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceShaderDrawParameterFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceShaderDrawParameterFeatures## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceShaderDrawParameterFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        type StructFields VkPhysicalDeviceShaderDrawParameterFeatures =
-             '["sType", "pNext", "shaderDrawParameters"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceShaderDrawParameterFeatures =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceShaderDrawParameterFeatures =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceShaderDrawParameterFeatures =
-             '[VkPhysicalDeviceFeatures2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceShaderDrawParameterFeatures where
-        type FieldType "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures where
-        type FieldType "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        type FieldType "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = VkBool32
-        type FieldOptional "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             =
-             #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-        type FieldIsArray "shaderDrawParameters"
-               VkPhysicalDeviceShaderDrawParameterFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderDrawParameters"
-           VkPhysicalDeviceShaderDrawParameterFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceShaderDrawParameterFeatures, shaderDrawParameters}
-
-instance Show VkPhysicalDeviceShaderDrawParameterFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceShaderDrawParameterFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "shaderDrawParameters = " .
-                            showsPrec d (getField @"shaderDrawParameters" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2.hsc
+++ /dev/null
@@ -1,359 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2
-       (VkPhysicalDeviceSparseImageFormatInfo2(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormat           (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageTiling      (VkImageTiling)
-import           Graphics.Vulkan.Types.Enum.VkImageType        (VkImageType)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags  (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkFormat                         format;
---   >     VkImageType                      type;
---   >     VkSampleCountFlagBits            samples;
---   >     VkImageUsageFlags                usage;
---   >     VkImageTiling                    tiling;
---   > } VkPhysicalDeviceSparseImageFormatInfo2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseImageFormatInfo2.html VkPhysicalDeviceSparseImageFormatInfo2 registry at www.khronos.org>
-data VkPhysicalDeviceSparseImageFormatInfo2 = VkPhysicalDeviceSparseImageFormatInfo2## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPhysicalDeviceSparseImageFormatInfo2 where
-        (VkPhysicalDeviceSparseImageFormatInfo2## a _) ==
-          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSparseImageFormatInfo2 where
-        (VkPhysicalDeviceSparseImageFormatInfo2## a _) `compare`
-          x@(VkPhysicalDeviceSparseImageFormatInfo2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSparseImageFormatInfo2 where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceSparseImageFormatInfo2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSparseImageFormatInfo2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSparseImageFormatInfo2
-         where
-        unsafeAddr (VkPhysicalDeviceSparseImageFormatInfo2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSparseImageFormatInfo2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSparseImageFormatInfo2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSparseImageFormatInfo2 where
-        type StructFields VkPhysicalDeviceSparseImageFormatInfo2 =
-             '["sType", "pNext", "format", "type", "samples", "usage", "tiling"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSparseImageFormatInfo2 = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSparseImageFormatInfo2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkFormat
-        type FieldOptional "format" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-        type FieldIsArray "format" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageType
-        type FieldOptional "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-        type FieldIsArray "type" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, type})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "type" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, type}
-
-instance {-# OVERLAPPING #-}
-         HasField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkSampleCountFlagBits
-        type FieldOptional "samples" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "samples" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-        type FieldIsArray "samples" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "samples" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "samples" VkPhysicalDeviceSparseImageFormatInfo2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, samples}
-
-instance {-# OVERLAPPING #-}
-         HasField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageUsageFlags
-        type FieldOptional "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-        type FieldIsArray "usage" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "usage" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, usage}
-
-instance {-# OVERLAPPING #-}
-         HasField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        type FieldType "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             VkImageTiling
-        type FieldOptional "tiling" VkPhysicalDeviceSparseImageFormatInfo2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-        type FieldIsArray "tiling" VkPhysicalDeviceSparseImageFormatInfo2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "tiling" VkPhysicalDeviceSparseImageFormatInfo2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseImageFormatInfo2, tiling}
-
-instance Show VkPhysicalDeviceSparseImageFormatInfo2 where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSparseImageFormatInfo2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "type = " .
-                                  showsPrec d (getField @"type" x) .
-                                    showString ", " .
-                                      showString "samples = " .
-                                        showsPrec d (getField @"samples" x) .
-                                          showString ", " .
-                                            showString "usage = " .
-                                              showsPrec d (getField @"usage" x) .
-                                                showString ", " .
-                                                  showString "tiling = " .
-                                                    showsPrec d (getField @"tiling" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseImageFormatInfo2KHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2KHR
-       (VkPhysicalDeviceSparseImageFormatInfo2(..),
-        VkPhysicalDeviceSparseImageFormatInfo2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2
-                                                                                      (VkPhysicalDeviceSparseImageFormatInfo2 (..))
-
--- | Alias for `VkPhysicalDeviceSparseImageFormatInfo2`
-type VkPhysicalDeviceSparseImageFormatInfo2KHR =
-     VkPhysicalDeviceSparseImageFormatInfo2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSparseProperties.hsc
+++ /dev/null
@@ -1,332 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-       (VkPhysicalDeviceSparseProperties(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkBool32)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSparseProperties {
---   >     VkBool32               residencyStandard2DBlockShape;
---   >     VkBool32               residencyStandard2DMultisampleBlockShape;
---   >     VkBool32               residencyStandard3DBlockShape;
---   >     VkBool32               residencyAlignedMipSize;
---   >     VkBool32               residencyNonResidentStrict;
---   > } VkPhysicalDeviceSparseProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSparseProperties.html VkPhysicalDeviceSparseProperties registry at www.khronos.org>
-data VkPhysicalDeviceSparseProperties = VkPhysicalDeviceSparseProperties## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPhysicalDeviceSparseProperties where
-        (VkPhysicalDeviceSparseProperties## a _) ==
-          x@(VkPhysicalDeviceSparseProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSparseProperties where
-        (VkPhysicalDeviceSparseProperties## a _) `compare`
-          x@(VkPhysicalDeviceSparseProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSparseProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceSparseProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSparseProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSparseProperties where
-        unsafeAddr (VkPhysicalDeviceSparseProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSparseProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSparseProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSparseProperties where
-        type StructFields VkPhysicalDeviceSparseProperties =
-             '["residencyStandard2DBlockShape", -- ' closing tick for hsc2hs
-               "residencyStandard2DMultisampleBlockShape",
-               "residencyStandard3DBlockShape", "residencyAlignedMipSize",
-               "residencyNonResidentStrict"]
-        type CUnionType VkPhysicalDeviceSparseProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSparseProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSparseProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-        type FieldIsArray "residencyStandard2DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard2DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-        type FieldIsArray "residencyStandard2DMultisampleBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard2DMultisampleBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard2DMultisampleBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-        type FieldIsArray "residencyStandard3DBlockShape"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyStandard3DBlockShape"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyStandard3DBlockShape}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyAlignedMipSize" VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-        type FieldIsArray "residencyAlignedMipSize"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyAlignedMipSize"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyAlignedMipSize"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyAlignedMipSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        type FieldType "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = VkBool32
-        type FieldOptional "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             =
-             #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-        type FieldIsArray "residencyNonResidentStrict"
-               VkPhysicalDeviceSparseProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "residencyNonResidentStrict"
-           VkPhysicalDeviceSparseProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSparseProperties, residencyNonResidentStrict}
-
-instance Show VkPhysicalDeviceSparseProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSparseProperties {" .
-              showString "residencyStandard2DBlockShape = " .
-                showsPrec d (getField @"residencyStandard2DBlockShape" x) .
-                  showString ", " .
-                    showString "residencyStandard2DMultisampleBlockShape = " .
-                      showsPrec d
-                        (getField @"residencyStandard2DMultisampleBlockShape" x)
-                        .
-                        showString ", " .
-                          showString "residencyStandard3DBlockShape = " .
-                            showsPrec d (getField @"residencyStandard3DBlockShape" x) .
-                              showString ", " .
-                                showString "residencyAlignedMipSize = " .
-                                  showsPrec d (getField @"residencyAlignedMipSize" x) .
-                                    showString ", " .
-                                      showString "residencyNonResidentStrict = " .
-                                        showsPrec d (getField @"residencyNonResidentStrict" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSubgroupProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSubgroupProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSubgroupProperties.hsc
+++ /dev/null
@@ -1,349 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSubgroupProperties
-       (VkPhysicalDeviceSubgroupProperties(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags            (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkSubgroupFeatureFlags        (VkSubgroupFeatureFlags)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSubgroupProperties {
---   >     VkStructureType sType;
---   >     void*                   pNext;
---   >     uint32_t                      subgroupSize;
---   >     VkShaderStageFlags            supportedStages;
---   >     VkSubgroupFeatureFlags        supportedOperations;
---   >     VkBool32 quadOperationsInAllStages;
---   > } VkPhysicalDeviceSubgroupProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSubgroupProperties.html VkPhysicalDeviceSubgroupProperties registry at www.khronos.org>
-data VkPhysicalDeviceSubgroupProperties = VkPhysicalDeviceSubgroupProperties## Addr##
-                                                                              ByteArray##
-
-instance Eq VkPhysicalDeviceSubgroupProperties where
-        (VkPhysicalDeviceSubgroupProperties## a _) ==
-          x@(VkPhysicalDeviceSubgroupProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSubgroupProperties where
-        (VkPhysicalDeviceSubgroupProperties## a _) `compare`
-          x@(VkPhysicalDeviceSubgroupProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSubgroupProperties where
-        sizeOf ~_ = #{size VkPhysicalDeviceSubgroupProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSubgroupProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSubgroupProperties where
-        unsafeAddr (VkPhysicalDeviceSubgroupProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSubgroupProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSubgroupProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSubgroupProperties where
-        type StructFields VkPhysicalDeviceSubgroupProperties =
-             '["sType", "pNext", "subgroupSize", "supportedStages", -- ' closing tick for hsc2hs
-               "supportedOperations", "quadOperationsInAllStages"]
-        type CUnionType VkPhysicalDeviceSubgroupProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSubgroupProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSubgroupProperties =
-             '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "sType" VkPhysicalDeviceSubgroupProperties =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSubgroupProperties =
-             #{offset VkPhysicalDeviceSubgroupProperties, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSubgroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSubgroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "pNext" VkPhysicalDeviceSubgroupProperties =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSubgroupProperties =
-             #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSubgroupProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSubgroupProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSubgroupProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "subgroupSize" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "subgroupSize" VkPhysicalDeviceSubgroupProperties =
-             Word32
-        type FieldOptional "subgroupSize"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subgroupSize" VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-        type FieldIsArray "subgroupSize" VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subgroupSize" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subgroupSize" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, subgroupSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedStages" VkPhysicalDeviceSubgroupProperties where
-        type FieldType "supportedStages" VkPhysicalDeviceSubgroupProperties
-             = VkShaderStageFlags
-        type FieldOptional "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-        type FieldIsArray "supportedStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedStages" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedStages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedStages" VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedStages}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedOperations" VkPhysicalDeviceSubgroupProperties
-         where
-        type FieldType "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = VkSubgroupFeatureFlags
-        type FieldOptional "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-        type FieldIsArray "supportedOperations"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedOperations"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedOperations"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, supportedOperations}
-
-instance {-# OVERLAPPING #-}
-         HasField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        type FieldType "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = VkBool32
-        type FieldOptional "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             =
-             #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-        type FieldIsArray "quadOperationsInAllStages"
-               VkPhysicalDeviceSubgroupProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "quadOperationsInAllStages"
-           VkPhysicalDeviceSubgroupProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSubgroupProperties, quadOperationsInAllStages}
-
-instance Show VkPhysicalDeviceSubgroupProperties where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSubgroupProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "subgroupSize = " .
-                            showsPrec d (getField @"subgroupSize" x) .
-                              showString ", " .
-                                showString "supportedStages = " .
-                                  showsPrec d (getField @"supportedStages" x) .
-                                    showString ", " .
-                                      showString "supportedOperations = " .
-                                        showsPrec d (getField @"supportedOperations" x) .
-                                          showString ", " .
-                                            showString "quadOperationsInAllStages = " .
-                                              showsPrec d (getField @"quadOperationsInAllStages" x)
-                                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSurfaceInfo2KHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSurfaceInfo2KHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceSurfaceInfo2KHR.hsc
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSurfaceInfo2KHR
-       (VkPhysicalDeviceSurfaceInfo2KHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkSurfaceKHR)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkSurfaceKHR surface;
---   > } VkPhysicalDeviceSurfaceInfo2KHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceSurfaceInfo2KHR.html VkPhysicalDeviceSurfaceInfo2KHR registry at www.khronos.org>
-data VkPhysicalDeviceSurfaceInfo2KHR = VkPhysicalDeviceSurfaceInfo2KHR## Addr##
-                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceSurfaceInfo2KHR where
-        (VkPhysicalDeviceSurfaceInfo2KHR## a _) ==
-          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceSurfaceInfo2KHR where
-        (VkPhysicalDeviceSurfaceInfo2KHR## a _) `compare`
-          x@(VkPhysicalDeviceSurfaceInfo2KHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceSurfaceInfo2KHR where
-        sizeOf ~_ = #{size VkPhysicalDeviceSurfaceInfo2KHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceSurfaceInfo2KHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceSurfaceInfo2KHR where
-        unsafeAddr (VkPhysicalDeviceSurfaceInfo2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceSurfaceInfo2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceSurfaceInfo2KHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceSurfaceInfo2KHR where
-        type StructFields VkPhysicalDeviceSurfaceInfo2KHR =
-             '["sType", "pNext", "surface"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceSurfaceInfo2KHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "sType" VkPhysicalDeviceSurfaceInfo2KHR =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "pNext" VkPhysicalDeviceSurfaceInfo2KHR = Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceSurfaceInfo2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        type FieldType "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             VkSurfaceKHR
-        type FieldOptional "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-        type FieldIsArray "surface" VkPhysicalDeviceSurfaceInfo2KHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surface" VkPhysicalDeviceSurfaceInfo2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceSurfaceInfo2KHR, surface}
-
-instance Show VkPhysicalDeviceSurfaceInfo2KHR where
-        showsPrec d x
-          = showString "VkPhysicalDeviceSurfaceInfo2KHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "surface = " .
-                            showsPrec d (getField @"surface" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeatures.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeatures.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeatures.hsc
+++ /dev/null
@@ -1,262 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeatures
-       (VkPhysicalDeviceVariablePointerFeatures(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                        (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo        (VkDeviceCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2 (VkPhysicalDeviceFeatures2)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceVariablePointerFeatures {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         variablePointersStorageBuffer;
---   >     VkBool32                         variablePointers;
---   > } VkPhysicalDeviceVariablePointerFeatures;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVariablePointerFeatures.html VkPhysicalDeviceVariablePointerFeatures registry at www.khronos.org>
-data VkPhysicalDeviceVariablePointerFeatures = VkPhysicalDeviceVariablePointerFeatures## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkPhysicalDeviceVariablePointerFeatures where
-        (VkPhysicalDeviceVariablePointerFeatures## a _) ==
-          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceVariablePointerFeatures where
-        (VkPhysicalDeviceVariablePointerFeatures## a _) `compare`
-          x@(VkPhysicalDeviceVariablePointerFeatures## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPhysicalDeviceVariablePointerFeatures where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceVariablePointerFeatures}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceVariablePointerFeatures}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPhysicalDeviceVariablePointerFeatures
-         where
-        unsafeAddr (VkPhysicalDeviceVariablePointerFeatures## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPhysicalDeviceVariablePointerFeatures## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceVariablePointerFeatures##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPhysicalDeviceVariablePointerFeatures
-         where
-        type StructFields VkPhysicalDeviceVariablePointerFeatures =
-             '["sType", "pNext", "variablePointersStorageBuffer", -- ' closing tick for hsc2hs
-               "variablePointers"]
-        type CUnionType VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPhysicalDeviceVariablePointerFeatures = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPhysicalDeviceVariablePointerFeatures =
-             '[VkPhysicalDeviceFeatures2, VkDeviceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        type FieldType "sType" VkPhysicalDeviceVariablePointerFeatures =
-             VkStructureType
-        type FieldOptional "sType" VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPhysicalDeviceVariablePointerFeatures =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-        type FieldIsArray "sType" VkPhysicalDeviceVariablePointerFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPhysicalDeviceVariablePointerFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        type FieldType "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             Ptr Void
-        type FieldOptional "pNext" VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-        type FieldIsArray "pNext" VkPhysicalDeviceVariablePointerFeatures =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPhysicalDeviceVariablePointerFeatures where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        type FieldType "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = VkBool32
-        type FieldOptional "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-        type FieldIsArray "variablePointersStorageBuffer"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variablePointersStorageBuffer"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointersStorageBuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "variablePointers" VkPhysicalDeviceVariablePointerFeatures
-         where
-        type FieldType "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = VkBool32
-        type FieldOptional "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             =
-             #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-        type FieldIsArray "variablePointers"
-               VkPhysicalDeviceVariablePointerFeatures
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "variablePointers"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "variablePointers"
-           VkPhysicalDeviceVariablePointerFeatures
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVariablePointerFeatures, variablePointers}
-
-instance Show VkPhysicalDeviceVariablePointerFeatures where
-        showsPrec d x
-          = showString "VkPhysicalDeviceVariablePointerFeatures {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "variablePointersStorageBuffer = " .
-                            showsPrec d (getField @"variablePointersStorageBuffer" x) .
-                              showString ", " .
-                                showString "variablePointers = " .
-                                  showsPrec d (getField @"variablePointers" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeaturesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeaturesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVariablePointerFeaturesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeaturesKHR
-       (VkPhysicalDeviceVariablePointerFeatures(..),
-        VkPhysicalDeviceVariablePointerFeaturesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeatures
-                                                                                       (VkPhysicalDeviceVariablePointerFeatures (..))
-
--- | Alias for `VkPhysicalDeviceVariablePointerFeatures`
-type VkPhysicalDeviceVariablePointerFeaturesKHR =
-     VkPhysicalDeviceVariablePointerFeatures
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.hsc
+++ /dev/null
@@ -1,249 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-       (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2 (VkPhysicalDeviceProperties2)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
---   >     VkStructureType sType;
---   >     void*                  pNext;
---   >     uint32_t               maxVertexAttribDivisor;
---   > } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT.html VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT registry at www.khronos.org>
-data VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## Addr##
-                                                                                                                ByteArray##
-
-instance Eq VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) ==
-          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _)
-          `compare`
-          x@(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        sizeOf ~_
-          = #{size VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        unsafeAddr
-          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        type StructFields
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = '["sType", "pNext", "maxVertexAttribDivisor"] -- ' closing tick for hsc2hs
-        type CUnionType VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = '[VkPhysicalDeviceProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        type FieldType "sType"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
-        type FieldIsArray "sType"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        type FieldType "pNext"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxVertexAttribDivisor"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        type FieldType "maxVertexAttribDivisor"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = Word32
-        type FieldOptional "maxVertexAttribDivisor"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxVertexAttribDivisor"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             =
-             #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
-        type FieldIsArray "maxVertexAttribDivisor"
-               VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxVertexAttribDivisor"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxVertexAttribDivisor"
-           VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, maxVertexAttribDivisor}
-
-instance Show VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "maxVertexAttribDivisor = " .
-                            showsPrec d (getField @"maxVertexAttribDivisor" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCacheCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCacheCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCacheCreateInfo.hsc
+++ /dev/null
@@ -1,258 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo
-       (VkPipelineCacheCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkPipelineCacheCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineCacheCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineCacheCreateFlags    flags;
---   >     size_t                 initialDataSize;
---   >     const void*            pInitialData;
---   > } VkPipelineCacheCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineCacheCreateInfo.html VkPipelineCacheCreateInfo registry at www.khronos.org>
-data VkPipelineCacheCreateInfo = VkPipelineCacheCreateInfo## Addr##
-                                                            ByteArray##
-
-instance Eq VkPipelineCacheCreateInfo where
-        (VkPipelineCacheCreateInfo## a _) ==
-          x@(VkPipelineCacheCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineCacheCreateInfo where
-        (VkPipelineCacheCreateInfo## a _) `compare`
-          x@(VkPipelineCacheCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineCacheCreateInfo where
-        sizeOf ~_ = #{size VkPipelineCacheCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPipelineCacheCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineCacheCreateInfo where
-        unsafeAddr (VkPipelineCacheCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineCacheCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCacheCreateInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineCacheCreateInfo where
-        type StructFields VkPipelineCacheCreateInfo =
-             '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineCacheCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineCacheCreateInfo where
-        type FieldType "sType" VkPipelineCacheCreateInfo = VkStructureType
-        type FieldOptional "sType" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineCacheCreateInfo =
-             #{offset VkPipelineCacheCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCacheCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineCacheCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCacheCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineCacheCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineCacheCreateInfo where
-        type FieldType "pNext" VkPipelineCacheCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineCacheCreateInfo =
-             #{offset VkPipelineCacheCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCacheCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineCacheCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCacheCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineCacheCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineCacheCreateInfo where
-        type FieldType "flags" VkPipelineCacheCreateInfo =
-             VkPipelineCacheCreateFlags
-        type FieldOptional "flags" VkPipelineCacheCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineCacheCreateInfo =
-             #{offset VkPipelineCacheCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCacheCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineCacheCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCacheCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineCacheCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "initialDataSize" VkPipelineCacheCreateInfo where
-        type FieldType "initialDataSize" VkPipelineCacheCreateInfo = CSize
-        type FieldOptional "initialDataSize" VkPipelineCacheCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "initialDataSize" VkPipelineCacheCreateInfo =
-             #{offset VkPipelineCacheCreateInfo, initialDataSize}
-        type FieldIsArray "initialDataSize" VkPipelineCacheCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCacheCreateInfo, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "initialDataSize" VkPipelineCacheCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, initialDataSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCacheCreateInfo, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "initialDataSize" VkPipelineCacheCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "pInitialData" VkPipelineCacheCreateInfo where
-        type FieldType "pInitialData" VkPipelineCacheCreateInfo = Ptr Void
-        type FieldOptional "pInitialData" VkPipelineCacheCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pInitialData" VkPipelineCacheCreateInfo =
-             #{offset VkPipelineCacheCreateInfo, pInitialData}
-        type FieldIsArray "pInitialData" VkPipelineCacheCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCacheCreateInfo, pInitialData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pInitialData" VkPipelineCacheCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCacheCreateInfo, pInitialData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCacheCreateInfo, pInitialData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pInitialData" VkPipelineCacheCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCacheCreateInfo, pInitialData}
-
-instance Show VkPipelineCacheCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineCacheCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "initialDataSize = " .
-                                  showsPrec d (getField @"initialDataSize" x) .
-                                    showString ", " .
-                                      showString "pInitialData = " .
-                                        showsPrec d (getField @"pInitialData" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAdvancedStateCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAdvancedStateCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAdvancedStateCreateInfoEXT.hsc
+++ /dev/null
@@ -1,344 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAdvancedStateCreateInfoEXT
-       (VkPipelineColorBlendAdvancedStateCreateInfoEXT(..)) where
-import           Foreign.Storable
-                                                                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                   (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkBlendOverlapEXT
-                                                                                   (VkBlendOverlapEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-                                                                                   (VkPipelineColorBlendStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkBool32               srcPremultiplied;
---   >     VkBool32               dstPremultiplied;
---   >     VkBlendOverlapEXT      blendOverlap;
---   > } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineColorBlendAdvancedStateCreateInfoEXT.html VkPipelineColorBlendAdvancedStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineColorBlendAdvancedStateCreateInfoEXT = VkPipelineColorBlendAdvancedStateCreateInfoEXT## Addr##
-                                                                                                      ByteArray##
-
-instance Eq VkPipelineColorBlendAdvancedStateCreateInfoEXT where
-        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) ==
-          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineColorBlendAdvancedStateCreateInfoEXT where
-        (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineColorBlendAdvancedStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        sizeOf ~_
-          = #{size VkPipelineColorBlendAdvancedStateCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineColorBlendAdvancedStateCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineColorBlendAdvancedStateCreateInfoEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineColorBlendAdvancedStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendAdvancedStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type StructFields VkPipelineColorBlendAdvancedStateCreateInfoEXT =
-             '["sType", "pNext", "srcPremultiplied", "dstPremultiplied", -- ' closing tick for hsc2hs
-               "blendOverlap"]
-        type CUnionType VkPipelineColorBlendAdvancedStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineColorBlendAdvancedStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineColorBlendAdvancedStateCreateInfoEXT =
-             '[VkPipelineColorBlendStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type FieldType "sType"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             =
-             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type FieldType "pNext"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             =
-             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type FieldType "srcPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = VkBool32
-        type FieldOptional "srcPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             =
-             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
-        type FieldIsArray "srcPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, srcPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type FieldType "dstPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = VkBool32
-        type FieldOptional "dstPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             =
-             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
-        type FieldIsArray "dstPremultiplied"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstPremultiplied"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, dstPremultiplied}
-
-instance {-# OVERLAPPING #-}
-         HasField "blendOverlap"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        type FieldType "blendOverlap"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = VkBlendOverlapEXT
-        type FieldOptional "blendOverlap"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "blendOverlap"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             =
-             #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
-        type FieldIsArray "blendOverlap"
-               VkPipelineColorBlendAdvancedStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "blendOverlap"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "blendOverlap"
-           VkPipelineColorBlendAdvancedStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAdvancedStateCreateInfoEXT, blendOverlap}
-
-instance Show VkPipelineColorBlendAdvancedStateCreateInfoEXT where
-        showsPrec d x
-          = showString "VkPipelineColorBlendAdvancedStateCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "srcPremultiplied = " .
-                            showsPrec d (getField @"srcPremultiplied" x) .
-                              showString ", " .
-                                showString "dstPremultiplied = " .
-                                  showsPrec d (getField @"dstPremultiplied" x) .
-                                    showString ", " .
-                                      showString "blendOverlap = " .
-                                        showsPrec d (getField @"blendOverlap" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAttachmentState.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAttachmentState.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendAttachmentState.hsc
+++ /dev/null
@@ -1,456 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-       (VkPipelineColorBlendAttachmentState(..)) where
-import           Foreign.Storable                                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                  (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkBlendFactor         (VkBlendFactor)
-import           Graphics.Vulkan.Types.Enum.VkBlendOp             (VkBlendOp)
-import           Graphics.Vulkan.Types.Enum.VkColorComponentFlags (VkColorComponentFlags)
-import           System.IO.Unsafe                                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineColorBlendAttachmentState {
---   >     VkBool32               blendEnable;
---   >     VkBlendFactor          srcColorBlendFactor;
---   >     VkBlendFactor          dstColorBlendFactor;
---   >     VkBlendOp              colorBlendOp;
---   >     VkBlendFactor          srcAlphaBlendFactor;
---   >     VkBlendFactor          dstAlphaBlendFactor;
---   >     VkBlendOp              alphaBlendOp;
---   >     VkColorComponentFlags  colorWriteMask;
---   > } VkPipelineColorBlendAttachmentState;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineColorBlendAttachmentState.html VkPipelineColorBlendAttachmentState registry at www.khronos.org>
-data VkPipelineColorBlendAttachmentState = VkPipelineColorBlendAttachmentState## Addr##
-                                                                                ByteArray##
-
-instance Eq VkPipelineColorBlendAttachmentState where
-        (VkPipelineColorBlendAttachmentState## a _) ==
-          x@(VkPipelineColorBlendAttachmentState## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineColorBlendAttachmentState where
-        (VkPipelineColorBlendAttachmentState## a _) `compare`
-          x@(VkPipelineColorBlendAttachmentState## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineColorBlendAttachmentState where
-        sizeOf ~_ = #{size VkPipelineColorBlendAttachmentState}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineColorBlendAttachmentState}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineColorBlendAttachmentState
-         where
-        unsafeAddr (VkPipelineColorBlendAttachmentState## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineColorBlendAttachmentState## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendAttachmentState##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineColorBlendAttachmentState where
-        type StructFields VkPipelineColorBlendAttachmentState =
-             '["blendEnable", "srcColorBlendFactor", "dstColorBlendFactor", -- ' closing tick for hsc2hs
-               "colorBlendOp", "srcAlphaBlendFactor", "dstAlphaBlendFactor",
-               "alphaBlendOp", "colorWriteMask"]
-        type CUnionType VkPipelineColorBlendAttachmentState = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineColorBlendAttachmentState = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineColorBlendAttachmentState = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "blendEnable" VkPipelineColorBlendAttachmentState where
-        type FieldType "blendEnable" VkPipelineColorBlendAttachmentState =
-             VkBool32
-        type FieldOptional "blendEnable"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "blendEnable" VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, blendEnable}
-        type FieldIsArray "blendEnable" VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, blendEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "blendEnable" VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, blendEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, blendEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "blendEnable" VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, blendEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcColorBlendFactor" VkPipelineColorBlendAttachmentState
-         where
-        type FieldType "srcColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = VkBlendFactor
-        type FieldOptional "srcColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
-        type FieldIsArray "srcColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcColorBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcColorBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, srcColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstColorBlendFactor" VkPipelineColorBlendAttachmentState
-         where
-        type FieldType "dstColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = VkBlendFactor
-        type FieldOptional "dstColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
-        type FieldIsArray "dstColorBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstColorBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstColorBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, dstColorBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "colorBlendOp" VkPipelineColorBlendAttachmentState where
-        type FieldType "colorBlendOp" VkPipelineColorBlendAttachmentState =
-             VkBlendOp
-        type FieldOptional "colorBlendOp"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "colorBlendOp" VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
-        type FieldIsArray "colorBlendOp"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "colorBlendOp" VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, colorBlendOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "colorBlendOp" VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, colorBlendOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcAlphaBlendFactor" VkPipelineColorBlendAttachmentState
-         where
-        type FieldType "srcAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = VkBlendFactor
-        type FieldOptional "srcAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
-        type FieldIsArray "srcAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcAlphaBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcAlphaBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, srcAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstAlphaBlendFactor" VkPipelineColorBlendAttachmentState
-         where
-        type FieldType "dstAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = VkBlendFactor
-        type FieldOptional "dstAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
-        type FieldIsArray "dstAlphaBlendFactor"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstAlphaBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstAlphaBlendFactor"
-           VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, dstAlphaBlendFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "alphaBlendOp" VkPipelineColorBlendAttachmentState where
-        type FieldType "alphaBlendOp" VkPipelineColorBlendAttachmentState =
-             VkBlendOp
-        type FieldOptional "alphaBlendOp"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "alphaBlendOp" VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
-        type FieldIsArray "alphaBlendOp"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alphaBlendOp" VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alphaBlendOp" VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, alphaBlendOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "colorWriteMask" VkPipelineColorBlendAttachmentState where
-        type FieldType "colorWriteMask" VkPipelineColorBlendAttachmentState
-             = VkColorComponentFlags
-        type FieldOptional "colorWriteMask"
-               VkPipelineColorBlendAttachmentState
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "colorWriteMask"
-               VkPipelineColorBlendAttachmentState
-             =
-             #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
-        type FieldIsArray "colorWriteMask"
-               VkPipelineColorBlendAttachmentState
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "colorWriteMask" VkPipelineColorBlendAttachmentState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendAttachmentState, colorWriteMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "colorWriteMask" VkPipelineColorBlendAttachmentState
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendAttachmentState, colorWriteMask}
-
-instance Show VkPipelineColorBlendAttachmentState where
-        showsPrec d x
-          = showString "VkPipelineColorBlendAttachmentState {" .
-              showString "blendEnable = " .
-                showsPrec d (getField @"blendEnable" x) .
-                  showString ", " .
-                    showString "srcColorBlendFactor = " .
-                      showsPrec d (getField @"srcColorBlendFactor" x) .
-                        showString ", " .
-                          showString "dstColorBlendFactor = " .
-                            showsPrec d (getField @"dstColorBlendFactor" x) .
-                              showString ", " .
-                                showString "colorBlendOp = " .
-                                  showsPrec d (getField @"colorBlendOp" x) .
-                                    showString ", " .
-                                      showString "srcAlphaBlendFactor = " .
-                                        showsPrec d (getField @"srcAlphaBlendFactor" x) .
-                                          showString ", " .
-                                            showString "dstAlphaBlendFactor = " .
-                                              showsPrec d (getField @"dstAlphaBlendFactor" x) .
-                                                showString ", " .
-                                                  showString "alphaBlendOp = " .
-                                                    showsPrec d (getField @"alphaBlendOp" x) .
-                                                      showString ", " .
-                                                        showString "colorWriteMask = " .
-                                                          showsPrec d (getField @"colorWriteMask" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineColorBlendStateCreateInfo.hsc
+++ /dev/null
@@ -1,520 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-       (VkPipelineColorBlendStateCreateInfo(..)) where
-import           Foreign.Storable
-                                                                                   (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits
-                                                                                   (KnownNat,
-                                                                                   natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                   (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks
-                                                                                   (VkPipelineColorBlendStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkLogicOp
-                                                                                   (VkLogicOp)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-                                                                                   (VkPipelineColorBlendAttachmentState)
-import           System.IO.Unsafe
-                                                                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineColorBlendStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineColorBlendStateCreateFlags    flags;
---   >     VkBool32               logicOpEnable;
---   >     VkLogicOp              logicOp;
---   >     uint32_t               attachmentCount;
---   >     const VkPipelineColorBlendAttachmentState* pAttachments;
---   >     float                  blendConstants[4];
---   > } VkPipelineColorBlendStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineColorBlendStateCreateInfo.html VkPipelineColorBlendStateCreateInfo registry at www.khronos.org>
-data VkPipelineColorBlendStateCreateInfo = VkPipelineColorBlendStateCreateInfo## Addr##
-                                                                                ByteArray##
-
-instance Eq VkPipelineColorBlendStateCreateInfo where
-        (VkPipelineColorBlendStateCreateInfo## a _) ==
-          x@(VkPipelineColorBlendStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineColorBlendStateCreateInfo where
-        (VkPipelineColorBlendStateCreateInfo## a _) `compare`
-          x@(VkPipelineColorBlendStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineColorBlendStateCreateInfo where
-        sizeOf ~_ = #{size VkPipelineColorBlendStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineColorBlendStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineColorBlendStateCreateInfo
-         where
-        unsafeAddr (VkPipelineColorBlendStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineColorBlendStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineColorBlendStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineColorBlendStateCreateInfo where
-        type StructFields VkPipelineColorBlendStateCreateInfo =
-             '["sType", "pNext", "flags", "logicOpEnable", "logicOp", -- ' closing tick for hsc2hs
-               "attachmentCount", "pAttachments", "blendConstants"]
-        type CUnionType VkPipelineColorBlendStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineColorBlendStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineColorBlendStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "sType" VkPipelineColorBlendStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineColorBlendStateCreateInfo =
-             #{offset VkPipelineColorBlendStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineColorBlendStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineColorBlendStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "pNext" VkPipelineColorBlendStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineColorBlendStateCreateInfo =
-             #{offset VkPipelineColorBlendStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineColorBlendStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineColorBlendStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "flags" VkPipelineColorBlendStateCreateInfo =
-             VkPipelineColorBlendStateCreateFlags
-        type FieldOptional "flags" VkPipelineColorBlendStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineColorBlendStateCreateInfo =
-             #{offset VkPipelineColorBlendStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineColorBlendStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineColorBlendStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "logicOpEnable" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "logicOpEnable" VkPipelineColorBlendStateCreateInfo
-             = VkBool32
-        type FieldOptional "logicOpEnable"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "logicOpEnable"
-               VkPipelineColorBlendStateCreateInfo
-             =
-             #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
-        type FieldIsArray "logicOpEnable"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "logicOpEnable" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "logicOpEnable" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOpEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "logicOp" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "logicOp" VkPipelineColorBlendStateCreateInfo =
-             VkLogicOp
-        type FieldOptional "logicOp" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "logicOp" VkPipelineColorBlendStateCreateInfo =
-             #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
-        type FieldIsArray "logicOp" VkPipelineColorBlendStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "logicOp" VkPipelineColorBlendStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, logicOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "logicOp" VkPipelineColorBlendStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, logicOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "attachmentCount" VkPipelineColorBlendStateCreateInfo
-         where
-        type FieldType "attachmentCount"
-               VkPipelineColorBlendStateCreateInfo
-             = Word32
-        type FieldOptional "attachmentCount"
-               VkPipelineColorBlendStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "attachmentCount"
-               VkPipelineColorBlendStateCreateInfo
-             =
-             #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
-        type FieldIsArray "attachmentCount"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachmentCount" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachmentCount" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttachments" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "pAttachments" VkPipelineColorBlendStateCreateInfo =
-             Ptr VkPipelineColorBlendAttachmentState
-        type FieldOptional "pAttachments"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAttachments" VkPipelineColorBlendStateCreateInfo
-             =
-             #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
-        type FieldIsArray "pAttachments"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttachments" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineColorBlendStateCreateInfo, pAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttachments" VkPipelineColorBlendStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineColorBlendStateCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "blendConstants" VkPipelineColorBlendStateCreateInfo where
-        type FieldType "blendConstants" VkPipelineColorBlendStateCreateInfo
-             = #{type float}
-        type FieldOptional "blendConstants"
-               VkPipelineColorBlendStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "blendConstants"
-               VkPipelineColorBlendStateCreateInfo
-             =
-             #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
-        type FieldIsArray "blendConstants"
-               VkPipelineColorBlendStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "blendConstants" idx
-            VkPipelineColorBlendStateCreateInfo) =>
-         CanReadFieldArray "blendConstants" idx
-           VkPipelineColorBlendStateCreateInfo
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "blendConstants" 0
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "blendConstants" 1
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "blendConstants" 2
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "blendConstants" 3
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-        type FieldArrayLength "blendConstants"
-               VkPipelineColorBlendStateCreateInfo
-             = 4
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 4
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
-                      +
-                      sizeOf (undefined :: #{type float}) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "blendConstants" idx
-            VkPipelineColorBlendStateCreateInfo) =>
-         CanWriteFieldArray "blendConstants" idx
-           VkPipelineColorBlendStateCreateInfo
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "blendConstants" 0
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "blendConstants" 1
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "blendConstants" 2
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "blendConstants" 3
-                         VkPipelineColorBlendStateCreateInfo
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkPipelineColorBlendStateCreateInfo, blendConstants}
-                 +
-                 sizeOf (undefined :: #{type float}) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkPipelineColorBlendStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineColorBlendStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "logicOpEnable = " .
-                                  showsPrec d (getField @"logicOpEnable" x) .
-                                    showString ", " .
-                                      showString "logicOp = " .
-                                        showsPrec d (getField @"logicOp" x) .
-                                          showString ", " .
-                                            showString "attachmentCount = " .
-                                              showsPrec d (getField @"attachmentCount" x) .
-                                                showString ", " .
-                                                  showString "pAttachments = " .
-                                                    showsPrec d (getField @"pAttachments" x) .
-                                                      showString ", " .
-                                                        (showString "blendConstants = [" .
-                                                           showsPrec d
-                                                             (let s = sizeOf
-                                                                        (undefined ::
-                                                                           FieldType
-                                                                             "blendConstants"
-                                                                             VkPipelineColorBlendStateCreateInfo)
-                                                                  o = fieldOffset @"blendConstants"
-                                                                        @VkPipelineColorBlendStateCreateInfo
-                                                                  f i
-                                                                    = peekByteOff (unsafePtr x) i ::
-                                                                        IO
-                                                                          (FieldType
-                                                                             "blendConstants"
-                                                                             VkPipelineColorBlendStateCreateInfo)
-                                                                in
-                                                                unsafeDupablePerformIO . mapM f $
-                                                                  map (\ i -> o + i * s)
-                                                                    [0 .. 4 - 1])
-                                                             . showChar ']')
-                                                          . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageModulationStateCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageModulationStateCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageModulationStateCreateInfoNV.hsc
+++ /dev/null
@@ -1,445 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineCoverageModulationStateCreateInfoNV
-       (VkPipelineCoverageModulationStateCreateInfoNV(..)) where
-import           Foreign.Storable
-                                                                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                    (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks
-                                                                                    (VkPipelineCoverageModulationStateCreateFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkCoverageModulationModeNV
-                                                                                    (VkCoverageModulationModeNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-                                                                                    (VkPipelineMultisampleStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                                                                      pNext;
---   >     VkPipelineCoverageModulationStateCreateFlagsNV                   flags;
---   >     VkCoverageModulationModeNV                                                       coverageModulationMode;
---   >     VkBool32                                                                         coverageModulationTableEnable;
---   >     uint32_t                                                                         coverageModulationTableCount;
---   >     const float* pCoverageModulationTable;
---   > } VkPipelineCoverageModulationStateCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineCoverageModulationStateCreateInfoNV.html VkPipelineCoverageModulationStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineCoverageModulationStateCreateInfoNV = VkPipelineCoverageModulationStateCreateInfoNV## Addr##
-                                                                                                    ByteArray##
-
-instance Eq VkPipelineCoverageModulationStateCreateInfoNV where
-        (VkPipelineCoverageModulationStateCreateInfoNV## a _) ==
-          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineCoverageModulationStateCreateInfoNV where
-        (VkPipelineCoverageModulationStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineCoverageModulationStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        sizeOf ~_
-          = #{size VkPipelineCoverageModulationStateCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineCoverageModulationStateCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineCoverageModulationStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineCoverageModulationStateCreateInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCoverageModulationStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type StructFields VkPipelineCoverageModulationStateCreateInfoNV =
-             '["sType", "pNext", "flags", "coverageModulationMode", -- ' closing tick for hsc2hs
-               "coverageModulationTableEnable", "coverageModulationTableCount",
-               "pCoverageModulationTable"]
-        type CUnionType VkPipelineCoverageModulationStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineCoverageModulationStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineCoverageModulationStateCreateInfoNV =
-             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "sType"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
-        type FieldIsArray "sType"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "pNext"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "flags"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = VkPipelineCoverageModulationStateCreateFlagsNV
-        type FieldOptional "flags"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
-        type FieldIsArray "flags"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "coverageModulationMode"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "coverageModulationMode"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = VkCoverageModulationModeNV
-        type FieldOptional "coverageModulationMode"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "coverageModulationMode"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
-        type FieldIsArray "coverageModulationMode"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "coverageModulationMode"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "coverageModulationMode"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "coverageModulationTableEnable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "coverageModulationTableEnable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = VkBool32
-        type FieldOptional "coverageModulationTableEnable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "coverageModulationTableEnable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
-        type FieldIsArray "coverageModulationTableEnable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "coverageModulationTableEnable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "coverageModulationTableEnable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "coverageModulationTableCount"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "coverageModulationTableCount"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = Word32
-        type FieldOptional "coverageModulationTableCount"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "coverageModulationTableCount"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
-        type FieldIsArray "coverageModulationTableCount"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "coverageModulationTableCount"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "coverageModulationTableCount"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, coverageModulationTableCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCoverageModulationTable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        type FieldType "pCoverageModulationTable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = Ptr #{type float}
-        type FieldOptional "pCoverageModulationTable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pCoverageModulationTable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
-        type FieldIsArray "pCoverageModulationTable"
-               VkPipelineCoverageModulationStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCoverageModulationTable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCoverageModulationTable"
-           VkPipelineCoverageModulationStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageModulationStateCreateInfoNV, pCoverageModulationTable}
-
-instance Show VkPipelineCoverageModulationStateCreateInfoNV where
-        showsPrec d x
-          = showString "VkPipelineCoverageModulationStateCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "coverageModulationMode = " .
-                                  showsPrec d (getField @"coverageModulationMode" x) .
-                                    showString ", " .
-                                      showString "coverageModulationTableEnable = " .
-                                        showsPrec d (getField @"coverageModulationTableEnable" x) .
-                                          showString ", " .
-                                            showString "coverageModulationTableCount = " .
-                                              showsPrec d
-                                                (getField @"coverageModulationTableCount" x)
-                                                .
-                                                showString ", " .
-                                                  showString "pCoverageModulationTable = " .
-                                                    showsPrec d
-                                                      (getField @"pCoverageModulationTable" x)
-                                                      . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageToColorStateCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageToColorStateCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineCoverageToColorStateCreateInfoNV.hsc
+++ /dev/null
@@ -1,327 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineCoverageToColorStateCreateInfoNV
-       (VkPipelineCoverageToColorStateCreateInfoNV(..)) where
-import           Foreign.Storable
-                                                                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                    (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks
-                                                                                    (VkPipelineCoverageToColorStateCreateFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-                                                                                    (VkPipelineMultisampleStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*                                                                      pNext;
---   >     VkPipelineCoverageToColorStateCreateFlagsNV                    flags;
---   >     VkBool32                         coverageToColorEnable;
---   >     uint32_t         coverageToColorLocation;
---   > } VkPipelineCoverageToColorStateCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineCoverageToColorStateCreateInfoNV.html VkPipelineCoverageToColorStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineCoverageToColorStateCreateInfoNV = VkPipelineCoverageToColorStateCreateInfoNV## Addr##
-                                                                                              ByteArray##
-
-instance Eq VkPipelineCoverageToColorStateCreateInfoNV where
-        (VkPipelineCoverageToColorStateCreateInfoNV## a _) ==
-          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineCoverageToColorStateCreateInfoNV where
-        (VkPipelineCoverageToColorStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineCoverageToColorStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineCoverageToColorStateCreateInfoNV where
-        sizeOf ~_
-          = #{size VkPipelineCoverageToColorStateCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineCoverageToColorStateCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineCoverageToColorStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineCoverageToColorStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineCoverageToColorStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        type StructFields VkPipelineCoverageToColorStateCreateInfoNV =
-             '["sType", "pNext", "flags", "coverageToColorEnable", -- ' closing tick for hsc2hs
-               "coverageToColorLocation"]
-        type CUnionType VkPipelineCoverageToColorStateCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineCoverageToColorStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineCoverageToColorStateCreateInfoNV =
-             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineCoverageToColorStateCreateInfoNV where
-        type FieldType "sType" VkPipelineCoverageToColorStateCreateInfoNV =
-             VkStructureType
-        type FieldOptional "sType"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineCoverageToColorStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
-        type FieldIsArray "sType"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineCoverageToColorStateCreateInfoNV where
-        type FieldType "pNext" VkPipelineCoverageToColorStateCreateInfoNV =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineCoverageToColorStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineCoverageToColorStateCreateInfoNV where
-        type FieldType "flags" VkPipelineCoverageToColorStateCreateInfoNV =
-             VkPipelineCoverageToColorStateCreateFlagsNV
-        type FieldOptional "flags"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineCoverageToColorStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
-        type FieldIsArray "flags"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "coverageToColorEnable"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        type FieldType "coverageToColorEnable"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = VkBool32
-        type FieldOptional "coverageToColorEnable"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "coverageToColorEnable"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
-        type FieldIsArray "coverageToColorEnable"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "coverageToColorEnable"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "coverageToColorEnable"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "coverageToColorLocation"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        type FieldType "coverageToColorLocation"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = Word32
-        type FieldOptional "coverageToColorLocation"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "coverageToColorLocation"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             =
-             #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
-        type FieldIsArray "coverageToColorLocation"
-               VkPipelineCoverageToColorStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "coverageToColorLocation"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "coverageToColorLocation"
-           VkPipelineCoverageToColorStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineCoverageToColorStateCreateInfoNV, coverageToColorLocation}
-
-instance Show VkPipelineCoverageToColorStateCreateInfoNV where
-        showsPrec d x
-          = showString "VkPipelineCoverageToColorStateCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "coverageToColorEnable = " .
-                                  showsPrec d (getField @"coverageToColorEnable" x) .
-                                    showString ", " .
-                                      showString "coverageToColorLocation = " .
-                                        showsPrec d (getField @"coverageToColorLocation" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDepthStencilStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDepthStencilStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDepthStencilStateCreateInfo.hsc
+++ /dev/null
@@ -1,639 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo
-       (VkPipelineDepthStencilStateCreateInfo(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks                (VkPipelineDepthStencilStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkCompareOp        (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkStencilOpState (VkStencilOpState)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineDepthStencilStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineDepthStencilStateCreateFlags    flags;
---   >     VkBool32               depthTestEnable;
---   >     VkBool32               depthWriteEnable;
---   >     VkCompareOp            depthCompareOp;
---   >     VkBool32               depthBoundsTestEnable;
---   >     VkBool32               stencilTestEnable;
---   >     VkStencilOpState       front;
---   >     VkStencilOpState       back;
---   >     float                  minDepthBounds;
---   >     float                  maxDepthBounds;
---   > } VkPipelineDepthStencilStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineDepthStencilStateCreateInfo.html VkPipelineDepthStencilStateCreateInfo registry at www.khronos.org>
-data VkPipelineDepthStencilStateCreateInfo = VkPipelineDepthStencilStateCreateInfo## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkPipelineDepthStencilStateCreateInfo where
-        (VkPipelineDepthStencilStateCreateInfo## a _) ==
-          x@(VkPipelineDepthStencilStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineDepthStencilStateCreateInfo where
-        (VkPipelineDepthStencilStateCreateInfo## a _) `compare`
-          x@(VkPipelineDepthStencilStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineDepthStencilStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineDepthStencilStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineDepthStencilStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineDepthStencilStateCreateInfo
-         where
-        unsafeAddr (VkPipelineDepthStencilStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDepthStencilStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDepthStencilStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineDepthStencilStateCreateInfo where
-        type StructFields VkPipelineDepthStencilStateCreateInfo =
-             '["sType", "pNext", "flags", "depthTestEnable", "depthWriteEnable", -- ' closing tick for hsc2hs
-               "depthCompareOp", "depthBoundsTestEnable", "stencilTestEnable",
-               "front", "back", "minDepthBounds", "maxDepthBounds"]
-        type CUnionType VkPipelineDepthStencilStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineDepthStencilStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineDepthStencilStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineDepthStencilStateCreateInfo where
-        type FieldType "sType" VkPipelineDepthStencilStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineDepthStencilStateCreateInfo =
-             #{offset VkPipelineDepthStencilStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineDepthStencilStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineDepthStencilStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineDepthStencilStateCreateInfo where
-        type FieldType "pNext" VkPipelineDepthStencilStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineDepthStencilStateCreateInfo =
-             #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineDepthStencilStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineDepthStencilStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineDepthStencilStateCreateInfo where
-        type FieldType "flags" VkPipelineDepthStencilStateCreateInfo =
-             VkPipelineDepthStencilStateCreateFlags
-        type FieldOptional "flags" VkPipelineDepthStencilStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineDepthStencilStateCreateInfo =
-             #{offset VkPipelineDepthStencilStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineDepthStencilStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineDepthStencilStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthTestEnable" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "depthTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = VkBool32
-        type FieldOptional "depthTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
-        type FieldIsArray "depthTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthTestEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthWriteEnable" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "depthWriteEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = VkBool32
-        type FieldOptional "depthWriteEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthWriteEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
-        type FieldIsArray "depthWriteEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthWriteEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthWriteEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthWriteEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthCompareOp" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "depthCompareOp"
-               VkPipelineDepthStencilStateCreateInfo
-             = VkCompareOp
-        type FieldOptional "depthCompareOp"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthCompareOp"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
-        type FieldIsArray "depthCompareOp"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthCompareOp" VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthCompareOp"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthCompareOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBoundsTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "depthBoundsTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = VkBool32
-        type FieldOptional "depthBoundsTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBoundsTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
-        type FieldIsArray "depthBoundsTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBoundsTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBoundsTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, depthBoundsTestEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "stencilTestEnable" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "stencilTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = VkBool32
-        type FieldOptional "stencilTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stencilTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
-        type FieldIsArray "stencilTestEnable"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stencilTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stencilTestEnable"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, stencilTestEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "front" VkPipelineDepthStencilStateCreateInfo where
-        type FieldType "front" VkPipelineDepthStencilStateCreateInfo =
-             VkStencilOpState
-        type FieldOptional "front" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "front" VkPipelineDepthStencilStateCreateInfo =
-             #{offset VkPipelineDepthStencilStateCreateInfo, front}
-        type FieldIsArray "front" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, front}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "front" VkPipelineDepthStencilStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, front})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, front}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "front" VkPipelineDepthStencilStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, front}
-
-instance {-# OVERLAPPING #-}
-         HasField "back" VkPipelineDepthStencilStateCreateInfo where
-        type FieldType "back" VkPipelineDepthStencilStateCreateInfo =
-             VkStencilOpState
-        type FieldOptional "back" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "back" VkPipelineDepthStencilStateCreateInfo =
-             #{offset VkPipelineDepthStencilStateCreateInfo, back}
-        type FieldIsArray "back" VkPipelineDepthStencilStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, back}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "back" VkPipelineDepthStencilStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, back})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, back}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "back" VkPipelineDepthStencilStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, back}
-
-instance {-# OVERLAPPING #-}
-         HasField "minDepthBounds" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "minDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = #{type float}
-        type FieldOptional "minDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
-        type FieldIsArray "minDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minDepthBounds" VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minDepthBounds"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, minDepthBounds}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxDepthBounds" VkPipelineDepthStencilStateCreateInfo
-         where
-        type FieldType "maxDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = #{type float}
-        type FieldOptional "maxDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             =
-             #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
-        type FieldIsArray "maxDepthBounds"
-               VkPipelineDepthStencilStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxDepthBounds" VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxDepthBounds"
-           VkPipelineDepthStencilStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDepthStencilStateCreateInfo, maxDepthBounds}
-
-instance Show VkPipelineDepthStencilStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineDepthStencilStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "depthTestEnable = " .
-                                  showsPrec d (getField @"depthTestEnable" x) .
-                                    showString ", " .
-                                      showString "depthWriteEnable = " .
-                                        showsPrec d (getField @"depthWriteEnable" x) .
-                                          showString ", " .
-                                            showString "depthCompareOp = " .
-                                              showsPrec d (getField @"depthCompareOp" x) .
-                                                showString ", " .
-                                                  showString "depthBoundsTestEnable = " .
-                                                    showsPrec d
-                                                      (getField @"depthBoundsTestEnable" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "stencilTestEnable = " .
-                                                          showsPrec d
-                                                            (getField @"stencilTestEnable" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "front = " .
-                                                                showsPrec d (getField @"front" x) .
-                                                                  showString ", " .
-                                                                    showString "back = " .
-                                                                      showsPrec d
-                                                                        (getField @"back" x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "minDepthBounds = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"minDepthBounds"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "maxDepthBounds = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"maxDepthBounds"
-                                                                                       x)
-                                                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDiscardRectangleStateCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDiscardRectangleStateCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDiscardRectangleStateCreateInfoEXT.hsc
+++ /dev/null
@@ -1,377 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineDiscardRectangleStateCreateInfoEXT
-       (VkPipelineDiscardRectangleStateCreateInfoEXT(..)) where
-import           Foreign.Storable                                          (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                            (VkPipelineDiscardRectangleStateCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkDiscardRectangleModeEXT      (VkDiscardRectangleModeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo (VkGraphicsPipelineCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkRect2D                     (VkRect2D)
-import           System.IO.Unsafe                                          (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                                                                      pNext;
---   >     VkPipelineDiscardRectangleStateCreateFlagsEXT                    flags;
---   >     VkDiscardRectangleModeEXT                                                        discardRectangleMode;
---   >     uint32_t                                                         discardRectangleCount;
---   >     const VkRect2D* pDiscardRectangles;
---   > } VkPipelineDiscardRectangleStateCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineDiscardRectangleStateCreateInfoEXT.html VkPipelineDiscardRectangleStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineDiscardRectangleStateCreateInfoEXT = VkPipelineDiscardRectangleStateCreateInfoEXT## Addr##
-                                                                                                  ByteArray##
-
-instance Eq VkPipelineDiscardRectangleStateCreateInfoEXT where
-        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) ==
-          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineDiscardRectangleStateCreateInfoEXT where
-        (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineDiscardRectangleStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        sizeOf ~_
-          = #{size VkPipelineDiscardRectangleStateCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineDiscardRectangleStateCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineDiscardRectangleStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDiscardRectangleStateCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDiscardRectangleStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        type StructFields VkPipelineDiscardRectangleStateCreateInfoEXT =
-             '["sType", "pNext", "flags", "discardRectangleMode", -- ' closing tick for hsc2hs
-               "discardRectangleCount", "pDiscardRectangles"]
-        type CUnionType VkPipelineDiscardRectangleStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineDiscardRectangleStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineDiscardRectangleStateCreateInfoEXT =
-             '[VkGraphicsPipelineCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT where
-        type FieldType "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT where
-        type FieldType "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT where
-        type FieldType "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
-             = VkPipelineDiscardRectangleStateCreateFlagsEXT
-        type FieldOptional "flags"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
-        type FieldIsArray "flags"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "discardRectangleMode"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        type FieldType "discardRectangleMode"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = VkDiscardRectangleModeEXT
-        type FieldOptional "discardRectangleMode"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "discardRectangleMode"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
-        type FieldIsArray "discardRectangleMode"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "discardRectangleMode"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "discardRectangleMode"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "discardRectangleCount"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        type FieldType "discardRectangleCount"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = Word32
-        type FieldOptional "discardRectangleCount"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "discardRectangleCount"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
-        type FieldIsArray "discardRectangleCount"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "discardRectangleCount"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "discardRectangleCount"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, discardRectangleCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDiscardRectangles"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        type FieldType "pDiscardRectangles"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = Ptr VkRect2D
-        type FieldOptional "pDiscardRectangles"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pDiscardRectangles"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             =
-             #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
-        type FieldIsArray "pDiscardRectangles"
-               VkPipelineDiscardRectangleStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDiscardRectangles"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDiscardRectangles"
-           VkPipelineDiscardRectangleStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDiscardRectangleStateCreateInfoEXT, pDiscardRectangles}
-
-instance Show VkPipelineDiscardRectangleStateCreateInfoEXT where
-        showsPrec d x
-          = showString "VkPipelineDiscardRectangleStateCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "discardRectangleMode = " .
-                                  showsPrec d (getField @"discardRectangleMode" x) .
-                                    showString ", " .
-                                      showString "discardRectangleCount = " .
-                                        showsPrec d (getField @"discardRectangleCount" x) .
-                                          showString ", " .
-                                            showString "pDiscardRectangles = " .
-                                              showsPrec d (getField @"pDiscardRectangles" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDynamicStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDynamicStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineDynamicStateCreateInfo.hsc
+++ /dev/null
@@ -1,279 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo
-       (VkPipelineDynamicStateCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkPipelineDynamicStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkDynamicState  (VkDynamicState)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineDynamicStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineDynamicStateCreateFlags    flags;
---   >     uint32_t               dynamicStateCount;
---   >     const VkDynamicState*  pDynamicStates;
---   > } VkPipelineDynamicStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineDynamicStateCreateInfo.html VkPipelineDynamicStateCreateInfo registry at www.khronos.org>
-data VkPipelineDynamicStateCreateInfo = VkPipelineDynamicStateCreateInfo## Addr##
-                                                                          ByteArray##
-
-instance Eq VkPipelineDynamicStateCreateInfo where
-        (VkPipelineDynamicStateCreateInfo## a _) ==
-          x@(VkPipelineDynamicStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineDynamicStateCreateInfo where
-        (VkPipelineDynamicStateCreateInfo## a _) `compare`
-          x@(VkPipelineDynamicStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineDynamicStateCreateInfo where
-        sizeOf ~_ = #{size VkPipelineDynamicStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineDynamicStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineDynamicStateCreateInfo where
-        unsafeAddr (VkPipelineDynamicStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineDynamicStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineDynamicStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineDynamicStateCreateInfo where
-        type StructFields VkPipelineDynamicStateCreateInfo =
-             '["sType", "pNext", "flags", "dynamicStateCount", "pDynamicStates"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineDynamicStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineDynamicStateCreateInfo where
-        type FieldType "sType" VkPipelineDynamicStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineDynamicStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineDynamicStateCreateInfo =
-             #{offset VkPipelineDynamicStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDynamicStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineDynamicStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineDynamicStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineDynamicStateCreateInfo where
-        type FieldType "pNext" VkPipelineDynamicStateCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkPipelineDynamicStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineDynamicStateCreateInfo =
-             #{offset VkPipelineDynamicStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDynamicStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineDynamicStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineDynamicStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineDynamicStateCreateInfo where
-        type FieldType "flags" VkPipelineDynamicStateCreateInfo =
-             VkPipelineDynamicStateCreateFlags
-        type FieldOptional "flags" VkPipelineDynamicStateCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineDynamicStateCreateInfo =
-             #{offset VkPipelineDynamicStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineDynamicStateCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDynamicStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineDynamicStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineDynamicStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "dynamicStateCount" VkPipelineDynamicStateCreateInfo where
-        type FieldType "dynamicStateCount" VkPipelineDynamicStateCreateInfo
-             = Word32
-        type FieldOptional "dynamicStateCount"
-               VkPipelineDynamicStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dynamicStateCount"
-               VkPipelineDynamicStateCreateInfo
-             =
-             #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
-        type FieldIsArray "dynamicStateCount"
-               VkPipelineDynamicStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dynamicStateCount" VkPipelineDynamicStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dynamicStateCount" VkPipelineDynamicStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, dynamicStateCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDynamicStates" VkPipelineDynamicStateCreateInfo where
-        type FieldType "pDynamicStates" VkPipelineDynamicStateCreateInfo =
-             Ptr VkDynamicState
-        type FieldOptional "pDynamicStates"
-               VkPipelineDynamicStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDynamicStates" VkPipelineDynamicStateCreateInfo
-             =
-             #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
-        type FieldIsArray "pDynamicStates" VkPipelineDynamicStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDynamicStates" VkPipelineDynamicStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDynamicStates" VkPipelineDynamicStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineDynamicStateCreateInfo, pDynamicStates}
-
-instance Show VkPipelineDynamicStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineDynamicStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "dynamicStateCount = " .
-                                  showsPrec d (getField @"dynamicStateCount" x) .
-                                    showString ", " .
-                                      showString "pDynamicStates = " .
-                                        showsPrec d (getField @"pDynamicStates" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineInputAssemblyStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineInputAssemblyStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineInputAssemblyStateCreateInfo.hsc
+++ /dev/null
@@ -1,293 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo
-       (VkPipelineInputAssemblyStateCreateInfo(..)) where
-import           Foreign.Storable                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks                 (VkPipelineInputAssemblyStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkPrimitiveTopology (VkPrimitiveTopology)
-import           Graphics.Vulkan.Types.Enum.VkStructureType     (VkStructureType)
-import           System.IO.Unsafe                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineInputAssemblyStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineInputAssemblyStateCreateFlags    flags;
---   >     VkPrimitiveTopology    topology;
---   >     VkBool32               primitiveRestartEnable;
---   > } VkPipelineInputAssemblyStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineInputAssemblyStateCreateInfo.html VkPipelineInputAssemblyStateCreateInfo registry at www.khronos.org>
-data VkPipelineInputAssemblyStateCreateInfo = VkPipelineInputAssemblyStateCreateInfo## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPipelineInputAssemblyStateCreateInfo where
-        (VkPipelineInputAssemblyStateCreateInfo## a _) ==
-          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineInputAssemblyStateCreateInfo where
-        (VkPipelineInputAssemblyStateCreateInfo## a _) `compare`
-          x@(VkPipelineInputAssemblyStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineInputAssemblyStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineInputAssemblyStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineInputAssemblyStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineInputAssemblyStateCreateInfo
-         where
-        unsafeAddr (VkPipelineInputAssemblyStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineInputAssemblyStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineInputAssemblyStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineInputAssemblyStateCreateInfo where
-        type StructFields VkPipelineInputAssemblyStateCreateInfo =
-             '["sType", "pNext", "flags", "topology", "primitiveRestartEnable"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineInputAssemblyStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineInputAssemblyStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineInputAssemblyStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineInputAssemblyStateCreateInfo where
-        type FieldType "sType" VkPipelineInputAssemblyStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineInputAssemblyStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineInputAssemblyStateCreateInfo =
-             #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineInputAssemblyStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineInputAssemblyStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineInputAssemblyStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineInputAssemblyStateCreateInfo where
-        type FieldType "pNext" VkPipelineInputAssemblyStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineInputAssemblyStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineInputAssemblyStateCreateInfo =
-             #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineInputAssemblyStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineInputAssemblyStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineInputAssemblyStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineInputAssemblyStateCreateInfo where
-        type FieldType "flags" VkPipelineInputAssemblyStateCreateInfo =
-             VkPipelineInputAssemblyStateCreateFlags
-        type FieldOptional "flags" VkPipelineInputAssemblyStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineInputAssemblyStateCreateInfo =
-             #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineInputAssemblyStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineInputAssemblyStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineInputAssemblyStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "topology" VkPipelineInputAssemblyStateCreateInfo where
-        type FieldType "topology" VkPipelineInputAssemblyStateCreateInfo =
-             VkPrimitiveTopology
-        type FieldOptional "topology"
-               VkPipelineInputAssemblyStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "topology" VkPipelineInputAssemblyStateCreateInfo
-             =
-             #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
-        type FieldIsArray "topology" VkPipelineInputAssemblyStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "topology" VkPipelineInputAssemblyStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, topology})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "topology" VkPipelineInputAssemblyStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, topology}
-
-instance {-# OVERLAPPING #-}
-         HasField "primitiveRestartEnable"
-           VkPipelineInputAssemblyStateCreateInfo
-         where
-        type FieldType "primitiveRestartEnable"
-               VkPipelineInputAssemblyStateCreateInfo
-             = VkBool32
-        type FieldOptional "primitiveRestartEnable"
-               VkPipelineInputAssemblyStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "primitiveRestartEnable"
-               VkPipelineInputAssemblyStateCreateInfo
-             =
-             #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
-        type FieldIsArray "primitiveRestartEnable"
-               VkPipelineInputAssemblyStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "primitiveRestartEnable"
-           VkPipelineInputAssemblyStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "primitiveRestartEnable"
-           VkPipelineInputAssemblyStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineInputAssemblyStateCreateInfo, primitiveRestartEnable}
-
-instance Show VkPipelineInputAssemblyStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineInputAssemblyStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "topology = " .
-                                  showsPrec d (getField @"topology" x) .
-                                    showString ", " .
-                                      showString "primitiveRestartEnable = " .
-                                        showsPrec d (getField @"primitiveRestartEnable" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineLayoutCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineLayoutCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineLayoutCreateInfo.hsc
+++ /dev/null
@@ -1,350 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo
-       (VkPipelineLayoutCreateInfo(..)) where
-import           Foreign.Storable                                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                   (VkPipelineLayoutCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType       (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                    (VkDescriptorSetLayout)
-import           Graphics.Vulkan.Types.Struct.VkPushConstantRange (VkPushConstantRange)
-import           System.IO.Unsafe                                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineLayoutCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineLayoutCreateFlags    flags;
---   >     uint32_t               setLayoutCount;
---   >     const VkDescriptorSetLayout* pSetLayouts;
---   >     uint32_t               pushConstantRangeCount;
---   >     const VkPushConstantRange* pPushConstantRanges;
---   > } VkPipelineLayoutCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineLayoutCreateInfo.html VkPipelineLayoutCreateInfo registry at www.khronos.org>
-data VkPipelineLayoutCreateInfo = VkPipelineLayoutCreateInfo## Addr##
-                                                              ByteArray##
-
-instance Eq VkPipelineLayoutCreateInfo where
-        (VkPipelineLayoutCreateInfo## a _) ==
-          x@(VkPipelineLayoutCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineLayoutCreateInfo where
-        (VkPipelineLayoutCreateInfo## a _) `compare`
-          x@(VkPipelineLayoutCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineLayoutCreateInfo where
-        sizeOf ~_ = #{size VkPipelineLayoutCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPipelineLayoutCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineLayoutCreateInfo where
-        unsafeAddr (VkPipelineLayoutCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineLayoutCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineLayoutCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineLayoutCreateInfo where
-        type StructFields VkPipelineLayoutCreateInfo =
-             '["sType", "pNext", "flags", "setLayoutCount", "pSetLayouts", -- ' closing tick for hsc2hs
-               "pushConstantRangeCount", "pPushConstantRanges"]
-        type CUnionType VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineLayoutCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineLayoutCreateInfo where
-        type FieldType "sType" VkPipelineLayoutCreateInfo = VkStructureType
-        type FieldOptional "sType" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineLayoutCreateInfo where
-        type FieldType "pNext" VkPipelineLayoutCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineLayoutCreateInfo where
-        type FieldType "flags" VkPipelineLayoutCreateInfo =
-             VkPipelineLayoutCreateFlags
-        type FieldOptional "flags" VkPipelineLayoutCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "setLayoutCount" VkPipelineLayoutCreateInfo where
-        type FieldType "setLayoutCount" VkPipelineLayoutCreateInfo = Word32
-        type FieldOptional "setLayoutCount" VkPipelineLayoutCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "setLayoutCount" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
-        type FieldIsArray "setLayoutCount" VkPipelineLayoutCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "setLayoutCount" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, setLayoutCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "setLayoutCount" VkPipelineLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, setLayoutCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSetLayouts" VkPipelineLayoutCreateInfo where
-        type FieldType "pSetLayouts" VkPipelineLayoutCreateInfo =
-             Ptr VkDescriptorSetLayout
-        type FieldOptional "pSetLayouts" VkPipelineLayoutCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSetLayouts" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
-        type FieldIsArray "pSetLayouts" VkPipelineLayoutCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSetLayouts" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pSetLayouts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSetLayouts" VkPipelineLayoutCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pSetLayouts}
-
-instance {-# OVERLAPPING #-}
-         HasField "pushConstantRangeCount" VkPipelineLayoutCreateInfo where
-        type FieldType "pushConstantRangeCount" VkPipelineLayoutCreateInfo
-             = Word32
-        type FieldOptional "pushConstantRangeCount"
-               VkPipelineLayoutCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pushConstantRangeCount"
-               VkPipelineLayoutCreateInfo
-             =
-             #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
-        type FieldIsArray "pushConstantRangeCount"
-               VkPipelineLayoutCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pushConstantRangeCount" VkPipelineLayoutCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pushConstantRangeCount" VkPipelineLayoutCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pushConstantRangeCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pPushConstantRanges" VkPipelineLayoutCreateInfo where
-        type FieldType "pPushConstantRanges" VkPipelineLayoutCreateInfo =
-             Ptr VkPushConstantRange
-        type FieldOptional "pPushConstantRanges" VkPipelineLayoutCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pPushConstantRanges" VkPipelineLayoutCreateInfo =
-             #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
-        type FieldIsArray "pPushConstantRanges" VkPipelineLayoutCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pPushConstantRanges" VkPipelineLayoutCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pPushConstantRanges" VkPipelineLayoutCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineLayoutCreateInfo, pPushConstantRanges}
-
-instance Show VkPipelineLayoutCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineLayoutCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "setLayoutCount = " .
-                                  showsPrec d (getField @"setLayoutCount" x) .
-                                    showString ", " .
-                                      showString "pSetLayouts = " .
-                                        showsPrec d (getField @"pSetLayouts" x) .
-                                          showString ", " .
-                                            showString "pushConstantRangeCount = " .
-                                              showsPrec d (getField @"pushConstantRangeCount" x) .
-                                                showString ", " .
-                                                  showString "pPushConstantRanges = " .
-                                                    showsPrec d (getField @"pPushConstantRanges" x)
-                                                      . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineMultisampleStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineMultisampleStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineMultisampleStateCreateInfo.hsc
+++ /dev/null
@@ -1,497 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-       (VkPipelineMultisampleStateCreateInfo(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes               (VkBool32,
-                                                                VkSampleMask)
-import           Graphics.Vulkan.Types.Bitmasks                (VkPipelineMultisampleStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType    (VkStructureType)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineMultisampleStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineMultisampleStateCreateFlags    flags;
---   >     VkSampleCountFlagBits  rasterizationSamples;
---   >     VkBool32               sampleShadingEnable;
---   >     float                  minSampleShading;
---   >     const VkSampleMask*    pSampleMask;
---   >     VkBool32               alphaToCoverageEnable;
---   >     VkBool32               alphaToOneEnable;
---   > } VkPipelineMultisampleStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineMultisampleStateCreateInfo.html VkPipelineMultisampleStateCreateInfo registry at www.khronos.org>
-data VkPipelineMultisampleStateCreateInfo = VkPipelineMultisampleStateCreateInfo## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkPipelineMultisampleStateCreateInfo where
-        (VkPipelineMultisampleStateCreateInfo## a _) ==
-          x@(VkPipelineMultisampleStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineMultisampleStateCreateInfo where
-        (VkPipelineMultisampleStateCreateInfo## a _) `compare`
-          x@(VkPipelineMultisampleStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineMultisampleStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineMultisampleStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineMultisampleStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineMultisampleStateCreateInfo
-         where
-        unsafeAddr (VkPipelineMultisampleStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineMultisampleStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineMultisampleStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineMultisampleStateCreateInfo where
-        type StructFields VkPipelineMultisampleStateCreateInfo =
-             '["sType", "pNext", "flags", "rasterizationSamples", -- ' closing tick for hsc2hs
-               "sampleShadingEnable", "minSampleShading", "pSampleMask",
-               "alphaToCoverageEnable", "alphaToOneEnable"]
-        type CUnionType VkPipelineMultisampleStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineMultisampleStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineMultisampleStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineMultisampleStateCreateInfo where
-        type FieldType "sType" VkPipelineMultisampleStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineMultisampleStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineMultisampleStateCreateInfo =
-             #{offset VkPipelineMultisampleStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineMultisampleStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineMultisampleStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineMultisampleStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineMultisampleStateCreateInfo where
-        type FieldType "pNext" VkPipelineMultisampleStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineMultisampleStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineMultisampleStateCreateInfo =
-             #{offset VkPipelineMultisampleStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineMultisampleStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineMultisampleStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineMultisampleStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineMultisampleStateCreateInfo where
-        type FieldType "flags" VkPipelineMultisampleStateCreateInfo =
-             VkPipelineMultisampleStateCreateFlags
-        type FieldOptional "flags" VkPipelineMultisampleStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineMultisampleStateCreateInfo =
-             #{offset VkPipelineMultisampleStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineMultisampleStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineMultisampleStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineMultisampleStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "rasterizationSamples"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        type FieldType "rasterizationSamples"
-               VkPipelineMultisampleStateCreateInfo
-             = VkSampleCountFlagBits
-        type FieldOptional "rasterizationSamples"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "rasterizationSamples"
-               VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
-        type FieldIsArray "rasterizationSamples"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "rasterizationSamples"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "rasterizationSamples"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, rasterizationSamples}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleShadingEnable" VkPipelineMultisampleStateCreateInfo
-         where
-        type FieldType "sampleShadingEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = VkBool32
-        type FieldOptional "sampleShadingEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleShadingEnable"
-               VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
-        type FieldIsArray "sampleShadingEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleShadingEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleShadingEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, sampleShadingEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "minSampleShading" VkPipelineMultisampleStateCreateInfo
-         where
-        type FieldType "minSampleShading"
-               VkPipelineMultisampleStateCreateInfo
-             = #{type float}
-        type FieldOptional "minSampleShading"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minSampleShading"
-               VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
-        type FieldIsArray "minSampleShading"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minSampleShading"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minSampleShading"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, minSampleShading}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSampleMask" VkPipelineMultisampleStateCreateInfo where
-        type FieldType "pSampleMask" VkPipelineMultisampleStateCreateInfo =
-             Ptr VkSampleMask
-        type FieldOptional "pSampleMask"
-               VkPipelineMultisampleStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pSampleMask" VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
-        type FieldIsArray "pSampleMask"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSampleMask" VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSampleMask" VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, pSampleMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "alphaToCoverageEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        type FieldType "alphaToCoverageEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = VkBool32
-        type FieldOptional "alphaToCoverageEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "alphaToCoverageEnable"
-               VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
-        type FieldIsArray "alphaToCoverageEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alphaToCoverageEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alphaToCoverageEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToCoverageEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "alphaToOneEnable" VkPipelineMultisampleStateCreateInfo
-         where
-        type FieldType "alphaToOneEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = VkBool32
-        type FieldOptional "alphaToOneEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "alphaToOneEnable"
-               VkPipelineMultisampleStateCreateInfo
-             =
-             #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
-        type FieldIsArray "alphaToOneEnable"
-               VkPipelineMultisampleStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "alphaToOneEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "alphaToOneEnable"
-           VkPipelineMultisampleStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineMultisampleStateCreateInfo, alphaToOneEnable}
-
-instance Show VkPipelineMultisampleStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineMultisampleStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "rasterizationSamples = " .
-                                  showsPrec d (getField @"rasterizationSamples" x) .
-                                    showString ", " .
-                                      showString "sampleShadingEnable = " .
-                                        showsPrec d (getField @"sampleShadingEnable" x) .
-                                          showString ", " .
-                                            showString "minSampleShading = " .
-                                              showsPrec d (getField @"minSampleShading" x) .
-                                                showString ", " .
-                                                  showString "pSampleMask = " .
-                                                    showsPrec d (getField @"pSampleMask" x) .
-                                                      showString ", " .
-                                                        showString "alphaToCoverageEnable = " .
-                                                          showsPrec d
-                                                            (getField @"alphaToCoverageEnable" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "alphaToOneEnable = " .
-                                                                showsPrec d
-                                                                  (getField @"alphaToOneEnable" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationConservativeStateCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationConservativeStateCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationConservativeStateCreateInfoEXT.hsc
+++ /dev/null
@@ -1,361 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationConservativeStateCreateInfoEXT
-       (VkPipelineRasterizationConservativeStateCreateInfoEXT(..)) where
-import           Foreign.Storable
-                                                                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks
-                                                                                      (VkPipelineRasterizationConservativeStateCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkConservativeRasterizationModeEXT
-                                                                                      (VkConservativeRasterizationModeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-                                                                                      (VkPipelineRasterizationStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                                                                      pNext;
---   >     VkPipelineRasterizationConservativeStateCreateFlagsEXT           flags;
---   >     VkConservativeRasterizationModeEXT                                               conservativeRasterizationMode;
---   >     float                                                                            extraPrimitiveOverestimationSize;
---   > } VkPipelineRasterizationConservativeStateCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineRasterizationConservativeStateCreateInfoEXT.html VkPipelineRasterizationConservativeStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineRasterizationConservativeStateCreateInfoEXT = VkPipelineRasterizationConservativeStateCreateInfoEXT## Addr##
-                                                                                                                    ByteArray##
-
-instance Eq VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) ==
-          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _)
-          `compare`
-          x@(VkPipelineRasterizationConservativeStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        sizeOf ~_
-          = #{size VkPipelineRasterizationConservativeStateCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineRasterizationConservativeStateCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        unsafeAddr
-          (VkPipelineRasterizationConservativeStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineRasterizationConservativeStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationConservativeStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type StructFields
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             '["sType", "pNext", "flags", "conservativeRasterizationMode", -- ' closing tick for hsc2hs
-               "extraPrimitiveOverestimationSize"]
-        type CUnionType
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = '[VkPipelineRasterizationStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type FieldType "sType"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type FieldType "pNext"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type FieldType "flags"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = VkPipelineRasterizationConservativeStateCreateFlagsEXT
-        type FieldOptional "flags"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
-        type FieldIsArray "flags"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "conservativeRasterizationMode"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type FieldType "conservativeRasterizationMode"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = VkConservativeRasterizationModeEXT
-        type FieldOptional "conservativeRasterizationMode"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "conservativeRasterizationMode"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
-        type FieldIsArray "conservativeRasterizationMode"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conservativeRasterizationMode"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conservativeRasterizationMode"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, conservativeRasterizationMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "extraPrimitiveOverestimationSize"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        type FieldType "extraPrimitiveOverestimationSize"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = #{type float}
-        type FieldOptional "extraPrimitiveOverestimationSize"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extraPrimitiveOverestimationSize"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             =
-             #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
-        type FieldIsArray "extraPrimitiveOverestimationSize"
-               VkPipelineRasterizationConservativeStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "extraPrimitiveOverestimationSize"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "extraPrimitiveOverestimationSize"
-           VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationConservativeStateCreateInfoEXT, extraPrimitiveOverestimationSize}
-
-instance Show VkPipelineRasterizationConservativeStateCreateInfoEXT
-         where
-        showsPrec d x
-          = showString
-              "VkPipelineRasterizationConservativeStateCreateInfoEXT {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "conservativeRasterizationMode = " .
-                                  showsPrec d (getField @"conservativeRasterizationMode" x) .
-                                    showString ", " .
-                                      showString "extraPrimitiveOverestimationSize = " .
-                                        showsPrec d (getField @"extraPrimitiveOverestimationSize" x)
-                                          . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateCreateInfo.hsc
+++ /dev/null
@@ -1,706 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-       (VkPipelineRasterizationStateCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks             (VkPipelineRasterizationStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkCullModeFlags (VkCullModeFlags)
-import           Graphics.Vulkan.Types.Enum.VkFrontFace     (VkFrontFace)
-import           Graphics.Vulkan.Types.Enum.VkPolygonMode   (VkPolygonMode)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineRasterizationStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     VkPipelineRasterizationStateCreateFlags    flags;
---   >     VkBool32               depthClampEnable;
---   >     VkBool32               rasterizerDiscardEnable;
---   >     VkPolygonMode          polygonMode;
---   >     VkCullModeFlags        cullMode;
---   >     VkFrontFace            frontFace;
---   >     VkBool32               depthBiasEnable;
---   >     float                  depthBiasConstantFactor;
---   >     float                  depthBiasClamp;
---   >     float                  depthBiasSlopeFactor;
---   >     float                  lineWidth;
---   > } VkPipelineRasterizationStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineRasterizationStateCreateInfo.html VkPipelineRasterizationStateCreateInfo registry at www.khronos.org>
-data VkPipelineRasterizationStateCreateInfo = VkPipelineRasterizationStateCreateInfo## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkPipelineRasterizationStateCreateInfo where
-        (VkPipelineRasterizationStateCreateInfo## a _) ==
-          x@(VkPipelineRasterizationStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineRasterizationStateCreateInfo where
-        (VkPipelineRasterizationStateCreateInfo## a _) `compare`
-          x@(VkPipelineRasterizationStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineRasterizationStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineRasterizationStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineRasterizationStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineRasterizationStateCreateInfo
-         where
-        unsafeAddr (VkPipelineRasterizationStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineRasterizationStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineRasterizationStateCreateInfo where
-        type StructFields VkPipelineRasterizationStateCreateInfo =
-             '["sType", "pNext", "flags", "depthClampEnable", -- ' closing tick for hsc2hs
-               "rasterizerDiscardEnable", "polygonMode", "cullMode", "frontFace",
-               "depthBiasEnable", "depthBiasConstantFactor", "depthBiasClamp",
-               "depthBiasSlopeFactor", "lineWidth"]
-        type CUnionType VkPipelineRasterizationStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineRasterizationStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineRasterizationStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "sType" VkPipelineRasterizationStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineRasterizationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineRasterizationStateCreateInfo =
-             #{offset VkPipelineRasterizationStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineRasterizationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineRasterizationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineRasterizationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "pNext" VkPipelineRasterizationStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineRasterizationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineRasterizationStateCreateInfo =
-             #{offset VkPipelineRasterizationStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineRasterizationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineRasterizationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineRasterizationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "flags" VkPipelineRasterizationStateCreateInfo =
-             VkPipelineRasterizationStateCreateFlags
-        type FieldOptional "flags" VkPipelineRasterizationStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineRasterizationStateCreateInfo =
-             #{offset VkPipelineRasterizationStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineRasterizationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineRasterizationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineRasterizationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthClampEnable" VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "depthClampEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = VkBool32
-        type FieldOptional "depthClampEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthClampEnable"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
-        type FieldIsArray "depthClampEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthClampEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthClampEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthClampEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "rasterizerDiscardEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "rasterizerDiscardEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = VkBool32
-        type FieldOptional "rasterizerDiscardEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "rasterizerDiscardEnable"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
-        type FieldIsArray "rasterizerDiscardEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "rasterizerDiscardEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "rasterizerDiscardEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, rasterizerDiscardEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "polygonMode" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "polygonMode" VkPipelineRasterizationStateCreateInfo
-             = VkPolygonMode
-        type FieldOptional "polygonMode"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "polygonMode"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
-        type FieldIsArray "polygonMode"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "polygonMode" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, polygonMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "polygonMode" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, polygonMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "cullMode" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "cullMode" VkPipelineRasterizationStateCreateInfo =
-             VkCullModeFlags
-        type FieldOptional "cullMode"
-               VkPipelineRasterizationStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "cullMode" VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
-        type FieldIsArray "cullMode" VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "cullMode" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, cullMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "cullMode" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, cullMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "frontFace" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "frontFace" VkPipelineRasterizationStateCreateInfo =
-             VkFrontFace
-        type FieldOptional "frontFace"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "frontFace" VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
-        type FieldIsArray "frontFace"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "frontFace" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, frontFace})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "frontFace" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, frontFace}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBiasEnable" VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "depthBiasEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = VkBool32
-        type FieldOptional "depthBiasEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBiasEnable"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
-        type FieldIsArray "depthBiasEnable"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBiasEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBiasEnable"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBiasConstantFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "depthBiasConstantFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = #{type float}
-        type FieldOptional "depthBiasConstantFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBiasConstantFactor"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
-        type FieldIsArray "depthBiasConstantFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBiasConstantFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBiasConstantFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasConstantFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBiasClamp" VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "depthBiasClamp"
-               VkPipelineRasterizationStateCreateInfo
-             = #{type float}
-        type FieldOptional "depthBiasClamp"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBiasClamp"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
-        type FieldIsArray "depthBiasClamp"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBiasClamp"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBiasClamp"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasClamp}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthBiasSlopeFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        type FieldType "depthBiasSlopeFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = #{type float}
-        type FieldOptional "depthBiasSlopeFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthBiasSlopeFactor"
-               VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
-        type FieldIsArray "depthBiasSlopeFactor"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthBiasSlopeFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthBiasSlopeFactor"
-           VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, depthBiasSlopeFactor}
-
-instance {-# OVERLAPPING #-}
-         HasField "lineWidth" VkPipelineRasterizationStateCreateInfo where
-        type FieldType "lineWidth" VkPipelineRasterizationStateCreateInfo =
-             #{type float}
-        type FieldOptional "lineWidth"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "lineWidth" VkPipelineRasterizationStateCreateInfo
-             =
-             #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
-        type FieldIsArray "lineWidth"
-               VkPipelineRasterizationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "lineWidth" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateCreateInfo, lineWidth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "lineWidth" VkPipelineRasterizationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateCreateInfo, lineWidth}
-
-instance Show VkPipelineRasterizationStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineRasterizationStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "depthClampEnable = " .
-                                  showsPrec d (getField @"depthClampEnable" x) .
-                                    showString ", " .
-                                      showString "rasterizerDiscardEnable = " .
-                                        showsPrec d (getField @"rasterizerDiscardEnable" x) .
-                                          showString ", " .
-                                            showString "polygonMode = " .
-                                              showsPrec d (getField @"polygonMode" x) .
-                                                showString ", " .
-                                                  showString "cullMode = " .
-                                                    showsPrec d (getField @"cullMode" x) .
-                                                      showString ", " .
-                                                        showString "frontFace = " .
-                                                          showsPrec d (getField @"frontFace" x) .
-                                                            showString ", " .
-                                                              showString "depthBiasEnable = " .
-                                                                showsPrec d
-                                                                  (getField @"depthBiasEnable" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "depthBiasConstantFactor = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"depthBiasConstantFactor"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "depthBiasClamp = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"depthBiasClamp"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "depthBiasSlopeFactor = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"depthBiasSlopeFactor"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "lineWidth = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"lineWidth"
-                                                                                             x)
-                                                                                          .
-                                                                                          showChar
-                                                                                            '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateRasterizationOrderAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateRasterizationOrderAMD.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineRasterizationStateRasterizationOrderAMD.hsc
+++ /dev/null
@@ -1,247 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateRasterizationOrderAMD
-       (VkPipelineRasterizationStateRasterizationOrderAMD(..)) where
-import           Foreign.Storable
-                                                                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkRasterizationOrderAMD
-                                                                                      (VkRasterizationOrderAMD)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-                                                                                      (VkPipelineRasterizationStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkRasterizationOrderAMD          rasterizationOrder;
---   > } VkPipelineRasterizationStateRasterizationOrderAMD;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineRasterizationStateRasterizationOrderAMD.html VkPipelineRasterizationStateRasterizationOrderAMD registry at www.khronos.org>
-data VkPipelineRasterizationStateRasterizationOrderAMD = VkPipelineRasterizationStateRasterizationOrderAMD## Addr##
-                                                                                                            ByteArray##
-
-instance Eq VkPipelineRasterizationStateRasterizationOrderAMD where
-        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) ==
-          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        (VkPipelineRasterizationStateRasterizationOrderAMD## a _) `compare`
-          x@(VkPipelineRasterizationStateRasterizationOrderAMD## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        sizeOf ~_
-          = #{size VkPipelineRasterizationStateRasterizationOrderAMD}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineRasterizationStateRasterizationOrderAMD}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        unsafeAddr (VkPipelineRasterizationStateRasterizationOrderAMD## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineRasterizationStateRasterizationOrderAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineRasterizationStateRasterizationOrderAMD##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        type StructFields VkPipelineRasterizationStateRasterizationOrderAMD
-             = '["sType", "pNext", "rasterizationOrder"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineRasterizationStateRasterizationOrderAMD =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = '[VkPipelineRasterizationStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        type FieldType "sType"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             =
-             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
-        type FieldIsArray "sType"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        type FieldType "pNext"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             =
-             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "rasterizationOrder"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        type FieldType "rasterizationOrder"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = VkRasterizationOrderAMD
-        type FieldOptional "rasterizationOrder"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "rasterizationOrder"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             =
-             #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
-        type FieldIsArray "rasterizationOrder"
-               VkPipelineRasterizationStateRasterizationOrderAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "rasterizationOrder"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "rasterizationOrder"
-           VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineRasterizationStateRasterizationOrderAMD, rasterizationOrder}
-
-instance Show VkPipelineRasterizationStateRasterizationOrderAMD
-         where
-        showsPrec d x
-          = showString "VkPipelineRasterizationStateRasterizationOrderAMD {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "rasterizationOrder = " .
-                            showsPrec d (getField @"rasterizationOrder" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineSampleLocationsStateCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineSampleLocationsStateCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineSampleLocationsStateCreateInfoEXT.hsc
+++ /dev/null
@@ -1,284 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineSampleLocationsStateCreateInfoEXT
-       (VkPipelineSampleLocationsStateCreateInfoEXT(..)) where
-import           Foreign.Storable
-                                                                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes
-                                                                                    (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-                                                                                    (VkPipelineMultisampleStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT
-                                                                                    (VkSampleLocationsInfoEXT)
-import           System.IO.Unsafe
-                                                                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkBool32                         sampleLocationsEnable;
---   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
---   > } VkPipelineSampleLocationsStateCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineSampleLocationsStateCreateInfoEXT.html VkPipelineSampleLocationsStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineSampleLocationsStateCreateInfoEXT = VkPipelineSampleLocationsStateCreateInfoEXT## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPipelineSampleLocationsStateCreateInfoEXT where
-        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) ==
-          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineSampleLocationsStateCreateInfoEXT where
-        (VkPipelineSampleLocationsStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineSampleLocationsStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineSampleLocationsStateCreateInfoEXT where
-        sizeOf ~_
-          = #{size VkPipelineSampleLocationsStateCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineSampleLocationsStateCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineSampleLocationsStateCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineSampleLocationsStateCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineSampleLocationsStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        type StructFields VkPipelineSampleLocationsStateCreateInfoEXT =
-             '["sType", "pNext", "sampleLocationsEnable", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineSampleLocationsStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineSampleLocationsStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineSampleLocationsStateCreateInfoEXT =
-             '[VkPipelineMultisampleStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineSampleLocationsStateCreateInfoEXT where
-        type FieldType "sType" VkPipelineSampleLocationsStateCreateInfoEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             =
-             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT where
-        type FieldType "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             =
-             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsEnable"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        type FieldType "sampleLocationsEnable"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = VkBool32
-        type FieldOptional "sampleLocationsEnable"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsEnable"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             =
-             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
-        type FieldIsArray "sampleLocationsEnable"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsEnable"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsEnable"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsInfo"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        type FieldType "sampleLocationsInfo"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = VkSampleLocationsInfoEXT
-        type FieldOptional "sampleLocationsInfo"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsInfo"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             =
-             #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
-        type FieldIsArray "sampleLocationsInfo"
-               VkPipelineSampleLocationsStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsInfo"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsInfo"
-           VkPipelineSampleLocationsStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineSampleLocationsStateCreateInfoEXT, sampleLocationsInfo}
-
-instance Show VkPipelineSampleLocationsStateCreateInfoEXT where
-        showsPrec d x
-          = showString "VkPipelineSampleLocationsStateCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "sampleLocationsEnable = " .
-                            showsPrec d (getField @"sampleLocationsEnable" x) .
-                              showString ", " .
-                                showString "sampleLocationsInfo = " .
-                                  showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineShaderStageCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineShaderStageCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineShaderStageCreateInfo.hsc
+++ /dev/null
@@ -1,350 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo
-       (VkPipelineShaderStageCreateInfo(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                    (VkPipelineShaderStageCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags     (VkShaderStageFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                     (VkShaderModule)
-import           Graphics.Vulkan.Types.Struct.VkSpecializationInfo (VkSpecializationInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineShaderStageCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineShaderStageCreateFlags    flags;
---   >     VkShaderStageFlagBits  stage;
---   >     VkShaderModule         module;
---   >     const char*            pName;
---   >     const VkSpecializationInfo* pSpecializationInfo;
---   > } VkPipelineShaderStageCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineShaderStageCreateInfo.html VkPipelineShaderStageCreateInfo registry at www.khronos.org>
-data VkPipelineShaderStageCreateInfo = VkPipelineShaderStageCreateInfo## Addr##
-                                                                        ByteArray##
-
-instance Eq VkPipelineShaderStageCreateInfo where
-        (VkPipelineShaderStageCreateInfo## a _) ==
-          x@(VkPipelineShaderStageCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineShaderStageCreateInfo where
-        (VkPipelineShaderStageCreateInfo## a _) `compare`
-          x@(VkPipelineShaderStageCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineShaderStageCreateInfo where
-        sizeOf ~_ = #{size VkPipelineShaderStageCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineShaderStageCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineShaderStageCreateInfo where
-        unsafeAddr (VkPipelineShaderStageCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineShaderStageCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineShaderStageCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineShaderStageCreateInfo where
-        type StructFields VkPipelineShaderStageCreateInfo =
-             '["sType", "pNext", "flags", "stage", "module", "pName", -- ' closing tick for hsc2hs
-               "pSpecializationInfo"]
-        type CUnionType VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineShaderStageCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineShaderStageCreateInfo where
-        type FieldType "sType" VkPipelineShaderStageCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineShaderStageCreateInfo where
-        type FieldType "pNext" VkPipelineShaderStageCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineShaderStageCreateInfo where
-        type FieldType "flags" VkPipelineShaderStageCreateInfo =
-             VkPipelineShaderStageCreateFlags
-        type FieldOptional "flags" VkPipelineShaderStageCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "stage" VkPipelineShaderStageCreateInfo where
-        type FieldType "stage" VkPipelineShaderStageCreateInfo =
-             VkShaderStageFlagBits
-        type FieldOptional "stage" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stage" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, stage}
-        type FieldIsArray "stage" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stage" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, stage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stage" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, stage}
-
-instance {-# OVERLAPPING #-}
-         HasField "module" VkPipelineShaderStageCreateInfo where
-        type FieldType "module" VkPipelineShaderStageCreateInfo =
-             VkShaderModule
-        type FieldOptional "module" VkPipelineShaderStageCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "module" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, module}
-        type FieldIsArray "module" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, module}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "module" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, module})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, module}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "module" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, module}
-
-instance {-# OVERLAPPING #-}
-         HasField "pName" VkPipelineShaderStageCreateInfo where
-        type FieldType "pName" VkPipelineShaderStageCreateInfo = CString
-        type FieldOptional "pName" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pName" VkPipelineShaderStageCreateInfo =
-             #{offset VkPipelineShaderStageCreateInfo, pName}
-        type FieldIsArray "pName" VkPipelineShaderStageCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, pName}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pName" VkPipelineShaderStageCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pName})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pName}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pName" VkPipelineShaderStageCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pName}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
-         where
-        type FieldType "pSpecializationInfo"
-               VkPipelineShaderStageCreateInfo
-             = Ptr VkSpecializationInfo
-        type FieldOptional "pSpecializationInfo"
-               VkPipelineShaderStageCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pSpecializationInfo"
-               VkPipelineShaderStageCreateInfo
-             =
-             #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
-        type FieldIsArray "pSpecializationInfo"
-               VkPipelineShaderStageCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSpecializationInfo" VkPipelineShaderStageCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineShaderStageCreateInfo, pSpecializationInfo}
-
-instance Show VkPipelineShaderStageCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineShaderStageCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "stage = " .
-                                  showsPrec d (getField @"stage" x) .
-                                    showString ", " .
-                                      showString "module = " .
-                                        showsPrec d (getField @"module" x) .
-                                          showString ", " .
-                                            showString "pName = " .
-                                              showsPrec d (getField @"pName" x) .
-                                                showString ", " .
-                                                  showString "pSpecializationInfo = " .
-                                                    showsPrec d (getField @"pSpecializationInfo" x)
-                                                      . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfo.hsc
+++ /dev/null
@@ -1,247 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfo
-       (VkPipelineTessellationDomainOriginStateCreateInfo(..)) where
-import           Foreign.Storable
-                                                                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                     (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin
-                                                                                     (VkTessellationDomainOrigin)
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-                                                                                     (VkPipelineTessellationStateCreateInfo)
-import           System.IO.Unsafe
-                                                                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkTessellationDomainOrigin    domainOrigin;
---   > } VkPipelineTessellationDomainOriginStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineTessellationDomainOriginStateCreateInfo.html VkPipelineTessellationDomainOriginStateCreateInfo registry at www.khronos.org>
-data VkPipelineTessellationDomainOriginStateCreateInfo = VkPipelineTessellationDomainOriginStateCreateInfo## Addr##
-                                                                                                            ByteArray##
-
-instance Eq VkPipelineTessellationDomainOriginStateCreateInfo where
-        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) ==
-          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        (VkPipelineTessellationDomainOriginStateCreateInfo## a _) `compare`
-          x@(VkPipelineTessellationDomainOriginStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        sizeOf ~_
-          = #{size VkPipelineTessellationDomainOriginStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineTessellationDomainOriginStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        unsafeAddr (VkPipelineTessellationDomainOriginStateCreateInfo## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineTessellationDomainOriginStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineTessellationDomainOriginStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        type StructFields VkPipelineTessellationDomainOriginStateCreateInfo
-             = '["sType", "pNext", "domainOrigin"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineTessellationDomainOriginStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type StructExtends
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = '[VkPipelineTessellationStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        type FieldType "sType"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             =
-             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
-        type FieldIsArray "sType"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        type FieldType "pNext"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             =
-             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "domainOrigin"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        type FieldType "domainOrigin"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = VkTessellationDomainOrigin
-        type FieldOptional "domainOrigin"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "domainOrigin"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             =
-             #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
-        type FieldIsArray "domainOrigin"
-               VkPipelineTessellationDomainOriginStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "domainOrigin"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "domainOrigin"
-           VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationDomainOriginStateCreateInfo, domainOrigin}
-
-instance Show VkPipelineTessellationDomainOriginStateCreateInfo
-         where
-        showsPrec d x
-          = showString "VkPipelineTessellationDomainOriginStateCreateInfo {"
-              .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "domainOrigin = " .
-                            showsPrec d (getField @"domainOrigin" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationDomainOriginStateCreateInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfoKHR
-       (VkPipelineTessellationDomainOriginStateCreateInfo(..),
-        VkPipelineTessellationDomainOriginStateCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfo
-                                                                                                 (VkPipelineTessellationDomainOriginStateCreateInfo (..))
-
--- | Alias for `VkPipelineTessellationDomainOriginStateCreateInfo`
-type VkPipelineTessellationDomainOriginStateCreateInfoKHR =
-     VkPipelineTessellationDomainOriginStateCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineTessellationStateCreateInfo.hsc
+++ /dev/null
@@ -1,246 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-       (VkPipelineTessellationStateCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkPipelineTessellationStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineTessellationStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineTessellationStateCreateFlags    flags;
---   >     uint32_t               patchControlPoints;
---   > } VkPipelineTessellationStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineTessellationStateCreateInfo.html VkPipelineTessellationStateCreateInfo registry at www.khronos.org>
-data VkPipelineTessellationStateCreateInfo = VkPipelineTessellationStateCreateInfo## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkPipelineTessellationStateCreateInfo where
-        (VkPipelineTessellationStateCreateInfo## a _) ==
-          x@(VkPipelineTessellationStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineTessellationStateCreateInfo where
-        (VkPipelineTessellationStateCreateInfo## a _) `compare`
-          x@(VkPipelineTessellationStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineTessellationStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineTessellationStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineTessellationStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineTessellationStateCreateInfo
-         where
-        unsafeAddr (VkPipelineTessellationStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineTessellationStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineTessellationStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineTessellationStateCreateInfo where
-        type StructFields VkPipelineTessellationStateCreateInfo =
-             '["sType", "pNext", "flags", "patchControlPoints"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineTessellationStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineTessellationStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineTessellationStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineTessellationStateCreateInfo where
-        type FieldType "sType" VkPipelineTessellationStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineTessellationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineTessellationStateCreateInfo =
-             #{offset VkPipelineTessellationStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineTessellationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineTessellationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineTessellationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineTessellationStateCreateInfo where
-        type FieldType "pNext" VkPipelineTessellationStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineTessellationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineTessellationStateCreateInfo =
-             #{offset VkPipelineTessellationStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineTessellationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineTessellationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineTessellationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineTessellationStateCreateInfo where
-        type FieldType "flags" VkPipelineTessellationStateCreateInfo =
-             VkPipelineTessellationStateCreateFlags
-        type FieldOptional "flags" VkPipelineTessellationStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineTessellationStateCreateInfo =
-             #{offset VkPipelineTessellationStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineTessellationStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineTessellationStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineTessellationStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "patchControlPoints" VkPipelineTessellationStateCreateInfo
-         where
-        type FieldType "patchControlPoints"
-               VkPipelineTessellationStateCreateInfo
-             = Word32
-        type FieldOptional "patchControlPoints"
-               VkPipelineTessellationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "patchControlPoints"
-               VkPipelineTessellationStateCreateInfo
-             =
-             #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
-        type FieldIsArray "patchControlPoints"
-               VkPipelineTessellationStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "patchControlPoints"
-           VkPipelineTessellationStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "patchControlPoints"
-           VkPipelineTessellationStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineTessellationStateCreateInfo, patchControlPoints}
-
-instance Show VkPipelineTessellationStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineTessellationStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "patchControlPoints = " .
-                                  showsPrec d (getField @"patchControlPoints" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputDivisorStateCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputDivisorStateCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputDivisorStateCreateInfoEXT.hsc
+++ /dev/null
@@ -1,292 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputDivisorStateCreateInfoEXT
-       (VkPipelineVertexInputDivisorStateCreateInfoEXT(..)) where
-import           Foreign.Storable
-                                                                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType
-                                                                                         (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-                                                                                         (VkPipelineVertexInputStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDivisorDescriptionEXT
-                                                                                         (VkVertexInputBindingDivisorDescriptionEXT)
-import           System.IO.Unsafe
-                                                                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*   pNext;
---   >     uint32_t                            vertexBindingDivisorCount;
---   >     const VkVertexInputBindingDivisorDescriptionEXT*      pVertexBindingDivisors;
---   > } VkPipelineVertexInputDivisorStateCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineVertexInputDivisorStateCreateInfoEXT.html VkPipelineVertexInputDivisorStateCreateInfoEXT registry at www.khronos.org>
-data VkPipelineVertexInputDivisorStateCreateInfoEXT = VkPipelineVertexInputDivisorStateCreateInfoEXT## Addr##
-                                                                                                      ByteArray##
-
-instance Eq VkPipelineVertexInputDivisorStateCreateInfoEXT where
-        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) ==
-          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineVertexInputDivisorStateCreateInfoEXT where
-        (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _) `compare`
-          x@(VkPipelineVertexInputDivisorStateCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        sizeOf ~_
-          = #{size VkPipelineVertexInputDivisorStateCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineVertexInputDivisorStateCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        unsafeAddr (VkPipelineVertexInputDivisorStateCreateInfoEXT## a _)
-          = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkPipelineVertexInputDivisorStateCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineVertexInputDivisorStateCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        type StructFields VkPipelineVertexInputDivisorStateCreateInfoEXT =
-             '["sType", "pNext", "vertexBindingDivisorCount", -- ' closing tick for hsc2hs
-               "pVertexBindingDivisors"]
-        type CUnionType VkPipelineVertexInputDivisorStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineVertexInputDivisorStateCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineVertexInputDivisorStateCreateInfoEXT =
-             '[VkPipelineVertexInputStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        type FieldType "sType"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             =
-             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        type FieldType "pNext"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             =
-             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexBindingDivisorCount"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        type FieldType "vertexBindingDivisorCount"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = Word32
-        type FieldOptional "vertexBindingDivisorCount"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "vertexBindingDivisorCount"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             =
-             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
-        type FieldIsArray "vertexBindingDivisorCount"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexBindingDivisorCount"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexBindingDivisorCount"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, vertexBindingDivisorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pVertexBindingDivisors"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        type FieldType "pVertexBindingDivisors"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = Ptr VkVertexInputBindingDivisorDescriptionEXT
-        type FieldOptional "pVertexBindingDivisors"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pVertexBindingDivisors"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             =
-             #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
-        type FieldIsArray "pVertexBindingDivisors"
-               VkPipelineVertexInputDivisorStateCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pVertexBindingDivisors"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pVertexBindingDivisors"
-           VkPipelineVertexInputDivisorStateCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputDivisorStateCreateInfoEXT, pVertexBindingDivisors}
-
-instance Show VkPipelineVertexInputDivisorStateCreateInfoEXT where
-        showsPrec d x
-          = showString "VkPipelineVertexInputDivisorStateCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "vertexBindingDivisorCount = " .
-                            showsPrec d (getField @"vertexBindingDivisorCount" x) .
-                              showString ", " .
-                                showString "pVertexBindingDivisors = " .
-                                  showsPrec d (getField @"pVertexBindingDivisors" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineVertexInputStateCreateInfo.hsc
+++ /dev/null
@@ -1,405 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-       (VkPipelineVertexInputStateCreateInfo(..)) where
-import           Foreign.Storable                                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                                 (VkPipelineVertexInputStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription (VkVertexInputAttributeDescription)
-import           Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription   (VkVertexInputBindingDescription)
-import           System.IO.Unsafe                                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineVertexInputStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineVertexInputStateCreateFlags    flags;
---   >     uint32_t               vertexBindingDescriptionCount;
---   >     const VkVertexInputBindingDescription* pVertexBindingDescriptions;
---   >     uint32_t               vertexAttributeDescriptionCount;
---   >     const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
---   > } VkPipelineVertexInputStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineVertexInputStateCreateInfo.html VkPipelineVertexInputStateCreateInfo registry at www.khronos.org>
-data VkPipelineVertexInputStateCreateInfo = VkPipelineVertexInputStateCreateInfo## Addr##
-                                                                                  ByteArray##
-
-instance Eq VkPipelineVertexInputStateCreateInfo where
-        (VkPipelineVertexInputStateCreateInfo## a _) ==
-          x@(VkPipelineVertexInputStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineVertexInputStateCreateInfo where
-        (VkPipelineVertexInputStateCreateInfo## a _) `compare`
-          x@(VkPipelineVertexInputStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineVertexInputStateCreateInfo where
-        sizeOf ~_
-          = #{size VkPipelineVertexInputStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineVertexInputStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineVertexInputStateCreateInfo
-         where
-        unsafeAddr (VkPipelineVertexInputStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineVertexInputStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineVertexInputStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineVertexInputStateCreateInfo where
-        type StructFields VkPipelineVertexInputStateCreateInfo =
-             '["sType", "pNext", "flags", "vertexBindingDescriptionCount", -- ' closing tick for hsc2hs
-               "pVertexBindingDescriptions", "vertexAttributeDescriptionCount",
-               "pVertexAttributeDescriptions"]
-        type CUnionType VkPipelineVertexInputStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineVertexInputStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineVertexInputStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineVertexInputStateCreateInfo where
-        type FieldType "sType" VkPipelineVertexInputStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineVertexInputStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineVertexInputStateCreateInfo =
-             #{offset VkPipelineVertexInputStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineVertexInputStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineVertexInputStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineVertexInputStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineVertexInputStateCreateInfo where
-        type FieldType "pNext" VkPipelineVertexInputStateCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkPipelineVertexInputStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineVertexInputStateCreateInfo =
-             #{offset VkPipelineVertexInputStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineVertexInputStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineVertexInputStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineVertexInputStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineVertexInputStateCreateInfo where
-        type FieldType "flags" VkPipelineVertexInputStateCreateInfo =
-             VkPipelineVertexInputStateCreateFlags
-        type FieldOptional "flags" VkPipelineVertexInputStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineVertexInputStateCreateInfo =
-             #{offset VkPipelineVertexInputStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineVertexInputStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineVertexInputStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineVertexInputStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexBindingDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        type FieldType "vertexBindingDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = Word32
-        type FieldOptional "vertexBindingDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "vertexBindingDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             =
-             #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
-        type FieldIsArray "vertexBindingDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexBindingDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexBindingDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexBindingDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pVertexBindingDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        type FieldType "pVertexBindingDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = Ptr VkVertexInputBindingDescription
-        type FieldOptional "pVertexBindingDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pVertexBindingDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             =
-             #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
-        type FieldIsArray "pVertexBindingDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pVertexBindingDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pVertexBindingDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexBindingDescriptions}
-
-instance {-# OVERLAPPING #-}
-         HasField "vertexAttributeDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        type FieldType "vertexAttributeDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = Word32
-        type FieldOptional "vertexAttributeDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "vertexAttributeDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             =
-             #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
-        type FieldIsArray "vertexAttributeDescriptionCount"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "vertexAttributeDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "vertexAttributeDescriptionCount"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, vertexAttributeDescriptionCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pVertexAttributeDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        type FieldType "pVertexAttributeDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = Ptr VkVertexInputAttributeDescription
-        type FieldOptional "pVertexAttributeDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pVertexAttributeDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             =
-             #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
-        type FieldIsArray "pVertexAttributeDescriptions"
-               VkPipelineVertexInputStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pVertexAttributeDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pVertexAttributeDescriptions"
-           VkPipelineVertexInputStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineVertexInputStateCreateInfo, pVertexAttributeDescriptions}
-
-instance Show VkPipelineVertexInputStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineVertexInputStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "vertexBindingDescriptionCount = " .
-                                  showsPrec d (getField @"vertexBindingDescriptionCount" x) .
-                                    showString ", " .
-                                      showString "pVertexBindingDescriptions = " .
-                                        showsPrec d (getField @"pVertexBindingDescriptions" x) .
-                                          showString ", " .
-                                            showString "vertexAttributeDescriptionCount = " .
-                                              showsPrec d
-                                                (getField @"vertexAttributeDescriptionCount" x)
-                                                .
-                                                showString ", " .
-                                                  showString "pVertexAttributeDescriptions = " .
-                                                    showsPrec d
-                                                      (getField @"pVertexAttributeDescriptions" x)
-                                                      . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportStateCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportStateCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportStateCreateInfo.hsc
+++ /dev/null
@@ -1,359 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-       (VkPipelineViewportStateCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkPipelineViewportStateCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkRect2D      (VkRect2D)
-import           Graphics.Vulkan.Types.Struct.VkViewport    (VkViewport)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineViewportStateCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineViewportStateCreateFlags    flags;
---   >     uint32_t               viewportCount;
---   >     const VkViewport*      pViewports;
---   >     uint32_t               scissorCount;
---   >     const VkRect2D*        pScissors;
---   > } VkPipelineViewportStateCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineViewportStateCreateInfo.html VkPipelineViewportStateCreateInfo registry at www.khronos.org>
-data VkPipelineViewportStateCreateInfo = VkPipelineViewportStateCreateInfo## Addr##
-                                                                            ByteArray##
-
-instance Eq VkPipelineViewportStateCreateInfo where
-        (VkPipelineViewportStateCreateInfo## a _) ==
-          x@(VkPipelineViewportStateCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineViewportStateCreateInfo where
-        (VkPipelineViewportStateCreateInfo## a _) `compare`
-          x@(VkPipelineViewportStateCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineViewportStateCreateInfo where
-        sizeOf ~_ = #{size VkPipelineViewportStateCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineViewportStateCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPipelineViewportStateCreateInfo where
-        unsafeAddr (VkPipelineViewportStateCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportStateCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportStateCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineViewportStateCreateInfo where
-        type StructFields VkPipelineViewportStateCreateInfo =
-             '["sType", "pNext", "flags", "viewportCount", "pViewports", -- ' closing tick for hsc2hs
-               "scissorCount", "pScissors"]
-        type CUnionType VkPipelineViewportStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineViewportStateCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineViewportStateCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineViewportStateCreateInfo where
-        type FieldType "sType" VkPipelineViewportStateCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, sType}
-        type FieldIsArray "sType" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineViewportStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineViewportStateCreateInfo where
-        type FieldType "pNext" VkPipelineViewportStateCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, pNext}
-        type FieldIsArray "pNext" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineViewportStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineViewportStateCreateInfo where
-        type FieldType "flags" VkPipelineViewportStateCreateInfo =
-             VkPipelineViewportStateCreateFlags
-        type FieldOptional "flags" VkPipelineViewportStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, flags}
-        type FieldIsArray "flags" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineViewportStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportCount" VkPipelineViewportStateCreateInfo where
-        type FieldType "viewportCount" VkPipelineViewportStateCreateInfo =
-             Word32
-        type FieldOptional "viewportCount"
-               VkPipelineViewportStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportCount" VkPipelineViewportStateCreateInfo
-             =
-             #{offset VkPipelineViewportStateCreateInfo, viewportCount}
-        type FieldIsArray "viewportCount" VkPipelineViewportStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportCount" VkPipelineViewportStateCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, viewportCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportCount" VkPipelineViewportStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewports" VkPipelineViewportStateCreateInfo where
-        type FieldType "pViewports" VkPipelineViewportStateCreateInfo =
-             Ptr VkViewport
-        type FieldOptional "pViewports" VkPipelineViewportStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pViewports" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, pViewports}
-        type FieldIsArray "pViewports" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, pViewports}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewports" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pViewports})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pViewports}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewports" VkPipelineViewportStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pViewports}
-
-instance {-# OVERLAPPING #-}
-         HasField "scissorCount" VkPipelineViewportStateCreateInfo where
-        type FieldType "scissorCount" VkPipelineViewportStateCreateInfo =
-             Word32
-        type FieldOptional "scissorCount" VkPipelineViewportStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "scissorCount" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, scissorCount}
-        type FieldIsArray "scissorCount" VkPipelineViewportStateCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, scissorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "scissorCount" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, scissorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, scissorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "scissorCount" VkPipelineViewportStateCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, scissorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pScissors" VkPipelineViewportStateCreateInfo where
-        type FieldType "pScissors" VkPipelineViewportStateCreateInfo =
-             Ptr VkRect2D
-        type FieldOptional "pScissors" VkPipelineViewportStateCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pScissors" VkPipelineViewportStateCreateInfo =
-             #{offset VkPipelineViewportStateCreateInfo, pScissors}
-        type FieldIsArray "pScissors" VkPipelineViewportStateCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportStateCreateInfo, pScissors}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pScissors" VkPipelineViewportStateCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportStateCreateInfo, pScissors})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportStateCreateInfo, pScissors}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pScissors" VkPipelineViewportStateCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportStateCreateInfo, pScissors}
-
-instance Show VkPipelineViewportStateCreateInfo where
-        showsPrec d x
-          = showString "VkPipelineViewportStateCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "viewportCount = " .
-                                  showsPrec d (getField @"viewportCount" x) .
-                                    showString ", " .
-                                      showString "pViewports = " .
-                                        showsPrec d (getField @"pViewports" x) .
-                                          showString ", " .
-                                            showString "scissorCount = " .
-                                              showsPrec d (getField @"scissorCount" x) .
-                                                showString ", " .
-                                                  showString "pScissors = " .
-                                                    showsPrec d (getField @"pScissors" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportSwizzleStateCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportSwizzleStateCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportSwizzleStateCreateInfoNV.hsc
+++ /dev/null
@@ -1,318 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineViewportSwizzleStateCreateInfoNV
-       (VkPipelineViewportSwizzleStateCreateInfoNV(..)) where
-import           Foreign.Storable                                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                                 (VkPipelineViewportSwizzleStateCreateFlagsNV)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo (VkPipelineViewportStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkViewportSwizzleNV               (VkViewportSwizzleNV)
-import           System.IO.Unsafe                                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkPipelineViewportSwizzleStateCreateFlagsNV    flags;
---   >     uint32_t               viewportCount;
---   >     const VkViewportSwizzleNV*      pViewportSwizzles;
---   > } VkPipelineViewportSwizzleStateCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineViewportSwizzleStateCreateInfoNV.html VkPipelineViewportSwizzleStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineViewportSwizzleStateCreateInfoNV = VkPipelineViewportSwizzleStateCreateInfoNV## Addr##
-                                                                                              ByteArray##
-
-instance Eq VkPipelineViewportSwizzleStateCreateInfoNV where
-        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) ==
-          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineViewportSwizzleStateCreateInfoNV where
-        (VkPipelineViewportSwizzleStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineViewportSwizzleStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineViewportSwizzleStateCreateInfoNV where
-        sizeOf ~_
-          = #{size VkPipelineViewportSwizzleStateCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineViewportSwizzleStateCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineViewportSwizzleStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportSwizzleStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportSwizzleStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        type StructFields VkPipelineViewportSwizzleStateCreateInfoNV =
-             '["sType", "pNext", "flags", "viewportCount", "pViewportSwizzles"] -- ' closing tick for hsc2hs
-        type CUnionType VkPipelineViewportSwizzleStateCreateInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineViewportSwizzleStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineViewportSwizzleStateCreateInfoNV =
-             '[VkPipelineViewportStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineViewportSwizzleStateCreateInfoNV where
-        type FieldType "sType" VkPipelineViewportSwizzleStateCreateInfoNV =
-             VkStructureType
-        type FieldOptional "sType"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPipelineViewportSwizzleStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
-        type FieldIsArray "sType"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV where
-        type FieldType "pNext" VkPipelineViewportSwizzleStateCreateInfoNV =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkPipelineViewportSwizzleStateCreateInfoNV where
-        type FieldType "flags" VkPipelineViewportSwizzleStateCreateInfoNV =
-             VkPipelineViewportSwizzleStateCreateFlagsNV
-        type FieldOptional "flags"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkPipelineViewportSwizzleStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
-        type FieldIsArray "flags"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportCount" VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        type FieldType "viewportCount"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = Word32
-        type FieldOptional "viewportCount"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportCount"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
-        type FieldIsArray "viewportCount"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportCount"
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportCount"
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewportSwizzles"
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        type FieldType "pViewportSwizzles"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = Ptr VkViewportSwizzleNV
-        type FieldOptional "pViewportSwizzles"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pViewportSwizzles"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
-        type FieldIsArray "pViewportSwizzles"
-               VkPipelineViewportSwizzleStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewportSwizzles"
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewportSwizzles"
-           VkPipelineViewportSwizzleStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportSwizzleStateCreateInfoNV, pViewportSwizzles}
-
-instance Show VkPipelineViewportSwizzleStateCreateInfoNV where
-        showsPrec d x
-          = showString "VkPipelineViewportSwizzleStateCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "viewportCount = " .
-                                  showsPrec d (getField @"viewportCount" x) .
-                                    showString ", " .
-                                      showString "pViewportSwizzles = " .
-                                        showsPrec d (getField @"pViewportSwizzles" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportWScalingStateCreateInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportWScalingStateCreateInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPipelineViewportWScalingStateCreateInfoNV.hsc
+++ /dev/null
@@ -1,330 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPipelineViewportWScalingStateCreateInfoNV
-       (VkPipelineViewportWScalingStateCreateInfoNV(..)) where
-import           Foreign.Storable                                               (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                                (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                     (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo (VkPipelineViewportStateCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkViewportWScalingNV              (VkViewportWScalingNV)
-import           System.IO.Unsafe                                               (unsafeDupablePerformIO)
-
--- | > typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkBool32               viewportWScalingEnable;
---   >     uint32_t               viewportCount;
---   >     const VkViewportWScalingNV*      pViewportWScalings;
---   > } VkPipelineViewportWScalingStateCreateInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPipelineViewportWScalingStateCreateInfoNV.html VkPipelineViewportWScalingStateCreateInfoNV registry at www.khronos.org>
-data VkPipelineViewportWScalingStateCreateInfoNV = VkPipelineViewportWScalingStateCreateInfoNV## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkPipelineViewportWScalingStateCreateInfoNV where
-        (VkPipelineViewportWScalingStateCreateInfoNV## a _) ==
-          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPipelineViewportWScalingStateCreateInfoNV where
-        (VkPipelineViewportWScalingStateCreateInfoNV## a _) `compare`
-          x@(VkPipelineViewportWScalingStateCreateInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPipelineViewportWScalingStateCreateInfoNV where
-        sizeOf ~_
-          = #{size VkPipelineViewportWScalingStateCreateInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkPipelineViewportWScalingStateCreateInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        unsafeAddr (VkPipelineViewportWScalingStateCreateInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPipelineViewportWScalingStateCreateInfoNV## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPipelineViewportWScalingStateCreateInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        type StructFields VkPipelineViewportWScalingStateCreateInfoNV =
-             '["sType", "pNext", "viewportWScalingEnable", "viewportCount", -- ' closing tick for hsc2hs
-               "pViewportWScalings"]
-        type CUnionType VkPipelineViewportWScalingStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPipelineViewportWScalingStateCreateInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkPipelineViewportWScalingStateCreateInfoNV =
-             '[VkPipelineViewportStateCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPipelineViewportWScalingStateCreateInfoNV where
-        type FieldType "sType" VkPipelineViewportWScalingStateCreateInfoNV
-             = VkStructureType
-        type FieldOptional "sType"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
-        type FieldIsArray "sType"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPipelineViewportWScalingStateCreateInfoNV where
-        type FieldType "pNext" VkPipelineViewportWScalingStateCreateInfoNV
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
-        type FieldIsArray "pNext"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportWScalingEnable"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        type FieldType "viewportWScalingEnable"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = VkBool32
-        type FieldOptional "viewportWScalingEnable"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportWScalingEnable"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
-        type FieldIsArray "viewportWScalingEnable"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportWScalingEnable"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportWScalingEnable"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportWScalingEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "viewportCount"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        type FieldType "viewportCount"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = Word32
-        type FieldOptional "viewportCount"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "viewportCount"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
-        type FieldIsArray "viewportCount"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "viewportCount"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "viewportCount"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, viewportCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewportWScalings"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        type FieldType "pViewportWScalings"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = Ptr VkViewportWScalingNV
-        type FieldOptional "pViewportWScalings"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pViewportWScalings"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             =
-             #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
-        type FieldIsArray "pViewportWScalings"
-               VkPipelineViewportWScalingStateCreateInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewportWScalings"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewportWScalings"
-           VkPipelineViewportWScalingStateCreateInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPipelineViewportWScalingStateCreateInfoNV, pViewportWScalings}
-
-instance Show VkPipelineViewportWScalingStateCreateInfoNV where
-        showsPrec d x
-          = showString "VkPipelineViewportWScalingStateCreateInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "viewportWScalingEnable = " .
-                            showsPrec d (getField @"viewportWScalingEnable" x) .
-                              showString ", " .
-                                showString "viewportCount = " .
-                                  showsPrec d (getField @"viewportCount" x) .
-                                    showString ", " .
-                                      showString "pViewportWScalings = " .
-                                        showsPrec d (getField @"pViewportWScalings" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPresentInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentInfoKHR.hsc
+++ /dev/null
@@ -1,359 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-       (VkPresentInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkResult        (VkResult)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkSemaphore,
-                                                             VkSwapchainKHR)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkPresentInfoKHR {
---   >     VkStructureType sType;
---   >     const void*  pNext;
---   >     uint32_t         waitSemaphoreCount;
---   >     const VkSemaphore* pWaitSemaphores;
---   >     uint32_t                         swapchainCount;
---   >     const VkSwapchainKHR* pSwapchains;
---   >     const uint32_t* pImageIndices;
---   >     VkResult* pResults;
---   > } VkPresentInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentInfoKHR.html VkPresentInfoKHR registry at www.khronos.org>
-data VkPresentInfoKHR = VkPresentInfoKHR## Addr## ByteArray##
-
-instance Eq VkPresentInfoKHR where
-        (VkPresentInfoKHR## a _) == x@(VkPresentInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPresentInfoKHR where
-        (VkPresentInfoKHR## a _) `compare` x@(VkPresentInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPresentInfoKHR where
-        sizeOf ~_ = #{size VkPresentInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPresentInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentInfoKHR where
-        unsafeAddr (VkPresentInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPresentInfoKHR where
-        type StructFields VkPresentInfoKHR =
-             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
-               "swapchainCount", "pSwapchains", "pImageIndices", "pResults"]
-        type CUnionType VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPresentInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkPresentInfoKHR
-         where
-        type FieldType "sType" VkPresentInfoKHR = VkStructureType
-        type FieldOptional "sType" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, sType}
-        type FieldIsArray "sType" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkPresentInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-} CanWriteField "sType" VkPresentInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkPresentInfoKHR
-         where
-        type FieldType "pNext" VkPresentInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, pNext}
-        type FieldIsArray "pNext" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkPresentInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-} CanWriteField "pNext" VkPresentInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "waitSemaphoreCount" VkPresentInfoKHR where
-        type FieldType "waitSemaphoreCount" VkPresentInfoKHR = Word32
-        type FieldOptional "waitSemaphoreCount" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "waitSemaphoreCount" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, waitSemaphoreCount}
-        type FieldIsArray "waitSemaphoreCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentInfoKHR, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "waitSemaphoreCount" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, waitSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "waitSemaphoreCount" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitSemaphores" VkPresentInfoKHR where
-        type FieldType "pWaitSemaphores" VkPresentInfoKHR = Ptr VkSemaphore
-        type FieldOptional "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitSemaphores" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, pWaitSemaphores}
-        type FieldIsArray "pWaitSemaphores" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentInfoKHR, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitSemaphores" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pWaitSemaphores})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitSemaphores" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchainCount" VkPresentInfoKHR where
-        type FieldType "swapchainCount" VkPresentInfoKHR = Word32
-        type FieldOptional "swapchainCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "swapchainCount" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, swapchainCount}
-        type FieldIsArray "swapchainCount" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchainCount" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, swapchainCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchainCount" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSwapchains" VkPresentInfoKHR where
-        type FieldType "pSwapchains" VkPresentInfoKHR = Ptr VkSwapchainKHR
-        type FieldOptional "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSwapchains" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, pSwapchains}
-        type FieldIsArray "pSwapchains" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentInfoKHR, pSwapchains}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSwapchains" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pSwapchains})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, pSwapchains}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSwapchains" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, pSwapchains}
-
-instance {-# OVERLAPPING #-}
-         HasField "pImageIndices" VkPresentInfoKHR where
-        type FieldType "pImageIndices" VkPresentInfoKHR = Ptr Word32
-        type FieldOptional "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pImageIndices" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, pImageIndices}
-        type FieldIsArray "pImageIndices" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentInfoKHR, pImageIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pImageIndices" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pImageIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, pImageIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pImageIndices" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, pImageIndices}
-
-instance {-# OVERLAPPING #-} HasField "pResults" VkPresentInfoKHR
-         where
-        type FieldType "pResults" VkPresentInfoKHR = Ptr VkResult
-        type FieldOptional "pResults" VkPresentInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pResults" VkPresentInfoKHR =
-             #{offset VkPresentInfoKHR, pResults}
-        type FieldIsArray "pResults" VkPresentInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentInfoKHR, pResults}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pResults" VkPresentInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentInfoKHR, pResults})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentInfoKHR, pResults}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pResults" VkPresentInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentInfoKHR, pResults}
-
-instance Show VkPresentInfoKHR where
-        showsPrec d x
-          = showString "VkPresentInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "waitSemaphoreCount = " .
-                            showsPrec d (getField @"waitSemaphoreCount" x) .
-                              showString ", " .
-                                showString "pWaitSemaphores = " .
-                                  showsPrec d (getField @"pWaitSemaphores" x) .
-                                    showString ", " .
-                                      showString "swapchainCount = " .
-                                        showsPrec d (getField @"swapchainCount" x) .
-                                          showString ", " .
-                                            showString "pSwapchains = " .
-                                              showsPrec d (getField @"pSwapchains" x) .
-                                                showString ", " .
-                                                  showString "pImageIndices = " .
-                                                    showsPrec d (getField @"pImageIndices" x) .
-                                                      showString ", " .
-                                                        showString "pResults = " .
-                                                          showsPrec d (getField @"pResults" x) .
-                                                            showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionKHR.hsc
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPresentRegionKHR
-       (VkPresentRegionKHR(..)) where
-import           Foreign.Storable                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkRectLayerKHR (VkRectLayerKHR)
-import           System.IO.Unsafe                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkPresentRegionKHR {
---   >     uint32_t         rectangleCount;
---   >     const VkRectLayerKHR*   pRectangles;
---   > } VkPresentRegionKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentRegionKHR.html VkPresentRegionKHR registry at www.khronos.org>
-data VkPresentRegionKHR = VkPresentRegionKHR## Addr## ByteArray##
-
-instance Eq VkPresentRegionKHR where
-        (VkPresentRegionKHR## a _) == x@(VkPresentRegionKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPresentRegionKHR where
-        (VkPresentRegionKHR## a _) `compare` x@(VkPresentRegionKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPresentRegionKHR where
-        sizeOf ~_ = #{size VkPresentRegionKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPresentRegionKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentRegionKHR where
-        unsafeAddr (VkPresentRegionKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentRegionKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentRegionKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPresentRegionKHR where
-        type StructFields VkPresentRegionKHR =
-             '["rectangleCount", "pRectangles"] -- ' closing tick for hsc2hs
-        type CUnionType VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPresentRegionKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "rectangleCount" VkPresentRegionKHR where
-        type FieldType "rectangleCount" VkPresentRegionKHR = Word32
-        type FieldOptional "rectangleCount" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "rectangleCount" VkPresentRegionKHR =
-             #{offset VkPresentRegionKHR, rectangleCount}
-        type FieldIsArray "rectangleCount" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentRegionKHR, rectangleCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "rectangleCount" VkPresentRegionKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionKHR, rectangleCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionKHR, rectangleCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "rectangleCount" VkPresentRegionKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionKHR, rectangleCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pRectangles" VkPresentRegionKHR where
-        type FieldType "pRectangles" VkPresentRegionKHR =
-             Ptr VkRectLayerKHR
-        type FieldOptional "pRectangles" VkPresentRegionKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pRectangles" VkPresentRegionKHR =
-             #{offset VkPresentRegionKHR, pRectangles}
-        type FieldIsArray "pRectangles" VkPresentRegionKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentRegionKHR, pRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pRectangles" VkPresentRegionKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionKHR, pRectangles})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionKHR, pRectangles}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pRectangles" VkPresentRegionKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionKHR, pRectangles}
-
-instance Show VkPresentRegionKHR where
-        showsPrec d x
-          = showString "VkPresentRegionKHR {" .
-              showString "rectangleCount = " .
-                showsPrec d (getField @"rectangleCount" x) .
-                  showString ", " .
-                    showString "pRectangles = " .
-                      showsPrec d (getField @"pRectangles" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionsKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionsKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentRegionsKHR.hsc
+++ /dev/null
@@ -1,215 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPresentRegionsKHR
-       (VkPresentRegionsKHR(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR   (VkPresentInfoKHR)
-import           Graphics.Vulkan.Types.Struct.VkPresentRegionKHR (VkPresentRegionKHR)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkPresentRegionsKHR {
---   >     VkStructureType sType;
---   >     const void*  pNext;
---   >     uint32_t                         swapchainCount;
---   >     const VkPresentRegionKHR*   pRegions;
---   > } VkPresentRegionsKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentRegionsKHR.html VkPresentRegionsKHR registry at www.khronos.org>
-data VkPresentRegionsKHR = VkPresentRegionsKHR## Addr## ByteArray##
-
-instance Eq VkPresentRegionsKHR where
-        (VkPresentRegionsKHR## a _) == x@(VkPresentRegionsKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPresentRegionsKHR where
-        (VkPresentRegionsKHR## a _) `compare` x@(VkPresentRegionsKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPresentRegionsKHR where
-        sizeOf ~_ = #{size VkPresentRegionsKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPresentRegionsKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentRegionsKHR where
-        unsafeAddr (VkPresentRegionsKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentRegionsKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentRegionsKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPresentRegionsKHR where
-        type StructFields VkPresentRegionsKHR =
-             '["sType", "pNext", "swapchainCount", "pRegions"] -- ' closing tick for hsc2hs
-        type CUnionType VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPresentRegionsKHR = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkPresentRegionsKHR
-         where
-        type FieldType "sType" VkPresentRegionsKHR = VkStructureType
-        type FieldOptional "sType" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPresentRegionsKHR =
-             #{offset VkPresentRegionsKHR, sType}
-        type FieldIsArray "sType" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentRegionsKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPresentRegionsKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionsKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPresentRegionsKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionsKHR, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkPresentRegionsKHR
-         where
-        type FieldType "pNext" VkPresentRegionsKHR = Ptr Void
-        type FieldOptional "pNext" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPresentRegionsKHR =
-             #{offset VkPresentRegionsKHR, pNext}
-        type FieldIsArray "pNext" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentRegionsKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPresentRegionsKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionsKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPresentRegionsKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionsKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchainCount" VkPresentRegionsKHR where
-        type FieldType "swapchainCount" VkPresentRegionsKHR = Word32
-        type FieldOptional "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "swapchainCount" VkPresentRegionsKHR =
-             #{offset VkPresentRegionsKHR, swapchainCount}
-        type FieldIsArray "swapchainCount" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentRegionsKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchainCount" VkPresentRegionsKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, swapchainCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionsKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchainCount" VkPresentRegionsKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionsKHR, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pRegions" VkPresentRegionsKHR where
-        type FieldType "pRegions" VkPresentRegionsKHR =
-             Ptr VkPresentRegionKHR
-        type FieldOptional "pRegions" VkPresentRegionsKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pRegions" VkPresentRegionsKHR =
-             #{offset VkPresentRegionsKHR, pRegions}
-        type FieldIsArray "pRegions" VkPresentRegionsKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentRegionsKHR, pRegions}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pRegions" VkPresentRegionsKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentRegionsKHR, pRegions})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentRegionsKHR, pRegions}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pRegions" VkPresentRegionsKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentRegionsKHR, pRegions}
-
-instance Show VkPresentRegionsKHR where
-        showsPrec d x
-          = showString "VkPresentRegionsKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchainCount = " .
-                            showsPrec d (getField @"swapchainCount" x) .
-                              showString ", " .
-                                showString "pRegions = " .
-                                  showsPrec d (getField @"pRegions" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimeGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimeGOOGLE.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimeGOOGLE.hsc
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPresentTimeGOOGLE
-       (VkPresentTimeGOOGLE(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPresentTimeGOOGLE {
---   >     uint32_t                         presentID;
---   >     uint64_t                         desiredPresentTime;
---   > } VkPresentTimeGOOGLE;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentTimeGOOGLE.html VkPresentTimeGOOGLE registry at www.khronos.org>
-data VkPresentTimeGOOGLE = VkPresentTimeGOOGLE## Addr## ByteArray##
-
-instance Eq VkPresentTimeGOOGLE where
-        (VkPresentTimeGOOGLE## a _) == x@(VkPresentTimeGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPresentTimeGOOGLE where
-        (VkPresentTimeGOOGLE## a _) `compare` x@(VkPresentTimeGOOGLE## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPresentTimeGOOGLE where
-        sizeOf ~_ = #{size VkPresentTimeGOOGLE}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPresentTimeGOOGLE}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentTimeGOOGLE where
-        unsafeAddr (VkPresentTimeGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentTimeGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentTimeGOOGLE## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPresentTimeGOOGLE where
-        type StructFields VkPresentTimeGOOGLE =
-             '["presentID", "desiredPresentTime"] -- ' closing tick for hsc2hs
-        type CUnionType VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPresentTimeGOOGLE = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "presentID" VkPresentTimeGOOGLE where
-        type FieldType "presentID" VkPresentTimeGOOGLE = Word32
-        type FieldOptional "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "presentID" VkPresentTimeGOOGLE =
-             #{offset VkPresentTimeGOOGLE, presentID}
-        type FieldIsArray "presentID" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentTimeGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "presentID" VkPresentTimeGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimeGOOGLE, presentID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimeGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "presentID" VkPresentTimeGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimeGOOGLE, presentID}
-
-instance {-# OVERLAPPING #-}
-         HasField "desiredPresentTime" VkPresentTimeGOOGLE where
-        type FieldType "desiredPresentTime" VkPresentTimeGOOGLE = Word64
-        type FieldOptional "desiredPresentTime" VkPresentTimeGOOGLE =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "desiredPresentTime" VkPresentTimeGOOGLE =
-             #{offset VkPresentTimeGOOGLE, desiredPresentTime}
-        type FieldIsArray "desiredPresentTime" VkPresentTimeGOOGLE = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentTimeGOOGLE, desiredPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "desiredPresentTime" VkPresentTimeGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimeGOOGLE, desiredPresentTime})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimeGOOGLE, desiredPresentTime}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "desiredPresentTime" VkPresentTimeGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimeGOOGLE, desiredPresentTime}
-
-instance Show VkPresentTimeGOOGLE where
-        showsPrec d x
-          = showString "VkPresentTimeGOOGLE {" .
-              showString "presentID = " .
-                showsPrec d (getField @"presentID" x) .
-                  showString ", " .
-                    showString "desiredPresentTime = " .
-                      showsPrec d (getField @"desiredPresentTime" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimesInfoGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimesInfoGOOGLE.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPresentTimesInfoGOOGLE.hsc
+++ /dev/null
@@ -1,220 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPresentTimesInfoGOOGLE
-       (VkPresentTimesInfoGOOGLE(..)) where
-import           Foreign.Storable                                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType       (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkPresentInfoKHR    (VkPresentInfoKHR)
-import           Graphics.Vulkan.Types.Struct.VkPresentTimeGOOGLE (VkPresentTimeGOOGLE)
-import           System.IO.Unsafe                                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkPresentTimesInfoGOOGLE {
---   >     VkStructureType sType;
---   >     const void*  pNext;
---   >     uint32_t                         swapchainCount;
---   >     const VkPresentTimeGOOGLE*   pTimes;
---   > } VkPresentTimesInfoGOOGLE;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPresentTimesInfoGOOGLE.html VkPresentTimesInfoGOOGLE registry at www.khronos.org>
-data VkPresentTimesInfoGOOGLE = VkPresentTimesInfoGOOGLE## Addr##
-                                                          ByteArray##
-
-instance Eq VkPresentTimesInfoGOOGLE where
-        (VkPresentTimesInfoGOOGLE## a _) ==
-          x@(VkPresentTimesInfoGOOGLE## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPresentTimesInfoGOOGLE where
-        (VkPresentTimesInfoGOOGLE## a _) `compare`
-          x@(VkPresentTimesInfoGOOGLE## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPresentTimesInfoGOOGLE where
-        sizeOf ~_ = #{size VkPresentTimesInfoGOOGLE}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPresentTimesInfoGOOGLE}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPresentTimesInfoGOOGLE where
-        unsafeAddr (VkPresentTimesInfoGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPresentTimesInfoGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPresentTimesInfoGOOGLE## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPresentTimesInfoGOOGLE where
-        type StructFields VkPresentTimesInfoGOOGLE =
-             '["sType", "pNext", "swapchainCount", "pTimes"] -- ' closing tick for hsc2hs
-        type CUnionType VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPresentTimesInfoGOOGLE = '[VkPresentInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkPresentTimesInfoGOOGLE where
-        type FieldType "sType" VkPresentTimesInfoGOOGLE = VkStructureType
-        type FieldOptional "sType" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkPresentTimesInfoGOOGLE =
-             #{offset VkPresentTimesInfoGOOGLE, sType}
-        type FieldIsArray "sType" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentTimesInfoGOOGLE, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkPresentTimesInfoGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkPresentTimesInfoGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkPresentTimesInfoGOOGLE where
-        type FieldType "pNext" VkPresentTimesInfoGOOGLE = Ptr Void
-        type FieldOptional "pNext" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkPresentTimesInfoGOOGLE =
-             #{offset VkPresentTimesInfoGOOGLE, pNext}
-        type FieldIsArray "pNext" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPresentTimesInfoGOOGLE, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkPresentTimesInfoGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkPresentTimesInfoGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "swapchainCount" VkPresentTimesInfoGOOGLE where
-        type FieldType "swapchainCount" VkPresentTimesInfoGOOGLE = Word32
-        type FieldOptional "swapchainCount" VkPresentTimesInfoGOOGLE =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "swapchainCount" VkPresentTimesInfoGOOGLE =
-             #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
-        type FieldIsArray "swapchainCount" VkPresentTimesInfoGOOGLE =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "swapchainCount" VkPresentTimesInfoGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, swapchainCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "swapchainCount" VkPresentTimesInfoGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, swapchainCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTimes" VkPresentTimesInfoGOOGLE where
-        type FieldType "pTimes" VkPresentTimesInfoGOOGLE =
-             Ptr VkPresentTimeGOOGLE
-        type FieldOptional "pTimes" VkPresentTimesInfoGOOGLE = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "pTimes" VkPresentTimesInfoGOOGLE =
-             #{offset VkPresentTimesInfoGOOGLE, pTimes}
-        type FieldIsArray "pTimes" VkPresentTimesInfoGOOGLE = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkPresentTimesInfoGOOGLE, pTimes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTimes" VkPresentTimesInfoGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPresentTimesInfoGOOGLE, pTimes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPresentTimesInfoGOOGLE, pTimes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTimes" VkPresentTimesInfoGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPresentTimesInfoGOOGLE, pTimes}
-
-instance Show VkPresentTimesInfoGOOGLE where
-        showsPrec d x
-          = showString "VkPresentTimesInfoGOOGLE {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "swapchainCount = " .
-                            showsPrec d (getField @"swapchainCount" x) .
-                              showString ", " .
-                                showString "pTimes = " .
-                                  showsPrec d (getField @"pTimes" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkProtectedSubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkProtectedSubmitInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkProtectedSubmitInfo.hsc
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkProtectedSubmitInfo
-       (VkProtectedSubmitInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes            (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkProtectedSubmitInfo {
---   >     VkStructureType sType;
---   >     const void*                     pNext;
---   >     VkBool32                        protectedSubmit;
---   > } VkProtectedSubmitInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkProtectedSubmitInfo.html VkProtectedSubmitInfo registry at www.khronos.org>
-data VkProtectedSubmitInfo = VkProtectedSubmitInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkProtectedSubmitInfo where
-        (VkProtectedSubmitInfo## a _) == x@(VkProtectedSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkProtectedSubmitInfo where
-        (VkProtectedSubmitInfo## a _) `compare`
-          x@(VkProtectedSubmitInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkProtectedSubmitInfo where
-        sizeOf ~_ = #{size VkProtectedSubmitInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkProtectedSubmitInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkProtectedSubmitInfo where
-        unsafeAddr (VkProtectedSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkProtectedSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkProtectedSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkProtectedSubmitInfo where
-        type StructFields VkProtectedSubmitInfo =
-             '["sType", "pNext", "protectedSubmit"] -- ' closing tick for hsc2hs
-        type CUnionType VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkProtectedSubmitInfo = '[VkSubmitInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkProtectedSubmitInfo
-         where
-        type FieldType "sType" VkProtectedSubmitInfo = VkStructureType
-        type FieldOptional "sType" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkProtectedSubmitInfo =
-             #{offset VkProtectedSubmitInfo, sType}
-        type FieldIsArray "sType" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkProtectedSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkProtectedSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkProtectedSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkProtectedSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkProtectedSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkProtectedSubmitInfo
-         where
-        type FieldType "pNext" VkProtectedSubmitInfo = Ptr Void
-        type FieldOptional "pNext" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkProtectedSubmitInfo =
-             #{offset VkProtectedSubmitInfo, pNext}
-        type FieldIsArray "pNext" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkProtectedSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkProtectedSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkProtectedSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkProtectedSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkProtectedSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "protectedSubmit" VkProtectedSubmitInfo where
-        type FieldType "protectedSubmit" VkProtectedSubmitInfo = VkBool32
-        type FieldOptional "protectedSubmit" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "protectedSubmit" VkProtectedSubmitInfo =
-             #{offset VkProtectedSubmitInfo, protectedSubmit}
-        type FieldIsArray "protectedSubmit" VkProtectedSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkProtectedSubmitInfo, protectedSubmit}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "protectedSubmit" VkProtectedSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkProtectedSubmitInfo, protectedSubmit})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkProtectedSubmitInfo, protectedSubmit}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "protectedSubmit" VkProtectedSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkProtectedSubmitInfo, protectedSubmit}
-
-instance Show VkProtectedSubmitInfo where
-        showsPrec d x
-          = showString "VkProtectedSubmitInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "protectedSubmit = " .
-                            showsPrec d (getField @"protectedSubmit" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkPushConstantRange.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkPushConstantRange.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkPushConstantRange.hsc
+++ /dev/null
@@ -1,177 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkPushConstantRange
-       (VkPushConstantRange(..)) where
-import           Foreign.Storable                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags (VkShaderStageFlags)
-import           System.IO.Unsafe                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkPushConstantRange {
---   >     VkShaderStageFlags     stageFlags;
---   >     uint32_t               offset;
---   >     uint32_t               size;
---   > } VkPushConstantRange;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkPushConstantRange.html VkPushConstantRange registry at www.khronos.org>
-data VkPushConstantRange = VkPushConstantRange## Addr## ByteArray##
-
-instance Eq VkPushConstantRange where
-        (VkPushConstantRange## a _) == x@(VkPushConstantRange## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkPushConstantRange where
-        (VkPushConstantRange## a _) `compare` x@(VkPushConstantRange## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkPushConstantRange where
-        sizeOf ~_ = #{size VkPushConstantRange}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkPushConstantRange}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkPushConstantRange where
-        unsafeAddr (VkPushConstantRange## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkPushConstantRange## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkPushConstantRange## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkPushConstantRange where
-        type StructFields VkPushConstantRange =
-             '["stageFlags", "offset", "size"] -- ' closing tick for hsc2hs
-        type CUnionType VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkPushConstantRange = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "stageFlags" VkPushConstantRange where
-        type FieldType "stageFlags" VkPushConstantRange =
-             VkShaderStageFlags
-        type FieldOptional "stageFlags" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "stageFlags" VkPushConstantRange =
-             #{offset VkPushConstantRange, stageFlags}
-        type FieldIsArray "stageFlags" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPushConstantRange, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stageFlags" VkPushConstantRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, stageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPushConstantRange, stageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stageFlags" VkPushConstantRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPushConstantRange, stageFlags}
-
-instance {-# OVERLAPPING #-} HasField "offset" VkPushConstantRange
-         where
-        type FieldType "offset" VkPushConstantRange = Word32
-        type FieldOptional "offset" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkPushConstantRange =
-             #{offset VkPushConstantRange, offset}
-        type FieldIsArray "offset" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPushConstantRange, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkPushConstantRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPushConstantRange, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkPushConstantRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPushConstantRange, offset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkPushConstantRange
-         where
-        type FieldType "size" VkPushConstantRange = Word32
-        type FieldOptional "size" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkPushConstantRange =
-             #{offset VkPushConstantRange, size}
-        type FieldIsArray "size" VkPushConstantRange = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkPushConstantRange, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkPushConstantRange where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkPushConstantRange, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkPushConstantRange, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkPushConstantRange where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkPushConstantRange, size}
-
-instance Show VkPushConstantRange where
-        showsPrec d x
-          = showString "VkPushConstantRange {" .
-              showString "stageFlags = " .
-                showsPrec d (getField @"stageFlags" x) .
-                  showString ", " .
-                    showString "offset = " .
-                      showsPrec d (getField @"offset" x) .
-                        showString ", " .
-                          showString "size = " .
-                            showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkQueryPoolCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkQueryPoolCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkQueryPoolCreateInfo.hsc
+++ /dev/null
@@ -1,294 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo
-       (VkQueryPoolCreateInfo(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                           (VkQueryPoolCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags (VkQueryPipelineStatisticFlags)
-import           Graphics.Vulkan.Types.Enum.VkQueryType                   (VkQueryType)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkQueryPoolCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkQueryPoolCreateFlags flags;
---   >     VkQueryType            queryType;
---   >     uint32_t               queryCount;
---   >     VkQueryPipelineStatisticFlags pipelineStatistics;
---   > } VkQueryPoolCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkQueryPoolCreateInfo.html VkQueryPoolCreateInfo registry at www.khronos.org>
-data VkQueryPoolCreateInfo = VkQueryPoolCreateInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkQueryPoolCreateInfo where
-        (VkQueryPoolCreateInfo## a _) == x@(VkQueryPoolCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkQueryPoolCreateInfo where
-        (VkQueryPoolCreateInfo## a _) `compare`
-          x@(VkQueryPoolCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkQueryPoolCreateInfo where
-        sizeOf ~_ = #{size VkQueryPoolCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkQueryPoolCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkQueryPoolCreateInfo where
-        unsafeAddr (VkQueryPoolCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueryPoolCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueryPoolCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkQueryPoolCreateInfo where
-        type StructFields VkQueryPoolCreateInfo =
-             '["sType", "pNext", "flags", "queryType", "queryCount", -- ' closing tick for hsc2hs
-               "pipelineStatistics"]
-        type CUnionType VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkQueryPoolCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkQueryPoolCreateInfo
-         where
-        type FieldType "sType" VkQueryPoolCreateInfo = VkStructureType
-        type FieldOptional "sType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, sType}
-        type FieldIsArray "sType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkQueryPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkQueryPoolCreateInfo
-         where
-        type FieldType "pNext" VkQueryPoolCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, pNext}
-        type FieldIsArray "pNext" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkQueryPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkQueryPoolCreateInfo
-         where
-        type FieldType "flags" VkQueryPoolCreateInfo =
-             VkQueryPoolCreateFlags
-        type FieldOptional "flags" VkQueryPoolCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, flags}
-        type FieldIsArray "flags" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkQueryPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queryType" VkQueryPoolCreateInfo where
-        type FieldType "queryType" VkQueryPoolCreateInfo = VkQueryType
-        type FieldOptional "queryType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queryType" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, queryType}
-        type FieldIsArray "queryType" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueryPoolCreateInfo, queryType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queryType" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, queryType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, queryType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queryType" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, queryType}
-
-instance {-# OVERLAPPING #-}
-         HasField "queryCount" VkQueryPoolCreateInfo where
-        type FieldType "queryCount" VkQueryPoolCreateInfo = Word32
-        type FieldOptional "queryCount" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queryCount" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, queryCount}
-        type FieldIsArray "queryCount" VkQueryPoolCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueryPoolCreateInfo, queryCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queryCount" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, queryCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, queryCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queryCount" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, queryCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineStatistics" VkQueryPoolCreateInfo where
-        type FieldType "pipelineStatistics" VkQueryPoolCreateInfo =
-             VkQueryPipelineStatisticFlags
-        type FieldOptional "pipelineStatistics" VkQueryPoolCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineStatistics" VkQueryPoolCreateInfo =
-             #{offset VkQueryPoolCreateInfo, pipelineStatistics}
-        type FieldIsArray "pipelineStatistics" VkQueryPoolCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueryPoolCreateInfo, pipelineStatistics}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineStatistics" VkQueryPoolCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueryPoolCreateInfo, pipelineStatistics})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueryPoolCreateInfo, pipelineStatistics}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineStatistics" VkQueryPoolCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueryPoolCreateInfo, pipelineStatistics}
-
-instance Show VkQueryPoolCreateInfo where
-        showsPrec d x
-          = showString "VkQueryPoolCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "queryType = " .
-                                  showsPrec d (getField @"queryType" x) .
-                                    showString ", " .
-                                      showString "queryCount = " .
-                                        showsPrec d (getField @"queryCount" x) .
-                                          showString ", " .
-                                            showString "pipelineStatistics = " .
-                                              showsPrec d (getField @"pipelineStatistics" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties.hsc
+++ /dev/null
@@ -1,233 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties
-       (VkQueueFamilyProperties(..)) where
-import           Foreign.Storable                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkQueueFlags (VkQueueFlags)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D (VkExtent3D)
-import           System.IO.Unsafe                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkQueueFamilyProperties {
---   >     VkQueueFlags           queueFlags;
---   >     uint32_t               queueCount;
---   >     uint32_t               timestampValidBits;
---   >     VkExtent3D             minImageTransferGranularity;
---   > } VkQueueFamilyProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkQueueFamilyProperties.html VkQueueFamilyProperties registry at www.khronos.org>
-data VkQueueFamilyProperties = VkQueueFamilyProperties## Addr##
-                                                        ByteArray##
-
-instance Eq VkQueueFamilyProperties where
-        (VkQueueFamilyProperties## a _) == x@(VkQueueFamilyProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkQueueFamilyProperties where
-        (VkQueueFamilyProperties## a _) `compare`
-          x@(VkQueueFamilyProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkQueueFamilyProperties where
-        sizeOf ~_ = #{size VkQueueFamilyProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkQueueFamilyProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkQueueFamilyProperties where
-        unsafeAddr (VkQueueFamilyProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueueFamilyProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueueFamilyProperties## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkQueueFamilyProperties where
-        type StructFields VkQueueFamilyProperties =
-             '["queueFlags", "queueCount", "timestampValidBits", -- ' closing tick for hsc2hs
-               "minImageTransferGranularity"]
-        type CUnionType VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkQueueFamilyProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkQueueFamilyProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFlags" VkQueueFamilyProperties where
-        type FieldType "queueFlags" VkQueueFamilyProperties = VkQueueFlags
-        type FieldOptional "queueFlags" VkQueueFamilyProperties = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "queueFlags" VkQueueFamilyProperties =
-             #{offset VkQueueFamilyProperties, queueFlags}
-        type FieldIsArray "queueFlags" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueueFamilyProperties, queueFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFlags" VkQueueFamilyProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, queueFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties, queueFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFlags" VkQueueFamilyProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties, queueFlags}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueCount" VkQueueFamilyProperties where
-        type FieldType "queueCount" VkQueueFamilyProperties = Word32
-        type FieldOptional "queueCount" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueCount" VkQueueFamilyProperties =
-             #{offset VkQueueFamilyProperties, queueCount}
-        type FieldIsArray "queueCount" VkQueueFamilyProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueueFamilyProperties, queueCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueCount" VkQueueFamilyProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, queueCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties, queueCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueCount" VkQueueFamilyProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties, queueCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "timestampValidBits" VkQueueFamilyProperties where
-        type FieldType "timestampValidBits" VkQueueFamilyProperties =
-             Word32
-        type FieldOptional "timestampValidBits" VkQueueFamilyProperties =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "timestampValidBits" VkQueueFamilyProperties =
-             #{offset VkQueueFamilyProperties, timestampValidBits}
-        type FieldIsArray "timestampValidBits" VkQueueFamilyProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueueFamilyProperties, timestampValidBits}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "timestampValidBits" VkQueueFamilyProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, timestampValidBits})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties, timestampValidBits}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "timestampValidBits" VkQueueFamilyProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties, timestampValidBits}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageTransferGranularity" VkQueueFamilyProperties
-         where
-        type FieldType "minImageTransferGranularity"
-               VkQueueFamilyProperties
-             = VkExtent3D
-        type FieldOptional "minImageTransferGranularity"
-               VkQueueFamilyProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageTransferGranularity"
-               VkQueueFamilyProperties
-             =
-             #{offset VkQueueFamilyProperties, minImageTransferGranularity}
-        type FieldIsArray "minImageTransferGranularity"
-               VkQueueFamilyProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueueFamilyProperties, minImageTransferGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageTransferGranularity" VkQueueFamilyProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties, minImageTransferGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties, minImageTransferGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageTransferGranularity" VkQueueFamilyProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties, minImageTransferGranularity}
-
-instance Show VkQueueFamilyProperties where
-        showsPrec d x
-          = showString "VkQueueFamilyProperties {" .
-              showString "queueFlags = " .
-                showsPrec d (getField @"queueFlags" x) .
-                  showString ", " .
-                    showString "queueCount = " .
-                      showsPrec d (getField @"queueCount" x) .
-                        showString ", " .
-                          showString "timestampValidBits = " .
-                            showsPrec d (getField @"timestampValidBits" x) .
-                              showString ", " .
-                                showString "minImageTransferGranularity = " .
-                                  showsPrec d (getField @"minImageTransferGranularity" x) .
-                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2.hsc
+++ /dev/null
@@ -1,184 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2
-       (VkQueueFamilyProperties2(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties (VkQueueFamilyProperties)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkQueueFamilyProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkQueueFamilyProperties          queueFamilyProperties;
---   > } VkQueueFamilyProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkQueueFamilyProperties2.html VkQueueFamilyProperties2 registry at www.khronos.org>
-data VkQueueFamilyProperties2 = VkQueueFamilyProperties2## Addr##
-                                                          ByteArray##
-
-instance Eq VkQueueFamilyProperties2 where
-        (VkQueueFamilyProperties2## a _) ==
-          x@(VkQueueFamilyProperties2## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkQueueFamilyProperties2 where
-        (VkQueueFamilyProperties2## a _) `compare`
-          x@(VkQueueFamilyProperties2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkQueueFamilyProperties2 where
-        sizeOf ~_ = #{size VkQueueFamilyProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkQueueFamilyProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkQueueFamilyProperties2 where
-        unsafeAddr (VkQueueFamilyProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkQueueFamilyProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkQueueFamilyProperties2## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkQueueFamilyProperties2 where
-        type StructFields VkQueueFamilyProperties2 =
-             '["sType", "pNext", "queueFamilyProperties"] -- ' closing tick for hsc2hs
-        type CUnionType VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkQueueFamilyProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkQueueFamilyProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkQueueFamilyProperties2 where
-        type FieldType "sType" VkQueueFamilyProperties2 = VkStructureType
-        type FieldOptional "sType" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkQueueFamilyProperties2 =
-             #{offset VkQueueFamilyProperties2, sType}
-        type FieldIsArray "sType" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkQueueFamilyProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkQueueFamilyProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkQueueFamilyProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkQueueFamilyProperties2 where
-        type FieldType "pNext" VkQueueFamilyProperties2 = Ptr Void
-        type FieldOptional "pNext" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkQueueFamilyProperties2 =
-             #{offset VkQueueFamilyProperties2, pNext}
-        type FieldIsArray "pNext" VkQueueFamilyProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkQueueFamilyProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkQueueFamilyProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkQueueFamilyProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyProperties" VkQueueFamilyProperties2 where
-        type FieldType "queueFamilyProperties" VkQueueFamilyProperties2 =
-             VkQueueFamilyProperties
-        type FieldOptional "queueFamilyProperties" VkQueueFamilyProperties2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyProperties" VkQueueFamilyProperties2 =
-             #{offset VkQueueFamilyProperties2, queueFamilyProperties}
-        type FieldIsArray "queueFamilyProperties" VkQueueFamilyProperties2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkQueueFamilyProperties2, queueFamilyProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyProperties" VkQueueFamilyProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkQueueFamilyProperties2, queueFamilyProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkQueueFamilyProperties2, queueFamilyProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyProperties" VkQueueFamilyProperties2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkQueueFamilyProperties2, queueFamilyProperties}
-
-instance Show VkQueueFamilyProperties2 where
-        showsPrec d x
-          = showString "VkQueueFamilyProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "queueFamilyProperties = " .
-                            showsPrec d (getField @"queueFamilyProperties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkQueueFamilyProperties2KHR.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2KHR
-       (VkQueueFamilyProperties2(..), VkQueueFamilyProperties2KHR) where
-import           Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2 (VkQueueFamilyProperties2 (..))
-
--- | Alias for `VkQueueFamilyProperties2`
-type VkQueueFamilyProperties2KHR = VkQueueFamilyProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRect2D.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRect2D.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRect2D.hsc
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRect2D (VkRect2D(..)) where
-import           Foreign.Storable                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkExtent2D (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.VkOffset2D (VkOffset2D)
-import           System.IO.Unsafe                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkRect2D {
---   >     VkOffset2D     offset;
---   >     VkExtent2D     extent;
---   > } VkRect2D;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRect2D.html VkRect2D registry at www.khronos.org>
-data VkRect2D = VkRect2D## Addr## ByteArray##
-
-instance Eq VkRect2D where
-        (VkRect2D## a _) == x@(VkRect2D## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRect2D where
-        (VkRect2D## a _) `compare` x@(VkRect2D## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRect2D where
-        sizeOf ~_ = #{size VkRect2D}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkRect2D}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRect2D where
-        unsafeAddr (VkRect2D## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRect2D## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRect2D## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRect2D where
-        type StructFields VkRect2D = '["offset", "extent"] -- ' closing tick for hsc2hs
-        type CUnionType VkRect2D = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRect2D = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRect2D = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "offset" VkRect2D where
-        type FieldType "offset" VkRect2D = VkOffset2D
-        type FieldOptional "offset" VkRect2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkRect2D =
-             #{offset VkRect2D, offset}
-        type FieldIsArray "offset" VkRect2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRect2D, offset}
-
-instance {-# OVERLAPPING #-} CanReadField "offset" VkRect2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRect2D, offset})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkRect2D, offset}
-
-instance {-# OVERLAPPING #-} CanWriteField "offset" VkRect2D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkRect2D, offset}
-
-instance {-# OVERLAPPING #-} HasField "extent" VkRect2D where
-        type FieldType "extent" VkRect2D = VkExtent2D
-        type FieldOptional "extent" VkRect2D = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkRect2D =
-             #{offset VkRect2D, extent}
-        type FieldIsArray "extent" VkRect2D = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRect2D, extent}
-
-instance {-# OVERLAPPING #-} CanReadField "extent" VkRect2D where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRect2D, extent})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkRect2D, extent}
-
-instance {-# OVERLAPPING #-} CanWriteField "extent" VkRect2D where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkRect2D, extent}
-
-instance Show VkRect2D where
-        showsPrec d x
-          = showString "VkRect2D {" .
-              showString "offset = " .
-                showsPrec d (getField @"offset" x) .
-                  showString ", " .
-                    showString "extent = " .
-                      showsPrec d (getField @"extent" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRectLayerKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRectLayerKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRectLayerKHR.hsc
+++ /dev/null
@@ -1,173 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRectLayerKHR
-       (VkRectLayerKHR(..)) where
-import           Foreign.Storable                        (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkExtent2D (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.VkOffset2D (VkOffset2D)
-import           System.IO.Unsafe                        (unsafeDupablePerformIO)
-
--- | > typedef struct VkRectLayerKHR {
---   >     VkOffset2D                       offset;
---   >     VkExtent2D                       extent;
---   >     uint32_t                         layer;
---   > } VkRectLayerKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRectLayerKHR.html VkRectLayerKHR registry at www.khronos.org>
-data VkRectLayerKHR = VkRectLayerKHR## Addr## ByteArray##
-
-instance Eq VkRectLayerKHR where
-        (VkRectLayerKHR## a _) == x@(VkRectLayerKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRectLayerKHR where
-        (VkRectLayerKHR## a _) `compare` x@(VkRectLayerKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRectLayerKHR where
-        sizeOf ~_ = #{size VkRectLayerKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkRectLayerKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRectLayerKHR where
-        unsafeAddr (VkRectLayerKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRectLayerKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRectLayerKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRectLayerKHR where
-        type StructFields VkRectLayerKHR = '["offset", "extent", "layer"] -- ' closing tick for hsc2hs
-        type CUnionType VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRectLayerKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "offset" VkRectLayerKHR where
-        type FieldType "offset" VkRectLayerKHR = VkOffset2D
-        type FieldOptional "offset" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkRectLayerKHR =
-             #{offset VkRectLayerKHR, offset}
-        type FieldIsArray "offset" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRectLayerKHR, offset}
-
-instance {-# OVERLAPPING #-} CanReadField "offset" VkRectLayerKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRectLayerKHR, offset}
-
-instance {-# OVERLAPPING #-} CanWriteField "offset" VkRectLayerKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRectLayerKHR, offset}
-
-instance {-# OVERLAPPING #-} HasField "extent" VkRectLayerKHR where
-        type FieldType "extent" VkRectLayerKHR = VkExtent2D
-        type FieldOptional "extent" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkRectLayerKHR =
-             #{offset VkRectLayerKHR, extent}
-        type FieldIsArray "extent" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRectLayerKHR, extent}
-
-instance {-# OVERLAPPING #-} CanReadField "extent" VkRectLayerKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, extent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRectLayerKHR, extent}
-
-instance {-# OVERLAPPING #-} CanWriteField "extent" VkRectLayerKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRectLayerKHR, extent}
-
-instance {-# OVERLAPPING #-} HasField "layer" VkRectLayerKHR where
-        type FieldType "layer" VkRectLayerKHR = Word32
-        type FieldOptional "layer" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "layer" VkRectLayerKHR =
-             #{offset VkRectLayerKHR, layer}
-        type FieldIsArray "layer" VkRectLayerKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRectLayerKHR, layer}
-
-instance {-# OVERLAPPING #-} CanReadField "layer" VkRectLayerKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRectLayerKHR, layer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRectLayerKHR, layer}
-
-instance {-# OVERLAPPING #-} CanWriteField "layer" VkRectLayerKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRectLayerKHR, layer}
-
-instance Show VkRectLayerKHR where
-        showsPrec d x
-          = showString "VkRectLayerKHR {" .
-              showString "offset = " .
-                showsPrec d (getField @"offset" x) .
-                  showString ", " .
-                    showString "extent = " .
-                      showsPrec d (getField @"extent" x) .
-                        showString ", " .
-                          showString "layer = " .
-                            showsPrec d (getField @"layer" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRefreshCycleDurationGOOGLE.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRefreshCycleDurationGOOGLE.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRefreshCycleDurationGOOGLE.hsc
+++ /dev/null
@@ -1,114 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRefreshCycleDurationGOOGLE
-       (VkRefreshCycleDurationGOOGLE(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkRefreshCycleDurationGOOGLE {
---   >     uint64_t                         refreshDuration;
---   > } VkRefreshCycleDurationGOOGLE;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRefreshCycleDurationGOOGLE.html VkRefreshCycleDurationGOOGLE registry at www.khronos.org>
-data VkRefreshCycleDurationGOOGLE = VkRefreshCycleDurationGOOGLE## Addr##
-                                                                  ByteArray##
-
-instance Eq VkRefreshCycleDurationGOOGLE where
-        (VkRefreshCycleDurationGOOGLE## a _) ==
-          x@(VkRefreshCycleDurationGOOGLE## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRefreshCycleDurationGOOGLE where
-        (VkRefreshCycleDurationGOOGLE## a _) `compare`
-          x@(VkRefreshCycleDurationGOOGLE## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRefreshCycleDurationGOOGLE where
-        sizeOf ~_ = #{size VkRefreshCycleDurationGOOGLE}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkRefreshCycleDurationGOOGLE}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRefreshCycleDurationGOOGLE where
-        unsafeAddr (VkRefreshCycleDurationGOOGLE## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRefreshCycleDurationGOOGLE## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRefreshCycleDurationGOOGLE##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRefreshCycleDurationGOOGLE where
-        type StructFields VkRefreshCycleDurationGOOGLE =
-             '["refreshDuration"] -- ' closing tick for hsc2hs
-        type CUnionType VkRefreshCycleDurationGOOGLE = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRefreshCycleDurationGOOGLE = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRefreshCycleDurationGOOGLE = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "refreshDuration" VkRefreshCycleDurationGOOGLE where
-        type FieldType "refreshDuration" VkRefreshCycleDurationGOOGLE =
-             Word64
-        type FieldOptional "refreshDuration" VkRefreshCycleDurationGOOGLE =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "refreshDuration" VkRefreshCycleDurationGOOGLE =
-             #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
-        type FieldIsArray "refreshDuration" VkRefreshCycleDurationGOOGLE =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "refreshDuration" VkRefreshCycleDurationGOOGLE where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRefreshCycleDurationGOOGLE, refreshDuration})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "refreshDuration" VkRefreshCycleDurationGOOGLE where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRefreshCycleDurationGOOGLE, refreshDuration}
-
-instance Show VkRefreshCycleDurationGOOGLE where
-        showsPrec d x
-          = showString "VkRefreshCycleDurationGOOGLE {" .
-              showString "refreshDuration = " .
-                showsPrec d (getField @"refreshDuration" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassBeginInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassBeginInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassBeginInfo.hsc
+++ /dev/null
@@ -1,329 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo
-       (VkRenderPassBeginInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkFramebuffer,
-                                                             VkRenderPass)
-import           Graphics.Vulkan.Types.Struct.VkClearValue  (VkClearValue)
-import           Graphics.Vulkan.Types.Struct.VkRect2D      (VkRect2D)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkRenderPassBeginInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkRenderPass           renderPass;
---   >     VkFramebuffer          framebuffer;
---   >     VkRect2D               renderArea;
---   >     uint32_t               clearValueCount;
---   >     const VkClearValue*    pClearValues;
---   > } VkRenderPassBeginInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRenderPassBeginInfo.html VkRenderPassBeginInfo registry at www.khronos.org>
-data VkRenderPassBeginInfo = VkRenderPassBeginInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkRenderPassBeginInfo where
-        (VkRenderPassBeginInfo## a _) == x@(VkRenderPassBeginInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRenderPassBeginInfo where
-        (VkRenderPassBeginInfo## a _) `compare`
-          x@(VkRenderPassBeginInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRenderPassBeginInfo where
-        sizeOf ~_ = #{size VkRenderPassBeginInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkRenderPassBeginInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRenderPassBeginInfo where
-        unsafeAddr (VkRenderPassBeginInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassBeginInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassBeginInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRenderPassBeginInfo where
-        type StructFields VkRenderPassBeginInfo =
-             '["sType", "pNext", "renderPass", "framebuffer", "renderArea", -- ' closing tick for hsc2hs
-               "clearValueCount", "pClearValues"]
-        type CUnionType VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRenderPassBeginInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkRenderPassBeginInfo
-         where
-        type FieldType "sType" VkRenderPassBeginInfo = VkStructureType
-        type FieldOptional "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, sType}
-        type FieldIsArray "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkRenderPassBeginInfo
-         where
-        type FieldType "pNext" VkRenderPassBeginInfo = Ptr Void
-        type FieldOptional "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, pNext}
-        type FieldIsArray "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "renderPass" VkRenderPassBeginInfo where
-        type FieldType "renderPass" VkRenderPassBeginInfo = VkRenderPass
-        type FieldOptional "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "renderPass" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, renderPass}
-        type FieldIsArray "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassBeginInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "renderPass" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, renderPass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "renderPass" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, renderPass}
-
-instance {-# OVERLAPPING #-}
-         HasField "framebuffer" VkRenderPassBeginInfo where
-        type FieldType "framebuffer" VkRenderPassBeginInfo = VkFramebuffer
-        type FieldOptional "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "framebuffer" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, framebuffer}
-        type FieldIsArray "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassBeginInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "framebuffer" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, framebuffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "framebuffer" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, framebuffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "renderArea" VkRenderPassBeginInfo where
-        type FieldType "renderArea" VkRenderPassBeginInfo = VkRect2D
-        type FieldOptional "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "renderArea" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, renderArea}
-        type FieldIsArray "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassBeginInfo, renderArea}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "renderArea" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, renderArea})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, renderArea}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "renderArea" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, renderArea}
-
-instance {-# OVERLAPPING #-}
-         HasField "clearValueCount" VkRenderPassBeginInfo where
-        type FieldType "clearValueCount" VkRenderPassBeginInfo = Word32
-        type FieldOptional "clearValueCount" VkRenderPassBeginInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "clearValueCount" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, clearValueCount}
-        type FieldIsArray "clearValueCount" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassBeginInfo, clearValueCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "clearValueCount" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, clearValueCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, clearValueCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "clearValueCount" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, clearValueCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pClearValues" VkRenderPassBeginInfo where
-        type FieldType "pClearValues" VkRenderPassBeginInfo =
-             Ptr VkClearValue
-        type FieldOptional "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pClearValues" VkRenderPassBeginInfo =
-             #{offset VkRenderPassBeginInfo, pClearValues}
-        type FieldIsArray "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassBeginInfo, pClearValues}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pClearValues" VkRenderPassBeginInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassBeginInfo, pClearValues})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassBeginInfo, pClearValues}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pClearValues" VkRenderPassBeginInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassBeginInfo, pClearValues}
-
-instance Show VkRenderPassBeginInfo where
-        showsPrec d x
-          = showString "VkRenderPassBeginInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "renderPass = " .
-                            showsPrec d (getField @"renderPass" x) .
-                              showString ", " .
-                                showString "framebuffer = " .
-                                  showsPrec d (getField @"framebuffer" x) .
-                                    showString ", " .
-                                      showString "renderArea = " .
-                                        showsPrec d (getField @"renderArea" x) .
-                                          showString ", " .
-                                            showString "clearValueCount = " .
-                                              showsPrec d (getField @"clearValueCount" x) .
-                                                showString ", " .
-                                                  showString "pClearValues = " .
-                                                    showsPrec d (getField @"pClearValues" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassCreateInfo.hsc
+++ /dev/null
@@ -1,406 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo
-       (VkRenderPassCreateInfo(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks                       (VkRenderPassCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkAttachmentDescription (VkAttachmentDescription)
-import           Graphics.Vulkan.Types.Struct.VkSubpassDependency     (VkSubpassDependency)
-import           Graphics.Vulkan.Types.Struct.VkSubpassDescription    (VkSubpassDescription)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkRenderPassCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkRenderPassCreateFlags    flags;
---   >     uint32_t   attachmentCount;
---   >     const VkAttachmentDescription* pAttachments;
---   >     uint32_t               subpassCount;
---   >     const VkSubpassDescription* pSubpasses;
---   >     uint32_t       dependencyCount;
---   >     const VkSubpassDependency* pDependencies;
---   > } VkRenderPassCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRenderPassCreateInfo.html VkRenderPassCreateInfo registry at www.khronos.org>
-data VkRenderPassCreateInfo = VkRenderPassCreateInfo## Addr##
-                                                      ByteArray##
-
-instance Eq VkRenderPassCreateInfo where
-        (VkRenderPassCreateInfo## a _) == x@(VkRenderPassCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRenderPassCreateInfo where
-        (VkRenderPassCreateInfo## a _) `compare`
-          x@(VkRenderPassCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRenderPassCreateInfo where
-        sizeOf ~_ = #{size VkRenderPassCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkRenderPassCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRenderPassCreateInfo where
-        unsafeAddr (VkRenderPassCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRenderPassCreateInfo where
-        type StructFields VkRenderPassCreateInfo =
-             '["sType", "pNext", "flags", "attachmentCount", "pAttachments", -- ' closing tick for hsc2hs
-               "subpassCount", "pSubpasses", "dependencyCount", "pDependencies"]
-        type CUnionType VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRenderPassCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkRenderPassCreateInfo where
-        type FieldType "sType" VkRenderPassCreateInfo = VkStructureType
-        type FieldOptional "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, sType}
-        type FieldIsArray "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRenderPassCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkRenderPassCreateInfo where
-        type FieldType "pNext" VkRenderPassCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, pNext}
-        type FieldIsArray "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRenderPassCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkRenderPassCreateInfo where
-        type FieldType "flags" VkRenderPassCreateInfo =
-             VkRenderPassCreateFlags
-        type FieldOptional "flags" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, flags}
-        type FieldIsArray "flags" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkRenderPassCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "attachmentCount" VkRenderPassCreateInfo where
-        type FieldType "attachmentCount" VkRenderPassCreateInfo = Word32
-        type FieldOptional "attachmentCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "attachmentCount" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, attachmentCount}
-        type FieldIsArray "attachmentCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachmentCount" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, attachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachmentCount" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, attachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttachments" VkRenderPassCreateInfo where
-        type FieldType "pAttachments" VkRenderPassCreateInfo =
-             Ptr VkAttachmentDescription
-        type FieldOptional "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAttachments" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, pAttachments}
-        type FieldIsArray "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttachments" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttachments" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, pAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "subpassCount" VkRenderPassCreateInfo where
-        type FieldType "subpassCount" VkRenderPassCreateInfo = Word32
-        type FieldOptional "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subpassCount" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, subpassCount}
-        type FieldIsArray "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpassCount" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, subpassCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpassCount" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSubpasses" VkRenderPassCreateInfo where
-        type FieldType "pSubpasses" VkRenderPassCreateInfo =
-             Ptr VkSubpassDescription
-        type FieldOptional "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSubpasses" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, pSubpasses}
-        type FieldIsArray "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, pSubpasses}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSubpasses" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pSubpasses})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, pSubpasses}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSubpasses" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, pSubpasses}
-
-instance {-# OVERLAPPING #-}
-         HasField "dependencyCount" VkRenderPassCreateInfo where
-        type FieldType "dependencyCount" VkRenderPassCreateInfo = Word32
-        type FieldOptional "dependencyCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dependencyCount" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, dependencyCount}
-        type FieldIsArray "dependencyCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dependencyCount" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, dependencyCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dependencyCount" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDependencies" VkRenderPassCreateInfo where
-        type FieldType "pDependencies" VkRenderPassCreateInfo =
-             Ptr VkSubpassDependency
-        type FieldOptional "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDependencies" VkRenderPassCreateInfo =
-             #{offset VkRenderPassCreateInfo, pDependencies}
-        type FieldIsArray "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassCreateInfo, pDependencies}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDependencies" VkRenderPassCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassCreateInfo, pDependencies})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassCreateInfo, pDependencies}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDependencies" VkRenderPassCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassCreateInfo, pDependencies}
-
-instance Show VkRenderPassCreateInfo where
-        showsPrec d x
-          = showString "VkRenderPassCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "attachmentCount = " .
-                                  showsPrec d (getField @"attachmentCount" x) .
-                                    showString ", " .
-                                      showString "pAttachments = " .
-                                        showsPrec d (getField @"pAttachments" x) .
-                                          showString ", " .
-                                            showString "subpassCount = " .
-                                              showsPrec d (getField @"subpassCount" x) .
-                                                showString ", " .
-                                                  showString "pSubpasses = " .
-                                                    showsPrec d (getField @"pSubpasses" x) .
-                                                      showString ", " .
-                                                        showString "dependencyCount = " .
-                                                          showsPrec d
-                                                            (getField @"dependencyCount" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pDependencies = " .
-                                                                showsPrec d
-                                                                  (getField @"pDependencies" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfo.hsc
+++ /dev/null
@@ -1,277 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfo
-       (VkRenderPassInputAttachmentAspectCreateInfo(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference (VkInputAttachmentAspectReference)
-import           Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo           (VkRenderPassCreateInfo)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                     pNext;
---   >     uint32_t                        aspectReferenceCount;
---   >     const VkInputAttachmentAspectReference* pAspectReferences;
---   > } VkRenderPassInputAttachmentAspectCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRenderPassInputAttachmentAspectCreateInfo.html VkRenderPassInputAttachmentAspectCreateInfo registry at www.khronos.org>
-data VkRenderPassInputAttachmentAspectCreateInfo = VkRenderPassInputAttachmentAspectCreateInfo## Addr##
-                                                                                                ByteArray##
-
-instance Eq VkRenderPassInputAttachmentAspectCreateInfo where
-        (VkRenderPassInputAttachmentAspectCreateInfo## a _) ==
-          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRenderPassInputAttachmentAspectCreateInfo where
-        (VkRenderPassInputAttachmentAspectCreateInfo## a _) `compare`
-          x@(VkRenderPassInputAttachmentAspectCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRenderPassInputAttachmentAspectCreateInfo where
-        sizeOf ~_
-          = #{size VkRenderPassInputAttachmentAspectCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkRenderPassInputAttachmentAspectCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        unsafeAddr (VkRenderPassInputAttachmentAspectCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassInputAttachmentAspectCreateInfo## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassInputAttachmentAspectCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        type StructFields VkRenderPassInputAttachmentAspectCreateInfo =
-             '["sType", "pNext", "aspectReferenceCount", "pAspectReferences"] -- ' closing tick for hsc2hs
-        type CUnionType VkRenderPassInputAttachmentAspectCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRenderPassInputAttachmentAspectCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkRenderPassInputAttachmentAspectCreateInfo =
-             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkRenderPassInputAttachmentAspectCreateInfo where
-        type FieldType "sType" VkRenderPassInputAttachmentAspectCreateInfo
-             = VkStructureType
-        type FieldOptional "sType"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             =
-             #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
-        type FieldIsArray "sType"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkRenderPassInputAttachmentAspectCreateInfo where
-        type FieldType "pNext" VkRenderPassInputAttachmentAspectCreateInfo
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             =
-             #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
-        type FieldIsArray "pNext"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectReferenceCount"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        type FieldType "aspectReferenceCount"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = Word32
-        type FieldOptional "aspectReferenceCount"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "aspectReferenceCount"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             =
-             #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
-        type FieldIsArray "aspectReferenceCount"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectReferenceCount"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectReferenceCount"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, aspectReferenceCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAspectReferences"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        type FieldType "pAspectReferences"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = Ptr VkInputAttachmentAspectReference
-        type FieldOptional "pAspectReferences"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAspectReferences"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             =
-             #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
-        type FieldIsArray "pAspectReferences"
-               VkRenderPassInputAttachmentAspectCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAspectReferences"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAspectReferences"
-           VkRenderPassInputAttachmentAspectCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassInputAttachmentAspectCreateInfo, pAspectReferences}
-
-instance Show VkRenderPassInputAttachmentAspectCreateInfo where
-        showsPrec d x
-          = showString "VkRenderPassInputAttachmentAspectCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "aspectReferenceCount = " .
-                            showsPrec d (getField @"aspectReferenceCount" x) .
-                              showString ", " .
-                                showString "pAspectReferences = " .
-                                  showsPrec d (getField @"pAspectReferences" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassInputAttachmentAspectCreateInfoKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfoKHR
-       (VkRenderPassInputAttachmentAspectCreateInfo(..),
-        VkRenderPassInputAttachmentAspectCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfo
-                                                                                           (VkRenderPassInputAttachmentAspectCreateInfo (..))
-
--- | Alias for `VkRenderPassInputAttachmentAspectCreateInfo`
-type VkRenderPassInputAttachmentAspectCreateInfoKHR =
-     VkRenderPassInputAttachmentAspectCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfo.hsc
+++ /dev/null
@@ -1,409 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfo
-       (VkRenderPassMultiviewCreateInfo(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo (VkRenderPassCreateInfo)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkRenderPassMultiviewCreateInfo {
---   >     VkStructureType        sType;
---   >     const void*            pNext;
---   >     uint32_t               subpassCount;
---   >     const uint32_t*     pViewMasks;
---   >     uint32_t               dependencyCount;
---   >     const int32_t*   pViewOffsets;
---   >     uint32_t               correlationMaskCount;
---   >     const uint32_t* pCorrelationMasks;
---   > } VkRenderPassMultiviewCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRenderPassMultiviewCreateInfo.html VkRenderPassMultiviewCreateInfo registry at www.khronos.org>
-data VkRenderPassMultiviewCreateInfo = VkRenderPassMultiviewCreateInfo## Addr##
-                                                                        ByteArray##
-
-instance Eq VkRenderPassMultiviewCreateInfo where
-        (VkRenderPassMultiviewCreateInfo## a _) ==
-          x@(VkRenderPassMultiviewCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRenderPassMultiviewCreateInfo where
-        (VkRenderPassMultiviewCreateInfo## a _) `compare`
-          x@(VkRenderPassMultiviewCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRenderPassMultiviewCreateInfo where
-        sizeOf ~_ = #{size VkRenderPassMultiviewCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkRenderPassMultiviewCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRenderPassMultiviewCreateInfo where
-        unsafeAddr (VkRenderPassMultiviewCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassMultiviewCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassMultiviewCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRenderPassMultiviewCreateInfo where
-        type StructFields VkRenderPassMultiviewCreateInfo =
-             '["sType", "pNext", "subpassCount", "pViewMasks", -- ' closing tick for hsc2hs
-               "dependencyCount", "pViewOffsets", "correlationMaskCount",
-               "pCorrelationMasks"]
-        type CUnionType VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRenderPassMultiviewCreateInfo =
-             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkRenderPassMultiviewCreateInfo where
-        type FieldType "sType" VkRenderPassMultiviewCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkRenderPassMultiviewCreateInfo =
-             #{offset VkRenderPassMultiviewCreateInfo, sType}
-        type FieldIsArray "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkRenderPassMultiviewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkRenderPassMultiviewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkRenderPassMultiviewCreateInfo where
-        type FieldType "pNext" VkRenderPassMultiviewCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkRenderPassMultiviewCreateInfo =
-             #{offset VkRenderPassMultiviewCreateInfo, pNext}
-        type FieldIsArray "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkRenderPassMultiviewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkRenderPassMultiviewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "subpassCount" VkRenderPassMultiviewCreateInfo where
-        type FieldType "subpassCount" VkRenderPassMultiviewCreateInfo =
-             Word32
-        type FieldOptional "subpassCount" VkRenderPassMultiviewCreateInfo =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "subpassCount" VkRenderPassMultiviewCreateInfo =
-             #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
-        type FieldIsArray "subpassCount" VkRenderPassMultiviewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpassCount" VkRenderPassMultiviewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, subpassCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpassCount" VkRenderPassMultiviewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, subpassCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewMasks" VkRenderPassMultiviewCreateInfo where
-        type FieldType "pViewMasks" VkRenderPassMultiviewCreateInfo =
-             Ptr Word32
-        type FieldOptional "pViewMasks" VkRenderPassMultiviewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pViewMasks" VkRenderPassMultiviewCreateInfo =
-             #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
-        type FieldIsArray "pViewMasks" VkRenderPassMultiviewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewMasks" VkRenderPassMultiviewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pViewMasks})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewMasks" VkRenderPassMultiviewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewMasks}
-
-instance {-# OVERLAPPING #-}
-         HasField "dependencyCount" VkRenderPassMultiviewCreateInfo where
-        type FieldType "dependencyCount" VkRenderPassMultiviewCreateInfo =
-             Word32
-        type FieldOptional "dependencyCount"
-               VkRenderPassMultiviewCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dependencyCount" VkRenderPassMultiviewCreateInfo
-             =
-             #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
-        type FieldIsArray "dependencyCount" VkRenderPassMultiviewCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dependencyCount" VkRenderPassMultiviewCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, dependencyCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dependencyCount" VkRenderPassMultiviewCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, dependencyCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
-        type FieldType "pViewOffsets" VkRenderPassMultiviewCreateInfo =
-             Ptr Int32
-        type FieldOptional "pViewOffsets" VkRenderPassMultiviewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pViewOffsets" VkRenderPassMultiviewCreateInfo =
-             #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
-        type FieldIsArray "pViewOffsets" VkRenderPassMultiviewCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pViewOffsets}
-
-instance {-# OVERLAPPING #-}
-         HasField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
-         where
-        type FieldType "correlationMaskCount"
-               VkRenderPassMultiviewCreateInfo
-             = Word32
-        type FieldOptional "correlationMaskCount"
-               VkRenderPassMultiviewCreateInfo
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "correlationMaskCount"
-               VkRenderPassMultiviewCreateInfo
-             =
-             #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
-        type FieldIsArray "correlationMaskCount"
-               VkRenderPassMultiviewCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "correlationMaskCount"
-           VkRenderPassMultiviewCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, correlationMaskCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo where
-        type FieldType "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
-             = Ptr Word32
-        type FieldOptional "pCorrelationMasks"
-               VkRenderPassMultiviewCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pCorrelationMasks"
-               VkRenderPassMultiviewCreateInfo
-             =
-             #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
-        type FieldIsArray "pCorrelationMasks"
-               VkRenderPassMultiviewCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassMultiviewCreateInfo, pCorrelationMasks}
-
-instance Show VkRenderPassMultiviewCreateInfo where
-        showsPrec d x
-          = showString "VkRenderPassMultiviewCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "subpassCount = " .
-                            showsPrec d (getField @"subpassCount" x) .
-                              showString ", " .
-                                showString "pViewMasks = " .
-                                  showsPrec d (getField @"pViewMasks" x) .
-                                    showString ", " .
-                                      showString "dependencyCount = " .
-                                        showsPrec d (getField @"dependencyCount" x) .
-                                          showString ", " .
-                                            showString "pViewOffsets = " .
-                                              showsPrec d (getField @"pViewOffsets" x) .
-                                                showString ", " .
-                                                  showString "correlationMaskCount = " .
-                                                    showsPrec d (getField @"correlationMaskCount" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pCorrelationMasks = " .
-                                                          showsPrec d
-                                                            (getField @"pCorrelationMasks" x)
-                                                            . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassMultiviewCreateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfoKHR
-       (VkRenderPassMultiviewCreateInfo(..),
-        VkRenderPassMultiviewCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfo (VkRenderPassMultiviewCreateInfo (..))
-
--- | Alias for `VkRenderPassMultiviewCreateInfo`
-type VkRenderPassMultiviewCreateInfoKHR =
-     VkRenderPassMultiviewCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassSampleLocationsBeginInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassSampleLocationsBeginInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkRenderPassSampleLocationsBeginInfoEXT.hsc
+++ /dev/null
@@ -1,367 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkRenderPassSampleLocationsBeginInfoEXT
-       (VkRenderPassSampleLocationsBeginInfoEXT(..)) where
-import           Foreign.Storable                                            (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                  (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkAttachmentSampleLocationsEXT (VkAttachmentSampleLocationsEXT)
-import           Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo          (VkRenderPassBeginInfo)
-import           Graphics.Vulkan.Types.Struct.VkSubpassSampleLocationsEXT    (VkSubpassSampleLocationsEXT)
-import           System.IO.Unsafe                                            (unsafeDupablePerformIO)
-
--- | > typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         attachmentInitialSampleLocationsCount;
---   >     const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
---   >     uint32_t         postSubpassSampleLocationsCount;
---   >     const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
---   > } VkRenderPassSampleLocationsBeginInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkRenderPassSampleLocationsBeginInfoEXT.html VkRenderPassSampleLocationsBeginInfoEXT registry at www.khronos.org>
-data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT## Addr##
-                                                                                        ByteArray##
-
-instance Eq VkRenderPassSampleLocationsBeginInfoEXT where
-        (VkRenderPassSampleLocationsBeginInfoEXT## a _) ==
-          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkRenderPassSampleLocationsBeginInfoEXT where
-        (VkRenderPassSampleLocationsBeginInfoEXT## a _) `compare`
-          x@(VkRenderPassSampleLocationsBeginInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkRenderPassSampleLocationsBeginInfoEXT where
-        sizeOf ~_
-          = #{size VkRenderPassSampleLocationsBeginInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkRenderPassSampleLocationsBeginInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        unsafeAddr (VkRenderPassSampleLocationsBeginInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkRenderPassSampleLocationsBeginInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkRenderPassSampleLocationsBeginInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        type StructFields VkRenderPassSampleLocationsBeginInfoEXT =
-             '["sType", "pNext", "attachmentInitialSampleLocationsCount", -- ' closing tick for hsc2hs
-               "pAttachmentInitialSampleLocations",
-               "postSubpassSampleLocationsCount", "pPostSubpassSampleLocations"]
-        type CUnionType VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkRenderPassSampleLocationsBeginInfoEXT =
-             '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
-        type FieldType "sType" VkRenderPassSampleLocationsBeginInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkRenderPassSampleLocationsBeginInfoEXT =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
-        type FieldIsArray "sType" VkRenderPassSampleLocationsBeginInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
-        type FieldType "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
-        type FieldIsArray "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "attachmentInitialSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        type FieldType "attachmentInitialSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = Word32
-        type FieldOptional "attachmentInitialSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "attachmentInitialSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
-        type FieldIsArray "attachmentInitialSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "attachmentInitialSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "attachmentInitialSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, attachmentInitialSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAttachmentInitialSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        type FieldType "pAttachmentInitialSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = Ptr VkAttachmentSampleLocationsEXT
-        type FieldOptional "pAttachmentInitialSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAttachmentInitialSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
-        type FieldIsArray "pAttachmentInitialSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAttachmentInitialSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAttachmentInitialSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pAttachmentInitialSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         HasField "postSubpassSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        type FieldType "postSubpassSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = Word32
-        type FieldOptional "postSubpassSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "postSubpassSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
-        type FieldIsArray "postSubpassSampleLocationsCount"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "postSubpassSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "postSubpassSampleLocationsCount"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, postSubpassSampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pPostSubpassSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        type FieldType "pPostSubpassSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = Ptr VkSubpassSampleLocationsEXT
-        type FieldOptional "pPostSubpassSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pPostSubpassSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             =
-             #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
-        type FieldIsArray "pPostSubpassSampleLocations"
-               VkRenderPassSampleLocationsBeginInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pPostSubpassSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pPostSubpassSampleLocations"
-           VkRenderPassSampleLocationsBeginInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkRenderPassSampleLocationsBeginInfoEXT, pPostSubpassSampleLocations}
-
-instance Show VkRenderPassSampleLocationsBeginInfoEXT where
-        showsPrec d x
-          = showString "VkRenderPassSampleLocationsBeginInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "attachmentInitialSampleLocationsCount = " .
-                            showsPrec d (getField @"attachmentInitialSampleLocationsCount" x) .
-                              showString ", " .
-                                showString "pAttachmentInitialSampleLocations = " .
-                                  showsPrec d (getField @"pAttachmentInitialSampleLocations" x) .
-                                    showString ", " .
-                                      showString "postSubpassSampleLocationsCount = " .
-                                        showsPrec d (getField @"postSubpassSampleLocationsCount" x)
-                                          .
-                                          showString ", " .
-                                            showString "pPostSubpassSampleLocations = " .
-                                              showsPrec d
-                                                (getField @"pPostSubpassSampleLocations" x)
-                                                . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationEXT.hsc
+++ /dev/null
@@ -1,136 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSampleLocationEXT
-       (VkSampleLocationEXT(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkSampleLocationEXT {
---   >     float                            x;
---   >     float                            y;
---   > } VkSampleLocationEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSampleLocationEXT.html VkSampleLocationEXT registry at www.khronos.org>
-data VkSampleLocationEXT = VkSampleLocationEXT## Addr## ByteArray##
-
-instance Eq VkSampleLocationEXT where
-        (VkSampleLocationEXT## a _) == x@(VkSampleLocationEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSampleLocationEXT where
-        (VkSampleLocationEXT## a _) `compare` x@(VkSampleLocationEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSampleLocationEXT where
-        sizeOf ~_ = #{size VkSampleLocationEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSampleLocationEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSampleLocationEXT where
-        unsafeAddr (VkSampleLocationEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSampleLocationEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSampleLocationEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSampleLocationEXT where
-        type StructFields VkSampleLocationEXT = '["x", "y"] -- ' closing tick for hsc2hs
-        type CUnionType VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSampleLocationEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkSampleLocationEXT where
-        type FieldType "x" VkSampleLocationEXT = #{type float}
-        type FieldOptional "x" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkSampleLocationEXT =
-             #{offset VkSampleLocationEXT, x}
-        type FieldIsArray "x" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSampleLocationEXT, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkSampleLocationEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationEXT, x})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationEXT, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkSampleLocationEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationEXT, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkSampleLocationEXT where
-        type FieldType "y" VkSampleLocationEXT = #{type float}
-        type FieldOptional "y" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkSampleLocationEXT =
-             #{offset VkSampleLocationEXT, y}
-        type FieldIsArray "y" VkSampleLocationEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSampleLocationEXT, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkSampleLocationEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationEXT, y})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationEXT, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkSampleLocationEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationEXT, y}
-
-instance Show VkSampleLocationEXT where
-        showsPrec d x
-          = showString "VkSampleLocationEXT {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationsInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationsInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSampleLocationsInfoEXT.hsc
+++ /dev/null
@@ -1,316 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT
-       (VkSampleLocationsInfoEXT(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkSampleCountFlags     (VkSampleCountFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D           (VkExtent2D)
-import           Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier (VkImageMemoryBarrier)
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationEXT  (VkSampleLocationEXT)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkSampleLocationsInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSampleCountFlagBits            sampleLocationsPerPixel;
---   >     VkExtent2D                       sampleLocationGridSize;
---   >     uint32_t                         sampleLocationsCount;
---   >     const VkSampleLocationEXT* pSampleLocations;
---   > } VkSampleLocationsInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSampleLocationsInfoEXT.html VkSampleLocationsInfoEXT registry at www.khronos.org>
-data VkSampleLocationsInfoEXT = VkSampleLocationsInfoEXT## Addr##
-                                                          ByteArray##
-
-instance Eq VkSampleLocationsInfoEXT where
-        (VkSampleLocationsInfoEXT## a _) ==
-          x@(VkSampleLocationsInfoEXT## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSampleLocationsInfoEXT where
-        (VkSampleLocationsInfoEXT## a _) `compare`
-          x@(VkSampleLocationsInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSampleLocationsInfoEXT where
-        sizeOf ~_ = #{size VkSampleLocationsInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSampleLocationsInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSampleLocationsInfoEXT where
-        unsafeAddr (VkSampleLocationsInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSampleLocationsInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSampleLocationsInfoEXT## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSampleLocationsInfoEXT where
-        type StructFields VkSampleLocationsInfoEXT =
-             '["sType", "pNext", "sampleLocationsPerPixel", -- ' closing tick for hsc2hs
-               "sampleLocationGridSize", "sampleLocationsCount",
-               "pSampleLocations"]
-        type CUnionType VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSampleLocationsInfoEXT =
-             '[VkImageMemoryBarrier] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSampleLocationsInfoEXT where
-        type FieldType "sType" VkSampleLocationsInfoEXT = VkStructureType
-        type FieldOptional "sType" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSampleLocationsInfoEXT =
-             #{offset VkSampleLocationsInfoEXT, sType}
-        type FieldIsArray "sType" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSampleLocationsInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSampleLocationsInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSampleLocationsInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSampleLocationsInfoEXT where
-        type FieldType "pNext" VkSampleLocationsInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSampleLocationsInfoEXT =
-             #{offset VkSampleLocationsInfoEXT, pNext}
-        type FieldIsArray "pNext" VkSampleLocationsInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSampleLocationsInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSampleLocationsInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSampleLocationsInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT where
-        type FieldType "sampleLocationsPerPixel" VkSampleLocationsInfoEXT =
-             VkSampleCountFlagBits
-        type FieldOptional "sampleLocationsPerPixel"
-               VkSampleLocationsInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
-             =
-             #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
-        type FieldIsArray "sampleLocationsPerPixel"
-               VkSampleLocationsInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsPerPixel" VkSampleLocationsInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsPerPixel}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationGridSize" VkSampleLocationsInfoEXT where
-        type FieldType "sampleLocationGridSize" VkSampleLocationsInfoEXT =
-             VkExtent2D
-        type FieldOptional "sampleLocationGridSize"
-               VkSampleLocationsInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationGridSize" VkSampleLocationsInfoEXT
-             =
-             #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
-        type FieldIsArray "sampleLocationGridSize" VkSampleLocationsInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationGridSize" VkSampleLocationsInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationGridSize" VkSampleLocationsInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationGridSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsCount" VkSampleLocationsInfoEXT where
-        type FieldType "sampleLocationsCount" VkSampleLocationsInfoEXT =
-             Word32
-        type FieldOptional "sampleLocationsCount" VkSampleLocationsInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsCount" VkSampleLocationsInfoEXT =
-             #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
-        type FieldIsArray "sampleLocationsCount" VkSampleLocationsInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsCount" VkSampleLocationsInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, sampleLocationsCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsCount" VkSampleLocationsInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, sampleLocationsCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSampleLocations" VkSampleLocationsInfoEXT where
-        type FieldType "pSampleLocations" VkSampleLocationsInfoEXT =
-             Ptr VkSampleLocationEXT
-        type FieldOptional "pSampleLocations" VkSampleLocationsInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSampleLocations" VkSampleLocationsInfoEXT =
-             #{offset VkSampleLocationsInfoEXT, pSampleLocations}
-        type FieldIsArray "pSampleLocations" VkSampleLocationsInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSampleLocationsInfoEXT, pSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSampleLocations" VkSampleLocationsInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSampleLocationsInfoEXT, pSampleLocations})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSampleLocationsInfoEXT, pSampleLocations}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSampleLocations" VkSampleLocationsInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSampleLocationsInfoEXT, pSampleLocations}
-
-instance Show VkSampleLocationsInfoEXT where
-        showsPrec d x
-          = showString "VkSampleLocationsInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "sampleLocationsPerPixel = " .
-                            showsPrec d (getField @"sampleLocationsPerPixel" x) .
-                              showString ", " .
-                                showString "sampleLocationGridSize = " .
-                                  showsPrec d (getField @"sampleLocationGridSize" x) .
-                                    showString ", " .
-                                      showString "sampleLocationsCount = " .
-                                        showsPrec d (getField @"sampleLocationsCount" x) .
-                                          showString ", " .
-                                            showString "pSampleLocations = " .
-                                              showsPrec d (getField @"pSampleLocations" x) .
-                                                showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerCreateInfo.hsc
+++ /dev/null
@@ -1,801 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo
-       (VkSamplerCreateInfo(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                 (VkBool32)
-import           Graphics.Vulkan.Types.Bitmasks                  (VkSamplerCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkBorderColor        (VkBorderColor)
-import           Graphics.Vulkan.Types.Enum.VkCompareOp          (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.VkFilter             (VkFilter)
-import           Graphics.Vulkan.Types.Enum.VkSamplerAddressMode (VkSamplerAddressMode)
-import           Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode  (VkSamplerMipmapMode)
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSamplerCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkSamplerCreateFlags   flags;
---   >     VkFilter               magFilter;
---   >     VkFilter               minFilter;
---   >     VkSamplerMipmapMode    mipmapMode;
---   >     VkSamplerAddressMode   addressModeU;
---   >     VkSamplerAddressMode   addressModeV;
---   >     VkSamplerAddressMode   addressModeW;
---   >     float                  mipLodBias;
---   >     VkBool32               anisotropyEnable;
---   >     float                  maxAnisotropy;
---   >     VkBool32               compareEnable;
---   >     VkCompareOp            compareOp;
---   >     float                  minLod;
---   >     float                  maxLod;
---   >     VkBorderColor          borderColor;
---   >     VkBool32               unnormalizedCoordinates;
---   > } VkSamplerCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerCreateInfo.html VkSamplerCreateInfo registry at www.khronos.org>
-data VkSamplerCreateInfo = VkSamplerCreateInfo## Addr## ByteArray##
-
-instance Eq VkSamplerCreateInfo where
-        (VkSamplerCreateInfo## a _) == x@(VkSamplerCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSamplerCreateInfo where
-        (VkSamplerCreateInfo## a _) `compare` x@(VkSamplerCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSamplerCreateInfo where
-        sizeOf ~_ = #{size VkSamplerCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSamplerCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSamplerCreateInfo where
-        unsafeAddr (VkSamplerCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSamplerCreateInfo where
-        type StructFields VkSamplerCreateInfo =
-             '["sType", "pNext", "flags", "magFilter", "minFilter", -- ' closing tick for hsc2hs
-               "mipmapMode", "addressModeU", "addressModeV", "addressModeW",
-               "mipLodBias", "anisotropyEnable", "maxAnisotropy", "compareEnable",
-               "compareOp", "minLod", "maxLod", "borderColor",
-               "unnormalizedCoordinates"]
-        type CUnionType VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSamplerCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkSamplerCreateInfo
-         where
-        type FieldType "sType" VkSamplerCreateInfo = VkStructureType
-        type FieldOptional "sType" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, sType}
-        type FieldIsArray "sType" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkSamplerCreateInfo
-         where
-        type FieldType "pNext" VkSamplerCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, pNext}
-        type FieldIsArray "pNext" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkSamplerCreateInfo
-         where
-        type FieldType "flags" VkSamplerCreateInfo = VkSamplerCreateFlags
-        type FieldOptional "flags" VkSamplerCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, flags}
-        type FieldIsArray "flags" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "magFilter" VkSamplerCreateInfo where
-        type FieldType "magFilter" VkSamplerCreateInfo = VkFilter
-        type FieldOptional "magFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "magFilter" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, magFilter}
-        type FieldIsArray "magFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, magFilter}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "magFilter" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, magFilter})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, magFilter}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "magFilter" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, magFilter}
-
-instance {-# OVERLAPPING #-}
-         HasField "minFilter" VkSamplerCreateInfo where
-        type FieldType "minFilter" VkSamplerCreateInfo = VkFilter
-        type FieldOptional "minFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minFilter" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, minFilter}
-        type FieldIsArray "minFilter" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, minFilter}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minFilter" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, minFilter})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, minFilter}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minFilter" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, minFilter}
-
-instance {-# OVERLAPPING #-}
-         HasField "mipmapMode" VkSamplerCreateInfo where
-        type FieldType "mipmapMode" VkSamplerCreateInfo =
-             VkSamplerMipmapMode
-        type FieldOptional "mipmapMode" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipmapMode" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, mipmapMode}
-        type FieldIsArray "mipmapMode" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, mipmapMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipmapMode" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, mipmapMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, mipmapMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipmapMode" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, mipmapMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "addressModeU" VkSamplerCreateInfo where
-        type FieldType "addressModeU" VkSamplerCreateInfo =
-             VkSamplerAddressMode
-        type FieldOptional "addressModeU" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "addressModeU" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, addressModeU}
-        type FieldIsArray "addressModeU" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, addressModeU}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "addressModeU" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeU})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeU}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "addressModeU" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeU}
-
-instance {-# OVERLAPPING #-}
-         HasField "addressModeV" VkSamplerCreateInfo where
-        type FieldType "addressModeV" VkSamplerCreateInfo =
-             VkSamplerAddressMode
-        type FieldOptional "addressModeV" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "addressModeV" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, addressModeV}
-        type FieldIsArray "addressModeV" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, addressModeV}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "addressModeV" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeV})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeV}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "addressModeV" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeV}
-
-instance {-# OVERLAPPING #-}
-         HasField "addressModeW" VkSamplerCreateInfo where
-        type FieldType "addressModeW" VkSamplerCreateInfo =
-             VkSamplerAddressMode
-        type FieldOptional "addressModeW" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "addressModeW" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, addressModeW}
-        type FieldIsArray "addressModeW" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, addressModeW}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "addressModeW" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, addressModeW})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, addressModeW}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "addressModeW" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, addressModeW}
-
-instance {-# OVERLAPPING #-}
-         HasField "mipLodBias" VkSamplerCreateInfo where
-        type FieldType "mipLodBias" VkSamplerCreateInfo =
-             #{type float}
-        type FieldOptional "mipLodBias" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "mipLodBias" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, mipLodBias}
-        type FieldIsArray "mipLodBias" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, mipLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mipLodBias" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, mipLodBias})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, mipLodBias}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mipLodBias" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, mipLodBias}
-
-instance {-# OVERLAPPING #-}
-         HasField "anisotropyEnable" VkSamplerCreateInfo where
-        type FieldType "anisotropyEnable" VkSamplerCreateInfo = VkBool32
-        type FieldOptional "anisotropyEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "anisotropyEnable" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, anisotropyEnable}
-        type FieldIsArray "anisotropyEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, anisotropyEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "anisotropyEnable" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, anisotropyEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, anisotropyEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "anisotropyEnable" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, anisotropyEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxAnisotropy" VkSamplerCreateInfo where
-        type FieldType "maxAnisotropy" VkSamplerCreateInfo =
-             #{type float}
-        type FieldOptional "maxAnisotropy" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxAnisotropy" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, maxAnisotropy}
-        type FieldIsArray "maxAnisotropy" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, maxAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxAnisotropy" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, maxAnisotropy})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, maxAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxAnisotropy" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, maxAnisotropy}
-
-instance {-# OVERLAPPING #-}
-         HasField "compareEnable" VkSamplerCreateInfo where
-        type FieldType "compareEnable" VkSamplerCreateInfo = VkBool32
-        type FieldOptional "compareEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compareEnable" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, compareEnable}
-        type FieldIsArray "compareEnable" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, compareEnable}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compareEnable" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, compareEnable})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, compareEnable}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compareEnable" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, compareEnable}
-
-instance {-# OVERLAPPING #-}
-         HasField "compareOp" VkSamplerCreateInfo where
-        type FieldType "compareOp" VkSamplerCreateInfo = VkCompareOp
-        type FieldOptional "compareOp" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compareOp" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, compareOp}
-        type FieldIsArray "compareOp" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, compareOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compareOp" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, compareOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, compareOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compareOp" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, compareOp}
-
-instance {-# OVERLAPPING #-} HasField "minLod" VkSamplerCreateInfo
-         where
-        type FieldType "minLod" VkSamplerCreateInfo =
-             #{type float}
-        type FieldOptional "minLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minLod" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, minLod}
-        type FieldIsArray "minLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, minLod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minLod" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, minLod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, minLod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minLod" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, minLod}
-
-instance {-# OVERLAPPING #-} HasField "maxLod" VkSamplerCreateInfo
-         where
-        type FieldType "maxLod" VkSamplerCreateInfo =
-             #{type float}
-        type FieldOptional "maxLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxLod" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, maxLod}
-        type FieldIsArray "maxLod" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSamplerCreateInfo, maxLod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxLod" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, maxLod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, maxLod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxLod" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, maxLod}
-
-instance {-# OVERLAPPING #-}
-         HasField "borderColor" VkSamplerCreateInfo where
-        type FieldType "borderColor" VkSamplerCreateInfo = VkBorderColor
-        type FieldOptional "borderColor" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "borderColor" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, borderColor}
-        type FieldIsArray "borderColor" VkSamplerCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, borderColor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "borderColor" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, borderColor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, borderColor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "borderColor" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, borderColor}
-
-instance {-# OVERLAPPING #-}
-         HasField "unnormalizedCoordinates" VkSamplerCreateInfo where
-        type FieldType "unnormalizedCoordinates" VkSamplerCreateInfo =
-             VkBool32
-        type FieldOptional "unnormalizedCoordinates" VkSamplerCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "unnormalizedCoordinates" VkSamplerCreateInfo =
-             #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
-        type FieldIsArray "unnormalizedCoordinates" VkSamplerCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "unnormalizedCoordinates" VkSamplerCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerCreateInfo, unnormalizedCoordinates})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "unnormalizedCoordinates" VkSamplerCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerCreateInfo, unnormalizedCoordinates}
-
-instance Show VkSamplerCreateInfo where
-        showsPrec d x
-          = showString "VkSamplerCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "magFilter = " .
-                                  showsPrec d (getField @"magFilter" x) .
-                                    showString ", " .
-                                      showString "minFilter = " .
-                                        showsPrec d (getField @"minFilter" x) .
-                                          showString ", " .
-                                            showString "mipmapMode = " .
-                                              showsPrec d (getField @"mipmapMode" x) .
-                                                showString ", " .
-                                                  showString "addressModeU = " .
-                                                    showsPrec d (getField @"addressModeU" x) .
-                                                      showString ", " .
-                                                        showString "addressModeV = " .
-                                                          showsPrec d (getField @"addressModeV" x) .
-                                                            showString ", " .
-                                                              showString "addressModeW = " .
-                                                                showsPrec d
-                                                                  (getField @"addressModeW" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "mipLodBias = " .
-                                                                      showsPrec d
-                                                                        (getField @"mipLodBias" x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "anisotropyEnable = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"anisotropyEnable"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "maxAnisotropy = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"maxAnisotropy"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "compareEnable = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"compareEnable"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "compareOp = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"compareOp"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "minLod = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"minLod"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "maxLod = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"maxLod"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "borderColor = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"borderColor"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "unnormalizedCoordinates = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"unnormalizedCoordinates"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showChar
-                                                                                                                          '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerReductionModeCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerReductionModeCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerReductionModeCreateInfoEXT.hsc
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerReductionModeCreateInfoEXT
-       (VkSamplerReductionModeCreateInfoEXT(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkSamplerReductionModeEXT (VkSamplerReductionModeEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType           (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo     (VkSamplerCreateInfo)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkSamplerReductionModeCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkSamplerReductionModeEXT reductionMode;
---   > } VkSamplerReductionModeCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerReductionModeCreateInfoEXT.html VkSamplerReductionModeCreateInfoEXT registry at www.khronos.org>
-data VkSamplerReductionModeCreateInfoEXT = VkSamplerReductionModeCreateInfoEXT## Addr##
-                                                                                ByteArray##
-
-instance Eq VkSamplerReductionModeCreateInfoEXT where
-        (VkSamplerReductionModeCreateInfoEXT## a _) ==
-          x@(VkSamplerReductionModeCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSamplerReductionModeCreateInfoEXT where
-        (VkSamplerReductionModeCreateInfoEXT## a _) `compare`
-          x@(VkSamplerReductionModeCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSamplerReductionModeCreateInfoEXT where
-        sizeOf ~_ = #{size VkSamplerReductionModeCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSamplerReductionModeCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSamplerReductionModeCreateInfoEXT
-         where
-        unsafeAddr (VkSamplerReductionModeCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerReductionModeCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerReductionModeCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSamplerReductionModeCreateInfoEXT where
-        type StructFields VkSamplerReductionModeCreateInfoEXT =
-             '["sType", "pNext", "reductionMode"] -- ' closing tick for hsc2hs
-        type CUnionType VkSamplerReductionModeCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSamplerReductionModeCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSamplerReductionModeCreateInfoEXT =
-             '[VkSamplerCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSamplerReductionModeCreateInfoEXT where
-        type FieldType "sType" VkSamplerReductionModeCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkSamplerReductionModeCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSamplerReductionModeCreateInfoEXT =
-             #{offset VkSamplerReductionModeCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkSamplerReductionModeCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerReductionModeCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSamplerReductionModeCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSamplerReductionModeCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSamplerReductionModeCreateInfoEXT where
-        type FieldType "pNext" VkSamplerReductionModeCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext" VkSamplerReductionModeCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSamplerReductionModeCreateInfoEXT =
-             #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkSamplerReductionModeCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSamplerReductionModeCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSamplerReductionModeCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "reductionMode" VkSamplerReductionModeCreateInfoEXT where
-        type FieldType "reductionMode" VkSamplerReductionModeCreateInfoEXT
-             = VkSamplerReductionModeEXT
-        type FieldOptional "reductionMode"
-               VkSamplerReductionModeCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "reductionMode"
-               VkSamplerReductionModeCreateInfoEXT
-             =
-             #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
-        type FieldIsArray "reductionMode"
-               VkSamplerReductionModeCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "reductionMode" VkSamplerReductionModeCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "reductionMode" VkSamplerReductionModeCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerReductionModeCreateInfoEXT, reductionMode}
-
-instance Show VkSamplerReductionModeCreateInfoEXT where
-        showsPrec d x
-          = showString "VkSamplerReductionModeCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "reductionMode = " .
-                            showsPrec d (getField @"reductionMode" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfo.hsc
+++ /dev/null
@@ -1,510 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo
-       (VkSamplerYcbcrConversionCreateInfo(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                          (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkChromaLocation              (VkChromaLocation)
-import           Graphics.Vulkan.Types.Enum.VkFilter                      (VkFilter)
-import           Graphics.Vulkan.Types.Enum.VkFormat                      (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion (VkSamplerYcbcrModelConversion)
-import           Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange           (VkSamplerYcbcrRange)
-import           Graphics.Vulkan.Types.Enum.VkStructureType               (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkComponentMapping          (VkComponentMapping)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkSamplerYcbcrConversionCreateInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkFormat                         format;
---   >     VkSamplerYcbcrModelConversion ycbcrModel;
---   >     VkSamplerYcbcrRange           ycbcrRange;
---   >     VkComponentMapping               components;
---   >     VkChromaLocation              xChromaOffset;
---   >     VkChromaLocation              yChromaOffset;
---   >     VkFilter                         chromaFilter;
---   >     VkBool32                         forceExplicitReconstruction;
---   > } VkSamplerYcbcrConversionCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerYcbcrConversionCreateInfo.html VkSamplerYcbcrConversionCreateInfo registry at www.khronos.org>
-data VkSamplerYcbcrConversionCreateInfo = VkSamplerYcbcrConversionCreateInfo## Addr##
-                                                                              ByteArray##
-
-instance Eq VkSamplerYcbcrConversionCreateInfo where
-        (VkSamplerYcbcrConversionCreateInfo## a _) ==
-          x@(VkSamplerYcbcrConversionCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSamplerYcbcrConversionCreateInfo where
-        (VkSamplerYcbcrConversionCreateInfo## a _) `compare`
-          x@(VkSamplerYcbcrConversionCreateInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSamplerYcbcrConversionCreateInfo where
-        sizeOf ~_ = #{size VkSamplerYcbcrConversionCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSamplerYcbcrConversionCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSamplerYcbcrConversionCreateInfo where
-        unsafeAddr (VkSamplerYcbcrConversionCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerYcbcrConversionCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionCreateInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSamplerYcbcrConversionCreateInfo where
-        type StructFields VkSamplerYcbcrConversionCreateInfo =
-             '["sType", "pNext", "format", "ycbcrModel", "ycbcrRange", -- ' closing tick for hsc2hs
-               "components", "xChromaOffset", "yChromaOffset", "chromaFilter",
-               "forceExplicitReconstruction"]
-        type CUnionType VkSamplerYcbcrConversionCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSamplerYcbcrConversionCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSamplerYcbcrConversionCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "sType" VkSamplerYcbcrConversionCreateInfo =
-             VkStructureType
-        type FieldOptional "sType" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, sType}
-        type FieldIsArray "sType" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "pNext" VkSamplerYcbcrConversionCreateInfo =
-             Ptr Void
-        type FieldOptional "pNext" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
-        type FieldIsArray "pNext" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "format" VkSamplerYcbcrConversionCreateInfo =
-             VkFormat
-        type FieldOptional "format" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, format}
-        type FieldIsArray "format" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
-             VkSamplerYcbcrModelConversion
-        type FieldOptional "ycbcrModel" VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
-        type FieldIsArray "ycbcrModel" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ycbcrModel" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrModel}
-
-instance {-# OVERLAPPING #-}
-         HasField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
-             VkSamplerYcbcrRange
-        type FieldOptional "ycbcrRange" VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
-        type FieldIsArray "ycbcrRange" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ycbcrRange" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, ycbcrRange}
-
-instance {-# OVERLAPPING #-}
-         HasField "components" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "components" VkSamplerYcbcrConversionCreateInfo =
-             VkComponentMapping
-        type FieldOptional "components" VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "components" VkSamplerYcbcrConversionCreateInfo =
-             #{offset VkSamplerYcbcrConversionCreateInfo, components}
-        type FieldIsArray "components" VkSamplerYcbcrConversionCreateInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "components" VkSamplerYcbcrConversionCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, components})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "components" VkSamplerYcbcrConversionCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, components}
-
-instance {-# OVERLAPPING #-}
-         HasField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "xChromaOffset" VkSamplerYcbcrConversionCreateInfo =
-             VkChromaLocation
-        type FieldOptional "xChromaOffset"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
-             =
-             #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
-        type FieldIsArray "xChromaOffset"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "xChromaOffset" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, xChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "yChromaOffset" VkSamplerYcbcrConversionCreateInfo =
-             VkChromaLocation
-        type FieldOptional "yChromaOffset"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
-             =
-             #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
-        type FieldIsArray "yChromaOffset"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "yChromaOffset" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, yChromaOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "chromaFilter" VkSamplerYcbcrConversionCreateInfo where
-        type FieldType "chromaFilter" VkSamplerYcbcrConversionCreateInfo =
-             VkFilter
-        type FieldOptional "chromaFilter"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "chromaFilter" VkSamplerYcbcrConversionCreateInfo
-             =
-             #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
-        type FieldIsArray "chromaFilter" VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "chromaFilter" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "chromaFilter" VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, chromaFilter}
-
-instance {-# OVERLAPPING #-}
-         HasField "forceExplicitReconstruction"
-           VkSamplerYcbcrConversionCreateInfo
-         where
-        type FieldType "forceExplicitReconstruction"
-               VkSamplerYcbcrConversionCreateInfo
-             = VkBool32
-        type FieldOptional "forceExplicitReconstruction"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "forceExplicitReconstruction"
-               VkSamplerYcbcrConversionCreateInfo
-             =
-             #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
-        type FieldIsArray "forceExplicitReconstruction"
-               VkSamplerYcbcrConversionCreateInfo
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "forceExplicitReconstruction"
-           VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "forceExplicitReconstruction"
-           VkSamplerYcbcrConversionCreateInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionCreateInfo, forceExplicitReconstruction}
-
-instance Show VkSamplerYcbcrConversionCreateInfo where
-        showsPrec d x
-          = showString "VkSamplerYcbcrConversionCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "ycbcrModel = " .
-                                  showsPrec d (getField @"ycbcrModel" x) .
-                                    showString ", " .
-                                      showString "ycbcrRange = " .
-                                        showsPrec d (getField @"ycbcrRange" x) .
-                                          showString ", " .
-                                            showString "components = " .
-                                              showsPrec d (getField @"components" x) .
-                                                showString ", " .
-                                                  showString "xChromaOffset = " .
-                                                    showsPrec d (getField @"xChromaOffset" x) .
-                                                      showString ", " .
-                                                        showString "yChromaOffset = " .
-                                                          showsPrec d (getField @"yChromaOffset" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "chromaFilter = " .
-                                                                showsPrec d
-                                                                  (getField @"chromaFilter" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "forceExplicitReconstruction = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"forceExplicitReconstruction"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionCreateInfoKHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfoKHR
-       (VkSamplerYcbcrConversionCreateInfo(..),
-        VkSamplerYcbcrConversionCreateInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo (VkSamplerYcbcrConversionCreateInfo (..))
-
--- | Alias for `VkSamplerYcbcrConversionCreateInfo`
-type VkSamplerYcbcrConversionCreateInfoKHR =
-     VkSamplerYcbcrConversionCreateInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatProperties.hsc
+++ /dev/null
@@ -1,233 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatProperties
-       (VkSamplerYcbcrConversionImageFormatProperties(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2 (VkImageFormatProperties2)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSamplerYcbcrConversionImageFormatProperties {
---   >     VkStructureType sType;
---   >     void*      pNext;
---   >     uint32_t                         combinedImageSamplerDescriptorCount;
---   > } VkSamplerYcbcrConversionImageFormatProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerYcbcrConversionImageFormatProperties.html VkSamplerYcbcrConversionImageFormatProperties registry at www.khronos.org>
-data VkSamplerYcbcrConversionImageFormatProperties = VkSamplerYcbcrConversionImageFormatProperties## Addr##
-                                                                                                    ByteArray##
-
-instance Eq VkSamplerYcbcrConversionImageFormatProperties where
-        (VkSamplerYcbcrConversionImageFormatProperties## a _) ==
-          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSamplerYcbcrConversionImageFormatProperties where
-        (VkSamplerYcbcrConversionImageFormatProperties## a _) `compare`
-          x@(VkSamplerYcbcrConversionImageFormatProperties## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSamplerYcbcrConversionImageFormatProperties
-         where
-        sizeOf ~_
-          = #{size VkSamplerYcbcrConversionImageFormatProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSamplerYcbcrConversionImageFormatProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        unsafeAddr (VkSamplerYcbcrConversionImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray
-          (VkSamplerYcbcrConversionImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        type StructFields VkSamplerYcbcrConversionImageFormatProperties =
-             '["sType", "pNext", "combinedImageSamplerDescriptorCount"] -- ' closing tick for hsc2hs
-        type CUnionType VkSamplerYcbcrConversionImageFormatProperties =
-             'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSamplerYcbcrConversionImageFormatProperties =
-             'True -- ' closing tick for hsc2hs
-        type StructExtends VkSamplerYcbcrConversionImageFormatProperties =
-             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        type FieldType "sType"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = VkStructureType
-        type FieldOptional "sType"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType"
-               VkSamplerYcbcrConversionImageFormatProperties
-             =
-             #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
-        type FieldIsArray "sType"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        type FieldType "pNext"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = Ptr Void
-        type FieldOptional "pNext"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext"
-               VkSamplerYcbcrConversionImageFormatProperties
-             =
-             #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
-        type FieldIsArray "pNext"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "combinedImageSamplerDescriptorCount"
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        type FieldType "combinedImageSamplerDescriptorCount"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = Word32
-        type FieldOptional "combinedImageSamplerDescriptorCount"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "combinedImageSamplerDescriptorCount"
-               VkSamplerYcbcrConversionImageFormatProperties
-             =
-             #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
-        type FieldIsArray "combinedImageSamplerDescriptorCount"
-               VkSamplerYcbcrConversionImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "combinedImageSamplerDescriptorCount"
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "combinedImageSamplerDescriptorCount"
-           VkSamplerYcbcrConversionImageFormatProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionImageFormatProperties, combinedImageSamplerDescriptorCount}
-
-instance Show VkSamplerYcbcrConversionImageFormatProperties where
-        showsPrec d x
-          = showString "VkSamplerYcbcrConversionImageFormatProperties {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "combinedImageSamplerDescriptorCount = " .
-                            showsPrec d (getField @"combinedImageSamplerDescriptorCount" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatPropertiesKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatPropertiesKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionImageFormatPropertiesKHR.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatPropertiesKHR
-       (VkSamplerYcbcrConversionImageFormatProperties(..),
-        VkSamplerYcbcrConversionImageFormatPropertiesKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatProperties
-                                                                                             (VkSamplerYcbcrConversionImageFormatProperties (..))
-
--- | Alias for `VkSamplerYcbcrConversionImageFormatProperties`
-type VkSamplerYcbcrConversionImageFormatPropertiesKHR =
-     VkSamplerYcbcrConversionImageFormatProperties
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfo.hsc
+++ /dev/null
@@ -1,192 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfo
-       (VkSamplerYcbcrConversionInfo(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType         (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                      (VkSamplerYcbcrConversion)
-import           Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo (VkImageViewCreateInfo)
-import           Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo   (VkSamplerCreateInfo)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkSamplerYcbcrConversionInfo {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSamplerYcbcrConversion      conversion;
---   > } VkSamplerYcbcrConversionInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSamplerYcbcrConversionInfo.html VkSamplerYcbcrConversionInfo registry at www.khronos.org>
-data VkSamplerYcbcrConversionInfo = VkSamplerYcbcrConversionInfo## Addr##
-                                                                  ByteArray##
-
-instance Eq VkSamplerYcbcrConversionInfo where
-        (VkSamplerYcbcrConversionInfo## a _) ==
-          x@(VkSamplerYcbcrConversionInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSamplerYcbcrConversionInfo where
-        (VkSamplerYcbcrConversionInfo## a _) `compare`
-          x@(VkSamplerYcbcrConversionInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSamplerYcbcrConversionInfo where
-        sizeOf ~_ = #{size VkSamplerYcbcrConversionInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSamplerYcbcrConversionInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSamplerYcbcrConversionInfo where
-        unsafeAddr (VkSamplerYcbcrConversionInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSamplerYcbcrConversionInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSamplerYcbcrConversionInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSamplerYcbcrConversionInfo where
-        type StructFields VkSamplerYcbcrConversionInfo =
-             '["sType", "pNext", "conversion"] -- ' closing tick for hsc2hs
-        type CUnionType VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSamplerYcbcrConversionInfo =
-             '[VkSamplerCreateInfo, VkImageViewCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSamplerYcbcrConversionInfo where
-        type FieldType "sType" VkSamplerYcbcrConversionInfo =
-             VkStructureType
-        type FieldOptional "sType" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSamplerYcbcrConversionInfo =
-             #{offset VkSamplerYcbcrConversionInfo, sType}
-        type FieldIsArray "sType" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSamplerYcbcrConversionInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSamplerYcbcrConversionInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSamplerYcbcrConversionInfo where
-        type FieldType "pNext" VkSamplerYcbcrConversionInfo = Ptr Void
-        type FieldOptional "pNext" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSamplerYcbcrConversionInfo =
-             #{offset VkSamplerYcbcrConversionInfo, pNext}
-        type FieldIsArray "pNext" VkSamplerYcbcrConversionInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSamplerYcbcrConversionInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSamplerYcbcrConversionInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "conversion" VkSamplerYcbcrConversionInfo where
-        type FieldType "conversion" VkSamplerYcbcrConversionInfo =
-             VkSamplerYcbcrConversion
-        type FieldOptional "conversion" VkSamplerYcbcrConversionInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "conversion" VkSamplerYcbcrConversionInfo =
-             #{offset VkSamplerYcbcrConversionInfo, conversion}
-        type FieldIsArray "conversion" VkSamplerYcbcrConversionInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSamplerYcbcrConversionInfo, conversion}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "conversion" VkSamplerYcbcrConversionInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSamplerYcbcrConversionInfo, conversion})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSamplerYcbcrConversionInfo, conversion}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "conversion" VkSamplerYcbcrConversionInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSamplerYcbcrConversionInfo, conversion}
-
-instance Show VkSamplerYcbcrConversionInfo where
-        showsPrec d x
-          = showString "VkSamplerYcbcrConversionInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "conversion = " .
-                            showsPrec d (getField @"conversion" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfoKHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfoKHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSamplerYcbcrConversionInfoKHR.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfoKHR
-       (VkSamplerYcbcrConversionInfo(..), VkSamplerYcbcrConversionInfoKHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfo (VkSamplerYcbcrConversionInfo (..))
-
--- | Alias for `VkSamplerYcbcrConversionInfo`
-type VkSamplerYcbcrConversionInfoKHR = VkSamplerYcbcrConversionInfo
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreCreateInfo.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo
-       (VkSemaphoreCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkSemaphoreCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkSemaphoreCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkSemaphoreCreateFlags flags;
---   > } VkSemaphoreCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSemaphoreCreateInfo.html VkSemaphoreCreateInfo registry at www.khronos.org>
-data VkSemaphoreCreateInfo = VkSemaphoreCreateInfo## Addr##
-                                                    ByteArray##
-
-instance Eq VkSemaphoreCreateInfo where
-        (VkSemaphoreCreateInfo## a _) == x@(VkSemaphoreCreateInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSemaphoreCreateInfo where
-        (VkSemaphoreCreateInfo## a _) `compare`
-          x@(VkSemaphoreCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSemaphoreCreateInfo where
-        sizeOf ~_ = #{size VkSemaphoreCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSemaphoreCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSemaphoreCreateInfo where
-        unsafeAddr (VkSemaphoreCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreCreateInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSemaphoreCreateInfo where
-        type StructFields VkSemaphoreCreateInfo =
-             '["sType", "pNext", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSemaphoreCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkSemaphoreCreateInfo
-         where
-        type FieldType "sType" VkSemaphoreCreateInfo = VkStructureType
-        type FieldOptional "sType" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSemaphoreCreateInfo =
-             #{offset VkSemaphoreCreateInfo, sType}
-        type FieldIsArray "sType" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreCreateInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkSemaphoreCreateInfo
-         where
-        type FieldType "pNext" VkSemaphoreCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSemaphoreCreateInfo =
-             #{offset VkSemaphoreCreateInfo, pNext}
-        type FieldIsArray "pNext" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkSemaphoreCreateInfo
-         where
-        type FieldType "flags" VkSemaphoreCreateInfo =
-             VkSemaphoreCreateFlags
-        type FieldOptional "flags" VkSemaphoreCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSemaphoreCreateInfo =
-             #{offset VkSemaphoreCreateInfo, flags}
-        type FieldIsArray "flags" VkSemaphoreCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSemaphoreCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSemaphoreCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSemaphoreCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreCreateInfo, flags}
-
-instance Show VkSemaphoreCreateInfo where
-        showsPrec d x
-          = showString "VkSemaphoreCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetFdInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetFdInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetFdInfoKHR.hsc
+++ /dev/null
@@ -1,217 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSemaphoreGetFdInfoKHR
-       (VkSemaphoreGetFdInfoKHR(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                 (VkSemaphore)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkSemaphoreGetFdInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSemaphore                      semaphore;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   > } VkSemaphoreGetFdInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSemaphoreGetFdInfoKHR.html VkSemaphoreGetFdInfoKHR registry at www.khronos.org>
-data VkSemaphoreGetFdInfoKHR = VkSemaphoreGetFdInfoKHR## Addr##
-                                                        ByteArray##
-
-instance Eq VkSemaphoreGetFdInfoKHR where
-        (VkSemaphoreGetFdInfoKHR## a _) == x@(VkSemaphoreGetFdInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSemaphoreGetFdInfoKHR where
-        (VkSemaphoreGetFdInfoKHR## a _) `compare`
-          x@(VkSemaphoreGetFdInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSemaphoreGetFdInfoKHR where
-        sizeOf ~_ = #{size VkSemaphoreGetFdInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSemaphoreGetFdInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSemaphoreGetFdInfoKHR where
-        unsafeAddr (VkSemaphoreGetFdInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreGetFdInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreGetFdInfoKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSemaphoreGetFdInfoKHR where
-        type StructFields VkSemaphoreGetFdInfoKHR =
-             '["sType", "pNext", "semaphore", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSemaphoreGetFdInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSemaphoreGetFdInfoKHR where
-        type FieldType "sType" VkSemaphoreGetFdInfoKHR = VkStructureType
-        type FieldOptional "sType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSemaphoreGetFdInfoKHR =
-             #{offset VkSemaphoreGetFdInfoKHR, sType}
-        type FieldIsArray "sType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSemaphoreGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSemaphoreGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSemaphoreGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSemaphoreGetFdInfoKHR where
-        type FieldType "pNext" VkSemaphoreGetFdInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSemaphoreGetFdInfoKHR =
-             #{offset VkSemaphoreGetFdInfoKHR, pNext}
-        type FieldIsArray "pNext" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSemaphoreGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSemaphoreGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSemaphoreGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "semaphore" VkSemaphoreGetFdInfoKHR where
-        type FieldType "semaphore" VkSemaphoreGetFdInfoKHR = VkSemaphore
-        type FieldOptional "semaphore" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "semaphore" VkSemaphoreGetFdInfoKHR =
-             #{offset VkSemaphoreGetFdInfoKHR, semaphore}
-        type FieldIsArray "semaphore" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "semaphore" VkSemaphoreGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, semaphore})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "semaphore" VkSemaphoreGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkSemaphoreGetFdInfoKHR where
-        type FieldType "handleType" VkSemaphoreGetFdInfoKHR =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkSemaphoreGetFdInfoKHR =
-             #{offset VkSemaphoreGetFdInfoKHR, handleType}
-        type FieldIsArray "handleType" VkSemaphoreGetFdInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkSemaphoreGetFdInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetFdInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetFdInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkSemaphoreGetFdInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetFdInfoKHR, handleType}
-
-instance Show VkSemaphoreGetFdInfoKHR where
-        showsPrec d x
-          = showString "VkSemaphoreGetFdInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "semaphore = " .
-                            showsPrec d (getField @"semaphore" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetWin32HandleInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetWin32HandleInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSemaphoreGetWin32HandleInfoKHR.hsc
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSemaphoreGetWin32HandleInfoKHR
-       (VkSemaphoreGetWin32HandleInfoKHR(..)) where
-import           Foreign.Storable                                              (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags (VkExternalSemaphoreHandleTypeFlagBits)
-import           Graphics.Vulkan.Types.Enum.VkStructureType                    (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                                 (VkSemaphore)
-import           System.IO.Unsafe                                              (unsafeDupablePerformIO)
-
--- | > typedef struct VkSemaphoreGetWin32HandleInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSemaphore                      semaphore;
---   >     VkExternalSemaphoreHandleTypeFlagBits handleType;
---   > } VkSemaphoreGetWin32HandleInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSemaphoreGetWin32HandleInfoKHR.html VkSemaphoreGetWin32HandleInfoKHR registry at www.khronos.org>
-data VkSemaphoreGetWin32HandleInfoKHR = VkSemaphoreGetWin32HandleInfoKHR## Addr##
-                                                                          ByteArray##
-
-instance Eq VkSemaphoreGetWin32HandleInfoKHR where
-        (VkSemaphoreGetWin32HandleInfoKHR## a _) ==
-          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSemaphoreGetWin32HandleInfoKHR where
-        (VkSemaphoreGetWin32HandleInfoKHR## a _) `compare`
-          x@(VkSemaphoreGetWin32HandleInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSemaphoreGetWin32HandleInfoKHR where
-        sizeOf ~_ = #{size VkSemaphoreGetWin32HandleInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSemaphoreGetWin32HandleInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSemaphoreGetWin32HandleInfoKHR where
-        unsafeAddr (VkSemaphoreGetWin32HandleInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSemaphoreGetWin32HandleInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSemaphoreGetWin32HandleInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSemaphoreGetWin32HandleInfoKHR where
-        type StructFields VkSemaphoreGetWin32HandleInfoKHR =
-             '["sType", "pNext", "semaphore", "handleType"] -- ' closing tick for hsc2hs
-        type CUnionType VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSemaphoreGetWin32HandleInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSemaphoreGetWin32HandleInfoKHR where
-        type FieldType "sType" VkSemaphoreGetWin32HandleInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSemaphoreGetWin32HandleInfoKHR =
-             #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
-        type FieldIsArray "sType" VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
-        type FieldType "pNext" VkSemaphoreGetWin32HandleInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSemaphoreGetWin32HandleInfoKHR =
-             #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
-        type FieldIsArray "pNext" VkSemaphoreGetWin32HandleInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
-        type FieldType "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
-             VkSemaphore
-        type FieldOptional "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
-             #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
-        type FieldIsArray "semaphore" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "semaphore" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, semaphore}
-
-instance {-# OVERLAPPING #-}
-         HasField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
-        type FieldType "handleType" VkSemaphoreGetWin32HandleInfoKHR =
-             VkExternalSemaphoreHandleTypeFlagBits
-        type FieldOptional "handleType" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "handleType" VkSemaphoreGetWin32HandleInfoKHR =
-             #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
-        type FieldIsArray "handleType" VkSemaphoreGetWin32HandleInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "handleType" VkSemaphoreGetWin32HandleInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSemaphoreGetWin32HandleInfoKHR, handleType}
-
-instance Show VkSemaphoreGetWin32HandleInfoKHR where
-        showsPrec d x
-          = showString "VkSemaphoreGetWin32HandleInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "semaphore = " .
-                            showsPrec d (getField @"semaphore" x) .
-                              showString ", " .
-                                showString "handleType = " .
-                                  showsPrec d (getField @"handleType" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleCreateInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleCreateInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleCreateInfo.hsc
+++ /dev/null
@@ -1,251 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo
-       (VkShaderModuleCreateInfo(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkShaderModuleCreateFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkShaderModuleCreateInfo {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkShaderModuleCreateFlags flags;
---   >     size_t                 codeSize;
---   >     const uint32_t*            pCode;
---   > } VkShaderModuleCreateInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderModuleCreateInfo.html VkShaderModuleCreateInfo registry at www.khronos.org>
-data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo## Addr##
-                                                          ByteArray##
-
-instance Eq VkShaderModuleCreateInfo where
-        (VkShaderModuleCreateInfo## a _) ==
-          x@(VkShaderModuleCreateInfo## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkShaderModuleCreateInfo where
-        (VkShaderModuleCreateInfo## a _) `compare`
-          x@(VkShaderModuleCreateInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkShaderModuleCreateInfo where
-        sizeOf ~_ = #{size VkShaderModuleCreateInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkShaderModuleCreateInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkShaderModuleCreateInfo where
-        unsafeAddr (VkShaderModuleCreateInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderModuleCreateInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderModuleCreateInfo## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkShaderModuleCreateInfo where
-        type StructFields VkShaderModuleCreateInfo =
-             '["sType", "pNext", "flags", "codeSize", "pCode"] -- ' closing tick for hsc2hs
-        type CUnionType VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkShaderModuleCreateInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkShaderModuleCreateInfo where
-        type FieldType "sType" VkShaderModuleCreateInfo = VkStructureType
-        type FieldOptional "sType" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkShaderModuleCreateInfo =
-             #{offset VkShaderModuleCreateInfo, sType}
-        type FieldIsArray "sType" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkShaderModuleCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkShaderModuleCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkShaderModuleCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleCreateInfo, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkShaderModuleCreateInfo where
-        type FieldType "pNext" VkShaderModuleCreateInfo = Ptr Void
-        type FieldOptional "pNext" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkShaderModuleCreateInfo =
-             #{offset VkShaderModuleCreateInfo, pNext}
-        type FieldIsArray "pNext" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkShaderModuleCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkShaderModuleCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkShaderModuleCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleCreateInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkShaderModuleCreateInfo where
-        type FieldType "flags" VkShaderModuleCreateInfo =
-             VkShaderModuleCreateFlags
-        type FieldOptional "flags" VkShaderModuleCreateInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkShaderModuleCreateInfo =
-             #{offset VkShaderModuleCreateInfo, flags}
-        type FieldIsArray "flags" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkShaderModuleCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkShaderModuleCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkShaderModuleCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleCreateInfo, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "codeSize" VkShaderModuleCreateInfo where
-        type FieldType "codeSize" VkShaderModuleCreateInfo = CSize
-        type FieldOptional "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "codeSize" VkShaderModuleCreateInfo =
-             #{offset VkShaderModuleCreateInfo, codeSize}
-        type FieldIsArray "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderModuleCreateInfo, codeSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "codeSize" VkShaderModuleCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, codeSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleCreateInfo, codeSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "codeSize" VkShaderModuleCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleCreateInfo, codeSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCode" VkShaderModuleCreateInfo where
-        type FieldType "pCode" VkShaderModuleCreateInfo = Ptr Word32
-        type FieldOptional "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pCode" VkShaderModuleCreateInfo =
-             #{offset VkShaderModuleCreateInfo, pCode}
-        type FieldIsArray "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkShaderModuleCreateInfo, pCode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCode" VkShaderModuleCreateInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleCreateInfo, pCode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleCreateInfo, pCode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCode" VkShaderModuleCreateInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleCreateInfo, pCode}
-
-instance Show VkShaderModuleCreateInfo where
-        showsPrec d x
-          = showString "VkShaderModuleCreateInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "codeSize = " .
-                                  showsPrec d (getField @"codeSize" x) .
-                                    showString ", " .
-                                      showString "pCode = " .
-                                        showsPrec d (getField @"pCode" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleValidationCacheCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleValidationCacheCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderModuleValidationCacheCreateInfoEXT.hsc
+++ /dev/null
@@ -1,224 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkShaderModuleValidationCacheCreateInfoEXT
-       (VkShaderModuleValidationCacheCreateInfoEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                         (VkValidationCacheEXT)
-import           Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo (VkShaderModuleCreateInfo)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkValidationCacheEXT    validationCache;
---   > } VkShaderModuleValidationCacheCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderModuleValidationCacheCreateInfoEXT.html VkShaderModuleValidationCacheCreateInfoEXT registry at www.khronos.org>
-data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT## Addr##
-                                                                                              ByteArray##
-
-instance Eq VkShaderModuleValidationCacheCreateInfoEXT where
-        (VkShaderModuleValidationCacheCreateInfoEXT## a _) ==
-          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkShaderModuleValidationCacheCreateInfoEXT where
-        (VkShaderModuleValidationCacheCreateInfoEXT## a _) `compare`
-          x@(VkShaderModuleValidationCacheCreateInfoEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkShaderModuleValidationCacheCreateInfoEXT where
-        sizeOf ~_
-          = #{size VkShaderModuleValidationCacheCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkShaderModuleValidationCacheCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        unsafeAddr (VkShaderModuleValidationCacheCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderModuleValidationCacheCreateInfoEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderModuleValidationCacheCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        type StructFields VkShaderModuleValidationCacheCreateInfoEXT =
-             '["sType", "pNext", "validationCache"] -- ' closing tick for hsc2hs
-        type CUnionType VkShaderModuleValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkShaderModuleValidationCacheCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkShaderModuleValidationCacheCreateInfoEXT =
-             '[VkShaderModuleCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkShaderModuleValidationCacheCreateInfoEXT where
-        type FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkShaderModuleValidationCacheCreateInfoEXT
-             =
-             #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
-        type FieldIsArray "sType"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkShaderModuleValidationCacheCreateInfoEXT where
-        type FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pNext"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkShaderModuleValidationCacheCreateInfoEXT
-             =
-             #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
-        type FieldIsArray "pNext"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "validationCache"
-           VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        type FieldType "validationCache"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = VkValidationCacheEXT
-        type FieldOptional "validationCache"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "validationCache"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             =
-             #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
-        type FieldIsArray "validationCache"
-               VkShaderModuleValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "validationCache"
-           VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "validationCache"
-           VkShaderModuleValidationCacheCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderModuleValidationCacheCreateInfoEXT, validationCache}
-
-instance Show VkShaderModuleValidationCacheCreateInfoEXT where
-        showsPrec d x
-          = showString "VkShaderModuleValidationCacheCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "validationCache = " .
-                            showsPrec d (getField @"validationCache" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderResourceUsageAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkShaderResourceUsageAMD.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderResourceUsageAMD.hsc
+++ /dev/null
@@ -1,273 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkShaderResourceUsageAMD
-       (VkShaderResourceUsageAMD(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkShaderResourceUsageAMD {
---   >     uint32_t numUsedVgprs;
---   >     uint32_t numUsedSgprs;
---   >     uint32_t ldsSizePerLocalWorkGroup;
---   >     size_t ldsUsageSizeInBytes;
---   >     size_t scratchMemUsageInBytes;
---   > } VkShaderResourceUsageAMD;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderResourceUsageAMD.html VkShaderResourceUsageAMD registry at www.khronos.org>
-data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD## Addr##
-                                                          ByteArray##
-
-instance Eq VkShaderResourceUsageAMD where
-        (VkShaderResourceUsageAMD## a _) ==
-          x@(VkShaderResourceUsageAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkShaderResourceUsageAMD where
-        (VkShaderResourceUsageAMD## a _) `compare`
-          x@(VkShaderResourceUsageAMD## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkShaderResourceUsageAMD where
-        sizeOf ~_ = #{size VkShaderResourceUsageAMD}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkShaderResourceUsageAMD}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkShaderResourceUsageAMD where
-        unsafeAddr (VkShaderResourceUsageAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderResourceUsageAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderResourceUsageAMD## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkShaderResourceUsageAMD where
-        type StructFields VkShaderResourceUsageAMD =
-             '["numUsedVgprs", "numUsedSgprs", "ldsSizePerLocalWorkGroup", -- ' closing tick for hsc2hs
-               "ldsUsageSizeInBytes", "scratchMemUsageInBytes"]
-        type CUnionType VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkShaderResourceUsageAMD = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkShaderResourceUsageAMD = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "numUsedVgprs" VkShaderResourceUsageAMD where
-        type FieldType "numUsedVgprs" VkShaderResourceUsageAMD = Word32
-        type FieldOptional "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "numUsedVgprs" VkShaderResourceUsageAMD =
-             #{offset VkShaderResourceUsageAMD, numUsedVgprs}
-        type FieldIsArray "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderResourceUsageAMD, numUsedVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numUsedVgprs" VkShaderResourceUsageAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, numUsedVgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderResourceUsageAMD, numUsedVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numUsedVgprs" VkShaderResourceUsageAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderResourceUsageAMD, numUsedVgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "numUsedSgprs" VkShaderResourceUsageAMD where
-        type FieldType "numUsedSgprs" VkShaderResourceUsageAMD = Word32
-        type FieldOptional "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "numUsedSgprs" VkShaderResourceUsageAMD =
-             #{offset VkShaderResourceUsageAMD, numUsedSgprs}
-        type FieldIsArray "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderResourceUsageAMD, numUsedSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numUsedSgprs" VkShaderResourceUsageAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, numUsedSgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderResourceUsageAMD, numUsedSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numUsedSgprs" VkShaderResourceUsageAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderResourceUsageAMD, numUsedSgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD where
-        type FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
-             = Word32
-        type FieldOptional "ldsSizePerLocalWorkGroup"
-               VkShaderResourceUsageAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "ldsSizePerLocalWorkGroup"
-               VkShaderResourceUsageAMD
-             =
-             #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
-        type FieldIsArray "ldsSizePerLocalWorkGroup"
-               VkShaderResourceUsageAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderResourceUsageAMD, ldsSizePerLocalWorkGroup}
-
-instance {-# OVERLAPPING #-}
-         HasField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
-        type FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
-             CSize
-        type FieldOptional "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
-             #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
-        type FieldIsArray "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderResourceUsageAMD, ldsUsageSizeInBytes}
-
-instance {-# OVERLAPPING #-}
-         HasField "scratchMemUsageInBytes" VkShaderResourceUsageAMD where
-        type FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD =
-             CSize
-        type FieldOptional "scratchMemUsageInBytes"
-               VkShaderResourceUsageAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "scratchMemUsageInBytes" VkShaderResourceUsageAMD
-             =
-             #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
-        type FieldIsArray "scratchMemUsageInBytes" VkShaderResourceUsageAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderResourceUsageAMD, scratchMemUsageInBytes}
-
-instance Show VkShaderResourceUsageAMD where
-        showsPrec d x
-          = showString "VkShaderResourceUsageAMD {" .
-              showString "numUsedVgprs = " .
-                showsPrec d (getField @"numUsedVgprs" x) .
-                  showString ", " .
-                    showString "numUsedSgprs = " .
-                      showsPrec d (getField @"numUsedSgprs" x) .
-                        showString ", " .
-                          showString "ldsSizePerLocalWorkGroup = " .
-                            showsPrec d (getField @"ldsSizePerLocalWorkGroup" x) .
-                              showString ", " .
-                                showString "ldsUsageSizeInBytes = " .
-                                  showsPrec d (getField @"ldsUsageSizeInBytes" x) .
-                                    showString ", " .
-                                      showString "scratchMemUsageInBytes = " .
-                                        showsPrec d (getField @"scratchMemUsageInBytes" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderStatisticsInfoAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkShaderStatisticsInfoAMD.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkShaderStatisticsInfoAMD.hsc
+++ /dev/null
@@ -1,432 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE PatternSynonyms       #-}
-{-# LANGUAGE ScopedTypeVariables   #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE UndecidableInstances  #-}
-module Graphics.Vulkan.Types.Struct.VkShaderStatisticsInfoAMD
-       (VkShaderStatisticsInfoAMD(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           GHC.TypeLits                                          (KnownNat,
-                                                                        natVal') -- ' closing tick for hsc2hs
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkShaderStageFlags         (VkShaderStageFlags)
-import           Graphics.Vulkan.Types.Struct.VkShaderResourceUsageAMD (VkShaderResourceUsageAMD)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkShaderStatisticsInfoAMD {
---   >     VkShaderStageFlags shaderStageMask;
---   >     VkShaderResourceUsageAMD resourceUsage;
---   >     uint32_t numPhysicalVgprs;
---   >     uint32_t numPhysicalSgprs;
---   >     uint32_t numAvailableVgprs;
---   >     uint32_t numAvailableSgprs;
---   >     uint32_t computeWorkGroupSize[3];
---   > } VkShaderStatisticsInfoAMD;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkShaderStatisticsInfoAMD.html VkShaderStatisticsInfoAMD registry at www.khronos.org>
-data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD## Addr##
-                                                            ByteArray##
-
-instance Eq VkShaderStatisticsInfoAMD where
-        (VkShaderStatisticsInfoAMD## a _) ==
-          x@(VkShaderStatisticsInfoAMD## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkShaderStatisticsInfoAMD where
-        (VkShaderStatisticsInfoAMD## a _) `compare`
-          x@(VkShaderStatisticsInfoAMD## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkShaderStatisticsInfoAMD where
-        sizeOf ~_ = #{size VkShaderStatisticsInfoAMD}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkShaderStatisticsInfoAMD}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkShaderStatisticsInfoAMD where
-        unsafeAddr (VkShaderStatisticsInfoAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkShaderStatisticsInfoAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkShaderStatisticsInfoAMD## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkShaderStatisticsInfoAMD where
-        type StructFields VkShaderStatisticsInfoAMD =
-             '["shaderStageMask", "resourceUsage", "numPhysicalVgprs", -- ' closing tick for hsc2hs
-               "numPhysicalSgprs", "numAvailableVgprs", "numAvailableSgprs",
-               "computeWorkGroupSize"]
-        type CUnionType VkShaderStatisticsInfoAMD = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkShaderStatisticsInfoAMD = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkShaderStatisticsInfoAMD = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "shaderStageMask" VkShaderStatisticsInfoAMD where
-        type FieldType "shaderStageMask" VkShaderStatisticsInfoAMD =
-             VkShaderStageFlags
-        type FieldOptional "shaderStageMask" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "shaderStageMask" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
-        type FieldIsArray "shaderStageMask" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "shaderStageMask" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, shaderStageMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "shaderStageMask" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, shaderStageMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "resourceUsage" VkShaderStatisticsInfoAMD where
-        type FieldType "resourceUsage" VkShaderStatisticsInfoAMD =
-             VkShaderResourceUsageAMD
-        type FieldOptional "resourceUsage" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "resourceUsage" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, resourceUsage}
-        type FieldIsArray "resourceUsage" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, resourceUsage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "resourceUsage" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, resourceUsage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, resourceUsage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "resourceUsage" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, resourceUsage}
-
-instance {-# OVERLAPPING #-}
-         HasField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
-        type FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
-             Word32
-        type FieldOptional "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
-        type FieldIsArray "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalVgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
-        type FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
-             Word32
-        type FieldOptional "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
-        type FieldIsArray "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numPhysicalSgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
-        type FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD =
-             Word32
-        type FieldOptional "numAvailableVgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "numAvailableVgprs" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
-        type FieldIsArray "numAvailableVgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableVgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
-        type FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD =
-             Word32
-        type FieldOptional "numAvailableSgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "numAvailableSgprs" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
-        type FieldIsArray "numAvailableSgprs" VkShaderStatisticsInfoAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkShaderStatisticsInfoAMD, numAvailableSgprs}
-
-instance {-# OVERLAPPING #-}
-         HasField "computeWorkGroupSize" VkShaderStatisticsInfoAMD where
-        type FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
-             Word32
-        type FieldOptional "computeWorkGroupSize" VkShaderStatisticsInfoAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
-             #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
-        type FieldIsArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD
-             = 'True -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "computeWorkGroupSize" idx
-            VkShaderStatisticsInfoAMD) =>
-         CanReadFieldArray "computeWorkGroupSize" idx
-           VkShaderStatisticsInfoAMD
-         where
-        {-# SPECIALISE instance
-                       CanReadFieldArray "computeWorkGroupSize" 0
-                         VkShaderStatisticsInfoAMD
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "computeWorkGroupSize" 1
-                         VkShaderStatisticsInfoAMD
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanReadFieldArray "computeWorkGroupSize" 2
-                         VkShaderStatisticsInfoAMD
-                       #-}
-        type FieldArrayLength "computeWorkGroupSize"
-               VkShaderStatisticsInfoAMD
-             = 3
-
-        {-# INLINE fieldArrayLength #-}
-        fieldArrayLength = 3
-
-        {-# INLINE getFieldArray #-}
-        getFieldArray = f
-          where {-# NOINLINE f #-}
-                f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
-                off
-                  = #{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
-                      +
-                      sizeOf (undefined :: Word32) *
-                        fromInteger (natVal' (proxy## :: Proxy## idx)) -- ' closing tick for hsc2hs
-
-        {-# INLINE readFieldArray #-}
-        readFieldArray p
-          = peekByteOff p
-              (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         (KnownNat idx,
-          IndexInBounds "computeWorkGroupSize" idx
-            VkShaderStatisticsInfoAMD) =>
-         CanWriteFieldArray "computeWorkGroupSize" idx
-           VkShaderStatisticsInfoAMD
-         where
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "computeWorkGroupSize" 0
-                         VkShaderStatisticsInfoAMD
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "computeWorkGroupSize" 1
-                         VkShaderStatisticsInfoAMD
-                       #-}
-
-        {-# SPECIALISE instance
-                       CanWriteFieldArray "computeWorkGroupSize" 2
-                         VkShaderStatisticsInfoAMD
-                       #-}
-
-        {-# INLINE writeFieldArray #-}
-        writeFieldArray p
-          = pokeByteOff p
-              (#{offset VkShaderStatisticsInfoAMD, computeWorkGroupSize}
-                 +
-                 sizeOf (undefined :: Word32) *
-                   fromInteger (natVal' (proxy## :: Proxy## idx))) -- ' closing tick for hsc2hs
-
-instance Show VkShaderStatisticsInfoAMD where
-        showsPrec d x
-          = showString "VkShaderStatisticsInfoAMD {" .
-              showString "shaderStageMask = " .
-                showsPrec d (getField @"shaderStageMask" x) .
-                  showString ", " .
-                    showString "resourceUsage = " .
-                      showsPrec d (getField @"resourceUsage" x) .
-                        showString ", " .
-                          showString "numPhysicalVgprs = " .
-                            showsPrec d (getField @"numPhysicalVgprs" x) .
-                              showString ", " .
-                                showString "numPhysicalSgprs = " .
-                                  showsPrec d (getField @"numPhysicalSgprs" x) .
-                                    showString ", " .
-                                      showString "numAvailableVgprs = " .
-                                        showsPrec d (getField @"numAvailableVgprs" x) .
-                                          showString ", " .
-                                            showString "numAvailableSgprs = " .
-                                              showsPrec d (getField @"numAvailableSgprs" x) .
-                                                showString ", " .
-                                                  (showString "computeWorkGroupSize = [" .
-                                                     showsPrec d
-                                                       (let s = sizeOf
-                                                                  (undefined ::
-                                                                     FieldType
-                                                                       "computeWorkGroupSize"
-                                                                       VkShaderStatisticsInfoAMD)
-                                                            o = fieldOffset @"computeWorkGroupSize"
-                                                                  @VkShaderStatisticsInfoAMD
-                                                            f i
-                                                              = peekByteOff (unsafePtr x) i ::
-                                                                  IO
-                                                                    (FieldType
-                                                                       "computeWorkGroupSize"
-                                                                       VkShaderStatisticsInfoAMD)
-                                                          in
-                                                          unsafeDupablePerformIO . mapM f $
-                                                            map (\ i -> o + i * s) [0 .. 3 - 1])
-                                                       . showChar ']')
-                                                    . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSharedPresentSurfaceCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSharedPresentSurfaceCapabilitiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSharedPresentSurfaceCapabilitiesKHR.hsc
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSharedPresentSurfaceCapabilitiesKHR
-       (VkSharedPresentSurfaceCapabilitiesKHR(..)) where
-import           Foreign.Storable                                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags           (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType             (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR (VkSurfaceCapabilities2KHR)
-import           System.IO.Unsafe                                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkImageUsageFlags sharedPresentSupportedUsageFlags;
---   > } VkSharedPresentSurfaceCapabilitiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSharedPresentSurfaceCapabilitiesKHR.html VkSharedPresentSurfaceCapabilitiesKHR registry at www.khronos.org>
-data VkSharedPresentSurfaceCapabilitiesKHR = VkSharedPresentSurfaceCapabilitiesKHR## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkSharedPresentSurfaceCapabilitiesKHR where
-        (VkSharedPresentSurfaceCapabilitiesKHR## a _) ==
-          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSharedPresentSurfaceCapabilitiesKHR where
-        (VkSharedPresentSurfaceCapabilitiesKHR## a _) `compare`
-          x@(VkSharedPresentSurfaceCapabilitiesKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSharedPresentSurfaceCapabilitiesKHR where
-        sizeOf ~_
-          = #{size VkSharedPresentSurfaceCapabilitiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSharedPresentSurfaceCapabilitiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSharedPresentSurfaceCapabilitiesKHR
-         where
-        unsafeAddr (VkSharedPresentSurfaceCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSharedPresentSurfaceCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSharedPresentSurfaceCapabilitiesKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSharedPresentSurfaceCapabilitiesKHR where
-        type StructFields VkSharedPresentSurfaceCapabilitiesKHR =
-             '["sType", "pNext", "sharedPresentSupportedUsageFlags"] -- ' closing tick for hsc2hs
-        type CUnionType VkSharedPresentSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSharedPresentSurfaceCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSharedPresentSurfaceCapabilitiesKHR =
-             '[VkSurfaceCapabilities2KHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
-        type FieldType "sType" VkSharedPresentSurfaceCapabilitiesKHR =
-             VkStructureType
-        type FieldOptional "sType" VkSharedPresentSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSharedPresentSurfaceCapabilitiesKHR =
-             #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
-        type FieldIsArray "sType" VkSharedPresentSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSharedPresentSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
-        type FieldType "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
-             #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
-        type FieldIsArray "pNext" VkSharedPresentSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSharedPresentSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "sharedPresentSupportedUsageFlags"
-           VkSharedPresentSurfaceCapabilitiesKHR
-         where
-        type FieldType "sharedPresentSupportedUsageFlags"
-               VkSharedPresentSurfaceCapabilitiesKHR
-             = VkImageUsageFlags
-        type FieldOptional "sharedPresentSupportedUsageFlags"
-               VkSharedPresentSurfaceCapabilitiesKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "sharedPresentSupportedUsageFlags"
-               VkSharedPresentSurfaceCapabilitiesKHR
-             =
-             #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
-        type FieldIsArray "sharedPresentSupportedUsageFlags"
-               VkSharedPresentSurfaceCapabilitiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sharedPresentSupportedUsageFlags"
-           VkSharedPresentSurfaceCapabilitiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sharedPresentSupportedUsageFlags"
-           VkSharedPresentSurfaceCapabilitiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSharedPresentSurfaceCapabilitiesKHR, sharedPresentSupportedUsageFlags}
-
-instance Show VkSharedPresentSurfaceCapabilitiesKHR where
-        showsPrec d x
-          = showString "VkSharedPresentSurfaceCapabilitiesKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "sharedPresentSupportedUsageFlags = " .
-                            showsPrec d (getField @"sharedPresentSupportedUsageFlags" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseBufferMemoryBindInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseBufferMemoryBindInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseBufferMemoryBindInfo.hsc
+++ /dev/null
@@ -1,187 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo
-       (VkSparseBufferMemoryBindInfo(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Handles                   (VkBuffer)
-import           Graphics.Vulkan.Types.Struct.VkSparseMemoryBind (VkSparseMemoryBind)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseBufferMemoryBindInfo {
---   >     VkBuffer buffer;
---   >     uint32_t               bindCount;
---   >     const VkSparseMemoryBind* pBinds;
---   > } VkSparseBufferMemoryBindInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseBufferMemoryBindInfo.html VkSparseBufferMemoryBindInfo registry at www.khronos.org>
-data VkSparseBufferMemoryBindInfo = VkSparseBufferMemoryBindInfo## Addr##
-                                                                  ByteArray##
-
-instance Eq VkSparseBufferMemoryBindInfo where
-        (VkSparseBufferMemoryBindInfo## a _) ==
-          x@(VkSparseBufferMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseBufferMemoryBindInfo where
-        (VkSparseBufferMemoryBindInfo## a _) `compare`
-          x@(VkSparseBufferMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseBufferMemoryBindInfo where
-        sizeOf ~_ = #{size VkSparseBufferMemoryBindInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseBufferMemoryBindInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseBufferMemoryBindInfo where
-        unsafeAddr (VkSparseBufferMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseBufferMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseBufferMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseBufferMemoryBindInfo where
-        type StructFields VkSparseBufferMemoryBindInfo =
-             '["buffer", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSparseBufferMemoryBindInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "buffer" VkSparseBufferMemoryBindInfo where
-        type FieldType "buffer" VkSparseBufferMemoryBindInfo = VkBuffer
-        type FieldOptional "buffer" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "buffer" VkSparseBufferMemoryBindInfo =
-             #{offset VkSparseBufferMemoryBindInfo, buffer}
-        type FieldIsArray "buffer" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseBufferMemoryBindInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "buffer" VkSparseBufferMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, buffer})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "buffer" VkSparseBufferMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, buffer}
-
-instance {-# OVERLAPPING #-}
-         HasField "bindCount" VkSparseBufferMemoryBindInfo where
-        type FieldType "bindCount" VkSparseBufferMemoryBindInfo = Word32
-        type FieldOptional "bindCount" VkSparseBufferMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "bindCount" VkSparseBufferMemoryBindInfo =
-             #{offset VkSparseBufferMemoryBindInfo, bindCount}
-        type FieldIsArray "bindCount" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseBufferMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bindCount" VkSparseBufferMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, bindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bindCount" VkSparseBufferMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBinds" VkSparseBufferMemoryBindInfo where
-        type FieldType "pBinds" VkSparseBufferMemoryBindInfo =
-             Ptr VkSparseMemoryBind
-        type FieldOptional "pBinds" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBinds" VkSparseBufferMemoryBindInfo =
-             #{offset VkSparseBufferMemoryBindInfo, pBinds}
-        type FieldIsArray "pBinds" VkSparseBufferMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseBufferMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBinds" VkSparseBufferMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseBufferMemoryBindInfo, pBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseBufferMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBinds" VkSparseBufferMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseBufferMemoryBindInfo, pBinds}
-
-instance Show VkSparseBufferMemoryBindInfo where
-        showsPrec d x
-          = showString "VkSparseBufferMemoryBindInfo {" .
-              showString "buffer = " .
-                showsPrec d (getField @"buffer" x) .
-                  showString ", " .
-                    showString "bindCount = " .
-                      showsPrec d (getField @"bindCount" x) .
-                        showString ", " .
-                          showString "pBinds = " .
-                            showsPrec d (getField @"pBinds" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties.hsc
+++ /dev/null
@@ -1,194 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-       (VkSparseImageFormatProperties(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkImageAspectFlags       (VkImageAspectFlags)
-import           Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags (VkSparseImageFormatFlags)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D             (VkExtent3D)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageFormatProperties {
---   >     VkImageAspectFlags     aspectMask;
---   >     VkExtent3D             imageGranularity;
---   >     VkSparseImageFormatFlags flags;
---   > } VkSparseImageFormatProperties;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageFormatProperties.html VkSparseImageFormatProperties registry at www.khronos.org>
-data VkSparseImageFormatProperties = VkSparseImageFormatProperties## Addr##
-                                                                    ByteArray##
-
-instance Eq VkSparseImageFormatProperties where
-        (VkSparseImageFormatProperties## a _) ==
-          x@(VkSparseImageFormatProperties## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageFormatProperties where
-        (VkSparseImageFormatProperties## a _) `compare`
-          x@(VkSparseImageFormatProperties## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageFormatProperties where
-        sizeOf ~_ = #{size VkSparseImageFormatProperties}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseImageFormatProperties}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageFormatProperties where
-        unsafeAddr (VkSparseImageFormatProperties## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageFormatProperties## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageFormatProperties##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageFormatProperties where
-        type StructFields VkSparseImageFormatProperties =
-             '["aspectMask", "imageGranularity", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseImageFormatProperties = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageFormatProperties = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageFormatProperties = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "aspectMask" VkSparseImageFormatProperties where
-        type FieldType "aspectMask" VkSparseImageFormatProperties =
-             VkImageAspectFlags
-        type FieldOptional "aspectMask" VkSparseImageFormatProperties =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "aspectMask" VkSparseImageFormatProperties =
-             #{offset VkSparseImageFormatProperties, aspectMask}
-        type FieldIsArray "aspectMask" VkSparseImageFormatProperties =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "aspectMask" VkSparseImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, aspectMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "aspectMask" VkSparseImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties, aspectMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageGranularity" VkSparseImageFormatProperties where
-        type FieldType "imageGranularity" VkSparseImageFormatProperties =
-             VkExtent3D
-        type FieldOptional "imageGranularity" VkSparseImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageGranularity" VkSparseImageFormatProperties =
-             #{offset VkSparseImageFormatProperties, imageGranularity}
-        type FieldIsArray "imageGranularity" VkSparseImageFormatProperties
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties, imageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageGranularity" VkSparseImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, imageGranularity})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties, imageGranularity}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageGranularity" VkSparseImageFormatProperties
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties, imageGranularity}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkSparseImageFormatProperties where
-        type FieldType "flags" VkSparseImageFormatProperties =
-             VkSparseImageFormatFlags
-        type FieldOptional "flags" VkSparseImageFormatProperties = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSparseImageFormatProperties =
-             #{offset VkSparseImageFormatProperties, flags}
-        type FieldIsArray "flags" VkSparseImageFormatProperties = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSparseImageFormatProperties where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSparseImageFormatProperties where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties, flags}
-
-instance Show VkSparseImageFormatProperties where
-        showsPrec d x
-          = showString "VkSparseImageFormatProperties {" .
-              showString "aspectMask = " .
-                showsPrec d (getField @"aspectMask" x) .
-                  showString ", " .
-                    showString "imageGranularity = " .
-                      showsPrec d (getField @"imageGranularity" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2.hsc
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2
-       (VkSparseImageFormatProperties2(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                 (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties (VkSparseImageFormatProperties)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageFormatProperties2 {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkSparseImageFormatProperties    properties;
---   > } VkSparseImageFormatProperties2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageFormatProperties2.html VkSparseImageFormatProperties2 registry at www.khronos.org>
-data VkSparseImageFormatProperties2 = VkSparseImageFormatProperties2## Addr##
-                                                                      ByteArray##
-
-instance Eq VkSparseImageFormatProperties2 where
-        (VkSparseImageFormatProperties2## a _) ==
-          x@(VkSparseImageFormatProperties2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageFormatProperties2 where
-        (VkSparseImageFormatProperties2## a _) `compare`
-          x@(VkSparseImageFormatProperties2## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageFormatProperties2 where
-        sizeOf ~_ = #{size VkSparseImageFormatProperties2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseImageFormatProperties2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageFormatProperties2 where
-        unsafeAddr (VkSparseImageFormatProperties2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageFormatProperties2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageFormatProperties2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageFormatProperties2 where
-        type StructFields VkSparseImageFormatProperties2 =
-             '["sType", "pNext", "properties"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageFormatProperties2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageFormatProperties2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSparseImageFormatProperties2 where
-        type FieldType "sType" VkSparseImageFormatProperties2 =
-             VkStructureType
-        type FieldOptional "sType" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSparseImageFormatProperties2 =
-             #{offset VkSparseImageFormatProperties2, sType}
-        type FieldIsArray "sType" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSparseImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSparseImageFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSparseImageFormatProperties2 where
-        type FieldType "pNext" VkSparseImageFormatProperties2 = Ptr Void
-        type FieldOptional "pNext" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSparseImageFormatProperties2 =
-             #{offset VkSparseImageFormatProperties2, pNext}
-        type FieldIsArray "pNext" VkSparseImageFormatProperties2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSparseImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSparseImageFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "properties" VkSparseImageFormatProperties2 where
-        type FieldType "properties" VkSparseImageFormatProperties2 =
-             VkSparseImageFormatProperties
-        type FieldOptional "properties" VkSparseImageFormatProperties2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "properties" VkSparseImageFormatProperties2 =
-             #{offset VkSparseImageFormatProperties2, properties}
-        type FieldIsArray "properties" VkSparseImageFormatProperties2 =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageFormatProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "properties" VkSparseImageFormatProperties2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageFormatProperties2, properties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageFormatProperties2, properties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "properties" VkSparseImageFormatProperties2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageFormatProperties2, properties}
-
-instance Show VkSparseImageFormatProperties2 where
-        showsPrec d x
-          = showString "VkSparseImageFormatProperties2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "properties = " .
-                            showsPrec d (getField @"properties" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageFormatProperties2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2KHR
-       (VkSparseImageFormatProperties2(..),
-        VkSparseImageFormatProperties2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2 (VkSparseImageFormatProperties2 (..))
-
--- | Alias for `VkSparseImageFormatProperties2`
-type VkSparseImageFormatProperties2KHR =
-     VkSparseImageFormatProperties2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBind.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBind.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBind.hsc
+++ /dev/null
@@ -1,293 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind
-       (VkSparseImageMemoryBind(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                    (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags (VkSparseMemoryBindFlags)
-import           Graphics.Vulkan.Types.Handles                      (VkDeviceMemory)
-import           Graphics.Vulkan.Types.Struct.VkExtent3D            (VkExtent3D)
-import           Graphics.Vulkan.Types.Struct.VkImageSubresource    (VkImageSubresource)
-import           Graphics.Vulkan.Types.Struct.VkOffset3D            (VkOffset3D)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageMemoryBind {
---   >     VkImageSubresource     subresource;
---   >     VkOffset3D             offset;
---   >     VkExtent3D             extent;
---   >     VkDeviceMemory         memory;
---   >     VkDeviceSize           memoryOffset;
---   >     VkSparseMemoryBindFlagsflags;
---   > } VkSparseImageMemoryBind;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageMemoryBind.html VkSparseImageMemoryBind registry at www.khronos.org>
-data VkSparseImageMemoryBind = VkSparseImageMemoryBind## Addr##
-                                                        ByteArray##
-
-instance Eq VkSparseImageMemoryBind where
-        (VkSparseImageMemoryBind## a _) == x@(VkSparseImageMemoryBind## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageMemoryBind where
-        (VkSparseImageMemoryBind## a _) `compare`
-          x@(VkSparseImageMemoryBind## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageMemoryBind where
-        sizeOf ~_ = #{size VkSparseImageMemoryBind}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSparseImageMemoryBind}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageMemoryBind where
-        unsafeAddr (VkSparseImageMemoryBind## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryBind## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryBind## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageMemoryBind where
-        type StructFields VkSparseImageMemoryBind =
-             '["subresource", "offset", "extent", "memory", "memoryOffset", -- ' closing tick for hsc2hs
-               "flags"]
-        type CUnionType VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageMemoryBind = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "subresource" VkSparseImageMemoryBind where
-        type FieldType "subresource" VkSparseImageMemoryBind =
-             VkImageSubresource
-        type FieldOptional "subresource" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "subresource" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, subresource}
-        type FieldIsArray "subresource" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryBind, subresource}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subresource" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, subresource})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, subresource}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subresource" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, subresource}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkSparseImageMemoryBind where
-        type FieldType "offset" VkSparseImageMemoryBind = VkOffset3D
-        type FieldOptional "offset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, offset}
-        type FieldIsArray "offset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseImageMemoryBind, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, offset}
-
-instance {-# OVERLAPPING #-}
-         HasField "extent" VkSparseImageMemoryBind where
-        type FieldType "extent" VkSparseImageMemoryBind = VkExtent3D
-        type FieldOptional "extent" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "extent" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, extent}
-        type FieldIsArray "extent" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseImageMemoryBind, extent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "extent" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, extent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, extent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "extent" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, extent}
-
-instance {-# OVERLAPPING #-}
-         HasField "memory" VkSparseImageMemoryBind where
-        type FieldType "memory" VkSparseImageMemoryBind = VkDeviceMemory
-        type FieldOptional "memory" VkSparseImageMemoryBind = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, memory}
-        type FieldIsArray "memory" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseImageMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryOffset" VkSparseImageMemoryBind where
-        type FieldType "memoryOffset" VkSparseImageMemoryBind =
-             VkDeviceSize
-        type FieldOptional "memoryOffset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryOffset" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, memoryOffset}
-        type FieldIsArray "memoryOffset" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryOffset" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, memoryOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryOffset" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkSparseImageMemoryBind where
-        type FieldType "flags" VkSparseImageMemoryBind =
-             VkSparseMemoryBindFlags
-        type FieldOptional "flags" VkSparseImageMemoryBind = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSparseImageMemoryBind =
-             #{offset VkSparseImageMemoryBind, flags}
-        type FieldIsArray "flags" VkSparseImageMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseImageMemoryBind, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSparseImageMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBind, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBind, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSparseImageMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBind, flags}
-
-instance Show VkSparseImageMemoryBind where
-        showsPrec d x
-          = showString "VkSparseImageMemoryBind {" .
-              showString "subresource = " .
-                showsPrec d (getField @"subresource" x) .
-                  showString ", " .
-                    showString "offset = " .
-                      showsPrec d (getField @"offset" x) .
-                        showString ", " .
-                          showString "extent = " .
-                            showsPrec d (getField @"extent" x) .
-                              showString ", " .
-                                showString "memory = " .
-                                  showsPrec d (getField @"memory" x) .
-                                    showString ", " .
-                                      showString "memoryOffset = " .
-                                        showsPrec d (getField @"memoryOffset" x) .
-                                          showString ", " .
-                                            showString "flags = " .
-                                              showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBindInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBindInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryBindInfo.hsc
+++ /dev/null
@@ -1,185 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo
-       (VkSparseImageMemoryBindInfo(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Handles                        (VkImage)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind (VkSparseImageMemoryBind)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageMemoryBindInfo {
---   >     VkImage image;
---   >     uint32_t               bindCount;
---   >     const VkSparseImageMemoryBind* pBinds;
---   > } VkSparseImageMemoryBindInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageMemoryBindInfo.html VkSparseImageMemoryBindInfo registry at www.khronos.org>
-data VkSparseImageMemoryBindInfo = VkSparseImageMemoryBindInfo## Addr##
-                                                                ByteArray##
-
-instance Eq VkSparseImageMemoryBindInfo where
-        (VkSparseImageMemoryBindInfo## a _) ==
-          x@(VkSparseImageMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageMemoryBindInfo where
-        (VkSparseImageMemoryBindInfo## a _) `compare`
-          x@(VkSparseImageMemoryBindInfo## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageMemoryBindInfo where
-        sizeOf ~_ = #{size VkSparseImageMemoryBindInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSparseImageMemoryBindInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageMemoryBindInfo where
-        unsafeAddr (VkSparseImageMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageMemoryBindInfo where
-        type StructFields VkSparseImageMemoryBindInfo =
-             '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageMemoryBindInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkSparseImageMemoryBindInfo where
-        type FieldType "image" VkSparseImageMemoryBindInfo = VkImage
-        type FieldOptional "image" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkSparseImageMemoryBindInfo =
-             #{offset VkSparseImageMemoryBindInfo, image}
-        type FieldIsArray "image" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkSparseImageMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkSparseImageMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "bindCount" VkSparseImageMemoryBindInfo where
-        type FieldType "bindCount" VkSparseImageMemoryBindInfo = Word32
-        type FieldOptional "bindCount" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "bindCount" VkSparseImageMemoryBindInfo =
-             #{offset VkSparseImageMemoryBindInfo, bindCount}
-        type FieldIsArray "bindCount" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bindCount" VkSparseImageMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, bindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bindCount" VkSparseImageMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBinds" VkSparseImageMemoryBindInfo where
-        type FieldType "pBinds" VkSparseImageMemoryBindInfo =
-             Ptr VkSparseImageMemoryBind
-        type FieldOptional "pBinds" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBinds" VkSparseImageMemoryBindInfo =
-             #{offset VkSparseImageMemoryBindInfo, pBinds}
-        type FieldIsArray "pBinds" VkSparseImageMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBinds" VkSparseImageMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryBindInfo, pBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBinds" VkSparseImageMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryBindInfo, pBinds}
-
-instance Show VkSparseImageMemoryBindInfo where
-        showsPrec d x
-          = showString "VkSparseImageMemoryBindInfo {" .
-              showString "image = " .
-                showsPrec d (getField @"image" x) .
-                  showString ", " .
-                    showString "bindCount = " .
-                      showsPrec d (getField @"bindCount" x) .
-                        showString ", " .
-                          showString "pBinds = " .
-                            showsPrec d (getField @"pBinds" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements.hsc
+++ /dev/null
@@ -1,305 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements
-       (VkSparseImageMemoryRequirements(..)) where
-import           Foreign.Storable                                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                            (VkDeviceSize)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties (VkSparseImageFormatProperties)
-import           System.IO.Unsafe                                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageMemoryRequirements {
---   >     VkSparseImageFormatProperties formatProperties;
---   >     uint32_t               imageMipTailFirstLod;
---   >     VkDeviceSize           imageMipTailSize;
---   >     VkDeviceSize           imageMipTailOffset;
---   >     VkDeviceSize           imageMipTailStride;
---   > } VkSparseImageMemoryRequirements;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageMemoryRequirements.html VkSparseImageMemoryRequirements registry at www.khronos.org>
-data VkSparseImageMemoryRequirements = VkSparseImageMemoryRequirements## Addr##
-                                                                        ByteArray##
-
-instance Eq VkSparseImageMemoryRequirements where
-        (VkSparseImageMemoryRequirements## a _) ==
-          x@(VkSparseImageMemoryRequirements## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageMemoryRequirements where
-        (VkSparseImageMemoryRequirements## a _) `compare`
-          x@(VkSparseImageMemoryRequirements## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageMemoryRequirements where
-        sizeOf ~_ = #{size VkSparseImageMemoryRequirements}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseImageMemoryRequirements}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageMemoryRequirements where
-        unsafeAddr (VkSparseImageMemoryRequirements## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryRequirements## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryRequirements##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageMemoryRequirements where
-        type StructFields VkSparseImageMemoryRequirements =
-             '["formatProperties", "imageMipTailFirstLod", "imageMipTailSize", -- ' closing tick for hsc2hs
-               "imageMipTailOffset", "imageMipTailStride"]
-        type CUnionType VkSparseImageMemoryRequirements = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageMemoryRequirements = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageMemoryRequirements = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "formatProperties" VkSparseImageMemoryRequirements where
-        type FieldType "formatProperties" VkSparseImageMemoryRequirements =
-             VkSparseImageFormatProperties
-        type FieldOptional "formatProperties"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "formatProperties" VkSparseImageMemoryRequirements
-             =
-             #{offset VkSparseImageMemoryRequirements, formatProperties}
-        type FieldIsArray "formatProperties"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements, formatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "formatProperties" VkSparseImageMemoryRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, formatProperties})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements, formatProperties}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "formatProperties" VkSparseImageMemoryRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, formatProperties}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageMipTailFirstLod" VkSparseImageMemoryRequirements
-         where
-        type FieldType "imageMipTailFirstLod"
-               VkSparseImageMemoryRequirements
-             = Word32
-        type FieldOptional "imageMipTailFirstLod"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageMipTailFirstLod"
-               VkSparseImageMemoryRequirements
-             =
-             #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
-        type FieldIsArray "imageMipTailFirstLod"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageMipTailFirstLod" VkSparseImageMemoryRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageMipTailFirstLod"
-           VkSparseImageMemoryRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailFirstLod}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageMipTailSize" VkSparseImageMemoryRequirements where
-        type FieldType "imageMipTailSize" VkSparseImageMemoryRequirements =
-             VkDeviceSize
-        type FieldOptional "imageMipTailSize"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageMipTailSize" VkSparseImageMemoryRequirements
-             =
-             #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
-        type FieldIsArray "imageMipTailSize"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageMipTailSize" VkSparseImageMemoryRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageMipTailSize" VkSparseImageMemoryRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageMipTailOffset" VkSparseImageMemoryRequirements where
-        type FieldType "imageMipTailOffset" VkSparseImageMemoryRequirements
-             = VkDeviceSize
-        type FieldOptional "imageMipTailOffset"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageMipTailOffset"
-               VkSparseImageMemoryRequirements
-             =
-             #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
-        type FieldIsArray "imageMipTailOffset"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageMipTailOffset" VkSparseImageMemoryRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageMipTailOffset" VkSparseImageMemoryRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailOffset}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageMipTailStride" VkSparseImageMemoryRequirements where
-        type FieldType "imageMipTailStride" VkSparseImageMemoryRequirements
-             = VkDeviceSize
-        type FieldOptional "imageMipTailStride"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageMipTailStride"
-               VkSparseImageMemoryRequirements
-             =
-             #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
-        type FieldIsArray "imageMipTailStride"
-               VkSparseImageMemoryRequirements
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageMipTailStride" VkSparseImageMemoryRequirements
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements, imageMipTailStride})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageMipTailStride" VkSparseImageMemoryRequirements
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements, imageMipTailStride}
-
-instance Show VkSparseImageMemoryRequirements where
-        showsPrec d x
-          = showString "VkSparseImageMemoryRequirements {" .
-              showString "formatProperties = " .
-                showsPrec d (getField @"formatProperties" x) .
-                  showString ", " .
-                    showString "imageMipTailFirstLod = " .
-                      showsPrec d (getField @"imageMipTailFirstLod" x) .
-                        showString ", " .
-                          showString "imageMipTailSize = " .
-                            showsPrec d (getField @"imageMipTailSize" x) .
-                              showString ", " .
-                                showString "imageMipTailOffset = " .
-                                  showsPrec d (getField @"imageMipTailOffset" x) .
-                                    showString ", " .
-                                      showString "imageMipTailStride = " .
-                                        showsPrec d (getField @"imageMipTailStride" x) .
-                                          showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2.hsc
+++ /dev/null
@@ -1,200 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2
-       (VkSparseImageMemoryRequirements2(..)) where
-import           Foreign.Storable                                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType                   (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements (VkSparseImageMemoryRequirements)
-import           System.IO.Unsafe                                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageMemoryRequirements2 {
---   >     VkStructureType sType;
---   >     void*                                       pNext;
---   >     VkSparseImageMemoryRequirements                                      memoryRequirements;
---   > } VkSparseImageMemoryRequirements2;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageMemoryRequirements2.html VkSparseImageMemoryRequirements2 registry at www.khronos.org>
-data VkSparseImageMemoryRequirements2 = VkSparseImageMemoryRequirements2## Addr##
-                                                                          ByteArray##
-
-instance Eq VkSparseImageMemoryRequirements2 where
-        (VkSparseImageMemoryRequirements2## a _) ==
-          x@(VkSparseImageMemoryRequirements2## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageMemoryRequirements2 where
-        (VkSparseImageMemoryRequirements2## a _) `compare`
-          x@(VkSparseImageMemoryRequirements2## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageMemoryRequirements2 where
-        sizeOf ~_ = #{size VkSparseImageMemoryRequirements2}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseImageMemoryRequirements2}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageMemoryRequirements2 where
-        unsafeAddr (VkSparseImageMemoryRequirements2## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageMemoryRequirements2## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageMemoryRequirements2##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageMemoryRequirements2 where
-        type StructFields VkSparseImageMemoryRequirements2 =
-             '["sType", "pNext", "memoryRequirements"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageMemoryRequirements2 = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageMemoryRequirements2 = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSparseImageMemoryRequirements2 where
-        type FieldType "sType" VkSparseImageMemoryRequirements2 =
-             VkStructureType
-        type FieldOptional "sType" VkSparseImageMemoryRequirements2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSparseImageMemoryRequirements2 =
-             #{offset VkSparseImageMemoryRequirements2, sType}
-        type FieldIsArray "sType" VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSparseImageMemoryRequirements2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSparseImageMemoryRequirements2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSparseImageMemoryRequirements2 where
-        type FieldType "pNext" VkSparseImageMemoryRequirements2 = Ptr Void
-        type FieldOptional "pNext" VkSparseImageMemoryRequirements2 =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSparseImageMemoryRequirements2 =
-             #{offset VkSparseImageMemoryRequirements2, pNext}
-        type FieldIsArray "pNext" VkSparseImageMemoryRequirements2 = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSparseImageMemoryRequirements2 where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSparseImageMemoryRequirements2 where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryRequirements" VkSparseImageMemoryRequirements2
-         where
-        type FieldType "memoryRequirements"
-               VkSparseImageMemoryRequirements2
-             = VkSparseImageMemoryRequirements
-        type FieldOptional "memoryRequirements"
-               VkSparseImageMemoryRequirements2
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryRequirements"
-               VkSparseImageMemoryRequirements2
-             =
-             #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
-        type FieldIsArray "memoryRequirements"
-               VkSparseImageMemoryRequirements2
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryRequirements" VkSparseImageMemoryRequirements2
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageMemoryRequirements2, memoryRequirements})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryRequirements" VkSparseImageMemoryRequirements2
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageMemoryRequirements2, memoryRequirements}
-
-instance Show VkSparseImageMemoryRequirements2 where
-        showsPrec d x
-          = showString "VkSparseImageMemoryRequirements2 {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "memoryRequirements = " .
-                            showsPrec d (getField @"memoryRequirements" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2KHR.hs b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2KHR.hs
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageMemoryRequirements2KHR.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# LANGUAGE DataKinds #-}
-{-# LANGUAGE Strict    #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2KHR
-       (VkSparseImageMemoryRequirements2(..),
-        VkSparseImageMemoryRequirements2KHR)
-       where
-import           Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2 (VkSparseImageMemoryRequirements2 (..))
-
--- | Alias for `VkSparseImageMemoryRequirements2`
-type VkSparseImageMemoryRequirements2KHR =
-     VkSparseImageMemoryRequirements2
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageOpaqueMemoryBindInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageOpaqueMemoryBindInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseImageOpaqueMemoryBindInfo.hsc
+++ /dev/null
@@ -1,194 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo
-       (VkSparseImageOpaqueMemoryBindInfo(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Handles                   (VkImage)
-import           Graphics.Vulkan.Types.Struct.VkSparseMemoryBind (VkSparseMemoryBind)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseImageOpaqueMemoryBindInfo {
---   >     VkImage image;
---   >     uint32_t               bindCount;
---   >     const VkSparseMemoryBind* pBinds;
---   > } VkSparseImageOpaqueMemoryBindInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseImageOpaqueMemoryBindInfo.html VkSparseImageOpaqueMemoryBindInfo registry at www.khronos.org>
-data VkSparseImageOpaqueMemoryBindInfo = VkSparseImageOpaqueMemoryBindInfo## Addr##
-                                                                            ByteArray##
-
-instance Eq VkSparseImageOpaqueMemoryBindInfo where
-        (VkSparseImageOpaqueMemoryBindInfo## a _) ==
-          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseImageOpaqueMemoryBindInfo where
-        (VkSparseImageOpaqueMemoryBindInfo## a _) `compare`
-          x@(VkSparseImageOpaqueMemoryBindInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseImageOpaqueMemoryBindInfo where
-        sizeOf ~_ = #{size VkSparseImageOpaqueMemoryBindInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSparseImageOpaqueMemoryBindInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseImageOpaqueMemoryBindInfo where
-        unsafeAddr (VkSparseImageOpaqueMemoryBindInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseImageOpaqueMemoryBindInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseImageOpaqueMemoryBindInfo##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseImageOpaqueMemoryBindInfo where
-        type StructFields VkSparseImageOpaqueMemoryBindInfo =
-             '["image", "bindCount", "pBinds"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseImageOpaqueMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseImageOpaqueMemoryBindInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSparseImageOpaqueMemoryBindInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "image" VkSparseImageOpaqueMemoryBindInfo where
-        type FieldType "image" VkSparseImageOpaqueMemoryBindInfo = VkImage
-        type FieldOptional "image" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "image" VkSparseImageOpaqueMemoryBindInfo =
-             #{offset VkSparseImageOpaqueMemoryBindInfo, image}
-        type FieldIsArray "image" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageOpaqueMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "image" VkSparseImageOpaqueMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, image})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "image" VkSparseImageOpaqueMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, image}
-
-instance {-# OVERLAPPING #-}
-         HasField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
-        type FieldType "bindCount" VkSparseImageOpaqueMemoryBindInfo =
-             Word32
-        type FieldOptional "bindCount" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "bindCount" VkSparseImageOpaqueMemoryBindInfo =
-             #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
-        type FieldIsArray "bindCount" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "bindCount" VkSparseImageOpaqueMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, bindCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
-        type FieldType "pBinds" VkSparseImageOpaqueMemoryBindInfo =
-             Ptr VkSparseMemoryBind
-        type FieldOptional "pBinds" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBinds" VkSparseImageOpaqueMemoryBindInfo =
-             #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
-        type FieldIsArray "pBinds" VkSparseImageOpaqueMemoryBindInfo =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBinds" VkSparseImageOpaqueMemoryBindInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseImageOpaqueMemoryBindInfo, pBinds}
-
-instance Show VkSparseImageOpaqueMemoryBindInfo where
-        showsPrec d x
-          = showString "VkSparseImageOpaqueMemoryBindInfo {" .
-              showString "image = " .
-                showsPrec d (getField @"image" x) .
-                  showString ", " .
-                    showString "bindCount = " .
-                      showsPrec d (getField @"bindCount" x) .
-                        showString ", " .
-                          showString "pBinds = " .
-                            showsPrec d (getField @"pBinds" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseMemoryBind.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSparseMemoryBind.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSparseMemoryBind.hsc
+++ /dev/null
@@ -1,250 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSparseMemoryBind
-       (VkSparseMemoryBind(..)) where
-import           Foreign.Storable                                   (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                    (VkDeviceSize)
-import           Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags (VkSparseMemoryBindFlags)
-import           Graphics.Vulkan.Types.Handles                      (VkDeviceMemory)
-import           System.IO.Unsafe                                   (unsafeDupablePerformIO)
-
--- | > typedef struct VkSparseMemoryBind {
---   >     VkDeviceSize           resourceOffset;
---   >     VkDeviceSize           size;
---   >     VkDeviceMemory         memory;
---   >     VkDeviceSize           memoryOffset;
---   >     VkSparseMemoryBindFlagsflags;
---   > } VkSparseMemoryBind;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSparseMemoryBind.html VkSparseMemoryBind registry at www.khronos.org>
-data VkSparseMemoryBind = VkSparseMemoryBind## Addr## ByteArray##
-
-instance Eq VkSparseMemoryBind where
-        (VkSparseMemoryBind## a _) == x@(VkSparseMemoryBind## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSparseMemoryBind where
-        (VkSparseMemoryBind## a _) `compare` x@(VkSparseMemoryBind## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSparseMemoryBind where
-        sizeOf ~_ = #{size VkSparseMemoryBind}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSparseMemoryBind}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSparseMemoryBind where
-        unsafeAddr (VkSparseMemoryBind## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSparseMemoryBind## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSparseMemoryBind## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSparseMemoryBind where
-        type StructFields VkSparseMemoryBind =
-             '["resourceOffset", "size", "memory", "memoryOffset", "flags"] -- ' closing tick for hsc2hs
-        type CUnionType VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSparseMemoryBind = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "resourceOffset" VkSparseMemoryBind where
-        type FieldType "resourceOffset" VkSparseMemoryBind = VkDeviceSize
-        type FieldOptional "resourceOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "resourceOffset" VkSparseMemoryBind =
-             #{offset VkSparseMemoryBind, resourceOffset}
-        type FieldIsArray "resourceOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseMemoryBind, resourceOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "resourceOffset" VkSparseMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, resourceOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseMemoryBind, resourceOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "resourceOffset" VkSparseMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseMemoryBind, resourceOffset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkSparseMemoryBind
-         where
-        type FieldType "size" VkSparseMemoryBind = VkDeviceSize
-        type FieldOptional "size" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkSparseMemoryBind =
-             #{offset VkSparseMemoryBind, size}
-        type FieldIsArray "size" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseMemoryBind, size}
-
-instance {-# OVERLAPPING #-} CanReadField "size" VkSparseMemoryBind
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseMemoryBind, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkSparseMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseMemoryBind, size}
-
-instance {-# OVERLAPPING #-} HasField "memory" VkSparseMemoryBind
-         where
-        type FieldType "memory" VkSparseMemoryBind = VkDeviceMemory
-        type FieldOptional "memory" VkSparseMemoryBind = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "memory" VkSparseMemoryBind =
-             #{offset VkSparseMemoryBind, memory}
-        type FieldIsArray "memory" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memory" VkSparseMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, memory})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memory" VkSparseMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseMemoryBind, memory}
-
-instance {-# OVERLAPPING #-}
-         HasField "memoryOffset" VkSparseMemoryBind where
-        type FieldType "memoryOffset" VkSparseMemoryBind = VkDeviceSize
-        type FieldOptional "memoryOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "memoryOffset" VkSparseMemoryBind =
-             #{offset VkSparseMemoryBind, memoryOffset}
-        type FieldIsArray "memoryOffset" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSparseMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "memoryOffset" VkSparseMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, memoryOffset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "memoryOffset" VkSparseMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseMemoryBind, memoryOffset}
-
-instance {-# OVERLAPPING #-} HasField "flags" VkSparseMemoryBind
-         where
-        type FieldType "flags" VkSparseMemoryBind = VkSparseMemoryBindFlags
-        type FieldOptional "flags" VkSparseMemoryBind = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSparseMemoryBind =
-             #{offset VkSparseMemoryBind, flags}
-        type FieldIsArray "flags" VkSparseMemoryBind = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSparseMemoryBind, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSparseMemoryBind where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSparseMemoryBind, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSparseMemoryBind, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSparseMemoryBind where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSparseMemoryBind, flags}
-
-instance Show VkSparseMemoryBind where
-        showsPrec d x
-          = showString "VkSparseMemoryBind {" .
-              showString "resourceOffset = " .
-                showsPrec d (getField @"resourceOffset" x) .
-                  showString ", " .
-                    showString "size = " .
-                      showsPrec d (getField @"size" x) .
-                        showString ", " .
-                          showString "memory = " .
-                            showsPrec d (getField @"memory" x) .
-                              showString ", " .
-                                showString "memoryOffset = " .
-                                  showsPrec d (getField @"memoryOffset" x) .
-                                    showString ", " .
-                                      showString "flags = " .
-                                        showsPrec d (getField @"flags" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationInfo.hsc
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSpecializationInfo
-       (VkSpecializationInfo(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry (VkSpecializationMapEntry)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSpecializationInfo {
---   >     uint32_t               mapEntryCount;
---   >     const VkSpecializationMapEntry* pMapEntries;
---   >     size_t                 dataSize;
---   >     const void*            pData;
---   > } VkSpecializationInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSpecializationInfo.html VkSpecializationInfo registry at www.khronos.org>
-data VkSpecializationInfo = VkSpecializationInfo## Addr## ByteArray##
-
-instance Eq VkSpecializationInfo where
-        (VkSpecializationInfo## a _) == x@(VkSpecializationInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSpecializationInfo where
-        (VkSpecializationInfo## a _) `compare` x@(VkSpecializationInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSpecializationInfo where
-        sizeOf ~_ = #{size VkSpecializationInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSpecializationInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSpecializationInfo where
-        unsafeAddr (VkSpecializationInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSpecializationInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSpecializationInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSpecializationInfo where
-        type StructFields VkSpecializationInfo =
-             '["mapEntryCount", "pMapEntries", "dataSize", "pData"] -- ' closing tick for hsc2hs
-        type CUnionType VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSpecializationInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "mapEntryCount" VkSpecializationInfo where
-        type FieldType "mapEntryCount" VkSpecializationInfo = Word32
-        type FieldOptional "mapEntryCount" VkSpecializationInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "mapEntryCount" VkSpecializationInfo =
-             #{offset VkSpecializationInfo, mapEntryCount}
-        type FieldIsArray "mapEntryCount" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSpecializationInfo, mapEntryCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "mapEntryCount" VkSpecializationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, mapEntryCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationInfo, mapEntryCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "mapEntryCount" VkSpecializationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationInfo, mapEntryCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pMapEntries" VkSpecializationInfo where
-        type FieldType "pMapEntries" VkSpecializationInfo =
-             Ptr VkSpecializationMapEntry
-        type FieldOptional "pMapEntries" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pMapEntries" VkSpecializationInfo =
-             #{offset VkSpecializationInfo, pMapEntries}
-        type FieldIsArray "pMapEntries" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSpecializationInfo, pMapEntries}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pMapEntries" VkSpecializationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, pMapEntries})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationInfo, pMapEntries}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pMapEntries" VkSpecializationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationInfo, pMapEntries}
-
-instance {-# OVERLAPPING #-}
-         HasField "dataSize" VkSpecializationInfo where
-        type FieldType "dataSize" VkSpecializationInfo = CSize
-        type FieldOptional "dataSize" VkSpecializationInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dataSize" VkSpecializationInfo =
-             #{offset VkSpecializationInfo, dataSize}
-        type FieldIsArray "dataSize" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSpecializationInfo, dataSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dataSize" VkSpecializationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, dataSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationInfo, dataSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dataSize" VkSpecializationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationInfo, dataSize}
-
-instance {-# OVERLAPPING #-} HasField "pData" VkSpecializationInfo
-         where
-        type FieldType "pData" VkSpecializationInfo = Ptr Void
-        type FieldOptional "pData" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pData" VkSpecializationInfo =
-             #{offset VkSpecializationInfo, pData}
-        type FieldIsArray "pData" VkSpecializationInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSpecializationInfo, pData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pData" VkSpecializationInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationInfo, pData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationInfo, pData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pData" VkSpecializationInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationInfo, pData}
-
-instance Show VkSpecializationInfo where
-        showsPrec d x
-          = showString "VkSpecializationInfo {" .
-              showString "mapEntryCount = " .
-                showsPrec d (getField @"mapEntryCount" x) .
-                  showString ", " .
-                    showString "pMapEntries = " .
-                      showsPrec d (getField @"pMapEntries" x) .
-                        showString ", " .
-                          showString "dataSize = " .
-                            showsPrec d (getField @"dataSize" x) .
-                              showString ", " .
-                                showString "pData = " .
-                                  showsPrec d (getField @"pData" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationMapEntry.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationMapEntry.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSpecializationMapEntry.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry
-       (VkSpecializationMapEntry(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkSpecializationMapEntry {
---   >     uint32_t               constantID;
---   >     uint32_t               offset;
---   >     size_t                 size;
---   > } VkSpecializationMapEntry;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSpecializationMapEntry.html VkSpecializationMapEntry registry at www.khronos.org>
-data VkSpecializationMapEntry = VkSpecializationMapEntry## Addr##
-                                                          ByteArray##
-
-instance Eq VkSpecializationMapEntry where
-        (VkSpecializationMapEntry## a _) ==
-          x@(VkSpecializationMapEntry## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSpecializationMapEntry where
-        (VkSpecializationMapEntry## a _) `compare`
-          x@(VkSpecializationMapEntry## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSpecializationMapEntry where
-        sizeOf ~_ = #{size VkSpecializationMapEntry}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSpecializationMapEntry}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSpecializationMapEntry where
-        unsafeAddr (VkSpecializationMapEntry## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSpecializationMapEntry## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSpecializationMapEntry## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSpecializationMapEntry where
-        type StructFields VkSpecializationMapEntry =
-             '["constantID", "offset", "size"] -- ' closing tick for hsc2hs
-        type CUnionType VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSpecializationMapEntry = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "constantID" VkSpecializationMapEntry where
-        type FieldType "constantID" VkSpecializationMapEntry = Word32
-        type FieldOptional "constantID" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "constantID" VkSpecializationMapEntry =
-             #{offset VkSpecializationMapEntry, constantID}
-        type FieldIsArray "constantID" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSpecializationMapEntry, constantID}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "constantID" VkSpecializationMapEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, constantID})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationMapEntry, constantID}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "constantID" VkSpecializationMapEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationMapEntry, constantID}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkSpecializationMapEntry where
-        type FieldType "offset" VkSpecializationMapEntry = Word32
-        type FieldOptional "offset" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkSpecializationMapEntry =
-             #{offset VkSpecializationMapEntry, offset}
-        type FieldIsArray "offset" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSpecializationMapEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkSpecializationMapEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationMapEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkSpecializationMapEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationMapEntry, offset}
-
-instance {-# OVERLAPPING #-}
-         HasField "size" VkSpecializationMapEntry where
-        type FieldType "size" VkSpecializationMapEntry = CSize
-        type FieldOptional "size" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkSpecializationMapEntry =
-             #{offset VkSpecializationMapEntry, size}
-        type FieldIsArray "size" VkSpecializationMapEntry = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSpecializationMapEntry, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkSpecializationMapEntry where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSpecializationMapEntry, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSpecializationMapEntry, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkSpecializationMapEntry where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSpecializationMapEntry, size}
-
-instance Show VkSpecializationMapEntry where
-        showsPrec d x
-          = showString "VkSpecializationMapEntry {" .
-              showString "constantID = " .
-                showsPrec d (getField @"constantID" x) .
-                  showString ", " .
-                    showString "offset = " .
-                      showsPrec d (getField @"offset" x) .
-                        showString ", " .
-                          showString "size = " .
-                            showsPrec d (getField @"size" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkStencilOpState.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkStencilOpState.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkStencilOpState.hsc
+++ /dev/null
@@ -1,319 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkStencilOpState
-       (VkStencilOpState(..)) where
-import           Foreign.Storable                       (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCompareOp (VkCompareOp)
-import           Graphics.Vulkan.Types.Enum.VkStencilOp (VkStencilOp)
-import           System.IO.Unsafe                       (unsafeDupablePerformIO)
-
--- | > typedef struct VkStencilOpState {
---   >     VkStencilOp            failOp;
---   >     VkStencilOp            passOp;
---   >     VkStencilOp            depthFailOp;
---   >     VkCompareOp            compareOp;
---   >     uint32_t               compareMask;
---   >     uint32_t               writeMask;
---   >     uint32_t               reference;
---   > } VkStencilOpState;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkStencilOpState.html VkStencilOpState registry at www.khronos.org>
-data VkStencilOpState = VkStencilOpState## Addr## ByteArray##
-
-instance Eq VkStencilOpState where
-        (VkStencilOpState## a _) == x@(VkStencilOpState## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkStencilOpState where
-        (VkStencilOpState## a _) `compare` x@(VkStencilOpState## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkStencilOpState where
-        sizeOf ~_ = #{size VkStencilOpState}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkStencilOpState}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkStencilOpState where
-        unsafeAddr (VkStencilOpState## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkStencilOpState## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkStencilOpState## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkStencilOpState where
-        type StructFields VkStencilOpState =
-             '["failOp", "passOp", "depthFailOp", "compareOp", "compareMask", -- ' closing tick for hsc2hs
-               "writeMask", "reference"]
-        type CUnionType VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkStencilOpState = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "failOp" VkStencilOpState
-         where
-        type FieldType "failOp" VkStencilOpState = VkStencilOp
-        type FieldOptional "failOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "failOp" VkStencilOpState =
-             #{offset VkStencilOpState, failOp}
-        type FieldIsArray "failOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, failOp}
-
-instance {-# OVERLAPPING #-} CanReadField "failOp" VkStencilOpState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, failOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, failOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "failOp" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, failOp}
-
-instance {-# OVERLAPPING #-} HasField "passOp" VkStencilOpState
-         where
-        type FieldType "passOp" VkStencilOpState = VkStencilOp
-        type FieldOptional "passOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "passOp" VkStencilOpState =
-             #{offset VkStencilOpState, passOp}
-        type FieldIsArray "passOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, passOp}
-
-instance {-# OVERLAPPING #-} CanReadField "passOp" VkStencilOpState
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, passOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, passOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "passOp" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, passOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthFailOp" VkStencilOpState where
-        type FieldType "depthFailOp" VkStencilOpState = VkStencilOp
-        type FieldOptional "depthFailOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthFailOp" VkStencilOpState =
-             #{offset VkStencilOpState, depthFailOp}
-        type FieldIsArray "depthFailOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, depthFailOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthFailOp" VkStencilOpState where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, depthFailOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, depthFailOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthFailOp" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, depthFailOp}
-
-instance {-# OVERLAPPING #-} HasField "compareOp" VkStencilOpState
-         where
-        type FieldType "compareOp" VkStencilOpState = VkCompareOp
-        type FieldOptional "compareOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compareOp" VkStencilOpState =
-             #{offset VkStencilOpState, compareOp}
-        type FieldIsArray "compareOp" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, compareOp}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compareOp" VkStencilOpState where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, compareOp})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, compareOp}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compareOp" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, compareOp}
-
-instance {-# OVERLAPPING #-}
-         HasField "compareMask" VkStencilOpState where
-        type FieldType "compareMask" VkStencilOpState = Word32
-        type FieldOptional "compareMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "compareMask" VkStencilOpState =
-             #{offset VkStencilOpState, compareMask}
-        type FieldIsArray "compareMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, compareMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compareMask" VkStencilOpState where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, compareMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, compareMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compareMask" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, compareMask}
-
-instance {-# OVERLAPPING #-} HasField "writeMask" VkStencilOpState
-         where
-        type FieldType "writeMask" VkStencilOpState = Word32
-        type FieldOptional "writeMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "writeMask" VkStencilOpState =
-             #{offset VkStencilOpState, writeMask}
-        type FieldIsArray "writeMask" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, writeMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "writeMask" VkStencilOpState where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, writeMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, writeMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "writeMask" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, writeMask}
-
-instance {-# OVERLAPPING #-} HasField "reference" VkStencilOpState
-         where
-        type FieldType "reference" VkStencilOpState = Word32
-        type FieldOptional "reference" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "reference" VkStencilOpState =
-             #{offset VkStencilOpState, reference}
-        type FieldIsArray "reference" VkStencilOpState = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkStencilOpState, reference}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "reference" VkStencilOpState where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkStencilOpState, reference})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkStencilOpState, reference}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "reference" VkStencilOpState where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkStencilOpState, reference}
-
-instance Show VkStencilOpState where
-        showsPrec d x
-          = showString "VkStencilOpState {" .
-              showString "failOp = " .
-                showsPrec d (getField @"failOp" x) .
-                  showString ", " .
-                    showString "passOp = " .
-                      showsPrec d (getField @"passOp" x) .
-                        showString ", " .
-                          showString "depthFailOp = " .
-                            showsPrec d (getField @"depthFailOp" x) .
-                              showString ", " .
-                                showString "compareOp = " .
-                                  showsPrec d (getField @"compareOp" x) .
-                                    showString ", " .
-                                      showString "compareMask = " .
-                                        showsPrec d (getField @"compareMask" x) .
-                                          showString ", " .
-                                            showString "writeMask = " .
-                                              showsPrec d (getField @"writeMask" x) .
-                                                showString ", " .
-                                                  showString "reference = " .
-                                                    showsPrec d (getField @"reference" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSubmitInfo.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSubmitInfo.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSubmitInfo.hsc
+++ /dev/null
@@ -1,397 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSubmitInfo (VkSubmitInfo(..))
-       where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags (VkPipelineStageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                   (VkCommandBuffer,
-                                                                  VkSemaphore)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSubmitInfo {
---   >     VkStructureType sType;
---   >     const void* pNext;
---   >     uint32_t       waitSemaphoreCount;
---   >     const VkSemaphore*     pWaitSemaphores;
---   >     const VkPipelineStageFlags*           pWaitDstStageMask;
---   >     uint32_t       commandBufferCount;
---   >     const VkCommandBuffer*     pCommandBuffers;
---   >     uint32_t       signalSemaphoreCount;
---   >     const VkSemaphore*     pSignalSemaphores;
---   > } VkSubmitInfo;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubmitInfo.html VkSubmitInfo registry at www.khronos.org>
-data VkSubmitInfo = VkSubmitInfo## Addr## ByteArray##
-
-instance Eq VkSubmitInfo where
-        (VkSubmitInfo## a _) == x@(VkSubmitInfo## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSubmitInfo where
-        (VkSubmitInfo## a _) `compare` x@(VkSubmitInfo## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSubmitInfo where
-        sizeOf ~_ = #{size VkSubmitInfo}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSubmitInfo}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubmitInfo where
-        unsafeAddr (VkSubmitInfo## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubmitInfo## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubmitInfo## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSubmitInfo where
-        type StructFields VkSubmitInfo =
-             '["sType", "pNext", "waitSemaphoreCount", "pWaitSemaphores", -- ' closing tick for hsc2hs
-               "pWaitDstStageMask", "commandBufferCount", "pCommandBuffers",
-               "signalSemaphoreCount", "pSignalSemaphores"]
-        type CUnionType VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSubmitInfo = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkSubmitInfo where
-        type FieldType "sType" VkSubmitInfo = VkStructureType
-        type FieldOptional "sType" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSubmitInfo =
-             #{offset VkSubmitInfo, sType}
-        type FieldIsArray "sType" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-} CanReadField "sType" VkSubmitInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-} CanWriteField "sType" VkSubmitInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkSubmitInfo where
-        type FieldType "pNext" VkSubmitInfo = Ptr Void
-        type FieldOptional "pNext" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSubmitInfo =
-             #{offset VkSubmitInfo, pNext}
-        type FieldIsArray "pNext" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanReadField "pNext" VkSubmitInfo
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-} CanWriteField "pNext" VkSubmitInfo
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "waitSemaphoreCount" VkSubmitInfo where
-        type FieldType "waitSemaphoreCount" VkSubmitInfo = Word32
-        type FieldOptional "waitSemaphoreCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "waitSemaphoreCount" VkSubmitInfo =
-             #{offset VkSubmitInfo, waitSemaphoreCount}
-        type FieldIsArray "waitSemaphoreCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "waitSemaphoreCount" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, waitSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "waitSemaphoreCount" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, waitSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitSemaphores" VkSubmitInfo where
-        type FieldType "pWaitSemaphores" VkSubmitInfo = Ptr VkSemaphore
-        type FieldOptional "pWaitSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitSemaphores" VkSubmitInfo =
-             #{offset VkSubmitInfo, pWaitSemaphores}
-        type FieldIsArray "pWaitSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitSemaphores" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pWaitSemaphores})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitSemaphores" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, pWaitSemaphores}
-
-instance {-# OVERLAPPING #-}
-         HasField "pWaitDstStageMask" VkSubmitInfo where
-        type FieldType "pWaitDstStageMask" VkSubmitInfo =
-             Ptr VkPipelineStageFlags
-        type FieldOptional "pWaitDstStageMask" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pWaitDstStageMask" VkSubmitInfo =
-             #{offset VkSubmitInfo, pWaitDstStageMask}
-        type FieldIsArray "pWaitDstStageMask" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, pWaitDstStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pWaitDstStageMask" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pWaitDstStageMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, pWaitDstStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pWaitDstStageMask" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, pWaitDstStageMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "commandBufferCount" VkSubmitInfo where
-        type FieldType "commandBufferCount" VkSubmitInfo = Word32
-        type FieldOptional "commandBufferCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "commandBufferCount" VkSubmitInfo =
-             #{offset VkSubmitInfo, commandBufferCount}
-        type FieldIsArray "commandBufferCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "commandBufferCount" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, commandBufferCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "commandBufferCount" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, commandBufferCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pCommandBuffers" VkSubmitInfo where
-        type FieldType "pCommandBuffers" VkSubmitInfo = Ptr VkCommandBuffer
-        type FieldOptional "pCommandBuffers" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pCommandBuffers" VkSubmitInfo =
-             #{offset VkSubmitInfo, pCommandBuffers}
-        type FieldIsArray "pCommandBuffers" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, pCommandBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pCommandBuffers" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pCommandBuffers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, pCommandBuffers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pCommandBuffers" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, pCommandBuffers}
-
-instance {-# OVERLAPPING #-}
-         HasField "signalSemaphoreCount" VkSubmitInfo where
-        type FieldType "signalSemaphoreCount" VkSubmitInfo = Word32
-        type FieldOptional "signalSemaphoreCount" VkSubmitInfo = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "signalSemaphoreCount" VkSubmitInfo =
-             #{offset VkSubmitInfo, signalSemaphoreCount}
-        type FieldIsArray "signalSemaphoreCount" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "signalSemaphoreCount" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, signalSemaphoreCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "signalSemaphoreCount" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, signalSemaphoreCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pSignalSemaphores" VkSubmitInfo where
-        type FieldType "pSignalSemaphores" VkSubmitInfo = Ptr VkSemaphore
-        type FieldOptional "pSignalSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pSignalSemaphores" VkSubmitInfo =
-             #{offset VkSubmitInfo, pSignalSemaphores}
-        type FieldIsArray "pSignalSemaphores" VkSubmitInfo = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubmitInfo, pSignalSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pSignalSemaphores" VkSubmitInfo where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubmitInfo, pSignalSemaphores})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubmitInfo, pSignalSemaphores}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pSignalSemaphores" VkSubmitInfo where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubmitInfo, pSignalSemaphores}
-
-instance Show VkSubmitInfo where
-        showsPrec d x
-          = showString "VkSubmitInfo {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "waitSemaphoreCount = " .
-                            showsPrec d (getField @"waitSemaphoreCount" x) .
-                              showString ", " .
-                                showString "pWaitSemaphores = " .
-                                  showsPrec d (getField @"pWaitSemaphores" x) .
-                                    showString ", " .
-                                      showString "pWaitDstStageMask = " .
-                                        showsPrec d (getField @"pWaitDstStageMask" x) .
-                                          showString ", " .
-                                            showString "commandBufferCount = " .
-                                              showsPrec d (getField @"commandBufferCount" x) .
-                                                showString ", " .
-                                                  showString "pCommandBuffers = " .
-                                                    showsPrec d (getField @"pCommandBuffers" x) .
-                                                      showString ", " .
-                                                        showString "signalSemaphoreCount = " .
-                                                          showsPrec d
-                                                            (getField @"signalSemaphoreCount" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pSignalSemaphores = " .
-                                                                showsPrec d
-                                                                  (getField @"pSignalSemaphores" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDependency.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDependency.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDependency.hsc
+++ /dev/null
@@ -1,328 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSubpassDependency
-       (VkSubpassDependency(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkAccessFlags        (VkAccessFlags)
-import           Graphics.Vulkan.Types.Enum.VkDependencyFlags    (VkDependencyFlags)
-import           Graphics.Vulkan.Types.Enum.VkPipelineStageFlags (VkPipelineStageFlags)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSubpassDependency {
---   >     uint32_t               srcSubpass;
---   >     uint32_t               dstSubpass;
---   >     VkPipelineStageFlags   srcStageMask;
---   >     VkPipelineStageFlags   dstStageMask;
---   >     VkAccessFlags          srcAccessMask;
---   >     VkAccessFlags          dstAccessMask;
---   >     VkDependencyFlags      dependencyFlags;
---   > } VkSubpassDependency;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubpassDependency.html VkSubpassDependency registry at www.khronos.org>
-data VkSubpassDependency = VkSubpassDependency## Addr## ByteArray##
-
-instance Eq VkSubpassDependency where
-        (VkSubpassDependency## a _) == x@(VkSubpassDependency## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSubpassDependency where
-        (VkSubpassDependency## a _) `compare` x@(VkSubpassDependency## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSubpassDependency where
-        sizeOf ~_ = #{size VkSubpassDependency}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSubpassDependency}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubpassDependency where
-        unsafeAddr (VkSubpassDependency## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassDependency## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassDependency## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSubpassDependency where
-        type StructFields VkSubpassDependency =
-             '["srcSubpass", "dstSubpass", "srcStageMask", "dstStageMask", -- ' closing tick for hsc2hs
-               "srcAccessMask", "dstAccessMask", "dependencyFlags"]
-        type CUnionType VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSubpassDependency = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "srcSubpass" VkSubpassDependency where
-        type FieldType "srcSubpass" VkSubpassDependency = Word32
-        type FieldOptional "srcSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcSubpass" VkSubpassDependency =
-             #{offset VkSubpassDependency, srcSubpass}
-        type FieldIsArray "srcSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubpassDependency, srcSubpass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcSubpass" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcSubpass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, srcSubpass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcSubpass" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, srcSubpass}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstSubpass" VkSubpassDependency where
-        type FieldType "dstSubpass" VkSubpassDependency = Word32
-        type FieldOptional "dstSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSubpass" VkSubpassDependency =
-             #{offset VkSubpassDependency, dstSubpass}
-        type FieldIsArray "dstSubpass" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubpassDependency, dstSubpass}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSubpass" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstSubpass})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, dstSubpass}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSubpass" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, dstSubpass}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcStageMask" VkSubpassDependency where
-        type FieldType "srcStageMask" VkSubpassDependency =
-             VkPipelineStageFlags
-        type FieldOptional "srcStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "srcStageMask" VkSubpassDependency =
-             #{offset VkSubpassDependency, srcStageMask}
-        type FieldIsArray "srcStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDependency, srcStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcStageMask" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcStageMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, srcStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcStageMask" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, srcStageMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstStageMask" VkSubpassDependency where
-        type FieldType "dstStageMask" VkSubpassDependency =
-             VkPipelineStageFlags
-        type FieldOptional "dstStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstStageMask" VkSubpassDependency =
-             #{offset VkSubpassDependency, dstStageMask}
-        type FieldIsArray "dstStageMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDependency, dstStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstStageMask" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstStageMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, dstStageMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstStageMask" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, dstStageMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "srcAccessMask" VkSubpassDependency where
-        type FieldType "srcAccessMask" VkSubpassDependency = VkAccessFlags
-        type FieldOptional "srcAccessMask" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "srcAccessMask" VkSubpassDependency =
-             #{offset VkSubpassDependency, srcAccessMask}
-        type FieldIsArray "srcAccessMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDependency, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "srcAccessMask" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, srcAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "srcAccessMask" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, srcAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstAccessMask" VkSubpassDependency where
-        type FieldType "dstAccessMask" VkSubpassDependency = VkAccessFlags
-        type FieldOptional "dstAccessMask" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dstAccessMask" VkSubpassDependency =
-             #{offset VkSubpassDependency, dstAccessMask}
-        type FieldIsArray "dstAccessMask" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDependency, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstAccessMask" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dstAccessMask})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstAccessMask" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, dstAccessMask}
-
-instance {-# OVERLAPPING #-}
-         HasField "dependencyFlags" VkSubpassDependency where
-        type FieldType "dependencyFlags" VkSubpassDependency =
-             VkDependencyFlags
-        type FieldOptional "dependencyFlags" VkSubpassDependency = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "dependencyFlags" VkSubpassDependency =
-             #{offset VkSubpassDependency, dependencyFlags}
-        type FieldIsArray "dependencyFlags" VkSubpassDependency = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDependency, dependencyFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dependencyFlags" VkSubpassDependency where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDependency, dependencyFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDependency, dependencyFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dependencyFlags" VkSubpassDependency where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDependency, dependencyFlags}
-
-instance Show VkSubpassDependency where
-        showsPrec d x
-          = showString "VkSubpassDependency {" .
-              showString "srcSubpass = " .
-                showsPrec d (getField @"srcSubpass" x) .
-                  showString ", " .
-                    showString "dstSubpass = " .
-                      showsPrec d (getField @"dstSubpass" x) .
-                        showString ", " .
-                          showString "srcStageMask = " .
-                            showsPrec d (getField @"srcStageMask" x) .
-                              showString ", " .
-                                showString "dstStageMask = " .
-                                  showsPrec d (getField @"dstStageMask" x) .
-                                    showString ", " .
-                                      showString "srcAccessMask = " .
-                                        showsPrec d (getField @"srcAccessMask" x) .
-                                          showString ", " .
-                                            showString "dstAccessMask = " .
-                                              showsPrec d (getField @"dstAccessMask" x) .
-                                                showString ", " .
-                                                  showString "dependencyFlags = " .
-                                                    showsPrec d (getField @"dependencyFlags" x) .
-                                                      showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDescription.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDescription.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassDescription.hsc
+++ /dev/null
@@ -1,473 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSubpassDescription
-       (VkSubpassDescription(..)) where
-import           Foreign.Storable                                     (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkPipelineBindPoint       (VkPipelineBindPoint)
-import           Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags (VkSubpassDescriptionFlags)
-import           Graphics.Vulkan.Types.Struct.VkAttachmentReference   (VkAttachmentReference)
-import           System.IO.Unsafe                                     (unsafeDupablePerformIO)
-
--- | > typedef struct VkSubpassDescription {
---   >     VkSubpassDescriptionFlags flags;
---   >     VkPipelineBindPoint    pipelineBindPoint;
---   >     uint32_t               inputAttachmentCount;
---   >     const VkAttachmentReference* pInputAttachments;
---   >     uint32_t               colorAttachmentCount;
---   >     const VkAttachmentReference* pColorAttachments;
---   >     const VkAttachmentReference* pResolveAttachments;
---   >     const VkAttachmentReference* pDepthStencilAttachment;
---   >     uint32_t               preserveAttachmentCount;
---   >     const uint32_t* pPreserveAttachments;
---   > } VkSubpassDescription;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubpassDescription.html VkSubpassDescription registry at www.khronos.org>
-data VkSubpassDescription = VkSubpassDescription## Addr## ByteArray##
-
-instance Eq VkSubpassDescription where
-        (VkSubpassDescription## a _) == x@(VkSubpassDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSubpassDescription where
-        (VkSubpassDescription## a _) `compare` x@(VkSubpassDescription## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSubpassDescription where
-        sizeOf ~_ = #{size VkSubpassDescription}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSubpassDescription}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubpassDescription where
-        unsafeAddr (VkSubpassDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassDescription## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSubpassDescription where
-        type StructFields VkSubpassDescription =
-             '["flags", "pipelineBindPoint", "inputAttachmentCount", -- ' closing tick for hsc2hs
-               "pInputAttachments", "colorAttachmentCount", "pColorAttachments",
-               "pResolveAttachments", "pDepthStencilAttachment",
-               "preserveAttachmentCount", "pPreserveAttachments"]
-        type CUnionType VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSubpassDescription = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "flags" VkSubpassDescription
-         where
-        type FieldType "flags" VkSubpassDescription =
-             VkSubpassDescriptionFlags
-        type FieldOptional "flags" VkSubpassDescription = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSubpassDescription =
-             #{offset VkSubpassDescription, flags}
-        type FieldIsArray "flags" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubpassDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "pipelineBindPoint" VkSubpassDescription where
-        type FieldType "pipelineBindPoint" VkSubpassDescription =
-             VkPipelineBindPoint
-        type FieldOptional "pipelineBindPoint" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pipelineBindPoint" VkSubpassDescription =
-             #{offset VkSubpassDescription, pipelineBindPoint}
-        type FieldIsArray "pipelineBindPoint" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pipelineBindPoint" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pipelineBindPoint})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pipelineBindPoint" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pipelineBindPoint}
-
-instance {-# OVERLAPPING #-}
-         HasField "inputAttachmentCount" VkSubpassDescription where
-        type FieldType "inputAttachmentCount" VkSubpassDescription = Word32
-        type FieldOptional "inputAttachmentCount" VkSubpassDescription =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "inputAttachmentCount" VkSubpassDescription =
-             #{offset VkSubpassDescription, inputAttachmentCount}
-        type FieldIsArray "inputAttachmentCount" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, inputAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "inputAttachmentCount" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, inputAttachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, inputAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "inputAttachmentCount" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, inputAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pInputAttachments" VkSubpassDescription where
-        type FieldType "pInputAttachments" VkSubpassDescription =
-             Ptr VkAttachmentReference
-        type FieldOptional "pInputAttachments" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pInputAttachments" VkSubpassDescription =
-             #{offset VkSubpassDescription, pInputAttachments}
-        type FieldIsArray "pInputAttachments" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pInputAttachments" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pInputAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pInputAttachments" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pInputAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "colorAttachmentCount" VkSubpassDescription where
-        type FieldType "colorAttachmentCount" VkSubpassDescription = Word32
-        type FieldOptional "colorAttachmentCount" VkSubpassDescription =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "colorAttachmentCount" VkSubpassDescription =
-             #{offset VkSubpassDescription, colorAttachmentCount}
-        type FieldIsArray "colorAttachmentCount" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, colorAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "colorAttachmentCount" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, colorAttachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, colorAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "colorAttachmentCount" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, colorAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pColorAttachments" VkSubpassDescription where
-        type FieldType "pColorAttachments" VkSubpassDescription =
-             Ptr VkAttachmentReference
-        type FieldOptional "pColorAttachments" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pColorAttachments" VkSubpassDescription =
-             #{offset VkSubpassDescription, pColorAttachments}
-        type FieldIsArray "pColorAttachments" VkSubpassDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pColorAttachments" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pColorAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pColorAttachments" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pColorAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "pResolveAttachments" VkSubpassDescription where
-        type FieldType "pResolveAttachments" VkSubpassDescription =
-             Ptr VkAttachmentReference
-        type FieldOptional "pResolveAttachments" VkSubpassDescription =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pResolveAttachments" VkSubpassDescription =
-             #{offset VkSubpassDescription, pResolveAttachments}
-        type FieldIsArray "pResolveAttachments" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pResolveAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pResolveAttachments" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pResolveAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pResolveAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pResolveAttachments" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pResolveAttachments}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDepthStencilAttachment" VkSubpassDescription where
-        type FieldType "pDepthStencilAttachment" VkSubpassDescription =
-             Ptr VkAttachmentReference
-        type FieldOptional "pDepthStencilAttachment" VkSubpassDescription =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "pDepthStencilAttachment" VkSubpassDescription =
-             #{offset VkSubpassDescription, pDepthStencilAttachment}
-        type FieldIsArray "pDepthStencilAttachment" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pDepthStencilAttachment}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDepthStencilAttachment" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pDepthStencilAttachment})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pDepthStencilAttachment}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDepthStencilAttachment" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pDepthStencilAttachment}
-
-instance {-# OVERLAPPING #-}
-         HasField "preserveAttachmentCount" VkSubpassDescription where
-        type FieldType "preserveAttachmentCount" VkSubpassDescription =
-             Word32
-        type FieldOptional "preserveAttachmentCount" VkSubpassDescription =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "preserveAttachmentCount" VkSubpassDescription =
-             #{offset VkSubpassDescription, preserveAttachmentCount}
-        type FieldIsArray "preserveAttachmentCount" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, preserveAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "preserveAttachmentCount" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, preserveAttachmentCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, preserveAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "preserveAttachmentCount" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, preserveAttachmentCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pPreserveAttachments" VkSubpassDescription where
-        type FieldType "pPreserveAttachments" VkSubpassDescription =
-             Ptr Word32
-        type FieldOptional "pPreserveAttachments" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pPreserveAttachments" VkSubpassDescription =
-             #{offset VkSubpassDescription, pPreserveAttachments}
-        type FieldIsArray "pPreserveAttachments" VkSubpassDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassDescription, pPreserveAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pPreserveAttachments" VkSubpassDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassDescription, pPreserveAttachments})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassDescription, pPreserveAttachments}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pPreserveAttachments" VkSubpassDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassDescription, pPreserveAttachments}
-
-instance Show VkSubpassDescription where
-        showsPrec d x
-          = showString "VkSubpassDescription {" .
-              showString "flags = " .
-                showsPrec d (getField @"flags" x) .
-                  showString ", " .
-                    showString "pipelineBindPoint = " .
-                      showsPrec d (getField @"pipelineBindPoint" x) .
-                        showString ", " .
-                          showString "inputAttachmentCount = " .
-                            showsPrec d (getField @"inputAttachmentCount" x) .
-                              showString ", " .
-                                showString "pInputAttachments = " .
-                                  showsPrec d (getField @"pInputAttachments" x) .
-                                    showString ", " .
-                                      showString "colorAttachmentCount = " .
-                                        showsPrec d (getField @"colorAttachmentCount" x) .
-                                          showString ", " .
-                                            showString "pColorAttachments = " .
-                                              showsPrec d (getField @"pColorAttachments" x) .
-                                                showString ", " .
-                                                  showString "pResolveAttachments = " .
-                                                    showsPrec d (getField @"pResolveAttachments" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "pDepthStencilAttachment = " .
-                                                          showsPrec d
-                                                            (getField @"pDepthStencilAttachment" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "preserveAttachmentCount = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"preserveAttachmentCount"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "pPreserveAttachments = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"pPreserveAttachments"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassSampleLocationsEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassSampleLocationsEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSubpassSampleLocationsEXT.hsc
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSubpassSampleLocationsEXT
-       (VkSubpassSampleLocationsEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT (VkSampleLocationsInfoEXT)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSubpassSampleLocationsEXT {
---   >     uint32_t                         subpassIndex;
---   >     VkSampleLocationsInfoEXT         sampleLocationsInfo;
---   > } VkSubpassSampleLocationsEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubpassSampleLocationsEXT.html VkSubpassSampleLocationsEXT registry at www.khronos.org>
-data VkSubpassSampleLocationsEXT = VkSubpassSampleLocationsEXT## Addr##
-                                                                ByteArray##
-
-instance Eq VkSubpassSampleLocationsEXT where
-        (VkSubpassSampleLocationsEXT## a _) ==
-          x@(VkSubpassSampleLocationsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSubpassSampleLocationsEXT where
-        (VkSubpassSampleLocationsEXT## a _) `compare`
-          x@(VkSubpassSampleLocationsEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSubpassSampleLocationsEXT where
-        sizeOf ~_ = #{size VkSubpassSampleLocationsEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSubpassSampleLocationsEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubpassSampleLocationsEXT where
-        unsafeAddr (VkSubpassSampleLocationsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubpassSampleLocationsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubpassSampleLocationsEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSubpassSampleLocationsEXT where
-        type StructFields VkSubpassSampleLocationsEXT =
-             '["subpassIndex", "sampleLocationsInfo"] -- ' closing tick for hsc2hs
-        type CUnionType VkSubpassSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSubpassSampleLocationsEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSubpassSampleLocationsEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "subpassIndex" VkSubpassSampleLocationsEXT where
-        type FieldType "subpassIndex" VkSubpassSampleLocationsEXT = Word32
-        type FieldOptional "subpassIndex" VkSubpassSampleLocationsEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "subpassIndex" VkSubpassSampleLocationsEXT =
-             #{offset VkSubpassSampleLocationsEXT, subpassIndex}
-        type FieldIsArray "subpassIndex" VkSubpassSampleLocationsEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassSampleLocationsEXT, subpassIndex}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "subpassIndex" VkSubpassSampleLocationsEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassSampleLocationsEXT, subpassIndex})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassSampleLocationsEXT, subpassIndex}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "subpassIndex" VkSubpassSampleLocationsEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassSampleLocationsEXT, subpassIndex}
-
-instance {-# OVERLAPPING #-}
-         HasField "sampleLocationsInfo" VkSubpassSampleLocationsEXT where
-        type FieldType "sampleLocationsInfo" VkSubpassSampleLocationsEXT =
-             VkSampleLocationsInfoEXT
-        type FieldOptional "sampleLocationsInfo"
-               VkSubpassSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sampleLocationsInfo" VkSubpassSampleLocationsEXT
-             =
-             #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
-        type FieldIsArray "sampleLocationsInfo" VkSubpassSampleLocationsEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sampleLocationsInfo" VkSubpassSampleLocationsEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sampleLocationsInfo" VkSubpassSampleLocationsEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubpassSampleLocationsEXT, sampleLocationsInfo}
-
-instance Show VkSubpassSampleLocationsEXT where
-        showsPrec d x
-          = showString "VkSubpassSampleLocationsEXT {" .
-              showString "subpassIndex = " .
-                showsPrec d (getField @"subpassIndex" x) .
-                  showString ", " .
-                    showString "sampleLocationsInfo = " .
-                      showsPrec d (getField @"sampleLocationsInfo" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSubresourceLayout.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSubresourceLayout.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSubresourceLayout.hsc
+++ /dev/null
@@ -1,246 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSubresourceLayout
-       (VkSubresourceLayout(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes  (VkDeviceSize)
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkSubresourceLayout {
---   >     VkDeviceSize           offset;
---   >     VkDeviceSize           size;
---   >     VkDeviceSize           rowPitch;
---   >     VkDeviceSize           arrayPitch;
---   >     VkDeviceSize           depthPitch;
---   > } VkSubresourceLayout;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSubresourceLayout.html VkSubresourceLayout registry at www.khronos.org>
-data VkSubresourceLayout = VkSubresourceLayout## Addr## ByteArray##
-
-instance Eq VkSubresourceLayout where
-        (VkSubresourceLayout## a _) == x@(VkSubresourceLayout## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSubresourceLayout where
-        (VkSubresourceLayout## a _) `compare` x@(VkSubresourceLayout## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSubresourceLayout where
-        sizeOf ~_ = #{size VkSubresourceLayout}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSubresourceLayout}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSubresourceLayout where
-        unsafeAddr (VkSubresourceLayout## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSubresourceLayout## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSubresourceLayout## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSubresourceLayout where
-        type StructFields VkSubresourceLayout =
-             '["offset", "size", "rowPitch", "arrayPitch", "depthPitch"] -- ' closing tick for hsc2hs
-        type CUnionType VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSubresourceLayout = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSubresourceLayout = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "offset" VkSubresourceLayout
-         where
-        type FieldType "offset" VkSubresourceLayout = VkDeviceSize
-        type FieldOptional "offset" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkSubresourceLayout =
-             #{offset VkSubresourceLayout, offset}
-        type FieldIsArray "offset" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubresourceLayout, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkSubresourceLayout where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubresourceLayout, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkSubresourceLayout where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubresourceLayout, offset}
-
-instance {-# OVERLAPPING #-} HasField "size" VkSubresourceLayout
-         where
-        type FieldType "size" VkSubresourceLayout = VkDeviceSize
-        type FieldOptional "size" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "size" VkSubresourceLayout =
-             #{offset VkSubresourceLayout, size}
-        type FieldIsArray "size" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubresourceLayout, size}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "size" VkSubresourceLayout where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, size})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubresourceLayout, size}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "size" VkSubresourceLayout where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubresourceLayout, size}
-
-instance {-# OVERLAPPING #-}
-         HasField "rowPitch" VkSubresourceLayout where
-        type FieldType "rowPitch" VkSubresourceLayout = VkDeviceSize
-        type FieldOptional "rowPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "rowPitch" VkSubresourceLayout =
-             #{offset VkSubresourceLayout, rowPitch}
-        type FieldIsArray "rowPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubresourceLayout, rowPitch}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "rowPitch" VkSubresourceLayout where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, rowPitch})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubresourceLayout, rowPitch}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "rowPitch" VkSubresourceLayout where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubresourceLayout, rowPitch}
-
-instance {-# OVERLAPPING #-}
-         HasField "arrayPitch" VkSubresourceLayout where
-        type FieldType "arrayPitch" VkSubresourceLayout = VkDeviceSize
-        type FieldOptional "arrayPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "arrayPitch" VkSubresourceLayout =
-             #{offset VkSubresourceLayout, arrayPitch}
-        type FieldIsArray "arrayPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubresourceLayout, arrayPitch}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "arrayPitch" VkSubresourceLayout where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, arrayPitch})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubresourceLayout, arrayPitch}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "arrayPitch" VkSubresourceLayout where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubresourceLayout, arrayPitch}
-
-instance {-# OVERLAPPING #-}
-         HasField "depthPitch" VkSubresourceLayout where
-        type FieldType "depthPitch" VkSubresourceLayout = VkDeviceSize
-        type FieldOptional "depthPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "depthPitch" VkSubresourceLayout =
-             #{offset VkSubresourceLayout, depthPitch}
-        type FieldIsArray "depthPitch" VkSubresourceLayout = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSubresourceLayout, depthPitch}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "depthPitch" VkSubresourceLayout where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSubresourceLayout, depthPitch})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSubresourceLayout, depthPitch}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "depthPitch" VkSubresourceLayout where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSubresourceLayout, depthPitch}
-
-instance Show VkSubresourceLayout where
-        showsPrec d x
-          = showString "VkSubresourceLayout {" .
-              showString "offset = " .
-                showsPrec d (getField @"offset" x) .
-                  showString ", " .
-                    showString "size = " .
-                      showsPrec d (getField @"size" x) .
-                        showString ", " .
-                          showString "rowPitch = " .
-                            showsPrec d (getField @"rowPitch" x) .
-                              showString ", " .
-                                showString "arrayPitch = " .
-                                  showsPrec d (getField @"arrayPitch" x) .
-                                    showString ", " .
-                                      showString "depthPitch = " .
-                                        showsPrec d (getField @"depthPitch" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2EXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2EXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2EXT.hsc
+++ /dev/null
@@ -1,625 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2EXT
-       (VkSurfaceCapabilities2EXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR   (VkCompositeAlphaFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags          (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT   (VkSurfaceCounterFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR (VkSurfaceTransformFlagBitsKHR,
-                                                                        VkSurfaceTransformFlagsKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D               (VkExtent2D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSurfaceCapabilities2EXT {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     uint32_t                         minImageCount;
---   >     uint32_t                         maxImageCount;
---   >     VkExtent2D                       currentExtent;
---   >     VkExtent2D                       minImageExtent;
---   >     VkExtent2D                       maxImageExtent;
---   >     uint32_t                         maxImageArrayLayers;
---   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
---   >     VkSurfaceTransformFlagBitsKHR    currentTransform;
---   >     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
---   >     VkImageUsageFlags                supportedUsageFlags;
---   >     VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
---   > } VkSurfaceCapabilities2EXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSurfaceCapabilities2EXT.html VkSurfaceCapabilities2EXT registry at www.khronos.org>
-data VkSurfaceCapabilities2EXT = VkSurfaceCapabilities2EXT## Addr##
-                                                            ByteArray##
-
-instance Eq VkSurfaceCapabilities2EXT where
-        (VkSurfaceCapabilities2EXT## a _) ==
-          x@(VkSurfaceCapabilities2EXT## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSurfaceCapabilities2EXT where
-        (VkSurfaceCapabilities2EXT## a _) `compare`
-          x@(VkSurfaceCapabilities2EXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSurfaceCapabilities2EXT where
-        sizeOf ~_ = #{size VkSurfaceCapabilities2EXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSurfaceCapabilities2EXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceCapabilities2EXT where
-        unsafeAddr (VkSurfaceCapabilities2EXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilities2EXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilities2EXT## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSurfaceCapabilities2EXT where
-        type StructFields VkSurfaceCapabilities2EXT =
-             '["sType", "pNext", "minImageCount", "maxImageCount", -- ' closing tick for hsc2hs
-               "currentExtent", "minImageExtent", "maxImageExtent",
-               "maxImageArrayLayers", "supportedTransforms", "currentTransform",
-               "supportedCompositeAlpha", "supportedUsageFlags",
-               "supportedSurfaceCounters"]
-        type CUnionType VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSurfaceCapabilities2EXT = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSurfaceCapabilities2EXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSurfaceCapabilities2EXT where
-        type FieldType "sType" VkSurfaceCapabilities2EXT = VkStructureType
-        type FieldOptional "sType" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, sType}
-        type FieldIsArray "sType" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSurfaceCapabilities2EXT where
-        type FieldType "pNext" VkSurfaceCapabilities2EXT = Ptr Void
-        type FieldOptional "pNext" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, pNext}
-        type FieldIsArray "pNext" VkSurfaceCapabilities2EXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageCount" VkSurfaceCapabilities2EXT where
-        type FieldType "minImageCount" VkSurfaceCapabilities2EXT = Word32
-        type FieldOptional "minImageCount" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageCount" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, minImageCount}
-        type FieldIsArray "minImageCount" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageCount" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, minImageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageCount" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageCount" VkSurfaceCapabilities2EXT where
-        type FieldType "maxImageCount" VkSurfaceCapabilities2EXT = Word32
-        type FieldOptional "maxImageCount" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageCount" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, maxImageCount}
-        type FieldIsArray "maxImageCount" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageCount" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageCount" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "currentExtent" VkSurfaceCapabilities2EXT where
-        type FieldType "currentExtent" VkSurfaceCapabilities2EXT =
-             VkExtent2D
-        type FieldOptional "currentExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentExtent" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, currentExtent}
-        type FieldIsArray "currentExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentExtent" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, currentExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentExtent" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageExtent" VkSurfaceCapabilities2EXT where
-        type FieldType "minImageExtent" VkSurfaceCapabilities2EXT =
-             VkExtent2D
-        type FieldOptional "minImageExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageExtent" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, minImageExtent}
-        type FieldIsArray "minImageExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageExtent" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, minImageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageExtent" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageExtent" VkSurfaceCapabilities2EXT where
-        type FieldType "maxImageExtent" VkSurfaceCapabilities2EXT =
-             VkExtent2D
-        type FieldOptional "maxImageExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageExtent" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
-        type FieldIsArray "maxImageExtent" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageExtent" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageExtent" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
-        type FieldType "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
-             Word32
-        type FieldOptional "maxImageArrayLayers" VkSurfaceCapabilities2EXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
-        type FieldIsArray "maxImageArrayLayers" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageArrayLayers" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedTransforms" VkSurfaceCapabilities2EXT where
-        type FieldType "supportedTransforms" VkSurfaceCapabilities2EXT =
-             VkSurfaceTransformFlagsKHR
-        type FieldOptional "supportedTransforms" VkSurfaceCapabilities2EXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedTransforms" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
-        type FieldIsArray "supportedTransforms" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedTransforms" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedTransforms})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedTransforms" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         HasField "currentTransform" VkSurfaceCapabilities2EXT where
-        type FieldType "currentTransform" VkSurfaceCapabilities2EXT =
-             VkSurfaceTransformFlagBitsKHR
-        type FieldOptional "currentTransform" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentTransform" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, currentTransform}
-        type FieldIsArray "currentTransform" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentTransform" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, currentTransform})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentTransform" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT where
-        type FieldType "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
-             = VkCompositeAlphaFlagsKHR
-        type FieldOptional "supportedCompositeAlpha"
-               VkSurfaceCapabilities2EXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedCompositeAlpha"
-               VkSurfaceCapabilities2EXT
-             =
-             #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
-        type FieldIsArray "supportedCompositeAlpha"
-               VkSurfaceCapabilities2EXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedCompositeAlpha" VkSurfaceCapabilities2EXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
-        type FieldType "supportedUsageFlags" VkSurfaceCapabilities2EXT =
-             VkImageUsageFlags
-        type FieldOptional "supportedUsageFlags" VkSurfaceCapabilities2EXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedUsageFlags" VkSurfaceCapabilities2EXT =
-             #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
-        type FieldIsArray "supportedUsageFlags" VkSurfaceCapabilities2EXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedUsageFlags" VkSurfaceCapabilities2EXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT where
-        type FieldType "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
-             = VkSurfaceCounterFlagsEXT
-        type FieldOptional "supportedSurfaceCounters"
-               VkSurfaceCapabilities2EXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedSurfaceCounters"
-               VkSurfaceCapabilities2EXT
-             =
-             #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
-        type FieldIsArray "supportedSurfaceCounters"
-               VkSurfaceCapabilities2EXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedSurfaceCounters" VkSurfaceCapabilities2EXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2EXT, supportedSurfaceCounters}
-
-instance Show VkSurfaceCapabilities2EXT where
-        showsPrec d x
-          = showString "VkSurfaceCapabilities2EXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "minImageCount = " .
-                            showsPrec d (getField @"minImageCount" x) .
-                              showString ", " .
-                                showString "maxImageCount = " .
-                                  showsPrec d (getField @"maxImageCount" x) .
-                                    showString ", " .
-                                      showString "currentExtent = " .
-                                        showsPrec d (getField @"currentExtent" x) .
-                                          showString ", " .
-                                            showString "minImageExtent = " .
-                                              showsPrec d (getField @"minImageExtent" x) .
-                                                showString ", " .
-                                                  showString "maxImageExtent = " .
-                                                    showsPrec d (getField @"maxImageExtent" x) .
-                                                      showString ", " .
-                                                        showString "maxImageArrayLayers = " .
-                                                          showsPrec d
-                                                            (getField @"maxImageArrayLayers" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "supportedTransforms = " .
-                                                                showsPrec d
-                                                                  (getField @"supportedTransforms"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "currentTransform = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"currentTransform"
-                                                                           x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "supportedCompositeAlpha = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"supportedCompositeAlpha"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "supportedUsageFlags = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"supportedUsageFlags"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "supportedSurfaceCounters = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"supportedSurfaceCounters"
-                                                                                             x)
-                                                                                          .
-                                                                                          showChar
-                                                                                            '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2KHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2KHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilities2KHR.hsc
+++ /dev/null
@@ -1,185 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR
-       (VkSurfaceCapabilities2KHR(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR (VkSurfaceCapabilitiesKHR)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSurfaceCapabilities2KHR {
---   >     VkStructureType sType;
---   >     void*   pNext;
---   >     VkSurfaceCapabilitiesKHR surfaceCapabilities;
---   > } VkSurfaceCapabilities2KHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSurfaceCapabilities2KHR.html VkSurfaceCapabilities2KHR registry at www.khronos.org>
-data VkSurfaceCapabilities2KHR = VkSurfaceCapabilities2KHR## Addr##
-                                                            ByteArray##
-
-instance Eq VkSurfaceCapabilities2KHR where
-        (VkSurfaceCapabilities2KHR## a _) ==
-          x@(VkSurfaceCapabilities2KHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSurfaceCapabilities2KHR where
-        (VkSurfaceCapabilities2KHR## a _) `compare`
-          x@(VkSurfaceCapabilities2KHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSurfaceCapabilities2KHR where
-        sizeOf ~_ = #{size VkSurfaceCapabilities2KHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSurfaceCapabilities2KHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceCapabilities2KHR where
-        unsafeAddr (VkSurfaceCapabilities2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilities2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilities2KHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSurfaceCapabilities2KHR where
-        type StructFields VkSurfaceCapabilities2KHR =
-             '["sType", "pNext", "surfaceCapabilities"] -- ' closing tick for hsc2hs
-        type CUnionType VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSurfaceCapabilities2KHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSurfaceCapabilities2KHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSurfaceCapabilities2KHR where
-        type FieldType "sType" VkSurfaceCapabilities2KHR = VkStructureType
-        type FieldOptional "sType" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSurfaceCapabilities2KHR =
-             #{offset VkSurfaceCapabilities2KHR, sType}
-        type FieldIsArray "sType" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSurfaceCapabilities2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSurfaceCapabilities2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSurfaceCapabilities2KHR where
-        type FieldType "pNext" VkSurfaceCapabilities2KHR = Ptr Void
-        type FieldOptional "pNext" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSurfaceCapabilities2KHR =
-             #{offset VkSurfaceCapabilities2KHR, pNext}
-        type FieldIsArray "pNext" VkSurfaceCapabilities2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSurfaceCapabilities2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSurfaceCapabilities2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
-        type FieldType "surfaceCapabilities" VkSurfaceCapabilities2KHR =
-             VkSurfaceCapabilitiesKHR
-        type FieldOptional "surfaceCapabilities" VkSurfaceCapabilities2KHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "surfaceCapabilities" VkSurfaceCapabilities2KHR =
-             #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
-        type FieldIsArray "surfaceCapabilities" VkSurfaceCapabilities2KHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surfaceCapabilities" VkSurfaceCapabilities2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilities2KHR, surfaceCapabilities}
-
-instance Show VkSurfaceCapabilities2KHR where
-        showsPrec d x
-          = showString "VkSurfaceCapabilities2KHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "surfaceCapabilities = " .
-                            showsPrec d (getField @"surfaceCapabilities" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilitiesKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilitiesKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceCapabilitiesKHR.hsc
+++ /dev/null
@@ -1,485 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR
-       (VkSurfaceCapabilitiesKHR(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR   (VkCompositeAlphaFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags          (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR (VkSurfaceTransformFlagBitsKHR,
-                                                                        VkSurfaceTransformFlagsKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D               (VkExtent2D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSurfaceCapabilitiesKHR {
---   >     uint32_t                         minImageCount;
---   >     uint32_t                         maxImageCount;
---   >     VkExtent2D                       currentExtent;
---   >     VkExtent2D                       minImageExtent;
---   >     VkExtent2D                       maxImageExtent;
---   >     uint32_t                         maxImageArrayLayers;
---   >     VkSurfaceTransformFlagsKHR       supportedTransforms;
---   >     VkSurfaceTransformFlagBitsKHR    currentTransform;
---   >     VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
---   >     VkImageUsageFlags                supportedUsageFlags;
---   > } VkSurfaceCapabilitiesKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSurfaceCapabilitiesKHR.html VkSurfaceCapabilitiesKHR registry at www.khronos.org>
-data VkSurfaceCapabilitiesKHR = VkSurfaceCapabilitiesKHR## Addr##
-                                                          ByteArray##
-
-instance Eq VkSurfaceCapabilitiesKHR where
-        (VkSurfaceCapabilitiesKHR## a _) ==
-          x@(VkSurfaceCapabilitiesKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSurfaceCapabilitiesKHR where
-        (VkSurfaceCapabilitiesKHR## a _) `compare`
-          x@(VkSurfaceCapabilitiesKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSurfaceCapabilitiesKHR where
-        sizeOf ~_ = #{size VkSurfaceCapabilitiesKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSurfaceCapabilitiesKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceCapabilitiesKHR where
-        unsafeAddr (VkSurfaceCapabilitiesKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceCapabilitiesKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceCapabilitiesKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSurfaceCapabilitiesKHR where
-        type StructFields VkSurfaceCapabilitiesKHR =
-             '["minImageCount", "maxImageCount", "currentExtent", -- ' closing tick for hsc2hs
-               "minImageExtent", "maxImageExtent", "maxImageArrayLayers",
-               "supportedTransforms", "currentTransform",
-               "supportedCompositeAlpha", "supportedUsageFlags"]
-        type CUnionType VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSurfaceCapabilitiesKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSurfaceCapabilitiesKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageCount" VkSurfaceCapabilitiesKHR where
-        type FieldType "minImageCount" VkSurfaceCapabilitiesKHR = Word32
-        type FieldOptional "minImageCount" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageCount" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, minImageCount}
-        type FieldIsArray "minImageCount" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageCount" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, minImageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageCount" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageCount" VkSurfaceCapabilitiesKHR where
-        type FieldType "maxImageCount" VkSurfaceCapabilitiesKHR = Word32
-        type FieldOptional "maxImageCount" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageCount" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
-        type FieldIsArray "maxImageCount" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageCount" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageCount" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "currentExtent" VkSurfaceCapabilitiesKHR where
-        type FieldType "currentExtent" VkSurfaceCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "currentExtent" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentExtent" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, currentExtent}
-        type FieldIsArray "currentExtent" VkSurfaceCapabilitiesKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentExtent" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, currentExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentExtent" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, currentExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageExtent" VkSurfaceCapabilitiesKHR where
-        type FieldType "minImageExtent" VkSurfaceCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "minImageExtent" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageExtent" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
-        type FieldIsArray "minImageExtent" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageExtent" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, minImageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageExtent" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, minImageExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageExtent" VkSurfaceCapabilitiesKHR where
-        type FieldType "maxImageExtent" VkSurfaceCapabilitiesKHR =
-             VkExtent2D
-        type FieldOptional "maxImageExtent" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageExtent" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
-        type FieldIsArray "maxImageExtent" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageExtent" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageExtent" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
-        type FieldType "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
-             Word32
-        type FieldOptional "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
-        type FieldIsArray "maxImageArrayLayers" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "maxImageArrayLayers" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, maxImageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedTransforms" VkSurfaceCapabilitiesKHR where
-        type FieldType "supportedTransforms" VkSurfaceCapabilitiesKHR =
-             VkSurfaceTransformFlagsKHR
-        type FieldOptional "supportedTransforms" VkSurfaceCapabilitiesKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedTransforms" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
-        type FieldIsArray "supportedTransforms" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedTransforms" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedTransforms})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedTransforms" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedTransforms}
-
-instance {-# OVERLAPPING #-}
-         HasField "currentTransform" VkSurfaceCapabilitiesKHR where
-        type FieldType "currentTransform" VkSurfaceCapabilitiesKHR =
-             VkSurfaceTransformFlagBitsKHR
-        type FieldOptional "currentTransform" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "currentTransform" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, currentTransform}
-        type FieldIsArray "currentTransform" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "currentTransform" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, currentTransform})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "currentTransform" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, currentTransform}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR where
-        type FieldType "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR =
-             VkCompositeAlphaFlagsKHR
-        type FieldOptional "supportedCompositeAlpha"
-               VkSurfaceCapabilitiesKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
-             =
-             #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
-        type FieldIsArray "supportedCompositeAlpha"
-               VkSurfaceCapabilitiesKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedCompositeAlpha" VkSurfaceCapabilitiesKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedCompositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
-        type FieldType "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
-             VkImageUsageFlags
-        type FieldOptional "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
-             'True -- ' closing tick for hsc2hs
-        type FieldOffset "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
-             #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
-        type FieldIsArray "supportedUsageFlags" VkSurfaceCapabilitiesKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportedUsageFlags" VkSurfaceCapabilitiesKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceCapabilitiesKHR, supportedUsageFlags}
-
-instance Show VkSurfaceCapabilitiesKHR where
-        showsPrec d x
-          = showString "VkSurfaceCapabilitiesKHR {" .
-              showString "minImageCount = " .
-                showsPrec d (getField @"minImageCount" x) .
-                  showString ", " .
-                    showString "maxImageCount = " .
-                      showsPrec d (getField @"maxImageCount" x) .
-                        showString ", " .
-                          showString "currentExtent = " .
-                            showsPrec d (getField @"currentExtent" x) .
-                              showString ", " .
-                                showString "minImageExtent = " .
-                                  showsPrec d (getField @"minImageExtent" x) .
-                                    showString ", " .
-                                      showString "maxImageExtent = " .
-                                        showsPrec d (getField @"maxImageExtent" x) .
-                                          showString ", " .
-                                            showString "maxImageArrayLayers = " .
-                                              showsPrec d (getField @"maxImageArrayLayers" x) .
-                                                showString ", " .
-                                                  showString "supportedTransforms = " .
-                                                    showsPrec d (getField @"supportedTransforms" x)
-                                                      .
-                                                      showString ", " .
-                                                        showString "currentTransform = " .
-                                                          showsPrec d
-                                                            (getField @"currentTransform" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString
-                                                                "supportedCompositeAlpha = "
-                                                                .
-                                                                showsPrec d
-                                                                  (getField
-                                                                     @"supportedCompositeAlpha"
-                                                                     x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString
-                                                                      "supportedUsageFlags = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"supportedUsageFlags"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormat2KHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormat2KHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormat2KHR.hsc
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSurfaceFormat2KHR
-       (VkSurfaceFormat2KHR(..)) where
-import           Foreign.Storable                                (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType      (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR (VkSurfaceFormatKHR)
-import           System.IO.Unsafe                                (unsafeDupablePerformIO)
-
--- | > typedef struct VkSurfaceFormat2KHR {
---   >     VkStructureType sType;
---   >     void* pNext;
---   >     VkSurfaceFormatKHR surfaceFormat;
---   > } VkSurfaceFormat2KHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSurfaceFormat2KHR.html VkSurfaceFormat2KHR registry at www.khronos.org>
-data VkSurfaceFormat2KHR = VkSurfaceFormat2KHR## Addr## ByteArray##
-
-instance Eq VkSurfaceFormat2KHR where
-        (VkSurfaceFormat2KHR## a _) == x@(VkSurfaceFormat2KHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSurfaceFormat2KHR where
-        (VkSurfaceFormat2KHR## a _) `compare` x@(VkSurfaceFormat2KHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSurfaceFormat2KHR where
-        sizeOf ~_ = #{size VkSurfaceFormat2KHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSurfaceFormat2KHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceFormat2KHR where
-        unsafeAddr (VkSurfaceFormat2KHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceFormat2KHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceFormat2KHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSurfaceFormat2KHR where
-        type StructFields VkSurfaceFormat2KHR =
-             '["sType", "pNext", "surfaceFormat"] -- ' closing tick for hsc2hs
-        type CUnionType VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSurfaceFormat2KHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSurfaceFormat2KHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkSurfaceFormat2KHR
-         where
-        type FieldType "sType" VkSurfaceFormat2KHR = VkStructureType
-        type FieldOptional "sType" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSurfaceFormat2KHR =
-             #{offset VkSurfaceFormat2KHR, sType}
-        type FieldIsArray "sType" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSurfaceFormat2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSurfaceFormat2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceFormat2KHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSurfaceFormat2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceFormat2KHR, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkSurfaceFormat2KHR
-         where
-        type FieldType "pNext" VkSurfaceFormat2KHR = Ptr Void
-        type FieldOptional "pNext" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSurfaceFormat2KHR =
-             #{offset VkSurfaceFormat2KHR, pNext}
-        type FieldIsArray "pNext" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSurfaceFormat2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSurfaceFormat2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceFormat2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSurfaceFormat2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceFormat2KHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "surfaceFormat" VkSurfaceFormat2KHR where
-        type FieldType "surfaceFormat" VkSurfaceFormat2KHR =
-             VkSurfaceFormatKHR
-        type FieldOptional "surfaceFormat" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "surfaceFormat" VkSurfaceFormat2KHR =
-             #{offset VkSurfaceFormat2KHR, surfaceFormat}
-        type FieldIsArray "surfaceFormat" VkSurfaceFormat2KHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSurfaceFormat2KHR, surfaceFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surfaceFormat" VkSurfaceFormat2KHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormat2KHR, surfaceFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceFormat2KHR, surfaceFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surfaceFormat" VkSurfaceFormat2KHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceFormat2KHR, surfaceFormat}
-
-instance Show VkSurfaceFormat2KHR where
-        showsPrec d x
-          = showString "VkSurfaceFormat2KHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "surfaceFormat = " .
-                            showsPrec d (getField @"surfaceFormat" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormatKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormatKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSurfaceFormatKHR.hsc
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR
-       (VkSurfaceFormatKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR (VkColorSpaceKHR)
-import           Graphics.Vulkan.Types.Enum.VkFormat        (VkFormat)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkSurfaceFormatKHR {
---   >     VkFormat                         format;
---   >     VkColorSpaceKHR                  colorSpace;
---   > } VkSurfaceFormatKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSurfaceFormatKHR.html VkSurfaceFormatKHR registry at www.khronos.org>
-data VkSurfaceFormatKHR = VkSurfaceFormatKHR## Addr## ByteArray##
-
-instance Eq VkSurfaceFormatKHR where
-        (VkSurfaceFormatKHR## a _) == x@(VkSurfaceFormatKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSurfaceFormatKHR where
-        (VkSurfaceFormatKHR## a _) `compare` x@(VkSurfaceFormatKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSurfaceFormatKHR where
-        sizeOf ~_ = #{size VkSurfaceFormatKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSurfaceFormatKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSurfaceFormatKHR where
-        unsafeAddr (VkSurfaceFormatKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSurfaceFormatKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSurfaceFormatKHR## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSurfaceFormatKHR where
-        type StructFields VkSurfaceFormatKHR = '["format", "colorSpace"] -- ' closing tick for hsc2hs
-        type CUnionType VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSurfaceFormatKHR = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkSurfaceFormatKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "format" VkSurfaceFormatKHR
-         where
-        type FieldType "format" VkSurfaceFormatKHR = VkFormat
-        type FieldOptional "format" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkSurfaceFormatKHR =
-             #{offset VkSurfaceFormatKHR, format}
-        type FieldIsArray "format" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSurfaceFormatKHR, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkSurfaceFormatKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormatKHR, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceFormatKHR, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkSurfaceFormatKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceFormatKHR, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "colorSpace" VkSurfaceFormatKHR where
-        type FieldType "colorSpace" VkSurfaceFormatKHR = VkColorSpaceKHR
-        type FieldOptional "colorSpace" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "colorSpace" VkSurfaceFormatKHR =
-             #{offset VkSurfaceFormatKHR, colorSpace}
-        type FieldIsArray "colorSpace" VkSurfaceFormatKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSurfaceFormatKHR, colorSpace}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "colorSpace" VkSurfaceFormatKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSurfaceFormatKHR, colorSpace})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSurfaceFormatKHR, colorSpace}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "colorSpace" VkSurfaceFormatKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSurfaceFormatKHR, colorSpace}
-
-instance Show VkSurfaceFormatKHR where
-        showsPrec d x
-          = showString "VkSurfaceFormatKHR {" .
-              showString "format = " .
-                showsPrec d (getField @"format" x) .
-                  showString ", " .
-                    showString "colorSpace = " .
-                      showsPrec d (getField @"colorSpace" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCounterCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCounterCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCounterCreateInfoEXT.hsc
+++ /dev/null
@@ -1,195 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSwapchainCounterCreateInfoEXT
-       (VkSwapchainCounterCreateInfoEXT(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT   (VkSurfaceCounterFlagsEXT)
-import           Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR (VkSwapchainCreateInfoKHR)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSwapchainCounterCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSurfaceCounterFlagsEXT         surfaceCounters;
---   > } VkSwapchainCounterCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSwapchainCounterCreateInfoEXT.html VkSwapchainCounterCreateInfoEXT registry at www.khronos.org>
-data VkSwapchainCounterCreateInfoEXT = VkSwapchainCounterCreateInfoEXT## Addr##
-                                                                        ByteArray##
-
-instance Eq VkSwapchainCounterCreateInfoEXT where
-        (VkSwapchainCounterCreateInfoEXT## a _) ==
-          x@(VkSwapchainCounterCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSwapchainCounterCreateInfoEXT where
-        (VkSwapchainCounterCreateInfoEXT## a _) `compare`
-          x@(VkSwapchainCounterCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSwapchainCounterCreateInfoEXT where
-        sizeOf ~_ = #{size VkSwapchainCounterCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkSwapchainCounterCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSwapchainCounterCreateInfoEXT where
-        unsafeAddr (VkSwapchainCounterCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSwapchainCounterCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSwapchainCounterCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSwapchainCounterCreateInfoEXT where
-        type StructFields VkSwapchainCounterCreateInfoEXT =
-             '["sType", "pNext", "surfaceCounters"] -- ' closing tick for hsc2hs
-        type CUnionType VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSwapchainCounterCreateInfoEXT =
-             '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSwapchainCounterCreateInfoEXT where
-        type FieldType "sType" VkSwapchainCounterCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSwapchainCounterCreateInfoEXT =
-             #{offset VkSwapchainCounterCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCounterCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSwapchainCounterCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSwapchainCounterCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSwapchainCounterCreateInfoEXT where
-        type FieldType "pNext" VkSwapchainCounterCreateInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSwapchainCounterCreateInfoEXT =
-             #{offset VkSwapchainCounterCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkSwapchainCounterCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCounterCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSwapchainCounterCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSwapchainCounterCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "surfaceCounters" VkSwapchainCounterCreateInfoEXT where
-        type FieldType "surfaceCounters" VkSwapchainCounterCreateInfoEXT =
-             VkSurfaceCounterFlagsEXT
-        type FieldOptional "surfaceCounters"
-               VkSwapchainCounterCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "surfaceCounters" VkSwapchainCounterCreateInfoEXT
-             =
-             #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
-        type FieldIsArray "surfaceCounters" VkSwapchainCounterCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surfaceCounters" VkSwapchainCounterCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCounterCreateInfoEXT, surfaceCounters}
-
-instance Show VkSwapchainCounterCreateInfoEXT where
-        showsPrec d x
-          = showString "VkSwapchainCounterCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "surfaceCounters = " .
-                            showsPrec d (getField @"surfaceCounters" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkSwapchainCreateInfoKHR.hsc
+++ /dev/null
@@ -1,828 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
-       (VkSwapchainCreateInfoKHR(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                       (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkColorSpaceKHR            (VkColorSpaceKHR)
-import           Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR   (VkCompositeAlphaFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.VkFormat                   (VkFormat)
-import           Graphics.Vulkan.Types.Enum.VkImageUsageFlags          (VkImageUsageFlags)
-import           Graphics.Vulkan.Types.Enum.VkPresentModeKHR           (VkPresentModeKHR)
-import           Graphics.Vulkan.Types.Enum.VkSharingMode              (VkSharingMode)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR (VkSurfaceTransformFlagBitsKHR)
-import           Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR  (VkSwapchainCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Handles                         (VkSurfaceKHR,
-                                                                        VkSwapchainKHR)
-import           Graphics.Vulkan.Types.Struct.VkExtent2D               (VkExtent2D)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkSwapchainCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkSwapchainCreateFlagsKHR        flags;
---   >     VkSurfaceKHR                     surface;
---   >     uint32_t                         minImageCount;
---   >     VkFormat                         imageFormat;
---   >     VkColorSpaceKHR                  imageColorSpace;
---   >     VkExtent2D                       imageExtent;
---   >     uint32_t                         imageArrayLayers;
---   >     VkImageUsageFlags                imageUsage;
---   >     VkSharingMode                    imageSharingMode;
---   >     uint32_t         queueFamilyIndexCount;
---   >     const uint32_t*                  pQueueFamilyIndices;
---   >     VkSurfaceTransformFlagBitsKHR    preTransform;
---   >     VkCompositeAlphaFlagBitsKHR      compositeAlpha;
---   >     VkPresentModeKHR                 presentMode;
---   >     VkBool32                         clipped;
---   >     VkSwapchainKHR   oldSwapchain;
---   > } VkSwapchainCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkSwapchainCreateInfoKHR.html VkSwapchainCreateInfoKHR registry at www.khronos.org>
-data VkSwapchainCreateInfoKHR = VkSwapchainCreateInfoKHR## Addr##
-                                                          ByteArray##
-
-instance Eq VkSwapchainCreateInfoKHR where
-        (VkSwapchainCreateInfoKHR## a _) ==
-          x@(VkSwapchainCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkSwapchainCreateInfoKHR where
-        (VkSwapchainCreateInfoKHR## a _) `compare`
-          x@(VkSwapchainCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkSwapchainCreateInfoKHR where
-        sizeOf ~_ = #{size VkSwapchainCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkSwapchainCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkSwapchainCreateInfoKHR where
-        unsafeAddr (VkSwapchainCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkSwapchainCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkSwapchainCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkSwapchainCreateInfoKHR where
-        type StructFields VkSwapchainCreateInfoKHR =
-             '["sType", "pNext", "flags", "surface", "minImageCount", -- ' closing tick for hsc2hs
-               "imageFormat", "imageColorSpace", "imageExtent",
-               "imageArrayLayers", "imageUsage", "imageSharingMode",
-               "queueFamilyIndexCount", "pQueueFamilyIndices", "preTransform",
-               "compositeAlpha", "presentMode", "clipped", "oldSwapchain"]
-        type CUnionType VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkSwapchainCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkSwapchainCreateInfoKHR where
-        type FieldType "sType" VkSwapchainCreateInfoKHR = VkStructureType
-        type FieldOptional "sType" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkSwapchainCreateInfoKHR where
-        type FieldType "pNext" VkSwapchainCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkSwapchainCreateInfoKHR where
-        type FieldType "flags" VkSwapchainCreateInfoKHR =
-             VkSwapchainCreateFlagsKHR
-        type FieldOptional "flags" VkSwapchainCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkSwapchainCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "surface" VkSwapchainCreateInfoKHR where
-        type FieldType "surface" VkSwapchainCreateInfoKHR = VkSurfaceKHR
-        type FieldOptional "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "surface" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, surface}
-        type FieldIsArray "surface" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surface" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, surface})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surface" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, surface}
-
-instance {-# OVERLAPPING #-}
-         HasField "minImageCount" VkSwapchainCreateInfoKHR where
-        type FieldType "minImageCount" VkSwapchainCreateInfoKHR = Word32
-        type FieldOptional "minImageCount" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "minImageCount" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, minImageCount}
-        type FieldIsArray "minImageCount" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "minImageCount" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, minImageCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "minImageCount" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, minImageCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageFormat" VkSwapchainCreateInfoKHR where
-        type FieldType "imageFormat" VkSwapchainCreateInfoKHR = VkFormat
-        type FieldOptional "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageFormat" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageFormat}
-        type FieldIsArray "imageFormat" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageFormat}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageFormat" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageFormat})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageFormat}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageFormat" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageFormat}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageColorSpace" VkSwapchainCreateInfoKHR where
-        type FieldType "imageColorSpace" VkSwapchainCreateInfoKHR =
-             VkColorSpaceKHR
-        type FieldOptional "imageColorSpace" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageColorSpace" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
-        type FieldIsArray "imageColorSpace" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageColorSpace" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageColorSpace})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageColorSpace" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageColorSpace}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageExtent" VkSwapchainCreateInfoKHR where
-        type FieldType "imageExtent" VkSwapchainCreateInfoKHR = VkExtent2D
-        type FieldOptional "imageExtent" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageExtent" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageExtent}
-        type FieldIsArray "imageExtent" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageExtent" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageExtent})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageExtent" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageExtent}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageArrayLayers" VkSwapchainCreateInfoKHR where
-        type FieldType "imageArrayLayers" VkSwapchainCreateInfoKHR = Word32
-        type FieldOptional "imageArrayLayers" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageArrayLayers" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
-        type FieldIsArray "imageArrayLayers" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageArrayLayers" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageArrayLayers})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageArrayLayers" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageArrayLayers}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageUsage" VkSwapchainCreateInfoKHR where
-        type FieldType "imageUsage" VkSwapchainCreateInfoKHR =
-             VkImageUsageFlags
-        type FieldOptional "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageUsage" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageUsage}
-        type FieldIsArray "imageUsage" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageUsage}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageUsage" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageUsage})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageUsage}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageUsage" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageUsage}
-
-instance {-# OVERLAPPING #-}
-         HasField "imageSharingMode" VkSwapchainCreateInfoKHR where
-        type FieldType "imageSharingMode" VkSwapchainCreateInfoKHR =
-             VkSharingMode
-        type FieldOptional "imageSharingMode" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "imageSharingMode" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
-        type FieldIsArray "imageSharingMode" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "imageSharingMode" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, imageSharingMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "imageSharingMode" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, imageSharingMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
-        type FieldType "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
-             Word32
-        type FieldOptional "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "queueFamilyIndexCount" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
-        type FieldIsArray "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "queueFamilyIndexCount" VkSwapchainCreateInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, queueFamilyIndexCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
-        type FieldType "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
-             Ptr Word32
-        type FieldOptional "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
-        type FieldIsArray "pQueueFamilyIndices" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pQueueFamilyIndices" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, pQueueFamilyIndices}
-
-instance {-# OVERLAPPING #-}
-         HasField "preTransform" VkSwapchainCreateInfoKHR where
-        type FieldType "preTransform" VkSwapchainCreateInfoKHR =
-             VkSurfaceTransformFlagBitsKHR
-        type FieldOptional "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "preTransform" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, preTransform}
-        type FieldIsArray "preTransform" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, preTransform}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "preTransform" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, preTransform})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, preTransform}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "preTransform" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, preTransform}
-
-instance {-# OVERLAPPING #-}
-         HasField "compositeAlpha" VkSwapchainCreateInfoKHR where
-        type FieldType "compositeAlpha" VkSwapchainCreateInfoKHR =
-             VkCompositeAlphaFlagBitsKHR
-        type FieldOptional "compositeAlpha" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "compositeAlpha" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
-        type FieldIsArray "compositeAlpha" VkSwapchainCreateInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "compositeAlpha" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, compositeAlpha})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "compositeAlpha" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, compositeAlpha}
-
-instance {-# OVERLAPPING #-}
-         HasField "presentMode" VkSwapchainCreateInfoKHR where
-        type FieldType "presentMode" VkSwapchainCreateInfoKHR =
-             VkPresentModeKHR
-        type FieldOptional "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "presentMode" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, presentMode}
-        type FieldIsArray "presentMode" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, presentMode}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "presentMode" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, presentMode})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, presentMode}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "presentMode" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, presentMode}
-
-instance {-# OVERLAPPING #-}
-         HasField "clipped" VkSwapchainCreateInfoKHR where
-        type FieldType "clipped" VkSwapchainCreateInfoKHR = VkBool32
-        type FieldOptional "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "clipped" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, clipped}
-        type FieldIsArray "clipped" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, clipped}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "clipped" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, clipped})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, clipped}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "clipped" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, clipped}
-
-instance {-# OVERLAPPING #-}
-         HasField "oldSwapchain" VkSwapchainCreateInfoKHR where
-        type FieldType "oldSwapchain" VkSwapchainCreateInfoKHR =
-             VkSwapchainKHR
-        type FieldOptional "oldSwapchain" VkSwapchainCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "oldSwapchain" VkSwapchainCreateInfoKHR =
-             #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
-        type FieldIsArray "oldSwapchain" VkSwapchainCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "oldSwapchain" VkSwapchainCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkSwapchainCreateInfoKHR, oldSwapchain})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "oldSwapchain" VkSwapchainCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkSwapchainCreateInfoKHR, oldSwapchain}
-
-instance Show VkSwapchainCreateInfoKHR where
-        showsPrec d x
-          = showString "VkSwapchainCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "surface = " .
-                                  showsPrec d (getField @"surface" x) .
-                                    showString ", " .
-                                      showString "minImageCount = " .
-                                        showsPrec d (getField @"minImageCount" x) .
-                                          showString ", " .
-                                            showString "imageFormat = " .
-                                              showsPrec d (getField @"imageFormat" x) .
-                                                showString ", " .
-                                                  showString "imageColorSpace = " .
-                                                    showsPrec d (getField @"imageColorSpace" x) .
-                                                      showString ", " .
-                                                        showString "imageExtent = " .
-                                                          showsPrec d (getField @"imageExtent" x) .
-                                                            showString ", " .
-                                                              showString "imageArrayLayers = " .
-                                                                showsPrec d
-                                                                  (getField @"imageArrayLayers" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "imageUsage = " .
-                                                                      showsPrec d
-                                                                        (getField @"imageUsage" x)
-                                                                        .
-                                                                        showString ", " .
-                                                                          showString
-                                                                            "imageSharingMode = "
-                                                                            .
-                                                                            showsPrec d
-                                                                              (getField
-                                                                                 @"imageSharingMode"
-                                                                                 x)
-                                                                              .
-                                                                              showString ", " .
-                                                                                showString
-                                                                                  "queueFamilyIndexCount = "
-                                                                                  .
-                                                                                  showsPrec d
-                                                                                    (getField
-                                                                                       @"queueFamilyIndexCount"
-                                                                                       x)
-                                                                                    .
-                                                                                    showString ", "
-                                                                                      .
-                                                                                      showString
-                                                                                        "pQueueFamilyIndices = "
-                                                                                        .
-                                                                                        showsPrec d
-                                                                                          (getField
-                                                                                             @"pQueueFamilyIndices"
-                                                                                             x)
-                                                                                          .
-                                                                                          showString
-                                                                                            ", "
-                                                                                            .
-                                                                                            showString
-                                                                                              "preTransform = "
-                                                                                              .
-                                                                                              showsPrec
-                                                                                                d
-                                                                                                (getField
-                                                                                                   @"preTransform"
-                                                                                                   x)
-                                                                                                .
-                                                                                                showString
-                                                                                                  ", "
-                                                                                                  .
-                                                                                                  showString
-                                                                                                    "compositeAlpha = "
-                                                                                                    .
-                                                                                                    showsPrec
-                                                                                                      d
-                                                                                                      (getField
-                                                                                                         @"compositeAlpha"
-                                                                                                         x)
-                                                                                                      .
-                                                                                                      showString
-                                                                                                        ", "
-                                                                                                        .
-                                                                                                        showString
-                                                                                                          "presentMode = "
-                                                                                                          .
-                                                                                                          showsPrec
-                                                                                                            d
-                                                                                                            (getField
-                                                                                                               @"presentMode"
-                                                                                                               x)
-                                                                                                            .
-                                                                                                            showString
-                                                                                                              ", "
-                                                                                                              .
-                                                                                                              showString
-                                                                                                                "clipped = "
-                                                                                                                .
-                                                                                                                showsPrec
-                                                                                                                  d
-                                                                                                                  (getField
-                                                                                                                     @"clipped"
-                                                                                                                     x)
-                                                                                                                  .
-                                                                                                                  showString
-                                                                                                                    ", "
-                                                                                                                    .
-                                                                                                                    showString
-                                                                                                                      "oldSwapchain = "
-                                                                                                                      .
-                                                                                                                      showsPrec
-                                                                                                                        d
-                                                                                                                        (getField
-                                                                                                                           @"oldSwapchain"
-                                                                                                                           x)
-                                                                                                                        .
-                                                                                                                        showChar
-                                                                                                                          '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkTextureLODGatherFormatPropertiesAMD.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkTextureLODGatherFormatPropertiesAMD.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkTextureLODGatherFormatPropertiesAMD.hsc
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkTextureLODGatherFormatPropertiesAMD
-       (VkTextureLODGatherFormatPropertiesAMD(..)) where
-import           Foreign.Storable                                      (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.BaseTypes                       (VkBool32)
-import           Graphics.Vulkan.Types.Enum.VkStructureType            (VkStructureType)
-import           Graphics.Vulkan.Types.Struct.VkImageFormatProperties2 (VkImageFormatProperties2)
-import           System.IO.Unsafe                                      (unsafeDupablePerformIO)
-
--- | > typedef struct VkTextureLODGatherFormatPropertiesAMD {
---   >     VkStructureType sType;
---   >     void*                            pNext;
---   >     VkBool32                         supportsTextureGatherLODBiasAMD;
---   > } VkTextureLODGatherFormatPropertiesAMD;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkTextureLODGatherFormatPropertiesAMD.html VkTextureLODGatherFormatPropertiesAMD registry at www.khronos.org>
-data VkTextureLODGatherFormatPropertiesAMD = VkTextureLODGatherFormatPropertiesAMD## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkTextureLODGatherFormatPropertiesAMD where
-        (VkTextureLODGatherFormatPropertiesAMD## a _) ==
-          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkTextureLODGatherFormatPropertiesAMD where
-        (VkTextureLODGatherFormatPropertiesAMD## a _) `compare`
-          x@(VkTextureLODGatherFormatPropertiesAMD## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkTextureLODGatherFormatPropertiesAMD where
-        sizeOf ~_
-          = #{size VkTextureLODGatherFormatPropertiesAMD}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkTextureLODGatherFormatPropertiesAMD}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkTextureLODGatherFormatPropertiesAMD
-         where
-        unsafeAddr (VkTextureLODGatherFormatPropertiesAMD## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkTextureLODGatherFormatPropertiesAMD## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkTextureLODGatherFormatPropertiesAMD##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkTextureLODGatherFormatPropertiesAMD where
-        type StructFields VkTextureLODGatherFormatPropertiesAMD =
-             '["sType", "pNext", "supportsTextureGatherLODBiasAMD"] -- ' closing tick for hsc2hs
-        type CUnionType VkTextureLODGatherFormatPropertiesAMD = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkTextureLODGatherFormatPropertiesAMD = 'True -- ' closing tick for hsc2hs
-        type StructExtends VkTextureLODGatherFormatPropertiesAMD =
-             '[VkImageFormatProperties2] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkTextureLODGatherFormatPropertiesAMD where
-        type FieldType "sType" VkTextureLODGatherFormatPropertiesAMD =
-             VkStructureType
-        type FieldOptional "sType" VkTextureLODGatherFormatPropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkTextureLODGatherFormatPropertiesAMD =
-             #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
-        type FieldIsArray "sType" VkTextureLODGatherFormatPropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkTextureLODGatherFormatPropertiesAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkTextureLODGatherFormatPropertiesAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkTextureLODGatherFormatPropertiesAMD where
-        type FieldType "pNext" VkTextureLODGatherFormatPropertiesAMD =
-             Ptr Void
-        type FieldOptional "pNext" VkTextureLODGatherFormatPropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkTextureLODGatherFormatPropertiesAMD =
-             #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
-        type FieldIsArray "pNext" VkTextureLODGatherFormatPropertiesAMD =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkTextureLODGatherFormatPropertiesAMD where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkTextureLODGatherFormatPropertiesAMD where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "supportsTextureGatherLODBiasAMD"
-           VkTextureLODGatherFormatPropertiesAMD
-         where
-        type FieldType "supportsTextureGatherLODBiasAMD"
-               VkTextureLODGatherFormatPropertiesAMD
-             = VkBool32
-        type FieldOptional "supportsTextureGatherLODBiasAMD"
-               VkTextureLODGatherFormatPropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "supportsTextureGatherLODBiasAMD"
-               VkTextureLODGatherFormatPropertiesAMD
-             =
-             #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
-        type FieldIsArray "supportsTextureGatherLODBiasAMD"
-               VkTextureLODGatherFormatPropertiesAMD
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "supportsTextureGatherLODBiasAMD"
-           VkTextureLODGatherFormatPropertiesAMD
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "supportsTextureGatherLODBiasAMD"
-           VkTextureLODGatherFormatPropertiesAMD
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkTextureLODGatherFormatPropertiesAMD, supportsTextureGatherLODBiasAMD}
-
-instance Show VkTextureLODGatherFormatPropertiesAMD where
-        showsPrec d x
-          = showString "VkTextureLODGatherFormatPropertiesAMD {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "supportsTextureGatherLODBiasAMD = " .
-                            showsPrec d (getField @"supportsTextureGatherLODBiasAMD" x) .
-                              showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkValidationCacheCreateInfoEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkValidationCacheCreateInfoEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkValidationCacheCreateInfoEXT.hsc
+++ /dev/null
@@ -1,266 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkValidationCacheCreateInfoEXT
-       (VkValidationCacheCreateInfoEXT(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkValidationCacheCreateFlagsEXT)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkValidationCacheCreateInfoEXT {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkValidationCacheCreateFlagsEXT    flags;
---   >     size_t                 initialDataSize;
---   >     const void*            pInitialData;
---   > } VkValidationCacheCreateInfoEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkValidationCacheCreateInfoEXT.html VkValidationCacheCreateInfoEXT registry at www.khronos.org>
-data VkValidationCacheCreateInfoEXT = VkValidationCacheCreateInfoEXT## Addr##
-                                                                      ByteArray##
-
-instance Eq VkValidationCacheCreateInfoEXT where
-        (VkValidationCacheCreateInfoEXT## a _) ==
-          x@(VkValidationCacheCreateInfoEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkValidationCacheCreateInfoEXT where
-        (VkValidationCacheCreateInfoEXT## a _) `compare`
-          x@(VkValidationCacheCreateInfoEXT## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkValidationCacheCreateInfoEXT where
-        sizeOf ~_ = #{size VkValidationCacheCreateInfoEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkValidationCacheCreateInfoEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkValidationCacheCreateInfoEXT where
-        unsafeAddr (VkValidationCacheCreateInfoEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkValidationCacheCreateInfoEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkValidationCacheCreateInfoEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkValidationCacheCreateInfoEXT where
-        type StructFields VkValidationCacheCreateInfoEXT =
-             '["sType", "pNext", "flags", "initialDataSize", "pInitialData"] -- ' closing tick for hsc2hs
-        type CUnionType VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkValidationCacheCreateInfoEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkValidationCacheCreateInfoEXT where
-        type FieldType "sType" VkValidationCacheCreateInfoEXT =
-             VkStructureType
-        type FieldOptional "sType" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkValidationCacheCreateInfoEXT =
-             #{offset VkValidationCacheCreateInfoEXT, sType}
-        type FieldIsArray "sType" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkValidationCacheCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkValidationCacheCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkValidationCacheCreateInfoEXT where
-        type FieldType "pNext" VkValidationCacheCreateInfoEXT = Ptr Void
-        type FieldOptional "pNext" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkValidationCacheCreateInfoEXT =
-             #{offset VkValidationCacheCreateInfoEXT, pNext}
-        type FieldIsArray "pNext" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkValidationCacheCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkValidationCacheCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkValidationCacheCreateInfoEXT where
-        type FieldType "flags" VkValidationCacheCreateInfoEXT =
-             VkValidationCacheCreateFlagsEXT
-        type FieldOptional "flags" VkValidationCacheCreateInfoEXT = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkValidationCacheCreateInfoEXT =
-             #{offset VkValidationCacheCreateInfoEXT, flags}
-        type FieldIsArray "flags" VkValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationCacheCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkValidationCacheCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkValidationCacheCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "initialDataSize" VkValidationCacheCreateInfoEXT where
-        type FieldType "initialDataSize" VkValidationCacheCreateInfoEXT =
-             CSize
-        type FieldOptional "initialDataSize" VkValidationCacheCreateInfoEXT
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "initialDataSize" VkValidationCacheCreateInfoEXT =
-             #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
-        type FieldIsArray "initialDataSize" VkValidationCacheCreateInfoEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "initialDataSize" VkValidationCacheCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, initialDataSize})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "initialDataSize" VkValidationCacheCreateInfoEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, initialDataSize}
-
-instance {-# OVERLAPPING #-}
-         HasField "pInitialData" VkValidationCacheCreateInfoEXT where
-        type FieldType "pInitialData" VkValidationCacheCreateInfoEXT =
-             Ptr Void
-        type FieldOptional "pInitialData" VkValidationCacheCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pInitialData" VkValidationCacheCreateInfoEXT =
-             #{offset VkValidationCacheCreateInfoEXT, pInitialData}
-        type FieldIsArray "pInitialData" VkValidationCacheCreateInfoEXT =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationCacheCreateInfoEXT, pInitialData}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pInitialData" VkValidationCacheCreateInfoEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationCacheCreateInfoEXT, pInitialData})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationCacheCreateInfoEXT, pInitialData}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pInitialData" VkValidationCacheCreateInfoEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationCacheCreateInfoEXT, pInitialData}
-
-instance Show VkValidationCacheCreateInfoEXT where
-        showsPrec d x
-          = showString "VkValidationCacheCreateInfoEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "initialDataSize = " .
-                                  showsPrec d (getField @"initialDataSize" x) .
-                                    showString ", " .
-                                      showString "pInitialData = " .
-                                        showsPrec d (getField @"pInitialData" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkValidationFlagsEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkValidationFlagsEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkValidationFlagsEXT.hsc
+++ /dev/null
@@ -1,230 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkValidationFlagsEXT
-       (VkValidationFlagsEXT(..)) where
-import           Foreign.Storable                                  (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType        (VkStructureType)
-import           Graphics.Vulkan.Types.Enum.VkValidationCheckEXT   (VkValidationCheckEXT)
-import           Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo (VkInstanceCreateInfo)
-import           System.IO.Unsafe                                  (unsafeDupablePerformIO)
-
--- | > typedef struct VkValidationFlagsEXT {
---   >     VkStructureType                  sType;
---   >     const void*                      pNext;
---   >     uint32_t                         disabledValidationCheckCount;
---   >     VkValidationCheckEXT* pDisabledValidationChecks;
---   > } VkValidationFlagsEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkValidationFlagsEXT.html VkValidationFlagsEXT registry at www.khronos.org>
-data VkValidationFlagsEXT = VkValidationFlagsEXT## Addr## ByteArray##
-
-instance Eq VkValidationFlagsEXT where
-        (VkValidationFlagsEXT## a _) == x@(VkValidationFlagsEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkValidationFlagsEXT where
-        (VkValidationFlagsEXT## a _) `compare` x@(VkValidationFlagsEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkValidationFlagsEXT where
-        sizeOf ~_ = #{size VkValidationFlagsEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkValidationFlagsEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkValidationFlagsEXT where
-        unsafeAddr (VkValidationFlagsEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkValidationFlagsEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkValidationFlagsEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkValidationFlagsEXT where
-        type StructFields VkValidationFlagsEXT =
-             '["sType", "pNext", "disabledValidationCheckCount", -- ' closing tick for hsc2hs
-               "pDisabledValidationChecks"]
-        type CUnionType VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkValidationFlagsEXT = '[VkInstanceCreateInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkValidationFlagsEXT
-         where
-        type FieldType "sType" VkValidationFlagsEXT = VkStructureType
-        type FieldOptional "sType" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkValidationFlagsEXT =
-             #{offset VkValidationFlagsEXT, sType}
-        type FieldIsArray "sType" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkValidationFlagsEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkValidationFlagsEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationFlagsEXT, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkValidationFlagsEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationFlagsEXT, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkValidationFlagsEXT
-         where
-        type FieldType "pNext" VkValidationFlagsEXT = Ptr Void
-        type FieldOptional "pNext" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkValidationFlagsEXT =
-             #{offset VkValidationFlagsEXT, pNext}
-        type FieldIsArray "pNext" VkValidationFlagsEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkValidationFlagsEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkValidationFlagsEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationFlagsEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkValidationFlagsEXT where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationFlagsEXT, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "disabledValidationCheckCount" VkValidationFlagsEXT where
-        type FieldType "disabledValidationCheckCount" VkValidationFlagsEXT
-             = Word32
-        type FieldOptional "disabledValidationCheckCount"
-               VkValidationFlagsEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "disabledValidationCheckCount"
-               VkValidationFlagsEXT
-             =
-             #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
-        type FieldIsArray "disabledValidationCheckCount"
-               VkValidationFlagsEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "disabledValidationCheckCount" VkValidationFlagsEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, disabledValidationCheckCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "disabledValidationCheckCount" VkValidationFlagsEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationFlagsEXT, disabledValidationCheckCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pDisabledValidationChecks" VkValidationFlagsEXT where
-        type FieldType "pDisabledValidationChecks" VkValidationFlagsEXT =
-             Ptr VkValidationCheckEXT
-        type FieldOptional "pDisabledValidationChecks" VkValidationFlagsEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pDisabledValidationChecks" VkValidationFlagsEXT =
-             #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
-        type FieldIsArray "pDisabledValidationChecks" VkValidationFlagsEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pDisabledValidationChecks" VkValidationFlagsEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkValidationFlagsEXT, pDisabledValidationChecks})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pDisabledValidationChecks" VkValidationFlagsEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkValidationFlagsEXT, pDisabledValidationChecks}
-
-instance Show VkValidationFlagsEXT where
-        showsPrec d x
-          = showString "VkValidationFlagsEXT {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "disabledValidationCheckCount = " .
-                            showsPrec d (getField @"disabledValidationCheckCount" x) .
-                              showString ", " .
-                                showString "pDisabledValidationChecks = " .
-                                  showsPrec d (getField @"pDisabledValidationChecks" x) .
-                                    showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputAttributeDescription.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputAttributeDescription.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputAttributeDescription.hsc
+++ /dev/null
@@ -1,231 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription
-       (VkVertexInputAttributeDescription(..)) where
-import           Foreign.Storable                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkFormat (VkFormat)
-import           System.IO.Unsafe                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkVertexInputAttributeDescription {
---   >     uint32_t               location;
---   >     uint32_t               binding;
---   >     VkFormat               format;
---   >     uint32_t               offset;
---   > } VkVertexInputAttributeDescription;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkVertexInputAttributeDescription.html VkVertexInputAttributeDescription registry at www.khronos.org>
-data VkVertexInputAttributeDescription = VkVertexInputAttributeDescription## Addr##
-                                                                            ByteArray##
-
-instance Eq VkVertexInputAttributeDescription where
-        (VkVertexInputAttributeDescription## a _) ==
-          x@(VkVertexInputAttributeDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkVertexInputAttributeDescription where
-        (VkVertexInputAttributeDescription## a _) `compare`
-          x@(VkVertexInputAttributeDescription## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkVertexInputAttributeDescription where
-        sizeOf ~_ = #{size VkVertexInputAttributeDescription}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkVertexInputAttributeDescription}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkVertexInputAttributeDescription where
-        unsafeAddr (VkVertexInputAttributeDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputAttributeDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputAttributeDescription##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkVertexInputAttributeDescription where
-        type StructFields VkVertexInputAttributeDescription =
-             '["location", "binding", "format", "offset"] -- ' closing tick for hsc2hs
-        type CUnionType VkVertexInputAttributeDescription = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkVertexInputAttributeDescription = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkVertexInputAttributeDescription = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "location" VkVertexInputAttributeDescription where
-        type FieldType "location" VkVertexInputAttributeDescription =
-             Word32
-        type FieldOptional "location" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "location" VkVertexInputAttributeDescription =
-             #{offset VkVertexInputAttributeDescription, location}
-        type FieldIsArray "location" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputAttributeDescription, location}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "location" VkVertexInputAttributeDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, location})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputAttributeDescription, location}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "location" VkVertexInputAttributeDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputAttributeDescription, location}
-
-instance {-# OVERLAPPING #-}
-         HasField "binding" VkVertexInputAttributeDescription where
-        type FieldType "binding" VkVertexInputAttributeDescription = Word32
-        type FieldOptional "binding" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "binding" VkVertexInputAttributeDescription =
-             #{offset VkVertexInputAttributeDescription, binding}
-        type FieldIsArray "binding" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputAttributeDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "binding" VkVertexInputAttributeDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, binding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputAttributeDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "binding" VkVertexInputAttributeDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputAttributeDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         HasField "format" VkVertexInputAttributeDescription where
-        type FieldType "format" VkVertexInputAttributeDescription =
-             VkFormat
-        type FieldOptional "format" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "format" VkVertexInputAttributeDescription =
-             #{offset VkVertexInputAttributeDescription, format}
-        type FieldIsArray "format" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputAttributeDescription, format}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "format" VkVertexInputAttributeDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, format})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputAttributeDescription, format}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "format" VkVertexInputAttributeDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputAttributeDescription, format}
-
-instance {-# OVERLAPPING #-}
-         HasField "offset" VkVertexInputAttributeDescription where
-        type FieldType "offset" VkVertexInputAttributeDescription = Word32
-        type FieldOptional "offset" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "offset" VkVertexInputAttributeDescription =
-             #{offset VkVertexInputAttributeDescription, offset}
-        type FieldIsArray "offset" VkVertexInputAttributeDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputAttributeDescription, offset}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "offset" VkVertexInputAttributeDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputAttributeDescription, offset})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputAttributeDescription, offset}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "offset" VkVertexInputAttributeDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputAttributeDescription, offset}
-
-instance Show VkVertexInputAttributeDescription where
-        showsPrec d x
-          = showString "VkVertexInputAttributeDescription {" .
-              showString "location = " .
-                showsPrec d (getField @"location" x) .
-                  showString ", " .
-                    showString "binding = " .
-                      showsPrec d (getField @"binding" x) .
-                        showString ", " .
-                          showString "format = " .
-                            showsPrec d (getField @"format" x) .
-                              showString ", " .
-                                showString "offset = " .
-                                  showsPrec d (getField @"offset" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDescription.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDescription.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDescription.hsc
+++ /dev/null
@@ -1,190 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription
-       (VkVertexInputBindingDescription(..)) where
-import           Foreign.Storable                             (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkVertexInputRate (VkVertexInputRate)
-import           System.IO.Unsafe                             (unsafeDupablePerformIO)
-
--- | > typedef struct VkVertexInputBindingDescription {
---   >     uint32_t               binding;
---   >     uint32_t               stride;
---   >     VkVertexInputRate      inputRate;
---   > } VkVertexInputBindingDescription;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkVertexInputBindingDescription.html VkVertexInputBindingDescription registry at www.khronos.org>
-data VkVertexInputBindingDescription = VkVertexInputBindingDescription## Addr##
-                                                                        ByteArray##
-
-instance Eq VkVertexInputBindingDescription where
-        (VkVertexInputBindingDescription## a _) ==
-          x@(VkVertexInputBindingDescription## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkVertexInputBindingDescription where
-        (VkVertexInputBindingDescription## a _) `compare`
-          x@(VkVertexInputBindingDescription## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkVertexInputBindingDescription where
-        sizeOf ~_ = #{size VkVertexInputBindingDescription}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkVertexInputBindingDescription}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkVertexInputBindingDescription where
-        unsafeAddr (VkVertexInputBindingDescription## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputBindingDescription## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputBindingDescription##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkVertexInputBindingDescription where
-        type StructFields VkVertexInputBindingDescription =
-             '["binding", "stride", "inputRate"] -- ' closing tick for hsc2hs
-        type CUnionType VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkVertexInputBindingDescription = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "binding" VkVertexInputBindingDescription where
-        type FieldType "binding" VkVertexInputBindingDescription = Word32
-        type FieldOptional "binding" VkVertexInputBindingDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "binding" VkVertexInputBindingDescription =
-             #{offset VkVertexInputBindingDescription, binding}
-        type FieldIsArray "binding" VkVertexInputBindingDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputBindingDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "binding" VkVertexInputBindingDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, binding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputBindingDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "binding" VkVertexInputBindingDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputBindingDescription, binding}
-
-instance {-# OVERLAPPING #-}
-         HasField "stride" VkVertexInputBindingDescription where
-        type FieldType "stride" VkVertexInputBindingDescription = Word32
-        type FieldOptional "stride" VkVertexInputBindingDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "stride" VkVertexInputBindingDescription =
-             #{offset VkVertexInputBindingDescription, stride}
-        type FieldIsArray "stride" VkVertexInputBindingDescription = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputBindingDescription, stride}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "stride" VkVertexInputBindingDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, stride})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputBindingDescription, stride}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "stride" VkVertexInputBindingDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputBindingDescription, stride}
-
-instance {-# OVERLAPPING #-}
-         HasField "inputRate" VkVertexInputBindingDescription where
-        type FieldType "inputRate" VkVertexInputBindingDescription =
-             VkVertexInputRate
-        type FieldOptional "inputRate" VkVertexInputBindingDescription =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "inputRate" VkVertexInputBindingDescription =
-             #{offset VkVertexInputBindingDescription, inputRate}
-        type FieldIsArray "inputRate" VkVertexInputBindingDescription =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputBindingDescription, inputRate}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "inputRate" VkVertexInputBindingDescription where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDescription, inputRate})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputBindingDescription, inputRate}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "inputRate" VkVertexInputBindingDescription where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputBindingDescription, inputRate}
-
-instance Show VkVertexInputBindingDescription where
-        showsPrec d x
-          = showString "VkVertexInputBindingDescription {" .
-              showString "binding = " .
-                showsPrec d (getField @"binding" x) .
-                  showString ", " .
-                    showString "stride = " .
-                      showsPrec d (getField @"stride" x) .
-                        showString ", " .
-                          showString "inputRate = " .
-                            showsPrec d (getField @"inputRate" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDivisorDescriptionEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDivisorDescriptionEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkVertexInputBindingDivisorDescriptionEXT.hsc
+++ /dev/null
@@ -1,172 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkVertexInputBindingDivisorDescriptionEXT
-       (VkVertexInputBindingDivisorDescriptionEXT(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkVertexInputBindingDivisorDescriptionEXT {
---   >     uint32_t          binding;
---   >     uint32_t          divisor;
---   > } VkVertexInputBindingDivisorDescriptionEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkVertexInputBindingDivisorDescriptionEXT.html VkVertexInputBindingDivisorDescriptionEXT registry at www.khronos.org>
-data VkVertexInputBindingDivisorDescriptionEXT = VkVertexInputBindingDivisorDescriptionEXT## Addr##
-                                                                                            ByteArray##
-
-instance Eq VkVertexInputBindingDivisorDescriptionEXT where
-        (VkVertexInputBindingDivisorDescriptionEXT## a _) ==
-          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkVertexInputBindingDivisorDescriptionEXT where
-        (VkVertexInputBindingDivisorDescriptionEXT## a _) `compare`
-          x@(VkVertexInputBindingDivisorDescriptionEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkVertexInputBindingDivisorDescriptionEXT where
-        sizeOf ~_
-          = #{size VkVertexInputBindingDivisorDescriptionEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkVertexInputBindingDivisorDescriptionEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim
-           VkVertexInputBindingDivisorDescriptionEXT
-         where
-        unsafeAddr (VkVertexInputBindingDivisorDescriptionEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkVertexInputBindingDivisorDescriptionEXT## _ b)
-          = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkVertexInputBindingDivisorDescriptionEXT##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkVertexInputBindingDivisorDescriptionEXT
-         where
-        type StructFields VkVertexInputBindingDivisorDescriptionEXT =
-             '["binding", "divisor"] -- ' closing tick for hsc2hs
-        type CUnionType VkVertexInputBindingDivisorDescriptionEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkVertexInputBindingDivisorDescriptionEXT =
-             'False -- ' closing tick for hsc2hs
-        type StructExtends VkVertexInputBindingDivisorDescriptionEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "binding" VkVertexInputBindingDivisorDescriptionEXT where
-        type FieldType "binding" VkVertexInputBindingDivisorDescriptionEXT
-             = Word32
-        type FieldOptional "binding"
-               VkVertexInputBindingDivisorDescriptionEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "binding"
-               VkVertexInputBindingDivisorDescriptionEXT
-             =
-             #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
-        type FieldIsArray "binding"
-               VkVertexInputBindingDivisorDescriptionEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "binding" VkVertexInputBindingDivisorDescriptionEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDivisorDescriptionEXT, binding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "binding" VkVertexInputBindingDivisorDescriptionEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, binding}
-
-instance {-# OVERLAPPING #-}
-         HasField "divisor" VkVertexInputBindingDivisorDescriptionEXT where
-        type FieldType "divisor" VkVertexInputBindingDivisorDescriptionEXT
-             = Word32
-        type FieldOptional "divisor"
-               VkVertexInputBindingDivisorDescriptionEXT
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "divisor"
-               VkVertexInputBindingDivisorDescriptionEXT
-             =
-             #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
-        type FieldIsArray "divisor"
-               VkVertexInputBindingDivisorDescriptionEXT
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "divisor" VkVertexInputBindingDivisorDescriptionEXT
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "divisor" VkVertexInputBindingDivisorDescriptionEXT
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkVertexInputBindingDivisorDescriptionEXT, divisor}
-
-instance Show VkVertexInputBindingDivisorDescriptionEXT where
-        showsPrec d x
-          = showString "VkVertexInputBindingDivisorDescriptionEXT {" .
-              showString "binding = " .
-                showsPrec d (getField @"binding" x) .
-                  showString ", " .
-                    showString "divisor = " .
-                      showsPrec d (getField @"divisor" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkViSurfaceCreateInfoNN.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkViSurfaceCreateInfoNN.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkViSurfaceCreateInfoNN.hsc
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkViSurfaceCreateInfoNN
-       (VkViSurfaceCreateInfoNN(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkViSurfaceCreateFlagsNN)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkViSurfaceCreateInfoNN {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkViSurfaceCreateFlagsNN   flags;
---   >     void*                            window;
---   > } VkViSurfaceCreateInfoNN;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkViSurfaceCreateInfoNN.html VkViSurfaceCreateInfoNN registry at www.khronos.org>
-data VkViSurfaceCreateInfoNN = VkViSurfaceCreateInfoNN## Addr##
-                                                        ByteArray##
-
-instance Eq VkViSurfaceCreateInfoNN where
-        (VkViSurfaceCreateInfoNN## a _) == x@(VkViSurfaceCreateInfoNN## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkViSurfaceCreateInfoNN where
-        (VkViSurfaceCreateInfoNN## a _) `compare`
-          x@(VkViSurfaceCreateInfoNN## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkViSurfaceCreateInfoNN where
-        sizeOf ~_ = #{size VkViSurfaceCreateInfoNN}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkViSurfaceCreateInfoNN}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViSurfaceCreateInfoNN where
-        unsafeAddr (VkViSurfaceCreateInfoNN## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViSurfaceCreateInfoNN## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViSurfaceCreateInfoNN## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkViSurfaceCreateInfoNN where
-        type StructFields VkViSurfaceCreateInfoNN =
-             '["sType", "pNext", "flags", "window"] -- ' closing tick for hsc2hs
-        type CUnionType VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkViSurfaceCreateInfoNN = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkViSurfaceCreateInfoNN where
-        type FieldType "sType" VkViSurfaceCreateInfoNN = VkStructureType
-        type FieldOptional "sType" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkViSurfaceCreateInfoNN =
-             #{offset VkViSurfaceCreateInfoNN, sType}
-        type FieldIsArray "sType" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViSurfaceCreateInfoNN, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkViSurfaceCreateInfoNN where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkViSurfaceCreateInfoNN where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkViSurfaceCreateInfoNN where
-        type FieldType "pNext" VkViSurfaceCreateInfoNN = Ptr Void
-        type FieldOptional "pNext" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkViSurfaceCreateInfoNN =
-             #{offset VkViSurfaceCreateInfoNN, pNext}
-        type FieldIsArray "pNext" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViSurfaceCreateInfoNN, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkViSurfaceCreateInfoNN where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkViSurfaceCreateInfoNN where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkViSurfaceCreateInfoNN where
-        type FieldType "flags" VkViSurfaceCreateInfoNN =
-             VkViSurfaceCreateFlagsNN
-        type FieldOptional "flags" VkViSurfaceCreateInfoNN = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkViSurfaceCreateInfoNN =
-             #{offset VkViSurfaceCreateInfoNN, flags}
-        type FieldIsArray "flags" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViSurfaceCreateInfoNN, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkViSurfaceCreateInfoNN where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkViSurfaceCreateInfoNN where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "window" VkViSurfaceCreateInfoNN where
-        type FieldType "window" VkViSurfaceCreateInfoNN = Ptr Void
-        type FieldOptional "window" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "window" VkViSurfaceCreateInfoNN =
-             #{offset VkViSurfaceCreateInfoNN, window}
-        type FieldIsArray "window" VkViSurfaceCreateInfoNN = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViSurfaceCreateInfoNN, window}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "window" VkViSurfaceCreateInfoNN where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViSurfaceCreateInfoNN, window})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViSurfaceCreateInfoNN, window}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "window" VkViSurfaceCreateInfoNN where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViSurfaceCreateInfoNN, window}
-
-instance Show VkViSurfaceCreateInfoNN where
-        showsPrec d x
-          = showString "VkViSurfaceCreateInfoNN {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "window = " .
-                                  showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkViewport.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkViewport.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkViewport.hsc
+++ /dev/null
@@ -1,262 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkViewport (VkViewport(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkViewport {
---   >     float          x;
---   >     float          y;
---   >     float          width;
---   >     float          height;
---   >     float          minDepth;
---   >     float          maxDepth;
---   > } VkViewport;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkViewport.html VkViewport registry at www.khronos.org>
-data VkViewport = VkViewport## Addr## ByteArray##
-
-instance Eq VkViewport where
-        (VkViewport## a _) == x@(VkViewport## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkViewport where
-        (VkViewport## a _) `compare` x@(VkViewport## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkViewport where
-        sizeOf ~_ = #{size VkViewport}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkViewport}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViewport where
-        unsafeAddr (VkViewport## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewport## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewport## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkViewport where
-        type StructFields VkViewport =
-             '["x", "y", "width", "height", "minDepth", "maxDepth"] -- ' closing tick for hsc2hs
-        type CUnionType VkViewport = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkViewport = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkViewport = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkViewport where
-        type FieldType "x" VkViewport = #{type float}
-        type FieldOptional "x" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkViewport =
-             #{offset VkViewport, x}
-        type FieldIsArray "x" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkViewport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, x})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkViewport, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkViewport where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkViewport, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkViewport where
-        type FieldType "y" VkViewport = #{type float}
-        type FieldOptional "y" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkViewport =
-             #{offset VkViewport, y}
-        type FieldIsArray "y" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkViewport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, y})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkViewport, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkViewport where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkViewport, y}
-
-instance {-# OVERLAPPING #-} HasField "width" VkViewport where
-        type FieldType "width" VkViewport = #{type float}
-        type FieldOptional "width" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "width" VkViewport =
-             #{offset VkViewport, width}
-        type FieldIsArray "width" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, width}
-
-instance {-# OVERLAPPING #-} CanReadField "width" VkViewport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, width})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkViewport, width}
-
-instance {-# OVERLAPPING #-} CanWriteField "width" VkViewport where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewport, width}
-
-instance {-# OVERLAPPING #-} HasField "height" VkViewport where
-        type FieldType "height" VkViewport = #{type float}
-        type FieldOptional "height" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "height" VkViewport =
-             #{offset VkViewport, height}
-        type FieldIsArray "height" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, height}
-
-instance {-# OVERLAPPING #-} CanReadField "height" VkViewport where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, height})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewport, height}
-
-instance {-# OVERLAPPING #-} CanWriteField "height" VkViewport
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewport, height}
-
-instance {-# OVERLAPPING #-} HasField "minDepth" VkViewport where
-        type FieldType "minDepth" VkViewport = #{type float}
-        type FieldOptional "minDepth" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "minDepth" VkViewport =
-             #{offset VkViewport, minDepth}
-        type FieldIsArray "minDepth" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, minDepth}
-
-instance {-# OVERLAPPING #-} CanReadField "minDepth" VkViewport
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, minDepth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewport, minDepth}
-
-instance {-# OVERLAPPING #-} CanWriteField "minDepth" VkViewport
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewport, minDepth}
-
-instance {-# OVERLAPPING #-} HasField "maxDepth" VkViewport where
-        type FieldType "maxDepth" VkViewport = #{type float}
-        type FieldOptional "maxDepth" VkViewport = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "maxDepth" VkViewport =
-             #{offset VkViewport, maxDepth}
-        type FieldIsArray "maxDepth" VkViewport = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewport, maxDepth}
-
-instance {-# OVERLAPPING #-} CanReadField "maxDepth" VkViewport
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewport, maxDepth})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewport, maxDepth}
-
-instance {-# OVERLAPPING #-} CanWriteField "maxDepth" VkViewport
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewport, maxDepth}
-
-instance Show VkViewport where
-        showsPrec d x
-          = showString "VkViewport {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " .
-                      showsPrec d (getField @"y" x) .
-                        showString ", " .
-                          showString "width = " .
-                            showsPrec d (getField @"width" x) .
-                              showString ", " .
-                                showString "height = " .
-                                  showsPrec d (getField @"height" x) .
-                                    showString ", " .
-                                      showString "minDepth = " .
-                                        showsPrec d (getField @"minDepth" x) .
-                                          showString ", " .
-                                            showString "maxDepth = " .
-                                              showsPrec d (getField @"maxDepth" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkViewportSwizzleNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkViewportSwizzleNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkViewportSwizzleNV.hsc
+++ /dev/null
@@ -1,209 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkViewportSwizzleNV
-       (VkViewportSwizzleNV(..)) where
-import           Foreign.Storable                                         (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkViewportCoordinateSwizzleNV (VkViewportCoordinateSwizzleNV)
-import           System.IO.Unsafe                                         (unsafeDupablePerformIO)
-
--- | > typedef struct VkViewportSwizzleNV {
---   >     VkViewportCoordinateSwizzleNV          x;
---   >     VkViewportCoordinateSwizzleNV          y;
---   >     VkViewportCoordinateSwizzleNV          z;
---   >     VkViewportCoordinateSwizzleNV          w;
---   > } VkViewportSwizzleNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkViewportSwizzleNV.html VkViewportSwizzleNV registry at www.khronos.org>
-data VkViewportSwizzleNV = VkViewportSwizzleNV## Addr## ByteArray##
-
-instance Eq VkViewportSwizzleNV where
-        (VkViewportSwizzleNV## a _) == x@(VkViewportSwizzleNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkViewportSwizzleNV where
-        (VkViewportSwizzleNV## a _) `compare` x@(VkViewportSwizzleNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkViewportSwizzleNV where
-        sizeOf ~_ = #{size VkViewportSwizzleNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkViewportSwizzleNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViewportSwizzleNV where
-        unsafeAddr (VkViewportSwizzleNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewportSwizzleNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewportSwizzleNV## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkViewportSwizzleNV where
-        type StructFields VkViewportSwizzleNV = '["x", "y", "z", "w"] -- ' closing tick for hsc2hs
-        type CUnionType VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkViewportSwizzleNV = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkViewportSwizzleNV where
-        type FieldType "x" VkViewportSwizzleNV =
-             VkViewportCoordinateSwizzleNV
-        type FieldOptional "x" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkViewportSwizzleNV =
-             #{offset VkViewportSwizzleNV, x}
-        type FieldIsArray "x" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportSwizzleNV, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkViewportSwizzleNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, x})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportSwizzleNV, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkViewportSwizzleNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportSwizzleNV, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkViewportSwizzleNV where
-        type FieldType "y" VkViewportSwizzleNV =
-             VkViewportCoordinateSwizzleNV
-        type FieldOptional "y" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkViewportSwizzleNV =
-             #{offset VkViewportSwizzleNV, y}
-        type FieldIsArray "y" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportSwizzleNV, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkViewportSwizzleNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, y})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportSwizzleNV, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkViewportSwizzleNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportSwizzleNV, y}
-
-instance {-# OVERLAPPING #-} HasField "z" VkViewportSwizzleNV where
-        type FieldType "z" VkViewportSwizzleNV =
-             VkViewportCoordinateSwizzleNV
-        type FieldOptional "z" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "z" VkViewportSwizzleNV =
-             #{offset VkViewportSwizzleNV, z}
-        type FieldIsArray "z" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportSwizzleNV, z}
-
-instance {-# OVERLAPPING #-} CanReadField "z" VkViewportSwizzleNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, z})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportSwizzleNV, z}
-
-instance {-# OVERLAPPING #-} CanWriteField "z" VkViewportSwizzleNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportSwizzleNV, z}
-
-instance {-# OVERLAPPING #-} HasField "w" VkViewportSwizzleNV where
-        type FieldType "w" VkViewportSwizzleNV =
-             VkViewportCoordinateSwizzleNV
-        type FieldOptional "w" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "w" VkViewportSwizzleNV =
-             #{offset VkViewportSwizzleNV, w}
-        type FieldIsArray "w" VkViewportSwizzleNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportSwizzleNV, w}
-
-instance {-# OVERLAPPING #-} CanReadField "w" VkViewportSwizzleNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportSwizzleNV, w})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportSwizzleNV, w}
-
-instance {-# OVERLAPPING #-} CanWriteField "w" VkViewportSwizzleNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportSwizzleNV, w}
-
-instance Show VkViewportSwizzleNV where
-        showsPrec d x
-          = showString "VkViewportSwizzleNV {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " .
-                      showsPrec d (getField @"y" x) .
-                        showString ", " .
-                          showString "z = " .
-                            showsPrec d (getField @"z" x) .
-                              showString ", " .
-                                showString "w = " . showsPrec d (getField @"w" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkViewportWScalingNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkViewportWScalingNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkViewportWScalingNV.hsc
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkViewportWScalingNV
-       (VkViewportWScalingNV(..)) where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | > typedef struct VkViewportWScalingNV {
---   >     float          xcoeff;
---   >     float          ycoeff;
---   > } VkViewportWScalingNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkViewportWScalingNV.html VkViewportWScalingNV registry at www.khronos.org>
-data VkViewportWScalingNV = VkViewportWScalingNV## Addr## ByteArray##
-
-instance Eq VkViewportWScalingNV where
-        (VkViewportWScalingNV## a _) == x@(VkViewportWScalingNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkViewportWScalingNV where
-        (VkViewportWScalingNV## a _) `compare` x@(VkViewportWScalingNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkViewportWScalingNV where
-        sizeOf ~_ = #{size VkViewportWScalingNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkViewportWScalingNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkViewportWScalingNV where
-        unsafeAddr (VkViewportWScalingNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkViewportWScalingNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkViewportWScalingNV## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkViewportWScalingNV where
-        type StructFields VkViewportWScalingNV = '["xcoeff", "ycoeff"] -- ' closing tick for hsc2hs
-        type CUnionType VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkViewportWScalingNV = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "xcoeff" VkViewportWScalingNV
-         where
-        type FieldType "xcoeff" VkViewportWScalingNV =
-             #{type float}
-        type FieldOptional "xcoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "xcoeff" VkViewportWScalingNV =
-             #{offset VkViewportWScalingNV, xcoeff}
-        type FieldIsArray "xcoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportWScalingNV, xcoeff}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "xcoeff" VkViewportWScalingNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportWScalingNV, xcoeff})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportWScalingNV, xcoeff}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "xcoeff" VkViewportWScalingNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportWScalingNV, xcoeff}
-
-instance {-# OVERLAPPING #-} HasField "ycoeff" VkViewportWScalingNV
-         where
-        type FieldType "ycoeff" VkViewportWScalingNV =
-             #{type float}
-        type FieldOptional "ycoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "ycoeff" VkViewportWScalingNV =
-             #{offset VkViewportWScalingNV, ycoeff}
-        type FieldIsArray "ycoeff" VkViewportWScalingNV = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkViewportWScalingNV, ycoeff}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "ycoeff" VkViewportWScalingNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkViewportWScalingNV, ycoeff})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkViewportWScalingNV, ycoeff}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "ycoeff" VkViewportWScalingNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkViewportWScalingNV, ycoeff}
-
-instance Show VkViewportWScalingNV where
-        showsPrec d x
-          = showString "VkViewportWScalingNV {" .
-              showString "xcoeff = " .
-                showsPrec d (getField @"xcoeff" x) .
-                  showString ", " .
-                    showString "ycoeff = " .
-                      showsPrec d (getField @"ycoeff" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkWaylandSurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkWaylandSurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkWaylandSurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,263 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkWaylandSurfaceCreateInfoKHR
-       (VkWaylandSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkWaylandSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include              (WlDisplay,
-                                                             WlSurface)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkWaylandSurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkWaylandSurfaceCreateFlagsKHR   flags;
---   >     struct wl_display*               display;
---   >     struct wl_surface*               surface;
---   > } VkWaylandSurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkWaylandSurfaceCreateInfoKHR.html VkWaylandSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkWaylandSurfaceCreateInfoKHR = VkWaylandSurfaceCreateInfoKHR## Addr##
-                                                                    ByteArray##
-
-instance Eq VkWaylandSurfaceCreateInfoKHR where
-        (VkWaylandSurfaceCreateInfoKHR## a _) ==
-          x@(VkWaylandSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkWaylandSurfaceCreateInfoKHR where
-        (VkWaylandSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkWaylandSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkWaylandSurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkWaylandSurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkWaylandSurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWaylandSurfaceCreateInfoKHR where
-        unsafeAddr (VkWaylandSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWaylandSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWaylandSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkWaylandSurfaceCreateInfoKHR where
-        type StructFields VkWaylandSurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "display", "surface"] -- ' closing tick for hsc2hs
-        type CUnionType VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkWaylandSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkWaylandSurfaceCreateInfoKHR where
-        type FieldType "sType" VkWaylandSurfaceCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkWaylandSurfaceCreateInfoKHR =
-             #{offset VkWaylandSurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWaylandSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkWaylandSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkWaylandSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkWaylandSurfaceCreateInfoKHR where
-        type FieldType "pNext" VkWaylandSurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkWaylandSurfaceCreateInfoKHR =
-             #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkWaylandSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkWaylandSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkWaylandSurfaceCreateInfoKHR where
-        type FieldType "flags" VkWaylandSurfaceCreateInfoKHR =
-             VkWaylandSurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkWaylandSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkWaylandSurfaceCreateInfoKHR =
-             #{offset VkWaylandSurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWaylandSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkWaylandSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkWaylandSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "display" VkWaylandSurfaceCreateInfoKHR where
-        type FieldType "display" VkWaylandSurfaceCreateInfoKHR =
-             Ptr WlDisplay
-        type FieldOptional "display" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "display" VkWaylandSurfaceCreateInfoKHR =
-             #{offset VkWaylandSurfaceCreateInfoKHR, display}
-        type FieldIsArray "display" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWaylandSurfaceCreateInfoKHR, display}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "display" VkWaylandSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, display})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, display}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "display" VkWaylandSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, display}
-
-instance {-# OVERLAPPING #-}
-         HasField "surface" VkWaylandSurfaceCreateInfoKHR where
-        type FieldType "surface" VkWaylandSurfaceCreateInfoKHR =
-             Ptr WlSurface
-        type FieldOptional "surface" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "surface" VkWaylandSurfaceCreateInfoKHR =
-             #{offset VkWaylandSurfaceCreateInfoKHR, surface}
-        type FieldIsArray "surface" VkWaylandSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWaylandSurfaceCreateInfoKHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "surface" VkWaylandSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWaylandSurfaceCreateInfoKHR, surface})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, surface}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "surface" VkWaylandSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWaylandSurfaceCreateInfoKHR, surface}
-
-instance Show VkWaylandSurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkWaylandSurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "display = " .
-                                  showsPrec d (getField @"display" x) .
-                                    showString ", " .
-                                      showString "surface = " .
-                                        showsPrec d (getField @"surface" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoKHR.hsc
+++ /dev/null
@@ -1,498 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoKHR
-       (VkWin32KeyedMutexAcquireReleaseInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDeviceMemory)
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t         acquireCount;
---   >     const VkDeviceMemory* pAcquireSyncs;
---   >     const uint64_t* pAcquireKeys;
---   >     const uint32_t* pAcquireTimeouts;
---   >     uint32_t         releaseCount;
---   >     const VkDeviceMemory* pReleaseSyncs;
---   >     const uint64_t* pReleaseKeys;
---   > } VkWin32KeyedMutexAcquireReleaseInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkWin32KeyedMutexAcquireReleaseInfoKHR.html VkWin32KeyedMutexAcquireReleaseInfoKHR registry at www.khronos.org>
-data VkWin32KeyedMutexAcquireReleaseInfoKHR = VkWin32KeyedMutexAcquireReleaseInfoKHR## Addr##
-                                                                                      ByteArray##
-
-instance Eq VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) ==
-          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) `compare`
-          x@(VkWin32KeyedMutexAcquireReleaseInfoKHR## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        sizeOf ~_
-          = #{size VkWin32KeyedMutexAcquireReleaseInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkWin32KeyedMutexAcquireReleaseInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32KeyedMutexAcquireReleaseInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        type StructFields VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
-               "pAcquireKeys", "pAcquireTimeouts", "releaseCount",
-               "pReleaseSyncs", "pReleaseKeys"]
-        type CUnionType VkWin32KeyedMutexAcquireReleaseInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkWin32KeyedMutexAcquireReleaseInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             '[VkSubmitInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        type FieldType "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
-        type FieldIsArray "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        type FieldType "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             Ptr Void
-        type FieldOptional "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
-        type FieldIsArray "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Word32
-        type FieldOptional "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
-        type FieldIsArray "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Ptr VkDeviceMemory
-        type FieldOptional "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
-        type FieldIsArray "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireSyncs"
-           VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Ptr Word64
-        type FieldOptional "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
-        type FieldIsArray "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireTimeouts" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "pAcquireTimeouts"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Ptr Word32
-        type FieldOptional "pAcquireTimeouts"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireTimeouts"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
-        type FieldIsArray "pAcquireTimeouts"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireTimeouts"
-           VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireTimeouts"
-           VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pAcquireTimeouts}
-
-instance {-# OVERLAPPING #-}
-         HasField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Word32
-        type FieldOptional "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
-        type FieldIsArray "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Ptr VkDeviceMemory
-        type FieldOptional "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
-        type FieldIsArray "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pReleaseSyncs"
-           VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         HasField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        type FieldType "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = Ptr Word64
-        type FieldOptional "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
-        type FieldIsArray "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoKHR
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoKHR
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoKHR, pReleaseKeys}
-
-instance Show VkWin32KeyedMutexAcquireReleaseInfoKHR where
-        showsPrec d x
-          = showString "VkWin32KeyedMutexAcquireReleaseInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "acquireCount = " .
-                            showsPrec d (getField @"acquireCount" x) .
-                              showString ", " .
-                                showString "pAcquireSyncs = " .
-                                  showsPrec d (getField @"pAcquireSyncs" x) .
-                                    showString ", " .
-                                      showString "pAcquireKeys = " .
-                                        showsPrec d (getField @"pAcquireKeys" x) .
-                                          showString ", " .
-                                            showString "pAcquireTimeouts = " .
-                                              showsPrec d (getField @"pAcquireTimeouts" x) .
-                                                showString ", " .
-                                                  showString "releaseCount = " .
-                                                    showsPrec d (getField @"releaseCount" x) .
-                                                      showString ", " .
-                                                        showString "pReleaseSyncs = " .
-                                                          showsPrec d (getField @"pReleaseSyncs" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pReleaseKeys = " .
-                                                                showsPrec d
-                                                                  (getField @"pReleaseKeys" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoNV.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoNV.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32KeyedMutexAcquireReleaseInfoNV.hsc
+++ /dev/null
@@ -1,491 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoNV
-       (VkWin32KeyedMutexAcquireReleaseInfoNV(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Handles              (VkDeviceMemory)
-import           Graphics.Vulkan.Types.Struct.VkSubmitInfo  (VkSubmitInfo)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     uint32_t                         acquireCount;
---   >     const VkDeviceMemory*            pAcquireSyncs;
---   >     const uint64_t*                  pAcquireKeys;
---   >     const uint32_t*                  pAcquireTimeoutMilliseconds;
---   >     uint32_t                         releaseCount;
---   >     const VkDeviceMemory*            pReleaseSyncs;
---   >     const uint64_t*                  pReleaseKeys;
---   > } VkWin32KeyedMutexAcquireReleaseInfoNV;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkWin32KeyedMutexAcquireReleaseInfoNV.html VkWin32KeyedMutexAcquireReleaseInfoNV registry at www.khronos.org>
-data VkWin32KeyedMutexAcquireReleaseInfoNV = VkWin32KeyedMutexAcquireReleaseInfoNV## Addr##
-                                                                                    ByteArray##
-
-instance Eq VkWin32KeyedMutexAcquireReleaseInfoNV where
-        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) ==
-          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkWin32KeyedMutexAcquireReleaseInfoNV where
-        (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) `compare`
-          x@(VkWin32KeyedMutexAcquireReleaseInfoNV## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkWin32KeyedMutexAcquireReleaseInfoNV where
-        sizeOf ~_
-          = #{size VkWin32KeyedMutexAcquireReleaseInfoNV}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_
-          = #{alignment VkWin32KeyedMutexAcquireReleaseInfoNV}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        unsafeAddr (VkWin32KeyedMutexAcquireReleaseInfoNV## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32KeyedMutexAcquireReleaseInfoNV## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32KeyedMutexAcquireReleaseInfoNV##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type StructFields VkWin32KeyedMutexAcquireReleaseInfoNV =
-             '["sType", "pNext", "acquireCount", "pAcquireSyncs", -- ' closing tick for hsc2hs
-               "pAcquireKeys", "pAcquireTimeoutMilliseconds", "releaseCount",
-               "pReleaseSyncs", "pReleaseKeys"]
-        type CUnionType VkWin32KeyedMutexAcquireReleaseInfoNV = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkWin32KeyedMutexAcquireReleaseInfoNV = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkWin32KeyedMutexAcquireReleaseInfoNV =
-             '[VkSubmitInfo] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             VkStructureType
-        type FieldOptional "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
-        type FieldIsArray "sType" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             Ptr Void
-        type FieldOptional "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
-        type FieldIsArray "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV =
-             'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Word32
-        type FieldOptional "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
-        type FieldIsArray "acquireCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "acquireCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, acquireCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        type FieldType "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Ptr VkDeviceMemory
-        type FieldOptional "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
-        type FieldIsArray "pAcquireSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireSyncs}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Ptr Word64
-        type FieldOptional "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
-        type FieldIsArray "pAcquireKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireKeys}
-
-instance {-# OVERLAPPING #-}
-         HasField "pAcquireTimeoutMilliseconds"
-           VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        type FieldType "pAcquireTimeoutMilliseconds"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Ptr Word32
-        type FieldOptional "pAcquireTimeoutMilliseconds"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pAcquireTimeoutMilliseconds"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
-        type FieldIsArray "pAcquireTimeoutMilliseconds"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pAcquireTimeoutMilliseconds"
-           VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pAcquireTimeoutMilliseconds"
-           VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pAcquireTimeoutMilliseconds}
-
-instance {-# OVERLAPPING #-}
-         HasField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Word32
-        type FieldOptional "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
-        type FieldIsArray "releaseCount"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "releaseCount" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, releaseCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        type FieldType "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Ptr VkDeviceMemory
-        type FieldOptional "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
-        type FieldIsArray "pReleaseSyncs"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pReleaseSyncs" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseSyncs}
-
-instance {-# OVERLAPPING #-}
-         HasField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV where
-        type FieldType "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-             = Ptr Word64
-        type FieldOptional "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             =
-             #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
-        type FieldIsArray "pReleaseKeys"
-               VkWin32KeyedMutexAcquireReleaseInfoNV
-             = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pReleaseKeys" VkWin32KeyedMutexAcquireReleaseInfoNV
-         where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32KeyedMutexAcquireReleaseInfoNV, pReleaseKeys}
-
-instance Show VkWin32KeyedMutexAcquireReleaseInfoNV where
-        showsPrec d x
-          = showString "VkWin32KeyedMutexAcquireReleaseInfoNV {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "acquireCount = " .
-                            showsPrec d (getField @"acquireCount" x) .
-                              showString ", " .
-                                showString "pAcquireSyncs = " .
-                                  showsPrec d (getField @"pAcquireSyncs" x) .
-                                    showString ", " .
-                                      showString "pAcquireKeys = " .
-                                        showsPrec d (getField @"pAcquireKeys" x) .
-                                          showString ", " .
-                                            showString "pAcquireTimeoutMilliseconds = " .
-                                              showsPrec d
-                                                (getField @"pAcquireTimeoutMilliseconds" x)
-                                                .
-                                                showString ", " .
-                                                  showString "releaseCount = " .
-                                                    showsPrec d (getField @"releaseCount" x) .
-                                                      showString ", " .
-                                                        showString "pReleaseSyncs = " .
-                                                          showsPrec d (getField @"pReleaseSyncs" x)
-                                                            .
-                                                            showString ", " .
-                                                              showString "pReleaseKeys = " .
-                                                                showsPrec d
-                                                                  (getField @"pReleaseKeys" x)
-                                                                  . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32SurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkWin32SurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkWin32SurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,259 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkWin32SurfaceCreateInfoKHR
-       (VkWin32SurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkWin32SurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include              (HINSTANCE, HWND)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkWin32SurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkWin32SurfaceCreateFlagsKHR   flags;
---   >     HINSTANCE                        hinstance;
---   >     HWND                             hwnd;
---   > } VkWin32SurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkWin32SurfaceCreateInfoKHR.html VkWin32SurfaceCreateInfoKHR registry at www.khronos.org>
-data VkWin32SurfaceCreateInfoKHR = VkWin32SurfaceCreateInfoKHR## Addr##
-                                                                ByteArray##
-
-instance Eq VkWin32SurfaceCreateInfoKHR where
-        (VkWin32SurfaceCreateInfoKHR## a _) ==
-          x@(VkWin32SurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkWin32SurfaceCreateInfoKHR where
-        (VkWin32SurfaceCreateInfoKHR## a _) `compare`
-          x@(VkWin32SurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkWin32SurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkWin32SurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkWin32SurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWin32SurfaceCreateInfoKHR where
-        unsafeAddr (VkWin32SurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWin32SurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWin32SurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkWin32SurfaceCreateInfoKHR where
-        type StructFields VkWin32SurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "hinstance", "hwnd"] -- ' closing tick for hsc2hs
-        type CUnionType VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkWin32SurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkWin32SurfaceCreateInfoKHR where
-        type FieldType "sType" VkWin32SurfaceCreateInfoKHR =
-             VkStructureType
-        type FieldOptional "sType" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkWin32SurfaceCreateInfoKHR =
-             #{offset VkWin32SurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32SurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkWin32SurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkWin32SurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkWin32SurfaceCreateInfoKHR where
-        type FieldType "pNext" VkWin32SurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkWin32SurfaceCreateInfoKHR =
-             #{offset VkWin32SurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32SurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkWin32SurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkWin32SurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkWin32SurfaceCreateInfoKHR where
-        type FieldType "flags" VkWin32SurfaceCreateInfoKHR =
-             VkWin32SurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkWin32SurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkWin32SurfaceCreateInfoKHR =
-             #{offset VkWin32SurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32SurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkWin32SurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkWin32SurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "hinstance" VkWin32SurfaceCreateInfoKHR where
-        type FieldType "hinstance" VkWin32SurfaceCreateInfoKHR = HINSTANCE
-        type FieldOptional "hinstance" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "hinstance" VkWin32SurfaceCreateInfoKHR =
-             #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
-        type FieldIsArray "hinstance" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "hinstance" VkWin32SurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, hinstance})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "hinstance" VkWin32SurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hinstance}
-
-instance {-# OVERLAPPING #-}
-         HasField "hwnd" VkWin32SurfaceCreateInfoKHR where
-        type FieldType "hwnd" VkWin32SurfaceCreateInfoKHR = HWND
-        type FieldOptional "hwnd" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "hwnd" VkWin32SurfaceCreateInfoKHR =
-             #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
-        type FieldIsArray "hwnd" VkWin32SurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "hwnd" VkWin32SurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWin32SurfaceCreateInfoKHR, hwnd})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "hwnd" VkWin32SurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWin32SurfaceCreateInfoKHR, hwnd}
-
-instance Show VkWin32SurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkWin32SurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "hinstance = " .
-                                  showsPrec d (getField @"hinstance" x) .
-                                    showString ", " .
-                                      showString "hwnd = " .
-                                        showsPrec d (getField @"hwnd" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkWriteDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkWriteDescriptorSet.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkWriteDescriptorSet.hsc
+++ /dev/null
@@ -1,446 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet
-       (VkWriteDescriptorSet(..)) where
-import           Foreign.Storable                                    (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Enum.VkDescriptorType         (VkDescriptorType)
-import           Graphics.Vulkan.Types.Enum.VkStructureType          (VkStructureType)
-import           Graphics.Vulkan.Types.Handles                       (VkBufferView,
-                                                                      VkDescriptorSet)
-import           Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo (VkDescriptorBufferInfo)
-import           Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo  (VkDescriptorImageInfo)
-import           System.IO.Unsafe                                    (unsafeDupablePerformIO)
-
--- | > typedef struct VkWriteDescriptorSet {
---   >     VkStructureType sType;
---   >     const void*            pNext;
---   >     VkDescriptorSet        dstSet;
---   >     uint32_t               dstBinding;
---   >     uint32_t               dstArrayElement;
---   >     uint32_t               descriptorCount;
---   >     VkDescriptorType       descriptorType;
---   >     const VkDescriptorImageInfo* pImageInfo;
---   >     const VkDescriptorBufferInfo* pBufferInfo;
---   >     const VkBufferView*    pTexelBufferView;
---   > } VkWriteDescriptorSet;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkWriteDescriptorSet.html VkWriteDescriptorSet registry at www.khronos.org>
-data VkWriteDescriptorSet = VkWriteDescriptorSet## Addr## ByteArray##
-
-instance Eq VkWriteDescriptorSet where
-        (VkWriteDescriptorSet## a _) == x@(VkWriteDescriptorSet## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkWriteDescriptorSet where
-        (VkWriteDescriptorSet## a _) `compare` x@(VkWriteDescriptorSet## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkWriteDescriptorSet where
-        sizeOf ~_ = #{size VkWriteDescriptorSet}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkWriteDescriptorSet}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkWriteDescriptorSet where
-        unsafeAddr (VkWriteDescriptorSet## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkWriteDescriptorSet## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkWriteDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkWriteDescriptorSet where
-        type StructFields VkWriteDescriptorSet =
-             '["sType", "pNext", "dstSet", "dstBinding", "dstArrayElement", -- ' closing tick for hsc2hs
-               "descriptorCount", "descriptorType", "pImageInfo", "pBufferInfo",
-               "pTexelBufferView"]
-        type CUnionType VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkWriteDescriptorSet = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "sType" VkWriteDescriptorSet
-         where
-        type FieldType "sType" VkWriteDescriptorSet = VkStructureType
-        type FieldOptional "sType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, sType}
-        type FieldIsArray "sType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkWriteDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, sType}
-
-instance {-# OVERLAPPING #-} HasField "pNext" VkWriteDescriptorSet
-         where
-        type FieldType "pNext" VkWriteDescriptorSet = Ptr Void
-        type FieldOptional "pNext" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, pNext}
-        type FieldIsArray "pNext" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkWriteDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, pNext}
-
-instance {-# OVERLAPPING #-} HasField "dstSet" VkWriteDescriptorSet
-         where
-        type FieldType "dstSet" VkWriteDescriptorSet = VkDescriptorSet
-        type FieldOptional "dstSet" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstSet" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, dstSet}
-        type FieldIsArray "dstSet" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkWriteDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstSet" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstSet})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstSet" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, dstSet}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstBinding" VkWriteDescriptorSet where
-        type FieldType "dstBinding" VkWriteDescriptorSet = Word32
-        type FieldOptional "dstBinding" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstBinding" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, dstBinding}
-        type FieldIsArray "dstBinding" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstBinding" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstBinding})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstBinding" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, dstBinding}
-
-instance {-# OVERLAPPING #-}
-         HasField "dstArrayElement" VkWriteDescriptorSet where
-        type FieldType "dstArrayElement" VkWriteDescriptorSet = Word32
-        type FieldOptional "dstArrayElement" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dstArrayElement" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, dstArrayElement}
-        type FieldIsArray "dstArrayElement" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dstArrayElement" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstArrayElement})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dstArrayElement" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, dstArrayElement}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorCount" VkWriteDescriptorSet where
-        type FieldType "descriptorCount" VkWriteDescriptorSet = Word32
-        type FieldOptional "descriptorCount" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorCount" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, descriptorCount}
-        type FieldIsArray "descriptorCount" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorCount" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, descriptorCount})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorCount" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, descriptorCount}
-
-instance {-# OVERLAPPING #-}
-         HasField "descriptorType" VkWriteDescriptorSet where
-        type FieldType "descriptorType" VkWriteDescriptorSet =
-             VkDescriptorType
-        type FieldOptional "descriptorType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "descriptorType" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, descriptorType}
-        type FieldIsArray "descriptorType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "descriptorType" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, descriptorType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "descriptorType" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, descriptorType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pImageInfo" VkWriteDescriptorSet where
-        type FieldType "pImageInfo" VkWriteDescriptorSet =
-             Ptr VkDescriptorImageInfo
-        type FieldOptional "pImageInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pImageInfo" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, pImageInfo}
-        type FieldIsArray "pImageInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, pImageInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pImageInfo" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pImageInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, pImageInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pImageInfo" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, pImageInfo}
-
-instance {-# OVERLAPPING #-}
-         HasField "pBufferInfo" VkWriteDescriptorSet where
-        type FieldType "pBufferInfo" VkWriteDescriptorSet =
-             Ptr VkDescriptorBufferInfo
-        type FieldOptional "pBufferInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pBufferInfo" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, pBufferInfo}
-        type FieldIsArray "pBufferInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, pBufferInfo}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pBufferInfo" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pBufferInfo})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, pBufferInfo}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pBufferInfo" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, pBufferInfo}
-
-instance {-# OVERLAPPING #-}
-         HasField "pTexelBufferView" VkWriteDescriptorSet where
-        type FieldType "pTexelBufferView" VkWriteDescriptorSet =
-             Ptr VkBufferView
-        type FieldOptional "pTexelBufferView" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pTexelBufferView" VkWriteDescriptorSet =
-             #{offset VkWriteDescriptorSet, pTexelBufferView}
-        type FieldIsArray "pTexelBufferView" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkWriteDescriptorSet, pTexelBufferView}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pTexelBufferView" VkWriteDescriptorSet where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pTexelBufferView})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkWriteDescriptorSet, pTexelBufferView}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pTexelBufferView" VkWriteDescriptorSet where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkWriteDescriptorSet, pTexelBufferView}
-
-instance Show VkWriteDescriptorSet where
-        showsPrec d x
-          = showString "VkWriteDescriptorSet {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "dstSet = " .
-                            showsPrec d (getField @"dstSet" x) .
-                              showString ", " .
-                                showString "dstBinding = " .
-                                  showsPrec d (getField @"dstBinding" x) .
-                                    showString ", " .
-                                      showString "dstArrayElement = " .
-                                        showsPrec d (getField @"dstArrayElement" x) .
-                                          showString ", " .
-                                            showString "descriptorCount = " .
-                                              showsPrec d (getField @"descriptorCount" x) .
-                                                showString ", " .
-                                                  showString "descriptorType = " .
-                                                    showsPrec d (getField @"descriptorType" x) .
-                                                      showString ", " .
-                                                        showString "pImageInfo = " .
-                                                          showsPrec d (getField @"pImageInfo" x) .
-                                                            showString ", " .
-                                                              showString "pBufferInfo = " .
-                                                                showsPrec d
-                                                                  (getField @"pBufferInfo" x)
-                                                                  .
-                                                                  showString ", " .
-                                                                    showString "pTexelBufferView = "
-                                                                      .
-                                                                      showsPrec d
-                                                                        (getField
-                                                                           @"pTexelBufferView"
-                                                                           x)
-                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkXYColorEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkXYColorEXT.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkXYColorEXT.hsc
+++ /dev/null
@@ -1,130 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkXYColorEXT (VkXYColorEXT(..))
-       where
-import           Foreign.Storable                 (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           System.IO.Unsafe                 (unsafeDupablePerformIO)
-
--- | Chromaticity coordinate
---
---   > typedef struct VkXYColorEXT {
---   >     float   x;
---   >     float   y;
---   > } VkXYColorEXT;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkXYColorEXT.html VkXYColorEXT registry at www.khronos.org>
-data VkXYColorEXT = VkXYColorEXT## Addr## ByteArray##
-
-instance Eq VkXYColorEXT where
-        (VkXYColorEXT## a _) == x@(VkXYColorEXT## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkXYColorEXT where
-        (VkXYColorEXT## a _) `compare` x@(VkXYColorEXT## b _)
-          = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkXYColorEXT where
-        sizeOf ~_ = #{size VkXYColorEXT}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkXYColorEXT}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXYColorEXT where
-        unsafeAddr (VkXYColorEXT## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXYColorEXT## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXYColorEXT## (plusAddr## (byteArrayContents## b) off) b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkXYColorEXT where
-        type StructFields VkXYColorEXT = '["x", "y"] -- ' closing tick for hsc2hs
-        type CUnionType VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkXYColorEXT = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-} HasField "x" VkXYColorEXT where
-        type FieldType "x" VkXYColorEXT = #{type float}
-        type FieldOptional "x" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "x" VkXYColorEXT =
-             #{offset VkXYColorEXT, x}
-        type FieldIsArray "x" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkXYColorEXT, x}
-
-instance {-# OVERLAPPING #-} CanReadField "x" VkXYColorEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXYColorEXT, x})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkXYColorEXT, x}
-
-instance {-# OVERLAPPING #-} CanWriteField "x" VkXYColorEXT where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkXYColorEXT, x}
-
-instance {-# OVERLAPPING #-} HasField "y" VkXYColorEXT where
-        type FieldType "y" VkXYColorEXT = #{type float}
-        type FieldOptional "y" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "y" VkXYColorEXT =
-             #{offset VkXYColorEXT, y}
-        type FieldIsArray "y" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkXYColorEXT, y}
-
-instance {-# OVERLAPPING #-} CanReadField "y" VkXYColorEXT where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXYColorEXT, y})
-
-        {-# INLINE readField #-}
-        readField p = peekByteOff p #{offset VkXYColorEXT, y}
-
-instance {-# OVERLAPPING #-} CanWriteField "y" VkXYColorEXT where
-        {-# INLINE writeField #-}
-        writeField p = pokeByteOff p #{offset VkXYColorEXT, y}
-
-instance Show VkXYColorEXT where
-        showsPrec d x
-          = showString "VkXYColorEXT {" .
-              showString "x = " .
-                showsPrec d (getField @"x" x) .
-                  showString ", " .
-                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkXcbSurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkXcbSurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkXcbSurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,258 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkXcbSurfaceCreateInfoKHR
-       (VkXcbSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkXcbSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include              (XcbConnectionT,
-                                                             XcbWindowT)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkXcbSurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkXcbSurfaceCreateFlagsKHR   flags;
---   >     xcb_connection_t*                connection;
---   >     xcb_window_t                     window;
---   > } VkXcbSurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkXcbSurfaceCreateInfoKHR.html VkXcbSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkXcbSurfaceCreateInfoKHR = VkXcbSurfaceCreateInfoKHR## Addr##
-                                                            ByteArray##
-
-instance Eq VkXcbSurfaceCreateInfoKHR where
-        (VkXcbSurfaceCreateInfoKHR## a _) ==
-          x@(VkXcbSurfaceCreateInfoKHR## b _) = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkXcbSurfaceCreateInfoKHR where
-        (VkXcbSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkXcbSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkXcbSurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkXcbSurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkXcbSurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXcbSurfaceCreateInfoKHR where
-        unsafeAddr (VkXcbSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXcbSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXcbSurfaceCreateInfoKHR## (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkXcbSurfaceCreateInfoKHR where
-        type StructFields VkXcbSurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "connection", "window"] -- ' closing tick for hsc2hs
-        type CUnionType VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkXcbSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkXcbSurfaceCreateInfoKHR where
-        type FieldType "sType" VkXcbSurfaceCreateInfoKHR = VkStructureType
-        type FieldOptional "sType" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkXcbSurfaceCreateInfoKHR =
-             #{offset VkXcbSurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXcbSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkXcbSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkXcbSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkXcbSurfaceCreateInfoKHR where
-        type FieldType "pNext" VkXcbSurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkXcbSurfaceCreateInfoKHR =
-             #{offset VkXcbSurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXcbSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkXcbSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkXcbSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkXcbSurfaceCreateInfoKHR where
-        type FieldType "flags" VkXcbSurfaceCreateInfoKHR =
-             VkXcbSurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkXcbSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkXcbSurfaceCreateInfoKHR =
-             #{offset VkXcbSurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXcbSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkXcbSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkXcbSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "connection" VkXcbSurfaceCreateInfoKHR where
-        type FieldType "connection" VkXcbSurfaceCreateInfoKHR =
-             Ptr XcbConnectionT
-        type FieldOptional "connection" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "connection" VkXcbSurfaceCreateInfoKHR =
-             #{offset VkXcbSurfaceCreateInfoKHR, connection}
-        type FieldIsArray "connection" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXcbSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "connection" VkXcbSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, connection})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "connection" VkXcbSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, connection}
-
-instance {-# OVERLAPPING #-}
-         HasField "window" VkXcbSurfaceCreateInfoKHR where
-        type FieldType "window" VkXcbSurfaceCreateInfoKHR = XcbWindowT
-        type FieldOptional "window" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "window" VkXcbSurfaceCreateInfoKHR =
-             #{offset VkXcbSurfaceCreateInfoKHR, window}
-        type FieldIsArray "window" VkXcbSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXcbSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "window" VkXcbSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXcbSurfaceCreateInfoKHR, window})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXcbSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "window" VkXcbSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXcbSurfaceCreateInfoKHR, window}
-
-instance Show VkXcbSurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkXcbSurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "connection = " .
-                                  showsPrec d (getField @"connection" x) .
-                                    showString ", " .
-                                      showString "window = " .
-                                        showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/VkXlibSurfaceCreateInfoKHR.hsc b/src-gen/Graphics/Vulkan/Types/Struct/VkXlibSurfaceCreateInfoKHR.hsc
deleted file mode 100644
--- a/src-gen/Graphics/Vulkan/Types/Struct/VkXlibSurfaceCreateInfoKHR.hsc
+++ /dev/null
@@ -1,257 +0,0 @@
-#include "vulkan/vulkan.h"
-
-{-# LANGUAGE DataKinds             #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MagicHash             #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE Strict                #-}
-{-# LANGUAGE TypeApplications      #-}
-{-# LANGUAGE TypeFamilies          #-}
-module Graphics.Vulkan.Types.Struct.VkXlibSurfaceCreateInfoKHR
-       (VkXlibSurfaceCreateInfoKHR(..)) where
-import           Foreign.Storable                           (Storable (..))
-import           GHC.Prim
-import           Graphics.Vulkan.Marshal
-import           Graphics.Vulkan.Marshal.Internal
-import           Graphics.Vulkan.Types.Bitmasks             (VkXlibSurfaceCreateFlagsKHR)
-import           Graphics.Vulkan.Types.Enum.VkStructureType (VkStructureType)
-import           Graphics.Vulkan.Types.Include              (Display, Window)
-import           System.IO.Unsafe                           (unsafeDupablePerformIO)
-
--- | > typedef struct VkXlibSurfaceCreateInfoKHR {
---   >     VkStructureType sType;
---   >     const void*                      pNext;
---   >     VkXlibSurfaceCreateFlagsKHR   flags;
---   >     Display*                         dpy;
---   >     Window                           window;
---   > } VkXlibSurfaceCreateInfoKHR;
---
---   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkXlibSurfaceCreateInfoKHR.html VkXlibSurfaceCreateInfoKHR registry at www.khronos.org>
-data VkXlibSurfaceCreateInfoKHR = VkXlibSurfaceCreateInfoKHR## Addr##
-                                                              ByteArray##
-
-instance Eq VkXlibSurfaceCreateInfoKHR where
-        (VkXlibSurfaceCreateInfoKHR## a _) ==
-          x@(VkXlibSurfaceCreateInfoKHR## b _)
-          = EQ == cmpBytes## (sizeOf x) a b
-
-        {-# INLINE (==) #-}
-
-instance Ord VkXlibSurfaceCreateInfoKHR where
-        (VkXlibSurfaceCreateInfoKHR## a _) `compare`
-          x@(VkXlibSurfaceCreateInfoKHR## b _) = cmpBytes## (sizeOf x) a b
-
-        {-# INLINE compare #-}
-
-instance Storable VkXlibSurfaceCreateInfoKHR where
-        sizeOf ~_ = #{size VkXlibSurfaceCreateInfoKHR}
-
-        {-# INLINE sizeOf #-}
-        alignment ~_ = #{alignment VkXlibSurfaceCreateInfoKHR}
-
-        {-# INLINE alignment #-}
-        peek = peekVkData##
-
-        {-# INLINE peek #-}
-        poke = pokeVkData##
-
-        {-# INLINE poke #-}
-
-instance VulkanMarshalPrim VkXlibSurfaceCreateInfoKHR where
-        unsafeAddr (VkXlibSurfaceCreateInfoKHR## a _) = a
-
-        {-# INLINE unsafeAddr #-}
-        unsafeByteArray (VkXlibSurfaceCreateInfoKHR## _ b) = b
-
-        {-# INLINE unsafeByteArray #-}
-        unsafeFromByteArrayOffset off b
-          = VkXlibSurfaceCreateInfoKHR##
-              (plusAddr## (byteArrayContents## b) off)
-              b
-
-        {-# INLINE unsafeFromByteArrayOffset #-}
-
-instance VulkanMarshal VkXlibSurfaceCreateInfoKHR where
-        type StructFields VkXlibSurfaceCreateInfoKHR =
-             '["sType", "pNext", "flags", "dpy", "window"] -- ' closing tick for hsc2hs
-        type CUnionType VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type ReturnedOnly VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type StructExtends VkXlibSurfaceCreateInfoKHR = '[] -- ' closing tick for hsc2hs
-
-instance {-# OVERLAPPING #-}
-         HasField "sType" VkXlibSurfaceCreateInfoKHR where
-        type FieldType "sType" VkXlibSurfaceCreateInfoKHR = VkStructureType
-        type FieldOptional "sType" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "sType" VkXlibSurfaceCreateInfoKHR =
-             #{offset VkXlibSurfaceCreateInfoKHR, sType}
-        type FieldIsArray "sType" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXlibSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "sType" VkXlibSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, sType})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "sType" VkXlibSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, sType}
-
-instance {-# OVERLAPPING #-}
-         HasField "pNext" VkXlibSurfaceCreateInfoKHR where
-        type FieldType "pNext" VkXlibSurfaceCreateInfoKHR = Ptr Void
-        type FieldOptional "pNext" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "pNext" VkXlibSurfaceCreateInfoKHR =
-             #{offset VkXlibSurfaceCreateInfoKHR, pNext}
-        type FieldIsArray "pNext" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXlibSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "pNext" VkXlibSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, pNext})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "pNext" VkXlibSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, pNext}
-
-instance {-# OVERLAPPING #-}
-         HasField "flags" VkXlibSurfaceCreateInfoKHR where
-        type FieldType "flags" VkXlibSurfaceCreateInfoKHR =
-             VkXlibSurfaceCreateFlagsKHR
-        type FieldOptional "flags" VkXlibSurfaceCreateInfoKHR = 'True -- ' closing tick for hsc2hs
-        type FieldOffset "flags" VkXlibSurfaceCreateInfoKHR =
-             #{offset VkXlibSurfaceCreateInfoKHR, flags}
-        type FieldIsArray "flags" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = True
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXlibSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "flags" VkXlibSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, flags})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "flags" VkXlibSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, flags}
-
-instance {-# OVERLAPPING #-}
-         HasField "dpy" VkXlibSurfaceCreateInfoKHR where
-        type FieldType "dpy" VkXlibSurfaceCreateInfoKHR = Ptr Display
-        type FieldOptional "dpy" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "dpy" VkXlibSurfaceCreateInfoKHR =
-             #{offset VkXlibSurfaceCreateInfoKHR, dpy}
-        type FieldIsArray "dpy" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset = #{offset VkXlibSurfaceCreateInfoKHR, dpy}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "dpy" VkXlibSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, dpy})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, dpy}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "dpy" VkXlibSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, dpy}
-
-instance {-# OVERLAPPING #-}
-         HasField "window" VkXlibSurfaceCreateInfoKHR where
-        type FieldType "window" VkXlibSurfaceCreateInfoKHR = Window
-        type FieldOptional "window" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-        type FieldOffset "window" VkXlibSurfaceCreateInfoKHR =
-             #{offset VkXlibSurfaceCreateInfoKHR, window}
-        type FieldIsArray "window" VkXlibSurfaceCreateInfoKHR = 'False -- ' closing tick for hsc2hs
-
-        {-# INLINE fieldOptional #-}
-        fieldOptional = False
-
-        {-# INLINE fieldOffset #-}
-        fieldOffset
-          = #{offset VkXlibSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanReadField "window" VkXlibSurfaceCreateInfoKHR where
-        {-# NOINLINE getField #-}
-        getField x
-          = unsafeDupablePerformIO
-              (peekByteOff (unsafePtr x) #{offset VkXlibSurfaceCreateInfoKHR, window})
-
-        {-# INLINE readField #-}
-        readField p
-          = peekByteOff p #{offset VkXlibSurfaceCreateInfoKHR, window}
-
-instance {-# OVERLAPPING #-}
-         CanWriteField "window" VkXlibSurfaceCreateInfoKHR where
-        {-# INLINE writeField #-}
-        writeField p
-          = pokeByteOff p #{offset VkXlibSurfaceCreateInfoKHR, window}
-
-instance Show VkXlibSurfaceCreateInfoKHR where
-        showsPrec d x
-          = showString "VkXlibSurfaceCreateInfoKHR {" .
-              showString "sType = " .
-                showsPrec d (getField @"sType" x) .
-                  showString ", " .
-                    showString "pNext = " .
-                      showsPrec d (getField @"pNext" x) .
-                        showString ", " .
-                          showString "flags = " .
-                            showsPrec d (getField @"flags" x) .
-                              showString ", " .
-                                showString "dpy = " .
-                                  showsPrec d (getField @"dpy" x) .
-                                    showString ", " .
-                                      showString "window = " .
-                                        showsPrec d (getField @"window" x) . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc b/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/WriteDescriptorSet.hsc
@@ -0,0 +1,448 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.WriteDescriptorSet
+       (VkWriteDescriptorSet(..)) where
+import           Foreign.Storable                         (Storable (..))
+import           GHC.Base                                 (Addr##, ByteArray##,
+                                                           byteArrayContents##,
+                                                           plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           Graphics.Vulkan.Types.Enum.Descriptor    (VkDescriptorType)
+import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
+import           Graphics.Vulkan.Types.Handles            (VkBufferView,
+                                                           VkDescriptorSet)
+import           Graphics.Vulkan.Types.Struct.Descriptor  (VkDescriptorBufferInfo,
+                                                           VkDescriptorImageInfo)
+import           System.IO.Unsafe                         (unsafeDupablePerformIO)
+
+-- | > typedef struct VkWriteDescriptorSet {
+--   >     VkStructureType sType;
+--   >     const void*            pNext;
+--   >     VkDescriptorSet        dstSet;
+--   >     uint32_t               dstBinding;
+--   >     uint32_t               dstArrayElement;
+--   >     uint32_t               descriptorCount;
+--   >     VkDescriptorType       descriptorType;
+--   >     const VkDescriptorImageInfo* pImageInfo;
+--   >     const VkDescriptorBufferInfo* pBufferInfo;
+--   >     const VkBufferView*    pTexelBufferView;
+--   > } VkWriteDescriptorSet;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkWriteDescriptorSet VkWriteDescriptorSet registry at www.khronos.org>
+data VkWriteDescriptorSet = VkWriteDescriptorSet## Addr## ByteArray##
+
+instance Eq VkWriteDescriptorSet where
+        (VkWriteDescriptorSet## a _) == x@(VkWriteDescriptorSet## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkWriteDescriptorSet where
+        (VkWriteDescriptorSet## a _) `compare` x@(VkWriteDescriptorSet## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkWriteDescriptorSet where
+        sizeOf ~_ = #{size VkWriteDescriptorSet}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkWriteDescriptorSet}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkWriteDescriptorSet where
+        unsafeAddr (VkWriteDescriptorSet## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkWriteDescriptorSet## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkWriteDescriptorSet## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkWriteDescriptorSet where
+        type StructFields VkWriteDescriptorSet =
+             '["sType", "pNext", "dstSet", "dstBinding", "dstArrayElement", -- ' closing tick for hsc2hs
+               "descriptorCount", "descriptorType", "pImageInfo", "pBufferInfo",
+               "pTexelBufferView"]
+        type CUnionType VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkWriteDescriptorSet = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "sType" VkWriteDescriptorSet
+         where
+        type FieldType "sType" VkWriteDescriptorSet = VkStructureType
+        type FieldOptional "sType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "sType" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, sType}
+        type FieldIsArray "sType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkWriteDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "sType" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, sType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "sType" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, sType}
+
+instance {-# OVERLAPPING #-} HasField "pNext" VkWriteDescriptorSet
+         where
+        type FieldType "pNext" VkWriteDescriptorSet = Ptr Void
+        type FieldOptional "pNext" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pNext" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, pNext}
+        type FieldIsArray "pNext" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkWriteDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pNext" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pNext})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pNext" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, pNext}
+
+instance {-# OVERLAPPING #-} HasField "dstSet" VkWriteDescriptorSet
+         where
+        type FieldType "dstSet" VkWriteDescriptorSet = VkDescriptorSet
+        type FieldOptional "dstSet" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstSet" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, dstSet}
+        type FieldIsArray "dstSet" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkWriteDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstSet" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstSet})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstSet" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, dstSet}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstBinding" VkWriteDescriptorSet where
+        type FieldType "dstBinding" VkWriteDescriptorSet = Word32
+        type FieldOptional "dstBinding" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstBinding" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, dstBinding}
+        type FieldIsArray "dstBinding" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstBinding" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstBinding})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstBinding" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, dstBinding}
+
+instance {-# OVERLAPPING #-}
+         HasField "dstArrayElement" VkWriteDescriptorSet where
+        type FieldType "dstArrayElement" VkWriteDescriptorSet = Word32
+        type FieldOptional "dstArrayElement" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "dstArrayElement" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, dstArrayElement}
+        type FieldIsArray "dstArrayElement" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "dstArrayElement" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, dstArrayElement})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "dstArrayElement" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, dstArrayElement}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorCount" VkWriteDescriptorSet where
+        type FieldType "descriptorCount" VkWriteDescriptorSet = Word32
+        type FieldOptional "descriptorCount" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorCount" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, descriptorCount}
+        type FieldIsArray "descriptorCount" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorCount" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, descriptorCount})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorCount" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, descriptorCount}
+
+instance {-# OVERLAPPING #-}
+         HasField "descriptorType" VkWriteDescriptorSet where
+        type FieldType "descriptorType" VkWriteDescriptorSet =
+             VkDescriptorType
+        type FieldOptional "descriptorType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "descriptorType" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, descriptorType}
+        type FieldIsArray "descriptorType" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "descriptorType" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, descriptorType})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "descriptorType" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, descriptorType}
+
+instance {-# OVERLAPPING #-}
+         HasField "pImageInfo" VkWriteDescriptorSet where
+        type FieldType "pImageInfo" VkWriteDescriptorSet =
+             Ptr VkDescriptorImageInfo
+        type FieldOptional "pImageInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pImageInfo" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, pImageInfo}
+        type FieldIsArray "pImageInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, pImageInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pImageInfo" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pImageInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, pImageInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pImageInfo" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, pImageInfo}
+
+instance {-# OVERLAPPING #-}
+         HasField "pBufferInfo" VkWriteDescriptorSet where
+        type FieldType "pBufferInfo" VkWriteDescriptorSet =
+             Ptr VkDescriptorBufferInfo
+        type FieldOptional "pBufferInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pBufferInfo" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, pBufferInfo}
+        type FieldIsArray "pBufferInfo" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, pBufferInfo}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pBufferInfo" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pBufferInfo})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, pBufferInfo}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pBufferInfo" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, pBufferInfo}
+
+instance {-# OVERLAPPING #-}
+         HasField "pTexelBufferView" VkWriteDescriptorSet where
+        type FieldType "pTexelBufferView" VkWriteDescriptorSet =
+             Ptr VkBufferView
+        type FieldOptional "pTexelBufferView" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "pTexelBufferView" VkWriteDescriptorSet =
+             #{offset VkWriteDescriptorSet, pTexelBufferView}
+        type FieldIsArray "pTexelBufferView" VkWriteDescriptorSet = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset
+          = #{offset VkWriteDescriptorSet, pTexelBufferView}
+
+instance {-# OVERLAPPING #-}
+         CanReadField "pTexelBufferView" VkWriteDescriptorSet where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkWriteDescriptorSet, pTexelBufferView})
+
+        {-# INLINE readField #-}
+        readField p
+          = peekByteOff p #{offset VkWriteDescriptorSet, pTexelBufferView}
+
+instance {-# OVERLAPPING #-}
+         CanWriteField "pTexelBufferView" VkWriteDescriptorSet where
+        {-# INLINE writeField #-}
+        writeField p
+          = pokeByteOff p #{offset VkWriteDescriptorSet, pTexelBufferView}
+
+instance Show VkWriteDescriptorSet where
+        showsPrec d x
+          = showString "VkWriteDescriptorSet {" .
+              showString "sType = " .
+                showsPrec d (getField @"sType" x) .
+                  showString ", " .
+                    showString "pNext = " .
+                      showsPrec d (getField @"pNext" x) .
+                        showString ", " .
+                          showString "dstSet = " .
+                            showsPrec d (getField @"dstSet" x) .
+                              showString ", " .
+                                showString "dstBinding = " .
+                                  showsPrec d (getField @"dstBinding" x) .
+                                    showString ", " .
+                                      showString "dstArrayElement = " .
+                                        showsPrec d (getField @"dstArrayElement" x) .
+                                          showString ", " .
+                                            showString "descriptorCount = " .
+                                              showsPrec d (getField @"descriptorCount" x) .
+                                                showString ", " .
+                                                  showString "descriptorType = " .
+                                                    showsPrec d (getField @"descriptorType" x) .
+                                                      showString ", " .
+                                                        showString "pImageInfo = " .
+                                                          showsPrec d (getField @"pImageInfo" x) .
+                                                            showString ", " .
+                                                              showString "pBufferInfo = " .
+                                                                showsPrec d
+                                                                  (getField @"pBufferInfo" x)
+                                                                  .
+                                                                  showString ", " .
+                                                                    showString "pTexelBufferView = "
+                                                                      .
+                                                                      showsPrec d
+                                                                        (getField
+                                                                           @"pTexelBufferView"
+                                                                           x)
+                                                                        . showChar '}'
diff --git a/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc b/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc
new file mode 100644
--- /dev/null
+++ b/src-gen/Graphics/Vulkan/Types/Struct/XYColorEXT.hsc
@@ -0,0 +1,132 @@
+#include "vulkan/vulkan.h"
+
+{-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MagicHash             #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Strict                #-}
+{-# LANGUAGE TypeApplications      #-}
+{-# LANGUAGE TypeFamilies          #-}
+module Graphics.Vulkan.Types.Struct.XYColorEXT (VkXYColorEXT(..))
+       where
+import           Foreign.Storable                 (Storable (..))
+import           GHC.Base                         (Addr##, ByteArray##,
+                                                   byteArrayContents##,
+                                                   plusAddr##)
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Internal
+import           System.IO.Unsafe                 (unsafeDupablePerformIO)
+
+-- | Chromaticity coordinate
+--
+--   > typedef struct VkXYColorEXT {
+--   >     float   x;
+--   >     float   y;
+--   > } VkXYColorEXT;
+--
+--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkXYColorEXT VkXYColorEXT registry at www.khronos.org>
+data VkXYColorEXT = VkXYColorEXT## Addr## ByteArray##
+
+instance Eq VkXYColorEXT where
+        (VkXYColorEXT## a _) == x@(VkXYColorEXT## b _)
+          = EQ == cmpBytes## (sizeOf x) a b
+
+        {-# INLINE (==) #-}
+
+instance Ord VkXYColorEXT where
+        (VkXYColorEXT## a _) `compare` x@(VkXYColorEXT## b _)
+          = cmpBytes## (sizeOf x) a b
+
+        {-# INLINE compare #-}
+
+instance Storable VkXYColorEXT where
+        sizeOf ~_ = #{size VkXYColorEXT}
+
+        {-# INLINE sizeOf #-}
+        alignment ~_ = #{alignment VkXYColorEXT}
+
+        {-# INLINE alignment #-}
+        peek = peekVkData##
+
+        {-# INLINE peek #-}
+        poke = pokeVkData##
+
+        {-# INLINE poke #-}
+
+instance VulkanMarshalPrim VkXYColorEXT where
+        unsafeAddr (VkXYColorEXT## a _) = a
+
+        {-# INLINE unsafeAddr #-}
+        unsafeByteArray (VkXYColorEXT## _ b) = b
+
+        {-# INLINE unsafeByteArray #-}
+        unsafeFromByteArrayOffset off b
+          = VkXYColorEXT## (plusAddr## (byteArrayContents## b) off) b
+
+        {-# INLINE unsafeFromByteArrayOffset #-}
+
+instance VulkanMarshal VkXYColorEXT where
+        type StructFields VkXYColorEXT = '["x", "y"] -- ' closing tick for hsc2hs
+        type CUnionType VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+        type ReturnedOnly VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+        type StructExtends VkXYColorEXT = '[] -- ' closing tick for hsc2hs
+
+instance {-# OVERLAPPING #-} HasField "x" VkXYColorEXT where
+        type FieldType "x" VkXYColorEXT = #{type float}
+        type FieldOptional "x" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "x" VkXYColorEXT =
+             #{offset VkXYColorEXT, x}
+        type FieldIsArray "x" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkXYColorEXT, x}
+
+instance {-# OVERLAPPING #-} CanReadField "x" VkXYColorEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXYColorEXT, x})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkXYColorEXT, x}
+
+instance {-# OVERLAPPING #-} CanWriteField "x" VkXYColorEXT where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkXYColorEXT, x}
+
+instance {-# OVERLAPPING #-} HasField "y" VkXYColorEXT where
+        type FieldType "y" VkXYColorEXT = #{type float}
+        type FieldOptional "y" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+        type FieldOffset "y" VkXYColorEXT =
+             #{offset VkXYColorEXT, y}
+        type FieldIsArray "y" VkXYColorEXT = 'False -- ' closing tick for hsc2hs
+
+        {-# INLINE fieldOptional #-}
+        fieldOptional = False
+
+        {-# INLINE fieldOffset #-}
+        fieldOffset = #{offset VkXYColorEXT, y}
+
+instance {-# OVERLAPPING #-} CanReadField "y" VkXYColorEXT where
+        {-# NOINLINE getField #-}
+        getField x
+          = unsafeDupablePerformIO
+              (peekByteOff (unsafePtr x) #{offset VkXYColorEXT, y})
+
+        {-# INLINE readField #-}
+        readField p = peekByteOff p #{offset VkXYColorEXT, y}
+
+instance {-# OVERLAPPING #-} CanWriteField "y" VkXYColorEXT where
+        {-# INLINE writeField #-}
+        writeField p = pokeByteOff p #{offset VkXYColorEXT, y}
+
+instance Show VkXYColorEXT where
+        showsPrec d x
+          = showString "VkXYColorEXT {" .
+              showString "x = " .
+                showsPrec d (getField @"x" x) .
+                  showString ", " .
+                    showString "y = " . showsPrec d (getField @"y" x) . showChar '}'
diff --git a/src/Graphics/Vulkan.hs b/src/Graphics/Vulkan.hs
--- a/src/Graphics/Vulkan.hs
+++ b/src/Graphics/Vulkan.hs
@@ -3,6 +3,7 @@
 --   Instead, it is hand-written to aggregate all generated code.
 module Graphics.Vulkan
   ( module Graphics.Vulkan.Marshal
+  , module Graphics.Vulkan.Marshal.Proc
   , module Graphics.Vulkan.Constants
   , module Graphics.Vulkan.Types.Defines
   , module Graphics.Vulkan.Types.Funcpointers
@@ -10,9 +11,10 @@
   , module Graphics.Vulkan.Types.Include
   ) where
 
-import Graphics.Vulkan.Marshal
-import Graphics.Vulkan.Constants
-import Graphics.Vulkan.Types.Defines
-import Graphics.Vulkan.Types.Funcpointers
-import Graphics.Vulkan.Types.Handles
-import Graphics.Vulkan.Types.Include
+import           Graphics.Vulkan.Constants
+import           Graphics.Vulkan.Marshal
+import           Graphics.Vulkan.Marshal.Proc
+import           Graphics.Vulkan.Types.Defines
+import           Graphics.Vulkan.Types.Funcpointers
+import           Graphics.Vulkan.Types.Handles
+import           Graphics.Vulkan.Types.Include
diff --git a/src/Graphics/Vulkan/Marshal.hs b/src/Graphics/Vulkan/Marshal.hs
--- a/src/Graphics/Vulkan/Marshal.hs
+++ b/src/Graphics/Vulkan/Marshal.hs
@@ -394,15 +394,6 @@
 -- * Utilities for CString
 --------------------------------------------------------------------------------
 
-
-
-
-
-
-
-
-
-
 -- | Perform an action on a C string field.
 --   The string pointers should not be used outside the callback.
 --   It will point to a correct location only as long as the struct is alive.
diff --git a/src/Graphics/Vulkan/Marshal/Create.hs b/src/Graphics/Vulkan/Marshal/Create.hs
--- a/src/Graphics/Vulkan/Marshal/Create.hs
+++ b/src/Graphics/Vulkan/Marshal/Create.hs
@@ -37,8 +37,11 @@
 import           Foreign.Marshal.Array            (newArray, pokeArray0)
 import           Foreign.Ptr                      (nullPtr, plusPtr)
 import           Foreign.Storable                 (Storable)
-import           GHC.Base                         (IO (..))
-import           GHC.Prim
+import           GHC.Base                         (ByteArray#, IO (..),
+                                                   RealWorld, State#, Weak#,
+                                                   addCFinalizerToWeak#,
+                                                   mkWeak#, mkWeakNoFinalizer#,
+                                                   nullAddr#)
 import           GHC.Ptr                          (FunPtr (..), Ptr (..))
 import           GHC.TypeLits
 import           System.IO.Unsafe                 (unsafeDupablePerformIO)
diff --git a/src/Graphics/Vulkan/Marshal/Internal.hs b/src/Graphics/Vulkan/Marshal/Internal.hs
--- a/src/Graphics/Vulkan/Marshal/Internal.hs
+++ b/src/Graphics/Vulkan/Marshal/Internal.hs
@@ -24,10 +24,13 @@
 import           Foreign.C.Types    (CInt (..), CSize (..))
 import           Foreign.ForeignPtr (ForeignPtr, newForeignPtr_)
 import           Foreign.Storable   (Storable (..))
-import           GHC.Base           (isTrue#)
-import           GHC.Prim
+import           GHC.Base           (Addr#, ByteArray#, IO (..), Int (..), Int#,
+                                     byteArrayContents#, copyAddrToByteArray#,
+                                     eqAddr#, isTrue#, minusAddr#,
+                                     newAlignedPinnedByteArray#, touch#,
+                                     unsafeCoerce#, unsafeFreezeByteArray#,
+                                     (*#), (+#), (>=#))
 import           GHC.Ptr            (Ptr (..))
-import           GHC.Types          (IO (..), Int (..))
 
 import           GHC.ForeignPtr     (ForeignPtr (..), ForeignPtrContents (..))
 
diff --git a/src/Graphics/Vulkan/Marshal/Proc.hs b/src/Graphics/Vulkan/Marshal/Proc.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Vulkan/Marshal/Proc.hs
@@ -0,0 +1,206 @@
+{-# LANGUAGE AllowAmbiguousTypes #-}
+{-# LANGUAGE CPP                 #-}
+{-# LANGUAGE DataKinds           #-}
+{-# LANGUAGE MagicHash           #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE Strict              #-}
+{-# LANGUAGE TypeApplications    #-}
+{-# LANGUAGE TypeFamilies        #-}
+-- | This module allows to load vulkan symbols at runtime.
+--
+--   It is based on Vulkan API function
+--   <https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkGetInstanceProcAddr.html vkGetInstanceProcAddr>
+--   that is a part of Vulkan core 1.0.
+--   Also, have a look at
+--   <https://vulkan.lunarg.com/doc/view/1.1.70.1/windows/loader_and_layer_interface.html#user-content-instance-versus-device Vulkan loader>
+--   page to see other reasons to load symbols manually.
+module Graphics.Vulkan.Marshal.Proc
+  ( VulkanProc (..)
+  , vkGetInstanceProc, vkLookupInstanceProc
+  , vkGetDeviceProc, vkLookupDeviceProc
+  , vkGetProc, vkLookupProc
+    -- * Re-export `Foreign.Ptr`
+  , FunPtr, nullFunPtr
+  ) where
+
+import           Control.Monad                 (when)
+import           Data.Void                     (Void)
+import           Foreign.C.String              (CString, peekCString)
+import           Foreign.ForeignPtr            (ForeignPtr, newForeignPtr,
+                                                withForeignPtr)
+import           Foreign.Marshal.Alloc         (alloca)
+import           Foreign.Ptr                   (FunPtr, nullFunPtr, nullPtr)
+import           Foreign.Storable              (peek)
+import           GHC.Ptr                       (Ptr (..))
+import           GHC.TypeLits                  (Symbol)
+import           System.IO.Unsafe              (unsafePerformIO)
+
+
+
+import           Graphics.Vulkan.Types.Handles (VkDevice, VkInstance)
+
+-- | Some of the vulkan functions defined in vulkan extensions are not
+--   available at the program linking time.
+--   These functions should be discovered at runtime.
+--   Vulkan api provides special functions for this,
+--     called @vkGetInstanceProcAddr@ and @vkGetDeviceProcAddr@.
+--   This class provides a simpler discovery mechanism based on that function.
+--   For example, you can get @vkCreateDebugReportCallbackEXT@ function
+--   as follows:
+--
+--   > vkGetInstanceProc @VkCreateDebugReportCallbackEXT vkInstance
+class VulkanProc (proc :: Symbol) where
+    -- | Haskell signature for the vulkan function
+    type VkProcType proc
+    -- | Name of the vulkan function
+    vkProcSymbol :: CString
+    -- | Convert C function pointer to an ordinary haskell function.
+    unwrapVkProcPtr :: FunPtr (VkProcType proc) -> VkProcType proc
+
+-- | An alternative to @vkGetInstanceProcAddr@ with type inference
+--   and protection against typos.
+--
+--   Note, this is an unsafe function;
+--   it does not check if the result of @vkGetInstanceProcAddr@
+--   is a null function pointer.
+vkGetInstanceProc :: forall proc . VulkanProc proc
+                  => VkInstance -> IO (VkProcType proc)
+vkGetInstanceProc i
+  = unwrapVkProcPtr @proc
+  <$> c'vkGetInstanceProcAddr i (vkProcSymbol @proc)
+{-# INLINE vkGetInstanceProc #-}
+
+-- | An alternative to @vkGetInstanceProcAddr@ with type inference
+--   and protection against typos.
+vkLookupInstanceProc :: forall proc . VulkanProc proc
+                     => VkInstance -> IO (Maybe (VkProcType proc))
+vkLookupInstanceProc i
+    = f <$> c'vkGetInstanceProcAddr i (vkProcSymbol @proc)
+  where
+    f p = if p == nullFunPtr then Nothing else Just (unwrapVkProcPtr @proc p)
+{-# INLINE vkLookupInstanceProc #-}
+
+
+-- | An alternative to @vkGetDeviceProcAddr@ with type inference
+--   and protection against typos.
+--
+--   Note, this is an unsafe function;
+--   it does not check if the result of @vkGetInstanceProcAddr@
+--   is a null function pointer.
+vkGetDeviceProc :: forall proc . VulkanProc proc
+                => VkDevice -> IO (VkProcType proc)
+vkGetDeviceProc i
+  = unwrapVkProcPtr @proc
+  <$> c'vkGetDeviceProcAddr i (vkProcSymbol @proc)
+{-# INLINE vkGetDeviceProc #-}
+
+-- | An alternative to @vkGetDeviceProcAddr@ with type inference
+--   and protection against typos.
+vkLookupDeviceProc :: forall proc . VulkanProc proc
+                   => VkDevice -> IO (Maybe (VkProcType proc))
+vkLookupDeviceProc i
+    = f <$> c'vkGetDeviceProcAddr i (vkProcSymbol @proc)
+  where
+    f p = if p == nullFunPtr then Nothing else Just (unwrapVkProcPtr @proc p)
+{-# INLINE vkLookupDeviceProc #-}
+
+
+-- | Locate Vulkan symbol dynamically at runtime using platform-dependent machinery,
+--   such as @dlsym@ or @GetProcAddress@.
+--   This function throws an error on failure.
+--
+--   Consider using `vkGetDeviceProc` or `vkGetInstanceProc` for loading a symbol,
+--    because they can return a more optimized version of a function.
+--   Also note, you are likely not able to lookup an extension funcion using
+--   `vkGetProc`, because a corresponding symbol is simply not present in the
+--   vulkan loader library.
+vkGetProc :: forall proc . VulkanProc proc => IO (VkProcType proc)
+vkGetProc = alloca $ \errPtr -> do
+    fp <- withForeignPtr _vkDlHandle $ \h ->
+      c'vkdll_dlsym h (vkProcSymbol @proc) errPtr
+    when (fp == nullFunPtr) $ peek errPtr >>= peekCString >>= fail .
+        ("An error happened while trying to load vulkan symbol dynamically: " ++)
+    return $ unwrapVkProcPtr @proc fp
+{-# INLINE vkGetProc #-}
+
+-- | Locate Vulkan symbol dynamically at runtime using platform-dependent machinery,
+--   such as @dlsym@ or @GetProcAddress@.
+--   This function returns @Nothing@ on failure ignoring an error message.
+--
+--   Consider using `vkGetDeviceProc` or `vkGetInstanceProc` for loading a symbol,
+--    because they can return a more optimized version of a function.
+--   Also note, you are likely not able to lookup an extension funcion using
+--   `vkLookupProc`, because a corresponding symbol is simply not present in the
+--   vulkan loader library.
+vkLookupProc :: forall proc . VulkanProc proc => IO (Maybe (VkProcType proc))
+vkLookupProc = alloca $ \errPtr -> do
+    fp <- withForeignPtr _vkDlHandle $ \h ->
+      c'vkdll_dlsym h (vkProcSymbol @proc) errPtr
+    return $ if fp == nullFunPtr then Nothing else Just (unwrapVkProcPtr @proc fp)
+{-# INLINE vkLookupProc #-}
+
+
+
+
+
+
+
+#ifdef VK_NO_PROTOTYPES
+
+c'vkGetInstanceProcAddr :: VkInstance -> CString -> IO (FunPtr a)
+c'vkGetInstanceProcAddr = unsafePerformIO $ alloca $ \errPtr -> do
+    fp <- withForeignPtr _vkDlHandle $ \h ->
+      c'vkdll_dlsym h (Ptr "vkGetInstanceProcAddr"#) errPtr
+    when (fp == nullFunPtr) $
+      peek errPtr >>= peekCString >>= fail .
+        ("Could not load 'vkGetInstanceProcAddr' C function from vulkan library dynamically: " ++)
+    return $ unwrap'vkGetInstanceProcAddr fp
+
+c'vkGetDeviceProcAddr :: VkDevice -> CString -> IO (FunPtr a)
+c'vkGetDeviceProcAddr = unsafePerformIO $ alloca $ \errPtr -> do
+    fp <- withForeignPtr _vkDlHandle $ \h ->
+      c'vkdll_dlsym h (Ptr "vkGetDeviceProcAddr"#) errPtr
+    when (fp == nullFunPtr) $ peek errPtr >>= peekCString >>= fail .
+        ("Could not load 'vkGetDeviceProcAddr' C function from vulkan library dynamically: " ++)
+    return $ unwrap'vkGetDeviceProcAddr fp
+
+foreign import ccall unsafe "dynamic"
+  unwrap'vkGetInstanceProcAddr
+    :: FunPtr (VkInstance -> CString -> IO (FunPtr a))
+    -> VkInstance -> CString -> IO (FunPtr a)
+
+foreign import ccall unsafe "dynamic"
+  unwrap'vkGetDeviceProcAddr
+    :: FunPtr (VkDevice -> CString -> IO (FunPtr a))
+    -> VkDevice -> CString -> IO (FunPtr a)
+
+#else
+
+foreign import ccall unsafe "vkGetInstanceProcAddr"
+  c'vkGetInstanceProcAddr :: VkInstance -> CString -> IO (FunPtr a)
+
+foreign import ccall unsafe "vkGetDeviceProcAddr"
+  c'vkGetDeviceProcAddr :: VkDevice -> CString -> IO (FunPtr a)
+
+#endif
+
+
+foreign import ccall safe "_vkdll_dlinit"
+  c'vkdll_dlinit :: Ptr CString -> IO (Ptr Void)
+
+foreign import ccall safe "_vkdll_dlsym"
+  c'vkdll_dlsym :: Ptr Void -> CString -> Ptr CString -> IO (FunPtr a)
+
+foreign import ccall safe "&_vkdll_dlclose"
+  p'vk_dlclose :: FunPtr (Ptr Void -> IO ())
+
+_vkDlHandle :: ForeignPtr Void
+_vkDlHandle = unsafePerformIO $ alloca $ \errPtr -> do
+  handle <- c'vkdll_dlinit errPtr
+  if handle == nullPtr
+  then
+    peek errPtr >>= peekCString >>= fail .
+      ("An error happened while trying to load vulkan library dynamically: " ++)
+  else
+    newForeignPtr p'vk_dlclose handle
+{-# NOINLINE _vkDlHandle #-}
diff --git a/vulkan-api.cabal b/vulkan-api.cabal
--- a/vulkan-api.cabal
+++ b/vulkan-api.cabal
@@ -3,15 +3,15 @@
 -- it is autogenerated at genvulkan/src/Write/Cabal.hs
 --
 name:                vulkan-api
-version:             1.1.0.0
+version:             1.1.1.0
 synopsis:            Low-level low-overhead vulkan api bindings
 description:
-  Haskell bindings for vulkan api as described in vk.xml.
-  .
-  You can find some simple examples at <https://github.com/achirkin/vulkan/tree/master/vulkan-examples vulkan-examples> page
-  or a more complete triangle rendering program at <https://github.com/achirkin/vulkan/tree/master/vulkan-triangles vulkan-triangles> page.
-  .
-  For further information, please refer to <https://github.com/achirkin/vulkan#readme README.md>.
+    Haskell bindings for vulkan api as described in vk.xml.
+    .
+    You can find some simple examples at <https://github.com/achirkin/vulkan/tree/master/vulkan-examples vulkan-examples> page
+    or a more complete triangle rendering program at <https://github.com/achirkin/vulkan/tree/master/vulkan-triangles vulkan-triangles> page.
+    .
+    For further information, please refer to <https://github.com/achirkin/vulkan#readme README.md>.
 homepage:            https://github.com/achirkin/vulkan#readme
 license:             BSD3
 license-file:        LICENSE
@@ -23,6 +23,8 @@
 cabal-version:       >=1.22
 extra-source-files:
     include/vulkan/*.h
+    include/vulkan_loader.h
+    cbits/vulkan_loader.c
 
 flag usePlatformAndroidKhr
     description:
@@ -74,7 +76,19 @@
       Enable platform-specific extensions protected by CPP macros VK_USE_PLATFORM_XLIB_XRANDR_EXT
     default: False
 
+flag useNativeFFI-1-0
+    description:
+      Enable foreign-imported functions from Vulkan 1.0 feature set
+    default: False
+
+flag useNativeFFI-1-1
+    description:
+      Enable foreign-imported functions from Vulkan 1.1 feature set
+    default: False
+
 library
+
+    build-tools:         hsc2hs
     hs-source-dirs:      src, src-gen
     exposed-modules:
 
@@ -92,6 +106,7 @@
         Graphics.Vulkan.Ext.VK_AMD_negative_viewport_height
         Graphics.Vulkan.Ext.VK_AMD_rasterization_order
         Graphics.Vulkan.Ext.VK_AMD_shader_ballot
+        Graphics.Vulkan.Ext.VK_AMD_shader_core_properties
         Graphics.Vulkan.Ext.VK_AMD_shader_explicit_vertex_parameter
         Graphics.Vulkan.Ext.VK_AMD_shader_fragment_mask
         Graphics.Vulkan.Ext.VK_AMD_shader_image_load_store_lod
@@ -104,6 +119,7 @@
         Graphics.Vulkan.Ext.VK_EXT_debug_report
         Graphics.Vulkan.Ext.VK_EXT_debug_utils
         Graphics.Vulkan.Ext.VK_EXT_depth_range_unrestricted
+        Graphics.Vulkan.Ext.VK_EXT_descriptor_indexing
         Graphics.Vulkan.Ext.VK_EXT_direct_mode_display
         Graphics.Vulkan.Ext.VK_EXT_discard_rectangles
         Graphics.Vulkan.Ext.VK_EXT_display_control
@@ -175,561 +191,200 @@
         Graphics.Vulkan.Ext.VK_NV_geometry_shader_passthrough
         Graphics.Vulkan.Ext.VK_NV_glsl_shader
         Graphics.Vulkan.Ext.VK_NV_sample_mask_override_coverage
+        Graphics.Vulkan.Ext.VK_NV_shader_subgroup_partitioned
         Graphics.Vulkan.Ext.VK_NV_viewport_array2
         Graphics.Vulkan.Ext.VK_NV_viewport_swizzle
         Graphics.Vulkan.Marshal
         Graphics.Vulkan.Marshal.Create
         Graphics.Vulkan.Marshal.Internal
+        Graphics.Vulkan.Marshal.Proc
+    other-modules:
         Graphics.Vulkan.Types.BaseTypes
         Graphics.Vulkan.Types.Bitmasks
         Graphics.Vulkan.Types.Defines
-        Graphics.Vulkan.Types.Enum.VkAccessFlags
-        Graphics.Vulkan.Types.Enum.VkAttachmentDescriptionFlags
-        Graphics.Vulkan.Types.Enum.VkAttachmentLoadOp
-        Graphics.Vulkan.Types.Enum.VkAttachmentStoreOp
-        Graphics.Vulkan.Types.Enum.VkBlendFactor
-        Graphics.Vulkan.Types.Enum.VkBlendOp
-        Graphics.Vulkan.Types.Enum.VkBlendOverlapEXT
-        Graphics.Vulkan.Types.Enum.VkBorderColor
-        Graphics.Vulkan.Types.Enum.VkBufferCreateFlags
-        Graphics.Vulkan.Types.Enum.VkBufferUsageFlags
-        Graphics.Vulkan.Types.Enum.VkBufferViewCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkChromaLocation
-        Graphics.Vulkan.Types.Enum.VkChromaLocationKHR
-        Graphics.Vulkan.Types.Enum.VkColorComponentFlags
-        Graphics.Vulkan.Types.Enum.VkColorSpaceKHR
-        Graphics.Vulkan.Types.Enum.VkCommandBufferLevel
-        Graphics.Vulkan.Types.Enum.VkCommandBufferResetFlags
-        Graphics.Vulkan.Types.Enum.VkCommandBufferUsageFlags
-        Graphics.Vulkan.Types.Enum.VkCommandPoolCreateFlags
-        Graphics.Vulkan.Types.Enum.VkCommandPoolResetFlags
-        Graphics.Vulkan.Types.Enum.VkCompareOp
-        Graphics.Vulkan.Types.Enum.VkComponentSwizzle
-        Graphics.Vulkan.Types.Enum.VkCompositeAlphaFlagsKHR
-        Graphics.Vulkan.Types.Enum.VkConservativeRasterizationModeEXT
-        Graphics.Vulkan.Types.Enum.VkCoverageModulationModeNV
-        Graphics.Vulkan.Types.Enum.VkCullModeFlags
-        Graphics.Vulkan.Types.Enum.VkDebugReportFlagsEXT
-        Graphics.Vulkan.Types.Enum.VkDebugReportObjectTypeEXT
-        Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageSeverityFlagsEXT
-        Graphics.Vulkan.Types.Enum.VkDebugUtilsMessageTypeFlagsEXT
-        Graphics.Vulkan.Types.Enum.VkDependencyFlags
-        Graphics.Vulkan.Types.Enum.VkDescriptorPoolCreateFlags
-        Graphics.Vulkan.Types.Enum.VkDescriptorSetLayoutCreateFlags
-        Graphics.Vulkan.Types.Enum.VkDescriptorType
-        Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateType
-        Graphics.Vulkan.Types.Enum.VkDescriptorUpdateTemplateTypeKHR
-        Graphics.Vulkan.Types.Enum.VkDeviceCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkDeviceEventTypeEXT
-        Graphics.Vulkan.Types.Enum.VkDeviceGroupPresentModeFlagsKHR
-        Graphics.Vulkan.Types.Enum.VkDeviceQueueCreateFlags
-        Graphics.Vulkan.Types.Enum.VkDiscardRectangleModeEXT
-        Graphics.Vulkan.Types.Enum.VkDisplayEventTypeEXT
-        Graphics.Vulkan.Types.Enum.VkDisplayPlaneAlphaFlagsKHR
-        Graphics.Vulkan.Types.Enum.VkDisplayPowerStateEXT
-        Graphics.Vulkan.Types.Enum.VkDynamicState
-        Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalFenceFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalFenceHandleTypeFlags
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryFeatureFlagsNV
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlags
-        Graphics.Vulkan.Types.Enum.VkExternalMemoryHandleTypeFlagsNV
-        Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalSemaphoreFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkExternalSemaphoreHandleTypeFlags
-        Graphics.Vulkan.Types.Enum.VkFenceCreateFlags
-        Graphics.Vulkan.Types.Enum.VkFenceImportFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkFenceImportFlags
-        Graphics.Vulkan.Types.Enum.VkFilter
-        Graphics.Vulkan.Types.Enum.VkFormat
-        Graphics.Vulkan.Types.Enum.VkFormatFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkFramebufferCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkFrontFace
-        Graphics.Vulkan.Types.Enum.VkImageAspectFlags
-        Graphics.Vulkan.Types.Enum.VkImageCreateFlags
-        Graphics.Vulkan.Types.Enum.VkImageLayout
-        Graphics.Vulkan.Types.Enum.VkImageTiling
-        Graphics.Vulkan.Types.Enum.VkImageType
-        Graphics.Vulkan.Types.Enum.VkImageUsageFlags
-        Graphics.Vulkan.Types.Enum.VkImageViewType
-        Graphics.Vulkan.Types.Enum.VkIndexType
-        Graphics.Vulkan.Types.Enum.VkIndirectCommandsLayoutUsageFlagsNVX
-        Graphics.Vulkan.Types.Enum.VkIndirectCommandsTokenTypeNVX
-        Graphics.Vulkan.Types.Enum.VkInstanceCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkInternalAllocationType
-        Graphics.Vulkan.Types.Enum.VkLogicOp
-        Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkMemoryAllocateFlags
-        Graphics.Vulkan.Types.Enum.VkMemoryHeapFlags
-        Graphics.Vulkan.Types.Enum.VkMemoryPropertyFlags
-        Graphics.Vulkan.Types.Enum.VkObjectEntryTypeNVX
-        Graphics.Vulkan.Types.Enum.VkObjectEntryUsageFlagsNVX
-        Graphics.Vulkan.Types.Enum.VkObjectType
-        Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkPeerMemoryFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkPhysicalDeviceType
-        Graphics.Vulkan.Types.Enum.VkPipelineBindPoint
-        Graphics.Vulkan.Types.Enum.VkPipelineCacheCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineCacheHeaderVersion
-        Graphics.Vulkan.Types.Enum.VkPipelineColorBlendStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineCreateFlags
-        Graphics.Vulkan.Types.Enum.VkPipelineDepthStencilStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineDynamicStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineInputAssemblyStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineLayoutCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineMultisampleStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineRasterizationStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineShaderStageCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineStageFlags
-        Graphics.Vulkan.Types.Enum.VkPipelineTessellationStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineVertexInputStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPipelineViewportStateCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkPointClippingBehavior
-        Graphics.Vulkan.Types.Enum.VkPointClippingBehaviorKHR
-        Graphics.Vulkan.Types.Enum.VkPolygonMode
-        Graphics.Vulkan.Types.Enum.VkPresentModeKHR
-        Graphics.Vulkan.Types.Enum.VkPrimitiveTopology
-        Graphics.Vulkan.Types.Enum.VkQueryControlFlags
-        Graphics.Vulkan.Types.Enum.VkQueryPipelineStatisticFlags
-        Graphics.Vulkan.Types.Enum.VkQueryPoolCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkQueryResultFlags
-        Graphics.Vulkan.Types.Enum.VkQueryType
-        Graphics.Vulkan.Types.Enum.VkQueueFlags
-        Graphics.Vulkan.Types.Enum.VkQueueGlobalPriorityEXT
-        Graphics.Vulkan.Types.Enum.VkRasterizationOrderAMD
-        Graphics.Vulkan.Types.Enum.VkRenderPassCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkResult
-        Graphics.Vulkan.Types.Enum.VkSampleCountFlags
-        Graphics.Vulkan.Types.Enum.VkSamplerAddressMode
-        Graphics.Vulkan.Types.Enum.VkSamplerCreateFlagBits
-        Graphics.Vulkan.Types.Enum.VkSamplerMipmapMode
-        Graphics.Vulkan.Types.Enum.VkSamplerReductionModeEXT
-        Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversion
-        Graphics.Vulkan.Types.Enum.VkSamplerYcbcrModelConversionKHR
-        Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRange
-        Graphics.Vulkan.Types.Enum.VkSamplerYcbcrRangeKHR
-        Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlagBitsKHR
-        Graphics.Vulkan.Types.Enum.VkSemaphoreImportFlags
-        Graphics.Vulkan.Types.Enum.VkShaderInfoTypeAMD
-        Graphics.Vulkan.Types.Enum.VkShaderStageFlags
-        Graphics.Vulkan.Types.Enum.VkSharingMode
-        Graphics.Vulkan.Types.Enum.VkSparseImageFormatFlags
-        Graphics.Vulkan.Types.Enum.VkSparseMemoryBindFlags
-        Graphics.Vulkan.Types.Enum.VkStencilFaceFlags
-        Graphics.Vulkan.Types.Enum.VkStencilOp
-        Graphics.Vulkan.Types.Enum.VkStructureType
-        Graphics.Vulkan.Types.Enum.VkSubgroupFeatureFlags
-        Graphics.Vulkan.Types.Enum.VkSubpassContents
-        Graphics.Vulkan.Types.Enum.VkSubpassDescriptionFlags
-        Graphics.Vulkan.Types.Enum.VkSurfaceCounterFlagsEXT
-        Graphics.Vulkan.Types.Enum.VkSurfaceTransformFlagsKHR
-        Graphics.Vulkan.Types.Enum.VkSwapchainCreateFlagsKHR
-        Graphics.Vulkan.Types.Enum.VkSystemAllocationScope
-        Graphics.Vulkan.Types.Enum.VkTessellationDomainOrigin
-        Graphics.Vulkan.Types.Enum.VkTessellationDomainOriginKHR
-        Graphics.Vulkan.Types.Enum.VkValidationCacheHeaderVersionEXT
-        Graphics.Vulkan.Types.Enum.VkValidationCheckEXT
-        Graphics.Vulkan.Types.Enum.VkVertexInputRate
-        Graphics.Vulkan.Types.Enum.VkViewportCoordinateSwizzleNV
+        Graphics.Vulkan.Types.Enum.AccessFlags
+        Graphics.Vulkan.Types.Enum.Attachment
+        Graphics.Vulkan.Types.Enum.Blend
+        Graphics.Vulkan.Types.Enum.BorderColor
+        Graphics.Vulkan.Types.Enum.Buffer
+        Graphics.Vulkan.Types.Enum.ChromaLocation
+        Graphics.Vulkan.Types.Enum.Color
+        Graphics.Vulkan.Types.Enum.Command
+        Graphics.Vulkan.Types.Enum.CompareOp
+        Graphics.Vulkan.Types.Enum.ComponentSwizzle
+        Graphics.Vulkan.Types.Enum.CompositeAlphaFlagsKHR
+        Graphics.Vulkan.Types.Enum.ConservativeRasterizationModeEXT
+        Graphics.Vulkan.Types.Enum.CoverageModulationModeNV
+        Graphics.Vulkan.Types.Enum.CullModeFlags
+        Graphics.Vulkan.Types.Enum.Debug
+        Graphics.Vulkan.Types.Enum.DependencyFlags
+        Graphics.Vulkan.Types.Enum.Descriptor
+        Graphics.Vulkan.Types.Enum.Device
+        Graphics.Vulkan.Types.Enum.DiscardRectangleModeEXT
+        Graphics.Vulkan.Types.Enum.Display
+        Graphics.Vulkan.Types.Enum.DynamicState
+        Graphics.Vulkan.Types.Enum.External
+        Graphics.Vulkan.Types.Enum.Fence
+        Graphics.Vulkan.Types.Enum.Filter
+        Graphics.Vulkan.Types.Enum.Format
+        Graphics.Vulkan.Types.Enum.FramebufferCreateFlagBits
+        Graphics.Vulkan.Types.Enum.FrontFace
+        Graphics.Vulkan.Types.Enum.Image
+        Graphics.Vulkan.Types.Enum.IndexType
+        Graphics.Vulkan.Types.Enum.IndirectCommands
+        Graphics.Vulkan.Types.Enum.InstanceCreateFlagBits
+        Graphics.Vulkan.Types.Enum.InternalAllocationType
+        Graphics.Vulkan.Types.Enum.LogicOp
+        Graphics.Vulkan.Types.Enum.Memory
+        Graphics.Vulkan.Types.Enum.Object
+        Graphics.Vulkan.Types.Enum.PeerMemoryFeatureFlag
+        Graphics.Vulkan.Types.Enum.PhysicalDeviceType
+        Graphics.Vulkan.Types.Enum.Pipeline
+        Graphics.Vulkan.Types.Enum.PointClippingBehavior
+        Graphics.Vulkan.Types.Enum.PolygonMode
+        Graphics.Vulkan.Types.Enum.PresentModeKHR
+        Graphics.Vulkan.Types.Enum.PrimitiveTopology
+        Graphics.Vulkan.Types.Enum.Query
+        Graphics.Vulkan.Types.Enum.Queue
+        Graphics.Vulkan.Types.Enum.RasterizationOrderAMD
+        Graphics.Vulkan.Types.Enum.RenderPassCreateFlagBits
+        Graphics.Vulkan.Types.Enum.Result
+        Graphics.Vulkan.Types.Enum.SampleCountFlags
+        Graphics.Vulkan.Types.Enum.Sampler
+        Graphics.Vulkan.Types.Enum.SemaphoreImportFlag
+        Graphics.Vulkan.Types.Enum.Shader
+        Graphics.Vulkan.Types.Enum.SharingMode
+        Graphics.Vulkan.Types.Enum.Sparse
+        Graphics.Vulkan.Types.Enum.Stencil
+        Graphics.Vulkan.Types.Enum.StructureType
+        Graphics.Vulkan.Types.Enum.SubgroupFeatureFlags
+        Graphics.Vulkan.Types.Enum.Subpass
+        Graphics.Vulkan.Types.Enum.Surface
+        Graphics.Vulkan.Types.Enum.SwapchainCreateFlagsKHR
+        Graphics.Vulkan.Types.Enum.SystemAllocationScope
+        Graphics.Vulkan.Types.Enum.TessellationDomainOrigin
+        Graphics.Vulkan.Types.Enum.ValidationC
+        Graphics.Vulkan.Types.Enum.VertexInputRate
+        Graphics.Vulkan.Types.Enum.ViewportCoordinateSwizzleNV
         Graphics.Vulkan.Types.Funcpointers
         Graphics.Vulkan.Types.Handles
         Graphics.Vulkan.Types.Include
-        Graphics.Vulkan.Types.Struct.VkAcquireNextImageInfoKHR
-        Graphics.Vulkan.Types.Struct.VkAllocationCallbacks
-        Graphics.Vulkan.Types.Struct.VkApplicationInfo
-        Graphics.Vulkan.Types.Struct.VkAttachmentDescription
-        Graphics.Vulkan.Types.Struct.VkAttachmentReference
-        Graphics.Vulkan.Types.Struct.VkAttachmentSampleLocationsEXT
-        Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfo
-        Graphics.Vulkan.Types.Struct.VkBindBufferMemoryDeviceGroupInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfo
-        Graphics.Vulkan.Types.Struct.VkBindBufferMemoryInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfo
-        Graphics.Vulkan.Types.Struct.VkBindImageMemoryDeviceGroupInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfo
-        Graphics.Vulkan.Types.Struct.VkBindImageMemoryInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindImageMemorySwapchainInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfo
-        Graphics.Vulkan.Types.Struct.VkBindImagePlaneMemoryInfoKHR
-        Graphics.Vulkan.Types.Struct.VkBindSparseInfo
-        Graphics.Vulkan.Types.Struct.VkBufferCopy
-        Graphics.Vulkan.Types.Struct.VkBufferCreateInfo
-        Graphics.Vulkan.Types.Struct.VkBufferImageCopy
-        Graphics.Vulkan.Types.Struct.VkBufferMemoryBarrier
-        Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2
-        Graphics.Vulkan.Types.Struct.VkBufferMemoryRequirementsInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkBufferViewCreateInfo
-        Graphics.Vulkan.Types.Struct.VkClearAttachment
-        Graphics.Vulkan.Types.Struct.VkClearColorValue
-        Graphics.Vulkan.Types.Struct.VkClearDepthStencilValue
-        Graphics.Vulkan.Types.Struct.VkClearRect
-        Graphics.Vulkan.Types.Struct.VkClearValue
-        Graphics.Vulkan.Types.Struct.VkCmdProcessCommandsInfoNVX
-        Graphics.Vulkan.Types.Struct.VkCmdReserveSpaceForCommandsInfoNVX
-        Graphics.Vulkan.Types.Struct.VkCommandBufferAllocateInfo
-        Graphics.Vulkan.Types.Struct.VkCommandBufferBeginInfo
-        Graphics.Vulkan.Types.Struct.VkCommandBufferInheritanceInfo
-        Graphics.Vulkan.Types.Struct.VkCommandPoolCreateInfo
-        Graphics.Vulkan.Types.Struct.VkComponentMapping
-        Graphics.Vulkan.Types.Struct.VkComputePipelineCreateInfo
-        Graphics.Vulkan.Types.Struct.VkCopyDescriptorSet
-        Graphics.Vulkan.Types.Struct.VkDebugMarkerMarkerInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectNameInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugMarkerObjectTagInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugReportCallbackCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugUtilsLabelEXT
-        Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCallbackDataEXT
-        Graphics.Vulkan.Types.Struct.VkDebugUtilsMessengerCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectNameInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDebugUtilsObjectTagInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDedicatedAllocationBufferCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkDedicatedAllocationImageCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkDedicatedAllocationMemoryAllocateInfoNV
-        Graphics.Vulkan.Types.Struct.VkDescriptorBufferInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorImageInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorPoolCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorPoolSize
-        Graphics.Vulkan.Types.Struct.VkDescriptorSetAllocateInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutBinding
-        Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupport
-        Graphics.Vulkan.Types.Struct.VkDescriptorSetLayoutSupportKHR
-        Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntry
-        Graphics.Vulkan.Types.Struct.VkDescriptorUpdateTemplateEntryKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceEventInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsFeaturesNVX
-        Graphics.Vulkan.Types.Struct.VkDeviceGeneratedCommandsLimitsNVX
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupBindSparseInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupCommandBufferBeginInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupDeviceCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentCapabilitiesKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupPresentInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupRenderPassBeginInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupSubmitInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceGroupSwapchainCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDeviceQueueCreateInfo
-        Graphics.Vulkan.Types.Struct.VkDeviceQueueGlobalPriorityCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDeviceQueueInfo2
-        Graphics.Vulkan.Types.Struct.VkDispatchIndirectCommand
-        Graphics.Vulkan.Types.Struct.VkDisplayEventInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDisplayModeCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayModeParametersKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayModePropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayPlaneCapabilitiesKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayPlanePropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayPowerInfoEXT
-        Graphics.Vulkan.Types.Struct.VkDisplayPresentInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDisplayPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkDisplaySurfaceCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkDrawIndexedIndirectCommand
-        Graphics.Vulkan.Types.Struct.VkDrawIndirectCommand
-        Graphics.Vulkan.Types.Struct.VkEventCreateInfo
-        Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfo
-        Graphics.Vulkan.Types.Struct.VkExportFenceCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfo
-        Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExportMemoryAllocateInfoNV
-        Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfo
-        Graphics.Vulkan.Types.Struct.VkExportSemaphoreCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExtensionProperties
-        Graphics.Vulkan.Types.Struct.VkExtent2D
-        Graphics.Vulkan.Types.Struct.VkExtent3D
-        Graphics.Vulkan.Types.Struct.VkExternalBufferProperties
-        Graphics.Vulkan.Types.Struct.VkExternalBufferPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkExternalFenceProperties
-        Graphics.Vulkan.Types.Struct.VkExternalFencePropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkExternalImageFormatProperties
-        Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkExternalImageFormatPropertiesNV
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfo
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryBufferCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfo
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryImageCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryProperties
-        Graphics.Vulkan.Types.Struct.VkExternalMemoryPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkExternalSemaphoreProperties
-        Graphics.Vulkan.Types.Struct.VkExternalSemaphorePropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkFenceCreateInfo
-        Graphics.Vulkan.Types.Struct.VkFenceGetFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkFormatProperties
-        Graphics.Vulkan.Types.Struct.VkFormatProperties2
-        Graphics.Vulkan.Types.Struct.VkFormatProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkFramebufferCreateInfo
-        Graphics.Vulkan.Types.Struct.VkGraphicsPipelineCreateInfo
-        Graphics.Vulkan.Types.Struct.VkHdrMetadataEXT
-        Graphics.Vulkan.Types.Struct.VkImageBlit
-        Graphics.Vulkan.Types.Struct.VkImageCopy
-        Graphics.Vulkan.Types.Struct.VkImageCreateInfo
-        Graphics.Vulkan.Types.Struct.VkImageFormatListCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImageFormatProperties
-        Graphics.Vulkan.Types.Struct.VkImageFormatProperties2
-        Graphics.Vulkan.Types.Struct.VkImageFormatProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkImageMemoryBarrier
-        Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2
-        Graphics.Vulkan.Types.Struct.VkImageMemoryRequirementsInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfo
-        Graphics.Vulkan.Types.Struct.VkImagePlaneMemoryRequirementsInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImageResolve
-        Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2
-        Graphics.Vulkan.Types.Struct.VkImageSparseMemoryRequirementsInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkImageSubresource
-        Graphics.Vulkan.Types.Struct.VkImageSubresourceLayers
-        Graphics.Vulkan.Types.Struct.VkImageSubresourceRange
-        Graphics.Vulkan.Types.Struct.VkImageSwapchainCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImageViewCreateInfo
-        Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfo
-        Graphics.Vulkan.Types.Struct.VkImageViewUsageCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportFenceFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportMemoryFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportMemoryHostPointerInfoEXT
-        Graphics.Vulkan.Types.Struct.VkImportSemaphoreFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutCreateInfoNVX
-        Graphics.Vulkan.Types.Struct.VkIndirectCommandsLayoutTokenNVX
-        Graphics.Vulkan.Types.Struct.VkIndirectCommandsTokenNVX
-        Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReference
-        Graphics.Vulkan.Types.Struct.VkInputAttachmentAspectReferenceKHR
-        Graphics.Vulkan.Types.Struct.VkInstanceCreateInfo
-        Graphics.Vulkan.Types.Struct.VkLayerProperties
-        Graphics.Vulkan.Types.Struct.VkMappedMemoryRange
-        Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfo
-        Graphics.Vulkan.Types.Struct.VkMemoryAllocateFlagsInfoKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryAllocateInfo
-        Graphics.Vulkan.Types.Struct.VkMemoryBarrier
-        Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfo
-        Graphics.Vulkan.Types.Struct.VkMemoryDedicatedAllocateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirements
-        Graphics.Vulkan.Types.Struct.VkMemoryDedicatedRequirementsKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryFdPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryGetFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryHeap
-        Graphics.Vulkan.Types.Struct.VkMemoryHostPointerPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkMemoryRequirements
-        Graphics.Vulkan.Types.Struct.VkMemoryRequirements2
-        Graphics.Vulkan.Types.Struct.VkMemoryRequirements2KHR
-        Graphics.Vulkan.Types.Struct.VkMemoryType
-        Graphics.Vulkan.Types.Struct.VkMultisamplePropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkObjectTableCreateInfoNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTableDescriptorSetEntryNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTableEntryNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTableIndexBufferEntryNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTablePipelineEntryNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTablePushConstantEntryNVX
-        Graphics.Vulkan.Types.Struct.VkObjectTableVertexBufferEntryNVX
-        Graphics.Vulkan.Types.Struct.VkOffset2D
-        Graphics.Vulkan.Types.Struct.VkOffset3D
-        Graphics.Vulkan.Types.Struct.VkPastPresentationTimingGOOGLE
-        Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDevice16BitStorageFeaturesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceConservativeRasterizationPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceDiscardRectanglePropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfo
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalBufferInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfo
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalFenceInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfo
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalImageFormatInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalMemoryHostPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfo
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceExternalSemaphoreInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceFeatures2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceGroupPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceIDPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceImageFormatInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceLimits
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3Properties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMaintenance3PropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMemoryProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewFeaturesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceMultiviewPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDevicePointClippingPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceProtectedMemoryProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDevicePushDescriptorPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSampleLocationsPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceShaderDrawParameterFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseImageFormatInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSparseProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSubgroupProperties
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceSurfaceInfo2KHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeatures
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVariablePointerFeaturesKHR
-        Graphics.Vulkan.Types.Struct.VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineCacheCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAdvancedStateCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineColorBlendAttachmentState
-        Graphics.Vulkan.Types.Struct.VkPipelineColorBlendStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineCoverageModulationStateCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkPipelineCoverageToColorStateCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkPipelineDepthStencilStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineDiscardRectangleStateCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineDynamicStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineInputAssemblyStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineLayoutCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineMultisampleStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineRasterizationConservativeStateCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineRasterizationStateRasterizationOrderAMD
-        Graphics.Vulkan.Types.Struct.VkPipelineSampleLocationsStateCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineShaderStageCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineTessellationDomainOriginStateCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPipelineTessellationStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineVertexInputDivisorStateCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkPipelineVertexInputStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineViewportStateCreateInfo
-        Graphics.Vulkan.Types.Struct.VkPipelineViewportSwizzleStateCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkPipelineViewportWScalingStateCreateInfoNV
-        Graphics.Vulkan.Types.Struct.VkPresentInfoKHR
-        Graphics.Vulkan.Types.Struct.VkPresentRegionKHR
-        Graphics.Vulkan.Types.Struct.VkPresentRegionsKHR
-        Graphics.Vulkan.Types.Struct.VkPresentTimeGOOGLE
-        Graphics.Vulkan.Types.Struct.VkPresentTimesInfoGOOGLE
-        Graphics.Vulkan.Types.Struct.VkProtectedSubmitInfo
-        Graphics.Vulkan.Types.Struct.VkPushConstantRange
-        Graphics.Vulkan.Types.Struct.VkQueryPoolCreateInfo
-        Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties
-        Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2
-        Graphics.Vulkan.Types.Struct.VkQueueFamilyProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkRect2D
-        Graphics.Vulkan.Types.Struct.VkRectLayerKHR
-        Graphics.Vulkan.Types.Struct.VkRefreshCycleDurationGOOGLE
-        Graphics.Vulkan.Types.Struct.VkRenderPassBeginInfo
-        Graphics.Vulkan.Types.Struct.VkRenderPassCreateInfo
-        Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfo
-        Graphics.Vulkan.Types.Struct.VkRenderPassInputAttachmentAspectCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfo
-        Graphics.Vulkan.Types.Struct.VkRenderPassMultiviewCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkRenderPassSampleLocationsBeginInfoEXT
-        Graphics.Vulkan.Types.Struct.VkSampleLocationEXT
-        Graphics.Vulkan.Types.Struct.VkSampleLocationsInfoEXT
-        Graphics.Vulkan.Types.Struct.VkSamplerCreateInfo
-        Graphics.Vulkan.Types.Struct.VkSamplerReductionModeCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfo
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatProperties
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionImageFormatPropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfo
-        Graphics.Vulkan.Types.Struct.VkSamplerYcbcrConversionInfoKHR
-        Graphics.Vulkan.Types.Struct.VkSemaphoreCreateInfo
-        Graphics.Vulkan.Types.Struct.VkSemaphoreGetFdInfoKHR
-        Graphics.Vulkan.Types.Struct.VkShaderModuleCreateInfo
-        Graphics.Vulkan.Types.Struct.VkShaderModuleValidationCacheCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkShaderResourceUsageAMD
-        Graphics.Vulkan.Types.Struct.VkShaderStatisticsInfoAMD
-        Graphics.Vulkan.Types.Struct.VkSharedPresentSurfaceCapabilitiesKHR
-        Graphics.Vulkan.Types.Struct.VkSparseBufferMemoryBindInfo
-        Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties
-        Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2
-        Graphics.Vulkan.Types.Struct.VkSparseImageFormatProperties2KHR
-        Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBind
-        Graphics.Vulkan.Types.Struct.VkSparseImageMemoryBindInfo
-        Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements
-        Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2
-        Graphics.Vulkan.Types.Struct.VkSparseImageMemoryRequirements2KHR
-        Graphics.Vulkan.Types.Struct.VkSparseImageOpaqueMemoryBindInfo
-        Graphics.Vulkan.Types.Struct.VkSparseMemoryBind
-        Graphics.Vulkan.Types.Struct.VkSpecializationInfo
-        Graphics.Vulkan.Types.Struct.VkSpecializationMapEntry
-        Graphics.Vulkan.Types.Struct.VkStencilOpState
-        Graphics.Vulkan.Types.Struct.VkSubmitInfo
-        Graphics.Vulkan.Types.Struct.VkSubpassDependency
-        Graphics.Vulkan.Types.Struct.VkSubpassDescription
-        Graphics.Vulkan.Types.Struct.VkSubpassSampleLocationsEXT
-        Graphics.Vulkan.Types.Struct.VkSubresourceLayout
-        Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2EXT
-        Graphics.Vulkan.Types.Struct.VkSurfaceCapabilities2KHR
-        Graphics.Vulkan.Types.Struct.VkSurfaceCapabilitiesKHR
-        Graphics.Vulkan.Types.Struct.VkSurfaceFormat2KHR
-        Graphics.Vulkan.Types.Struct.VkSurfaceFormatKHR
-        Graphics.Vulkan.Types.Struct.VkSwapchainCounterCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkSwapchainCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkTextureLODGatherFormatPropertiesAMD
-        Graphics.Vulkan.Types.Struct.VkValidationCacheCreateInfoEXT
-        Graphics.Vulkan.Types.Struct.VkValidationFlagsEXT
-        Graphics.Vulkan.Types.Struct.VkVertexInputAttributeDescription
-        Graphics.Vulkan.Types.Struct.VkVertexInputBindingDescription
-        Graphics.Vulkan.Types.Struct.VkVertexInputBindingDivisorDescriptionEXT
-        Graphics.Vulkan.Types.Struct.VkViewport
-        Graphics.Vulkan.Types.Struct.VkViewportSwizzleNV
-        Graphics.Vulkan.Types.Struct.VkViewportWScalingNV
-        Graphics.Vulkan.Types.Struct.VkWriteDescriptorSet
-        Graphics.Vulkan.Types.Struct.VkXYColorEXT
+        Graphics.Vulkan.Types.Struct.AcquireNextImageInfoKHR
+        Graphics.Vulkan.Types.Struct.AllocationCallbacks
+        Graphics.Vulkan.Types.Struct.ApplicationInfo
+        Graphics.Vulkan.Types.Struct.Attachment
+        Graphics.Vulkan.Types.Struct.Bind
+        Graphics.Vulkan.Types.Struct.Buffer
+        Graphics.Vulkan.Types.Struct.Clear
+        Graphics.Vulkan.Types.Struct.Cmd
+        Graphics.Vulkan.Types.Struct.Command
+        Graphics.Vulkan.Types.Struct.ComponentMapping
+        Graphics.Vulkan.Types.Struct.ComputePipelineCreateInfo
+        Graphics.Vulkan.Types.Struct.CopyDescriptorSet
+        Graphics.Vulkan.Types.Struct.Debug
+        Graphics.Vulkan.Types.Struct.DebugUtilsLabelEXT
+        Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCallbackDataEXT
+        Graphics.Vulkan.Types.Struct.DebugUtilsMessengerCreateInfoEXT
+        Graphics.Vulkan.Types.Struct.DebugUtilsObjectNameInfoEXT
+        Graphics.Vulkan.Types.Struct.DedicatedAllocation
+        Graphics.Vulkan.Types.Struct.Descriptor
+        Graphics.Vulkan.Types.Struct.Device
+        Graphics.Vulkan.Types.Struct.DispatchIndirectCommand
+        Graphics.Vulkan.Types.Struct.Display
+        Graphics.Vulkan.Types.Struct.DrawInd
+        Graphics.Vulkan.Types.Struct.EventCreateInfo
+        Graphics.Vulkan.Types.Struct.Export
+        Graphics.Vulkan.Types.Struct.ExtensionProperties
+        Graphics.Vulkan.Types.Struct.Extent
+        Graphics.Vulkan.Types.Struct.External
+        Graphics.Vulkan.Types.Struct.Fence
+        Graphics.Vulkan.Types.Struct.FormatProperties
+        Graphics.Vulkan.Types.Struct.FramebufferCreateInfo
+        Graphics.Vulkan.Types.Struct.HdrMetadataEXT
+        Graphics.Vulkan.Types.Struct.Image
+        Graphics.Vulkan.Types.Struct.Import
+        Graphics.Vulkan.Types.Struct.IndirectCommands
+        Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference
+        Graphics.Vulkan.Types.Struct.InstanceCreateInfo
+        Graphics.Vulkan.Types.Struct.LayerProperties
+        Graphics.Vulkan.Types.Struct.MappedMemoryRange
+        Graphics.Vulkan.Types.Struct.Memory
+        Graphics.Vulkan.Types.Struct.MultisamplePropertiesEXT
+        Graphics.Vulkan.Types.Struct.ObjectTable
+        Graphics.Vulkan.Types.Struct.Offset
+        Graphics.Vulkan.Types.Struct.PastPresentationTimingGOOGLE
+        Graphics.Vulkan.Types.Struct.PhysicalDevice
+        Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures
+        Graphics.Vulkan.Types.Struct.Pipeline
+        Graphics.Vulkan.Types.Struct.Present
+        Graphics.Vulkan.Types.Struct.ProtectedSubmitInfo
+        Graphics.Vulkan.Types.Struct.PushConstantRange
+        Graphics.Vulkan.Types.Struct.QueryPoolCreateInfo
+        Graphics.Vulkan.Types.Struct.QueueFamilyProperties
+        Graphics.Vulkan.Types.Struct.Rect
+        Graphics.Vulkan.Types.Struct.RefreshCycleDurationGOOGLE
+        Graphics.Vulkan.Types.Struct.RenderPass
+        Graphics.Vulkan.Types.Struct.SampleLocation
+        Graphics.Vulkan.Types.Struct.Sampler
+        Graphics.Vulkan.Types.Struct.Semaphore
+        Graphics.Vulkan.Types.Struct.Shader
+        Graphics.Vulkan.Types.Struct.SharedPresentSurfaceCapabilitiesKHR
+        Graphics.Vulkan.Types.Struct.Sparse
+        Graphics.Vulkan.Types.Struct.Specialization
+        Graphics.Vulkan.Types.Struct.StencilOpState
+        Graphics.Vulkan.Types.Struct.SubmitInfo
+        Graphics.Vulkan.Types.Struct.Subpass
+        Graphics.Vulkan.Types.Struct.SubresourceLayout
+        Graphics.Vulkan.Types.Struct.Surface
+        Graphics.Vulkan.Types.Struct.SwapchainC
+        Graphics.Vulkan.Types.Struct.TextureLODGatherFormatPropertiesAMD
+        Graphics.Vulkan.Types.Struct.Validation
+        Graphics.Vulkan.Types.Struct.VertexInput
+        Graphics.Vulkan.Types.Struct.Viewport
+        Graphics.Vulkan.Types.Struct.WriteDescriptorSet
+        Graphics.Vulkan.Types.Struct.XYColorEXT
     if flag(usePlatformAndroidKhr)
       cpp-options: -DVK_USE_PLATFORM_ANDROID_KHR
       exposed-modules:
         Graphics.Vulkan.Ext.VK_ANDROID_external_memory_android_hardware_buffer
         Graphics.Vulkan.Ext.VK_KHR_android_surface
-        Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferFormatPropertiesANDROID
-        Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferPropertiesANDROID
-        Graphics.Vulkan.Types.Struct.VkAndroidHardwareBufferUsageANDROID
-        Graphics.Vulkan.Types.Struct.VkAndroidSurfaceCreateInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExternalFormatANDROID
-        Graphics.Vulkan.Types.Struct.VkImportAndroidHardwareBufferInfoANDROID
-        Graphics.Vulkan.Types.Struct.VkMemoryGetAndroidHardwareBufferInfoANDROID
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformAndroidKhr
 
     if flag(usePlatformIosMvk)
       cpp-options: -DVK_USE_PLATFORM_IOS_MVK
       exposed-modules:
         Graphics.Vulkan.Ext.VK_MVK_ios_surface
-        Graphics.Vulkan.Types.Struct.VkIOSSurfaceCreateInfoMVK
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformIosMvk
 
     if flag(usePlatformMacosMvk)
       cpp-options: -DVK_USE_PLATFORM_MACOS_MVK
       exposed-modules:
         Graphics.Vulkan.Ext.VK_MVK_macos_surface
-        Graphics.Vulkan.Types.Struct.VkMacOSSurfaceCreateInfoMVK
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformMacosMvk
 
     if flag(usePlatformMirKhr)
       cpp-options: -DVK_USE_PLATFORM_MIR_KHR
       exposed-modules:
         Graphics.Vulkan.Ext.VK_KHR_mir_surface
-        Graphics.Vulkan.Types.Struct.VkMirSurfaceCreateInfoKHR
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformMirKhr
 
     if flag(usePlatformViNn)
       cpp-options: -DVK_USE_PLATFORM_VI_NN
       exposed-modules:
         Graphics.Vulkan.Ext.VK_NN_vi_surface
-        Graphics.Vulkan.Types.Struct.VkViSurfaceCreateInfoNN
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformViNn
 
     if flag(usePlatformWaylandKhr)
       cpp-options: -DVK_USE_PLATFORM_WAYLAND_KHR
       exposed-modules:
         Graphics.Vulkan.Ext.VK_KHR_wayland_surface
-        Graphics.Vulkan.Types.Struct.VkWaylandSurfaceCreateInfoKHR
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformWaylandKhr
 
     if flag(usePlatformWin32Khr)
       cpp-options: -DVK_USE_PLATFORM_WIN32_KHR
@@ -741,47 +396,51 @@
         Graphics.Vulkan.Ext.VK_KHR_win32_surface
         Graphics.Vulkan.Ext.VK_NV_external_memory_win32
         Graphics.Vulkan.Ext.VK_NV_win32_keyed_mutex
-        Graphics.Vulkan.Types.Struct.VkD3D12FenceSubmitInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExportFenceWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkExportMemoryWin32HandleInfoNV
-        Graphics.Vulkan.Types.Struct.VkExportSemaphoreWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkFenceGetWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportFenceWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkImportMemoryWin32HandleInfoNV
-        Graphics.Vulkan.Types.Struct.VkImportSemaphoreWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryGetWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkMemoryWin32HandlePropertiesKHR
-        Graphics.Vulkan.Types.Struct.VkSemaphoreGetWin32HandleInfoKHR
-        Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoKHR
-        Graphics.Vulkan.Types.Struct.VkWin32KeyedMutexAcquireReleaseInfoNV
-        Graphics.Vulkan.Types.Struct.VkWin32SurfaceCreateInfoKHR
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformWin32Khr
 
     if flag(usePlatformXcbKhr)
       cpp-options: -DVK_USE_PLATFORM_XCB_KHR
       exposed-modules:
         Graphics.Vulkan.Ext.VK_KHR_xcb_surface
-        Graphics.Vulkan.Types.Struct.VkXcbSurfaceCreateInfoKHR
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformXcbKhr
 
     if flag(usePlatformXlibKhr)
       cpp-options: -DVK_USE_PLATFORM_XLIB_KHR
       exposed-modules:
         Graphics.Vulkan.Ext.VK_KHR_xlib_surface
-        Graphics.Vulkan.Types.Struct.VkXlibSurfaceCreateInfoKHR
+      other-modules:
+        Graphics.Vulkan.Types.Struct.PlatformXlibKhr
 
     if flag(usePlatformXlibXrandrExt)
       cpp-options: -DVK_USE_PLATFORM_XLIB_XRANDR_EXT
       exposed-modules:
         Graphics.Vulkan.Ext.VK_EXT_acquire_xlib_display
+      other-modules:
 
+    if flag(useNativeFFI-1-0)
+      cpp-options: -DNATIVE_FFI_VK_VERSION_1_0
+
+    if flag(useNativeFFI-1-1)
+      cpp-options: -DNATIVE_FFI_VK_VERSION_1_1
+
     build-depends:
         base >= 4.7 && < 5
-      , ghc-prim >= 0.4 && < 0.6
     default-language:    Haskell2010
     ghc-options:         -Wall
-    extra-libraries:     vulkan
     include-dirs:        include
+    if flag(useNativeFFI-1-0) || flag(useNativeFFI-1-1)
+      if os(windows)
+        extra-libraries: vulkan-1
+      if os(darwin)
+        frameworks:      MoltenVK
+      if !os(windows) && !os(darwin)
+        extra-libraries: vulkan
+    else
+      cpp-options:       -DVK_NO_PROTOTYPES
+      cc-options:        -DVK_NO_PROTOTYPES
+      c-sources:         cbits/vulkan_loader.c
 
 source-repository head
     type:     git
